diff options
author | Dale Johannesen <dalej@apple.com> | 2007-11-05 21:20:28 +0000 |
---|---|---|
committer | Dale Johannesen <dalej@apple.com> | 2007-11-05 21:20:28 +0000 |
commit | cfb19e6297a5527845fd6c14b7dff5dea34b6a25 (patch) | |
tree | b09932726b145c3501614679561c699708a4dc48 /test | |
parent | a23f9db964559748fcac9446dc65659ada3e21d1 (diff) | |
download | external_llvm-cfb19e6297a5527845fd6c14b7dff5dea34b6a25.zip external_llvm-cfb19e6297a5527845fd6c14b7dff5dea34b6a25.tar.gz external_llvm-cfb19e6297a5527845fd6c14b7dff5dea34b6a25.tar.bz2 |
Make labels work in asm blocks; allow labels as
parameters. Rename ValueRefList to ParamList
in AsmParser, since its only use is for parameters.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43734 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test')
-rw-r--r-- | test/CodeGen/X86/asm-block-labels.ll | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/test/CodeGen/X86/asm-block-labels.ll b/test/CodeGen/X86/asm-block-labels.ll new file mode 100644 index 0000000..284a9fb --- /dev/null +++ b/test/CodeGen/X86/asm-block-labels.ll @@ -0,0 +1,41 @@ +; RUN: llvm-as < %s | opt -std-compile-opts | llc +; ModuleID = 'block12.c' +target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128" +target triple = "i686-apple-darwin8" + +define void @bar() { +entry: + br label %"LASM$foo" + +"LASM$foo": ; preds = %entry + call void asm sideeffect ".file \22block12.c\22", "~{dirflag},~{fpsr},~{flags}"( ) + call void asm sideeffect ".line 1", "~{dirflag},~{fpsr},~{flags}"( ) + call void asm sideeffect "int $$1", "~{dirflag},~{fpsr},~{flags},~{memory}"( ) + call void asm sideeffect ".file \22block12.c\22", "~{dirflag},~{fpsr},~{flags}"( ) + call void asm sideeffect ".line 2", "~{dirflag},~{fpsr},~{flags}"( ) + call void asm sideeffect "brl ${0:l}", "X,~{dirflag},~{fpsr},~{flags},~{memory}"( label %"LASM$foo" ) + br label %return + +return: ; preds = %"LASM$foo" + ret void +} + +define void @baz() { +entry: + call void asm sideeffect ".file \22block12.c\22", "~{dirflag},~{fpsr},~{flags}"( ) + call void asm sideeffect ".line 3", "~{dirflag},~{fpsr},~{flags}"( ) + call void asm sideeffect "brl ${0:l}", "X,~{dirflag},~{fpsr},~{flags},~{memory}"( label %"LASM$foo" ) + call void asm sideeffect ".file \22block12.c\22", "~{dirflag},~{fpsr},~{flags}"( ) + call void asm sideeffect ".line 4", "~{dirflag},~{fpsr},~{flags}"( ) + call void asm sideeffect "int $$1", "~{dirflag},~{fpsr},~{flags},~{memory}"( ) + br label %"LASM$foo" + +"LASM$foo": ; preds = %entry + call void asm sideeffect ".file \22block12.c\22", "~{dirflag},~{fpsr},~{flags}"( ) + call void asm sideeffect ".line 5", "~{dirflag},~{fpsr},~{flags}"( ) + call void asm sideeffect "int $$1", "~{dirflag},~{fpsr},~{flags},~{memory}"( ) + br label %return + +return: ; preds = %"LASM$foo" + ret void +} |