summaryrefslogtreecommitdiffstats
path: root/llvm/test
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
commit6afccf612069f18e377662ba0e2366d58d4eecc7 (patch)
tree3f18e026e6f48a930b41c5b22e304eb2523e1997 /llvm/test
parent857b10f471a281914984600b0490182b4672bf08 (diff)
downloadbcm5719-llvm-6afccf612069f18e377662ba0e2366d58d4eecc7.tar.gz
bcm5719-llvm-6afccf612069f18e377662ba0e2366d58d4eecc7.zip
[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 llvm-svn: 252135
Diffstat (limited to 'llvm/test')
-rw-r--r--llvm/test/CodeGen/WinEH/wineh-coreclr.ll8
1 files changed, 8 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/WinEH/wineh-coreclr.ll b/llvm/test/CodeGen/WinEH/wineh-coreclr.ll
index 56675fefae7..f5e046aa01c 100644
--- a/llvm/test/CodeGen/WinEH/wineh-coreclr.ll
+++ b/llvm/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
OpenPOWER on IntegriCloud