Skip to content

Commit fb06519

Browse files
authored
[AArch64] fix trampoline implementation: actually use X15 (#143892)
A incorrect switch statement caused it to try to use X4 instead of X15 in #126743, which would have not worked.
1 parent 88d2507 commit fb06519

File tree

2 files changed

+7
-8
lines changed

2 files changed

+7
-8
lines changed

llvm/lib/Target/AArch64/AArch64ISelLowering.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7138,8 +7138,7 @@ SDValue AArch64TargetLowering::LowerINIT_TRAMPOLINE(SDValue Op,
71387138
switch (CC) {
71397139
default:
71407140
NestReg = 0x0f; // X15
7141-
LLVM_FALLTHROUGH;
7142-
case CallingConv::ARM64EC_Thunk_Native:
7141+
break;
71437142
case CallingConv::ARM64EC_Thunk_X64:
71447143
// Must be kept in sync with AArch64CallingConv.td
71457144
NestReg = 0x04; // X4

llvm/test/CodeGen/AArch64/trampoline.ll

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ define i64 @func1() {
8383
; CHECK-LINUX-NEXT: str w9, [sp, #16]
8484
; CHECK-LINUX-NEXT: add x9, sp, #56
8585
; CHECK-LINUX-NEXT: stp x9, x8, [sp, #24]
86-
; CHECK-LINUX-NEXT: mov x8, #132 // =0x84
86+
; CHECK-LINUX-NEXT: mov x8, #143 // =0x8f
8787
; CHECK-LINUX-NEXT: movk x8, #22528, lsl #16
8888
; CHECK-LINUX-NEXT: movk x8, #177, lsl #32
8989
; CHECK-LINUX-NEXT: movk x8, #22528, lsl #48
@@ -112,7 +112,7 @@ define i64 @func1() {
112112
; CHECK-PC-NEXT: add x0, sp, #8
113113
; CHECK-PC-NEXT: movk w8, #54815, lsl #16
114114
; CHECK-PC-NEXT: str w8, [sp, #16]
115-
; CHECK-PC-NEXT: mov x8, #132 // =0x84
115+
; CHECK-PC-NEXT: mov x8, #143 // =0x8f
116116
; CHECK-PC-NEXT: movk x8, #22528, lsl #16
117117
; CHECK-PC-NEXT: movk x8, #177, lsl #32
118118
; CHECK-PC-NEXT: movk x8, #22528, lsl #48
@@ -148,7 +148,7 @@ define i64 @func1() {
148148
; CHECK-APPLE-NEXT: mov x0, sp
149149
; CHECK-APPLE-NEXT: movk w8, #54815, lsl #16
150150
; CHECK-APPLE-NEXT: str w8, [sp, #8]
151-
; CHECK-APPLE-NEXT: mov x8, #132 ; =0x84
151+
; CHECK-APPLE-NEXT: mov x8, #143 ; =0x8f
152152
; CHECK-APPLE-NEXT: movk x8, #22528, lsl #16
153153
; CHECK-APPLE-NEXT: movk x8, #177, lsl #32
154154
; CHECK-APPLE-NEXT: movk x8, #22528, lsl #48
@@ -184,7 +184,7 @@ define i64 @func2() {
184184
; CHECK-LINUX-NEXT: add x9, sp, #8
185185
; CHECK-LINUX-NEXT: add x1, x0, #12
186186
; CHECK-LINUX-NEXT: stp x9, x8, [x0, #16]
187-
; CHECK-LINUX-NEXT: mov x8, #132 // =0x84
187+
; CHECK-LINUX-NEXT: mov x8, #143 // =0x8f
188188
; CHECK-LINUX-NEXT: movk x8, #22528, lsl #16
189189
; CHECK-LINUX-NEXT: movk x8, #177, lsl #32
190190
; CHECK-LINUX-NEXT: movk x8, #22528, lsl #48
@@ -210,7 +210,7 @@ define i64 @func2() {
210210
; CHECK-PC-NEXT: mov w8, #544 // =0x220
211211
; CHECK-PC-NEXT: movk w8, #54815, lsl #16
212212
; CHECK-PC-NEXT: str w8, [x0, #8]
213-
; CHECK-PC-NEXT: mov x8, #132 // =0x84
213+
; CHECK-PC-NEXT: mov x8, #143 // =0x8f
214214
; CHECK-PC-NEXT: movk x8, #22528, lsl #16
215215
; CHECK-PC-NEXT: movk x8, #177, lsl #32
216216
; CHECK-PC-NEXT: movk x8, #22528, lsl #48
@@ -246,7 +246,7 @@ define i64 @func2() {
246246
; CHECK-APPLE-NEXT: mov w8, #544 ; =0x220
247247
; CHECK-APPLE-NEXT: movk w8, #54815, lsl #16
248248
; CHECK-APPLE-NEXT: str w8, [x0, #8]
249-
; CHECK-APPLE-NEXT: mov x8, #132 ; =0x84
249+
; CHECK-APPLE-NEXT: mov x8, #143 ; =0x8f
250250
; CHECK-APPLE-NEXT: movk x8, #22528, lsl #16
251251
; CHECK-APPLE-NEXT: movk x8, #177, lsl #32
252252
; CHECK-APPLE-NEXT: movk x8, #22528, lsl #48

0 commit comments

Comments
 (0)