aboutsummaryrefslogtreecommitdiff
path: root/test/CodeGen/X86/inalloca-invoke.ll
diff options
context:
space:
mode:
Diffstat (limited to 'test/CodeGen/X86/inalloca-invoke.ll')
-rw-r--r--test/CodeGen/X86/inalloca-invoke.ll13
1 files changed, 7 insertions, 6 deletions
diff --git a/test/CodeGen/X86/inalloca-invoke.ll b/test/CodeGen/X86/inalloca-invoke.ll
index b56f24d99628..cf5cbe142ec7 100644
--- a/test/CodeGen/X86/inalloca-invoke.ll
+++ b/test/CodeGen/X86/inalloca-invoke.ll
@@ -4,6 +4,7 @@
%frame.reverse = type { %Iter, %Iter }
+declare i32 @pers(...)
declare void @llvm.stackrestore(i8*)
declare i8* @llvm.stacksave()
declare void @begin(%Iter* sret)
@@ -17,12 +18,12 @@ define i32 @main() {
blah:
%inalloca.save = call i8* @llvm.stacksave()
%rev_args = alloca inalloca %frame.reverse, align 4
- %beg = getelementptr %frame.reverse* %rev_args, i32 0, i32 0
- %end = getelementptr %frame.reverse* %rev_args, i32 0, i32 1
+ %beg = getelementptr %frame.reverse, %frame.reverse* %rev_args, i32 0, i32 0
+ %end = getelementptr %frame.reverse, %frame.reverse* %rev_args, i32 0, i32 1
; CHECK: calll __chkstk
-; CHECK: movl %[[beg:[^,]*]], %esp
-; CHECK: leal 12(%[[beg]]), %[[end:[^ ]*]]
+; CHECK: movl %esp, %[[beg:[^ ]*]]
+; CHECK: leal 12(%[[beg]]), %[[end:[^ ]*]]
call void @begin(%Iter* sret %temp.lvalue)
; CHECK: calll _begin
@@ -31,7 +32,7 @@ blah:
to label %invoke.cont unwind label %lpad
; Uses end as sret param.
-; CHECK: movl %[[end]], (%esp)
+; CHECK: pushl %[[end]]
; CHECK: calll _plus
invoke.cont:
@@ -48,7 +49,7 @@ invoke.cont5: ; preds = %invoke.cont
ret i32 0
lpad: ; preds = %invoke.cont, %entry
- %lp = landingpad { i8*, i32 } personality i8* null
+ %lp = landingpad { i8*, i32 } personality i32 (...)* @pers
cleanup
unreachable
}