diff options
author | Evan Cheng <evan.cheng@apple.com> | 2008-09-27 01:56:22 +0000 |
---|---|---|
committer | Evan Cheng <evan.cheng@apple.com> | 2008-09-27 01:56:22 +0000 |
commit | 184793fc8a9cf6ecc9147468bbcc068f472b8517 (patch) | |
tree | 8a3fb921e6c50ca0cd6c77e2ce1c1ce7d6171514 /test/CodeGen | |
parent | 85263907681d21094cab75547cf4a5f538703fcc (diff) | |
download | external_llvm-184793fc8a9cf6ecc9147468bbcc068f472b8517.zip external_llvm-184793fc8a9cf6ecc9147468bbcc068f472b8517.tar.gz external_llvm-184793fc8a9cf6ecc9147468bbcc068f472b8517.tar.bz2 |
Re-apply 56683 with fixes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56748 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGen')
-rw-r--r-- | test/CodeGen/X86/2008-09-26-FrameAddrBug.ll | 16 | ||||
-rw-r--r-- | test/CodeGen/X86/x86-64-frameaddr.ll | 5 | ||||
-rw-r--r-- | test/CodeGen/X86/x86-frameaddr.ll | 1 | ||||
-rw-r--r-- | test/CodeGen/X86/x86-frameaddr2.ll | 1 |
4 files changed, 18 insertions, 5 deletions
diff --git a/test/CodeGen/X86/2008-09-26-FrameAddrBug.ll b/test/CodeGen/X86/2008-09-26-FrameAddrBug.ll new file mode 100644 index 0000000..b1f5ab5 --- /dev/null +++ b/test/CodeGen/X86/2008-09-26-FrameAddrBug.ll @@ -0,0 +1,16 @@ +; RUN: llvm-as < %s | llc -mtriple=i386-apple-darwin9 + + %struct._Unwind_Context = type { [18 x i8*], i8*, i8*, i8*, %struct.dwarf_eh_bases, i32, i32, i32, [18 x i8] } + %struct._Unwind_Exception = type { i64, void (i32, %struct._Unwind_Exception*)*, i32, i32, [3 x i32] } + %struct.dwarf_eh_bases = type { i8*, i8*, i8* } + +declare fastcc void @uw_init_context_1(%struct._Unwind_Context*, i8*, i8*) + +declare i8* @llvm.eh.dwarf.cfa(i32) nounwind + +define hidden void @_Unwind_Resume(%struct._Unwind_Exception* %exc) noreturn noreturn { +entry: + %0 = call i8* @llvm.eh.dwarf.cfa(i32 0) ; <i8*> [#uses=1] + call fastcc void @uw_init_context_1(%struct._Unwind_Context* null, i8* %0, i8* null) + unreachable +} diff --git a/test/CodeGen/X86/x86-64-frameaddr.ll b/test/CodeGen/X86/x86-64-frameaddr.ll index 86a238f..8006099 100644 --- a/test/CodeGen/X86/x86-64-frameaddr.ll +++ b/test/CodeGen/X86/x86-64-frameaddr.ll @@ -1,7 +1,6 @@ -; RUN: llvm-as < %s | llc -march=x86-64 | grep {leaq -8(%rsp), %rax} -@llvm.noinline = appending global [1 x i8*] [ i8* bitcast (i64* ()* @stack_end_address to i8*) ], section "llvm.metadata" +; RUN: llvm-as < %s | llc -march=x86-64 | grep movq | grep rbp -define internal i64* @stack_end_address() nounwind { +define i64* @stack_end_address() nounwind { entry: tail call i8* @llvm.frameaddress( i32 0 ) bitcast i8* %0 to i64* diff --git a/test/CodeGen/X86/x86-frameaddr.ll b/test/CodeGen/X86/x86-frameaddr.ll index 0707d92..b9d6d13 100644 --- a/test/CodeGen/X86/x86-frameaddr.ll +++ b/test/CodeGen/X86/x86-frameaddr.ll @@ -1,5 +1,4 @@ ; RUN: llvm-as < %s | llc -march=x86 | grep mov | grep ebp -; XFAIL: * define i8* @t() nounwind { entry: diff --git a/test/CodeGen/X86/x86-frameaddr2.ll b/test/CodeGen/X86/x86-frameaddr2.ll index bcb87c5..f50ab07 100644 --- a/test/CodeGen/X86/x86-frameaddr2.ll +++ b/test/CodeGen/X86/x86-frameaddr2.ll @@ -1,5 +1,4 @@ ; RUN: llvm-as < %s | llc -march=x86 | grep mov | count 3 -; XFAIL: * define i8* @t() nounwind { entry: |