summaryrefslogtreecommitdiff
path: root/test/CodeGen/WinEH
diff options
context:
space:
mode:
authorJoseph Tremoulet <jotrem@microsoft.com>2015-11-05 02:20:07 +0000
committerJoseph Tremoulet <jotrem@microsoft.com>2015-11-05 02:20:07 +0000
commitb0d280a58878b855dacbc1848d220fed4484b708 (patch)
tree864bfbd562b024082801c221357614615410eb5b /test/CodeGen/WinEH
parent4ae094a8512df6cdb6d3f8f17ef2565b8f9cd7e5 (diff)
[WinEH] Fix establisher param reg in CLR funclets
Summary: The CLR's personality routine passes the pointer to the establisher frame in RCX, not RDX. Reviewers: pgavlin, majnemer, rnk Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D14343 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252135 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGen/WinEH')
-rw-r--r--test/CodeGen/WinEH/wineh-coreclr.ll8
1 files changed, 8 insertions, 0 deletions
diff --git a/test/CodeGen/WinEH/wineh-coreclr.ll b/test/CodeGen/WinEH/wineh-coreclr.ll
index 56675fefae7..f5e046aa01c 100644
--- a/test/CodeGen/WinEH/wineh-coreclr.ll
+++ b/test/CodeGen/WinEH/wineh-coreclr.ll
@@ -50,6 +50,8 @@ catch1.pad:
%catch1 = catchpad [i32 1]
to label %catch1.body unwind label %catch2.pad
catch1.body:
+; CHECK: leaq {{[0-9]+}}(%rcx), %rbp
+; ^ establisher frame pointer passed in rcx
; CHECK: .seh_endprologue
; CHECK: [[L_before_f3:.+]]:
; CHECK-NEXT: movl $3, %ecx
@@ -64,6 +66,8 @@ catch2.pad:
%catch2 = catchpad [i32 2]
to label %catch2.body unwind label %catch.end
catch2.body:
+; CHECK: leaq {{[0-9]+}}(%rcx), %rbp
+; ^ establisher frame pointer passed in rcx
; CHECK: .seh_endprologue
; CHECK: [[L_before_f4:.+]]:
; CHECK-NEXT: movl $4, %ecx
@@ -82,6 +86,8 @@ try_in_catch:
fault.pad:
; CHECK: .seh_proc [[L_fault:[^ ]+]]
%fault = cleanuppad [i32 undef]
+; CHECK: leaq {{[0-9]+}}(%rcx), %rbp
+; ^ establisher frame pointer passed in rcx
; CHECK: .seh_endprologue
; CHECK: [[L_before_f6:.+]]:
; CHECK-NEXT: movl $6, %ecx
@@ -103,6 +109,8 @@ finally.clone:
finally.pad:
; CHECK: .seh_proc [[L_finally:[^ ]+]]
%finally = cleanuppad []
+; CHECK: leaq {{[0-9]+}}(%rcx), %rbp
+; ^ establisher frame pointer passed in rcx
; CHECK: .seh_endprologue
; CHECK: [[L_before_f7:.+]]:
; CHECK-NEXT: movl $7, %ecx