summaryrefslogtreecommitdiff
path: root/test/CodeGen/X86/win-catchpad-csrs.ll
diff options
context:
space:
mode:
authorDavid Majnemer <david.majnemer@gmail.com>2015-10-09 22:18:45 +0000
committerDavid Majnemer <david.majnemer@gmail.com>2015-10-09 22:18:45 +0000
commit8d335f0c319bd2f9e63a76427eaa80531c21e52f (patch)
tree2c4ffe327efc7153de9da2ddb76265f0a96bc6a9 /test/CodeGen/X86/win-catchpad-csrs.ll
parent213ae79e1a6e4e3c5c94a6a089f361d63f4267ea (diff)
[WinEH] Insert the catchpad return before CSR restoration
x64 catchpads use rax to inform the unwinder where control should go next. However, we must initialize rax before the epilogue sequence so as to not perturb the unwinder. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@249910 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGen/X86/win-catchpad-csrs.ll')
-rw-r--r--test/CodeGen/X86/win-catchpad-csrs.ll3
1 files changed, 3 insertions, 0 deletions
diff --git a/test/CodeGen/X86/win-catchpad-csrs.ll b/test/CodeGen/X86/win-catchpad-csrs.ll
index 05a59ac9b62..5e8c3350bca 100644
--- a/test/CodeGen/X86/win-catchpad-csrs.ll
+++ b/test/CodeGen/X86/win-catchpad-csrs.ll
@@ -123,6 +123,8 @@ catchendblock: ; preds = %catch,
; X64: movq %rdx, 16(%rsp)
; X64: pushq %rbp
; X64: .seh_pushreg 5
+; X64: pushq %rsi
+; X64: .seh_pushreg 6
; X64: subq $32, %rsp
; X64: .seh_stackalloc 32
; X64: leaq 32(%rdx), %rbp
@@ -131,6 +133,7 @@ catchendblock: ; preds = %catch,
; X64: callq f
; X64: leaq [[contbb]](%rip), %rax
; X64: addq $32, %rsp
+; X64: popq %rsi
; X64: popq %rbp
; X64: retq