summaryrefslogtreecommitdiff
path: root/test/CodeGen/X86/win-catchpad-csrs.ll
diff options
context:
space:
mode:
authorDavid Majnemer <david.majnemer@gmail.com>2015-09-29 22:33:36 +0000
committerDavid Majnemer <david.majnemer@gmail.com>2015-09-29 22:33:36 +0000
commit28c61f88cc67ea857234e9bcd334a61b7a3ac228 (patch)
treeb730ba761d782cff1d01cc85ce84c8e6a2c6e83e /test/CodeGen/X86/win-catchpad-csrs.ll
parentc96f87a89298932b0f4f3187a4270f558c48898a (diff)
[WinEH] Ensure that funclets obey the x64 ABI
The x64 ABI requires that epilogues do not contain code other than stack adjustments and some limited control flow. However, we'd insert code to initialize the return address after stack adjustments. Instead, insert EAX/RAX with the current value before we create the stack adjustments in the epilogue. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@248839 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGen/X86/win-catchpad-csrs.ll')
-rw-r--r--test/CodeGen/X86/win-catchpad-csrs.ll6
1 files changed, 3 insertions, 3 deletions
diff --git a/test/CodeGen/X86/win-catchpad-csrs.ll b/test/CodeGen/X86/win-catchpad-csrs.ll
index 6603f4e6d92..4a745121cc4 100644
--- a/test/CodeGen/X86/win-catchpad-csrs.ll
+++ b/test/CodeGen/X86/win-catchpad-csrs.ll
@@ -80,9 +80,9 @@ catchendblock: ; preds = %catch,
; X86: movl $1, -{{[0-9]+}}(%ebp)
; X86: movl $2, (%esp)
; X86: calll _f
-; X86: addl $16, %esp
+; X86: movl $[[restorebb]], %eax
+; X86-NEXT: addl $16, %esp
; X86-NEXT: popl %ebp
-; X86-NEXT: movl $[[restorebb]], %eax
; X86-NEXT: retl
; X86: L__ehtable$try_catch_catch:
@@ -125,9 +125,9 @@ catchendblock: ; preds = %catch,
; X64: subq $32, %rsp
; X64: movl $2, %ecx
; X64: callq f
+; X64: leaq [[contbb]](%rip), %rax
; X64: addq $32, %rsp
; X64: popq %rbp
-; X64: leaq [[contbb]](%rip), %rax
; X64: retq
; X64: $handlerMap$0$try_catch_catch: