Skip to content

Commit 2d37bf8

Browse files
committed
[ELF][ARM] Simplify some llvm-objdump tests with both ARM/Thumb states
llvm-objdump can switch between ARM/Thumb states after D60927. In a few lld tests, we run both * llvm-objdump -d -triple=thumbv7a-none-linux-gnueabi %t * llvm-objdump -d -triple=armv7a-none-linux-gnueabi %t to test ARM/Thumb parts of the same file. In many cases we can just run one command. There is a problem that prevents us from cleaning more tests (e.g. test/ELF/arm-thumb-interwork-thunk.s): In llvm-objdump, while we have ARM/Thumb (primary and secondary) MCDisassembler and MCSubtargetInfo, we have just one MCInstrAnalysis which is used to resolve the targets of calls in both ARM/Thumb parts. // ThumbMCInstrAnalysis evaluating ARM parts or ARMMCInstrAnalysis evaluating Thumb parts // will have incorrect offsets. // An example of llvm-objdump -d -triple=thumbv7a on ARM part: 1304: 3d ff ff fa blx #-780 # no <...> 1308: 06 00 00 ea b #24 <arm_caller+0x24> # wrong target due to wrong offset Reviewed By: peter.smith Differential Revision: https://reviews.llvm.org/D66539 llvm-svn: 369535
1 parent 98f800d commit 2d37bf8

File tree

6 files changed

+159
-167
lines changed

6 files changed

+159
-167
lines changed

lld/test/ELF/arm-bl-v6-inrange.s

Lines changed: 16 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,7 @@
55
// RUN: .caller 0x500000 : { *(.text) } \
66
// RUN: .callee2 0x900004 : { *(.callee_high) } } " > %t.script
77
// RUN: ld.lld %t --script %t.script -o %t2
8-
// RUN: llvm-objdump -d -triple=thumbv6-none-linux-gnueabi %t2 | FileCheck -check-prefix=CHECK-THUMB %s
9-
// RUN: llvm-objdump -d -triple=armv6-none-linux-gnueabi %t2 | FileCheck -check-prefix=CHECK-ARM %s
8+
// RUN: llvm-objdump -d -triple=armv6-none-linux-gnueabi %t2 | FileCheck %s
109

1110
// On older Arm Architectures such as v5 and v6 the Thumb BL and BLX relocation
1211
// uses a slightly different encoding that has a lower range. These relocations
@@ -27,25 +26,25 @@ _start:
2726
.type thumbfunc, %function
2827
thumbfunc:
2928
bx lr
30-
// CHECK-THUMB: Disassembly of section .callee1:
31-
// CHECK-THUMB-EMPTY:
32-
// CHECK-THUMB-NEXT: thumbfunc:
33-
// CHECK-THUMB-NEXT: 100004: 70 47 bx lr
34-
// CHECK-THUMB-EMPTY:
35-
// CHECK-THUMB-NEXT: Disassembly of section .caller:
36-
// CHECK-THUMB-EMPTY:
37-
// CHECK-THUMB-NEXT: _start:
38-
// CHECK-THUMB-NEXT: 500000: 00 f4 00 f8 bl #-4194304
39-
// CHECK-THUMB-NEXT: 500004: ff f3 fe ef blx #4194300
40-
// CHECK-THUMB-NEXT: 500008: 70 47 bx lr
29+
// CHECK: Disassembly of section .callee1:
30+
// CHECK-EMPTY:
31+
// CHECK-NEXT: thumbfunc:
32+
// CHECK-NEXT: 100004: 70 47 bx lr
33+
// CHECK-EMPTY:
34+
// CHECK-NEXT: Disassembly of section .caller:
35+
// CHECK-EMPTY:
36+
// CHECK-NEXT: _start:
37+
// CHECK-NEXT: 500000: 00 f4 00 f8 bl #-4194304
38+
// CHECK-NEXT: 500004: ff f3 fe ef blx #4194300
39+
// CHECK-NEXT: 500008: 70 47 bx lr
4140

4241
.arm
4342
.section .callee_high, "ax", %progbits
4443
.globl armfunc
4544
.type armfunc, %function
4645
armfunc:
4746
bx lr
48-
// CHECK-ARM: Disassembly of section .callee2:
49-
// CHECK-ARM-EMPTY:
50-
// CHECK-ARM-NEXT: armfunc:
51-
// CHECK-ARM-NEXT: 900004: 1e ff 2f e1 bx lr
47+
// CHECK: Disassembly of section .callee2:
48+
// CHECK-EMPTY:
49+
// CHECK-NEXT: armfunc:
50+
// CHECK-NEXT: 900004: 1e ff 2f e1 bx lr

lld/test/ELF/arm-blx.s

Lines changed: 39 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,7 @@
99
// RUN: .callee3 : { *(.callee_high) } \
1010
// RUN: .callee4 : { *(.callee_arm_high) } } " > %t.script
1111
// RUN: ld.lld --script %t.script %t %tfar -o %t2
12-
// RUN: llvm-objdump -d -triple=armv7a-none-linux-gnueabi %t2 | FileCheck -check-prefix=CHECK-ARM %s
13-
// RUN: llvm-objdump -d -triple=thumbv7a-none-linux-gnueabi %t2 | FileCheck -check-prefix=CHECK-THUMB %s
12+
// RUN: llvm-objdump -d -triple=armv7a-none-linux-gnueabi %t2 | FileCheck %s
1413

1514
// Test BLX instruction is chosen for ARM BL/BLX instruction and Thumb callee
1615
// Using two callees to ensure at least one has 2-byte alignment.
@@ -73,47 +72,47 @@ callee_high2:
7372
callee_arm_high:
7473
bx lr
7574

76-
// CHECK-THUMB: Disassembly of section .callee1:
77-
// CHECK-THUMB-EMPTY:
78-
// CHECK-THUMB-NEXT: callee_low:
79-
// CHECK-THUMB-NEXT: b4: 70 47 bx lr
80-
// CHECK-THUMB: callee_low2:
81-
// CHECK-THUMB-NEXT: b6: 70 47 bx lr
75+
// CHECK: Disassembly of section .callee1:
76+
// CHECK-EMPTY:
77+
// CHECK-NEXT: callee_low:
78+
// CHECK-NEXT: b4: 70 47 bx lr
79+
// CHECK: callee_low2:
80+
// CHECK-NEXT: b6: 70 47 bx lr
8281

83-
// CHECK-ARM: Disassembly of section .callee2:
84-
// CHECK-ARM-EMPTY:
85-
// CHECK-ARM-NEXT: callee_arm_low:
86-
// CHECK-ARM-NEXT: 100: 1e ff 2f e1 bx lr
82+
// CHECK: Disassembly of section .callee2:
83+
// CHECK-EMPTY:
84+
// CHECK-NEXT: callee_arm_low:
85+
// CHECK-NEXT: 100: 1e ff 2f e1 bx lr
8786

88-
// CHECK-ARM: Disassembly of section .caller:
89-
// CHECK-ARM-EMPTY:
90-
// CHECK-ARM-NEXT: _start:
91-
// CHECK-ARM-NEXT: 10000: 2b c0 ff fa blx #-65364 <callee_low>
92-
// CHECK-ARM-NEXT: 10004: 2a c0 ff fa blx #-65368 <callee_low>
93-
// CHECK-ARM-NEXT: 10008: 29 c0 ff fb blx #-65370 <callee_low2>
94-
// CHECK-ARM-NEXT: 1000c: 28 c0 ff fb blx #-65374 <callee_low2>
95-
// CHECK-ARM-NEXT: 10010: 3a 00 00 fa blx #232 <callee_high>
96-
// CHECK-ARM-NEXT: 10014: 39 00 00 fa blx #228 <callee_high>
97-
// CHECK-ARM-NEXT: 10018: 38 00 00 fb blx #226 <callee_high2>
98-
// CHECK-ARM-NEXT: 1001c: 37 00 00 fb blx #222 <callee_high2>
87+
// CHECK: Disassembly of section .caller:
88+
// CHECK-EMPTY:
89+
// CHECK-NEXT: _start:
90+
// CHECK-NEXT: 10000: 2b c0 ff fa blx #-65364 <callee_low>
91+
// CHECK-NEXT: 10004: 2a c0 ff fa blx #-65368 <callee_low>
92+
// CHECK-NEXT: 10008: 29 c0 ff fb blx #-65370 <callee_low2>
93+
// CHECK-NEXT: 1000c: 28 c0 ff fb blx #-65374 <callee_low2>
94+
// CHECK-NEXT: 10010: 3a 00 00 fa blx #232 <callee_high>
95+
// CHECK-NEXT: 10014: 39 00 00 fa blx #228 <callee_high>
96+
// CHECK-NEXT: 10018: 38 00 00 fb blx #226 <callee_high2>
97+
// CHECK-NEXT: 1001c: 37 00 00 fb blx #222 <callee_high2>
9998
// 10020 + 1FFFFFC + 8 = 0x2010024 = blx_far
100-
// CHECK-ARM-NEXT: 10020: ff ff 7f fa blx #33554428
99+
// CHECK-NEXT: 10020: ff ff 7f fa blx #33554428
101100
// 10024 + 1FFFFFC + 8 = 0x2010028 = blx_far2
102-
// CHECK-ARM-NEXT: 10024: ff ff 7f fa blx #33554428
103-
// CHECK-ARM-NEXT: 10028: 34 c0 ff eb bl #-65328 <callee_arm_low>
104-
// CHECK-ARM-NEXT: 1002c: 33 c0 ff eb bl #-65332 <callee_arm_low>
105-
// CHECK-ARM-NEXT: 10030: 72 00 00 eb bl #456 <callee_arm_high>
106-
// CHECK-ARM-NEXT: 10034: 71 00 00 eb bl #452 <callee_arm_high>
107-
// CHECK-ARM-NEXT: 10038: 1e ff 2f e1 bx lr
101+
// CHECK-NEXT: 10024: ff ff 7f fa blx #33554428
102+
// CHECK-NEXT: 10028: 34 c0 ff eb bl #-65328 <callee_arm_low>
103+
// CHECK-NEXT: 1002c: 33 c0 ff eb bl #-65332 <callee_arm_low>
104+
// CHECK-NEXT: 10030: 72 00 00 eb bl #456 <callee_arm_high>
105+
// CHECK-NEXT: 10034: 71 00 00 eb bl #452 <callee_arm_high>
106+
// CHECK-NEXT: 10038: 1e ff 2f e1 bx lr
108107

109-
// CHECK-THUMB: Disassembly of section .callee3:
110-
// CHECK-THUMB-EMPTY:
111-
// CHECK-THUMB: callee_high:
112-
// CHECK-THUMB-NEXT: 10100: 70 47 bx lr
113-
// CHECK-THUMB: callee_high2:
114-
// CHECK-THUMB-NEXT: 10102: 70 47 bx lr
108+
// CHECK: Disassembly of section .callee3:
109+
// CHECK-EMPTY:
110+
// CHECK: callee_high:
111+
// CHECK-NEXT: 10100: 70 47 bx lr
112+
// CHECK: callee_high2:
113+
// CHECK-NEXT: 10102: 70 47 bx lr
115114

116-
// CHECK-ARM: Disassembly of section .callee4:
117-
// CHECK-ARM-EMPTY:
118-
// CHECK-NEXT-ARM: callee_arm_high:
119-
// CHECK-NEXT-ARM: 10200: 1e ff 2f e1 bx lr
115+
// CHECK: Disassembly of section .callee4:
116+
// CHECK-EMPTY:
117+
// CHECK-NEXT: callee_arm_high:
118+
// CHECK-NEXT: 10200: 1e ff 2f e1 bx lr

lld/test/ELF/arm-thumb-blx.s

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,7 @@
88
// RUN: .R_ARM_CALL24_callee3 : { *(.R_ARM_CALL24_callee_high) } \
99
// RUN: .R_ARM_CALL24_callee4 : { *(.R_ARM_CALL24_callee_thumb_high) } } " > %t.script
1010
// RUN: ld.lld --script %t.script %t %ttarget -o %t2
11-
// RUN: llvm-objdump -d -triple=thumbv7a-none-linux-gnueabi %t2 | FileCheck -check-prefix=CHECK-THUMB %s
12-
// RUN: llvm-objdump -d -triple=armv7a-none-linux-gnueabi %t2 | FileCheck -check-prefix=CHECK-ARM %s
11+
// RUN: llvm-objdump -d -triple=thumbv7a-none-linux-gnueabi %t2 | FileCheck %s
1312
// Test BLX instruction is chosen for Thumb BL/BLX instruction and ARM callee
1413
// 2 byte nops are used to test the pc-rounding behaviour. As a BLX from a
1514
// 2 byte aligned destination is defined as Align(PC,4) + immediate:00
@@ -40,19 +39,19 @@ _start:
4039
blx callee_thumb_high
4140
bx lr
4241

43-
// CHECK-ARM: Disassembly of section .R_ARM_CALL24_callee1:
44-
// CHECK-ARM-EMPTY:
42+
// CHECK: Disassembly of section .R_ARM_CALL24_callee1:
43+
// CHECK-EMPTY:
4544
// CHECK-NEXT-ARM: callee_low:
4645
// CHECK-NEXT-ARM: b4: 1e ff 2f e1 bx lr
4746

48-
// CHECK-THUMB: Disassembly of section .R_ARM_CALL24_callee2:
49-
// CHECK-THUMB-EMPTY:
47+
// CHECK: Disassembly of section .R_ARM_CALL24_callee2:
48+
// CHECK-EMPTY:
5049
// CHECK-NEXT-THUMB: callee_thumb_low:
5150
// CHECK-NEXT-THUMB: 100: 70 47 bx lr
5251

53-
// CHECK-THUMB: Disassembly of section .caller:
54-
// CHECK-THUMB-EMPTY:
55-
// CHECK-THUMB: _start:
52+
// CHECK: Disassembly of section .caller:
53+
// CHECK-EMPTY:
54+
// CHECK: _start:
5655
// Align(0x10000,4) - 0xff50 (65360) + 4 = 0xb4 = callee_low
5756
// CHECK-NEXT-THUMB: 10000: f0 f7 58 e8 blx #-65360
5857
// CHECK-NEXT-THUMB: 10004: 00 bf nop
@@ -79,8 +78,8 @@ _start:
7978
// CHECK-NEXT-THUMB: 1002e: 70 47 bx lr
8079

8180

82-
// CHECK-ARM: Disassembly of section .R_ARM_CALL24_callee3:
83-
// CHECK-ARM-EMPTY:
81+
// CHECK: Disassembly of section .R_ARM_CALL24_callee3:
82+
// CHECK-EMPTY:
8483
// CHECK-NEXT-ARM: callee_high:
8584
// CHECK-NEXT-ARM: 10100: 1e ff 2f e1 bx lr
8685

lld/test/ELF/arm-thumb-interwork-shared.s

Lines changed: 24 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
// RUN: llvm-mc -arm-add-build-attributes -filetype=obj -triple=thumbv7a-none-linux-gnueabi %s -o %t
33
// RUN: ld.lld %t --shared -o %t.so
44
// RUN: llvm-objdump -d -triple=thumbv7a-none-linux-gnueabi %t.so | FileCheck %s
5-
// RUN: llvm-objdump -d -triple=armv7a-none-linux-gnueabi %t.so | FileCheck %s -check-prefix=PLT
65
.syntax unified
76
.global sym1
87
.global elsewhere
@@ -30,28 +29,27 @@ sym1:
3029
// CHECK-NEXT: 101c: fc 44 add r12, pc
3130
// CHECK-NEXT: 101e: 60 47 bx r12
3231

33-
// PLT: Disassembly of section .plt:
34-
// PLT-EMPTY:
35-
// PLT-NEXT: $a:
36-
// PLT-NEXT: 1020: 04 e0 2d e5 str lr, [sp, #-4]!
37-
// PLT-NEXT: 1024: 00 e6 8f e2 add lr, pc, #0, #12
38-
// PLT-NEXT: 1028: 01 ea 8e e2 add lr, lr, #4096
39-
// PLT-NEXT: 102c: dc ff be e5 ldr pc, [lr, #4060]!
40-
// PLT: $d:
41-
// PLT-NEXT: 1030: d4 d4 d4 d4 .word 0xd4d4d4d4
42-
// PLT-NEXT: 1034: d4 d4 d4 d4 .word 0xd4d4d4d4
43-
// PLT-NEXT: 1038: d4 d4 d4 d4 .word 0xd4d4d4d4
44-
// PLT-NEXT: 103c: d4 d4 d4 d4 .word 0xd4d4d4d4
45-
// PLT: $a:
46-
// PLT-NEXT: 1040: 00 c6 8f e2 add r12, pc, #0, #12
47-
// PLT-NEXT: 1044: 01 ca 8c e2 add r12, r12, #4096
48-
// PLT-NEXT: 1048: c4 ff bc e5 ldr pc, [r12, #4036]!
49-
// PLT: $d:
50-
// PLT-NEXT: 104c: d4 d4 d4 d4 .word 0xd4d4d4d4
51-
// PLT: $a:
52-
// PLT-NEXT: 1050: 00 c6 8f e2 add r12, pc, #0, #12
53-
// PLT-NEXT: 1054: 01 ca 8c e2 add r12, r12, #4096
54-
// PLT-NEXT: 1058: b8 ff bc e5 ldr pc, [r12, #4024]!
55-
// PLT: $d:
56-
// PLT-NEXT: 105c: d4 d4 d4 d4 .word 0xd4d4d4d4
57-
32+
// CHECK: Disassembly of section .plt:
33+
// CHECK-EMPTY:
34+
// CHECK-NEXT: $a:
35+
// CHECK-NEXT: 1020: 04 e0 2d e5 str lr, [sp, #-4]!
36+
// CHECK-NEXT: 1024: 00 e6 8f e2 add lr, pc, #0, #12
37+
// CHECK-NEXT: 1028: 01 ea 8e e2 add lr, lr, #4096
38+
// CHECK-NEXT: 102c: dc ff be e5 ldr pc, [lr, #4060]!
39+
// CHECK: $d:
40+
// CHECK-NEXT: 1030: d4 d4 d4 d4 .word 0xd4d4d4d4
41+
// CHECK-NEXT: 1034: d4 d4 d4 d4 .word 0xd4d4d4d4
42+
// CHECK-NEXT: 1038: d4 d4 d4 d4 .word 0xd4d4d4d4
43+
// CHECK-NEXT: 103c: d4 d4 d4 d4 .word 0xd4d4d4d4
44+
// CHECK: $a:
45+
// CHECK-NEXT: 1040: 00 c6 8f e2 add r12, pc, #0, #12
46+
// CHECK-NEXT: 1044: 01 ca 8c e2 add r12, r12, #4096
47+
// CHECK-NEXT: 1048: c4 ff bc e5 ldr pc, [r12, #4036]!
48+
// CHECK: $d:
49+
// CHECK-NEXT: 104c: d4 d4 d4 d4 .word 0xd4d4d4d4
50+
// CHECK: $a:
51+
// CHECK-NEXT: 1050: 00 c6 8f e2 add r12, pc, #0, #12
52+
// CHECK-NEXT: 1054: 01 ca 8c e2 add r12, r12, #4096
53+
// CHECK-NEXT: 1058: b8 ff bc e5 ldr pc, [r12, #4024]!
54+
// CHECK: $d:
55+
// CHECK-NEXT: 105c: d4 d4 d4 d4 .word 0xd4d4d4d4

lld/test/ELF/arm-thumb-interwork-thunk-v5.s

Lines changed: 26 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,9 @@
11
// REQUIRES: arm
22
// RUN: llvm-mc -arm-add-build-attributes -filetype=obj -triple=armv5-none-linux-gnueabi %s -o %t
33
// RUN: ld.lld %t -o %t2
4-
// RUN: llvm-objdump -d %t2 -triple=armv5-none-linux-gnueabi | FileCheck -check-prefix=CHECK-ARM %s
5-
// RUN: llvm-objdump -d %t2 -triple=thumbv5-none-linux-gnueabi | FileCheck -check-prefix=CHECK-THUMB %s
4+
// RUN: llvm-objdump -d %t2 -triple=armv5-none-linux-gnueabi | FileCheck %s
65
// RUN: ld.lld %t -o %t3 --shared
7-
// RUN: llvm-objdump -d %t3 -triple=armv5-none-linux-gnueabi | FileCheck -check-prefix=CHECK-ARM-PI %s
8-
// RUN: llvm-objdump -d %t3 -triple=thumbv5-none-linux-gnueabi | FileCheck -check-prefix=CHECK-THUMB-PI %s
6+
// RUN: llvm-objdump -d %t3 -triple=armv5-none-linux-gnueabi | FileCheck --check-prefix=CHECK-PI %s
97

108
// Test ARM Thumb Interworking on older Arm architectures using Thunks that do
119
// not use MOVT/MOVW instructions.
@@ -28,35 +26,35 @@ _start:
2826
blx thumb_func
2927
bx lr
3028

31-
// CHECK-ARM: _start:
32-
// CHECK-ARM-NEXT: 11000: 03 00 00 ea b #12 <__ARMv5ABSLongThunk_thumb_func>
33-
// CHECK-ARM-NEXT: 11004: 01 00 00 fa blx #4 <thumb_func>
34-
// CHECK-ARM-NEXT: 11008: 00 00 00 fa blx #0 <thumb_func>
35-
// CHECK-ARM-NEXT: 1100c: 1e ff 2f e1 bx lr
29+
// CHECK: _start:
30+
// CHECK-NEXT: 11000: 03 00 00 ea b #12 <__ARMv5ABSLongThunk_thumb_func>
31+
// CHECK-NEXT: 11004: 01 00 00 fa blx #4 <thumb_func>
32+
// CHECK-NEXT: 11008: 00 00 00 fa blx #0 <thumb_func>
33+
// CHECK-NEXT: 1100c: 1e ff 2f e1 bx lr
3634

37-
// CHECK-THUMB: thumb_func:
38-
// CHECK-THUMB-NEXT: 11010: 70 47 bx lr
35+
// CHECK: thumb_func:
36+
// CHECK-NEXT: 11010: 70 47 bx lr
3937

40-
// CHECK-ARM: __ARMv5ABSLongThunk_thumb_func:
41-
// CHECK-ARM-NEXT: 11014: 04 f0 1f e5 ldr pc, [pc, #-4]
42-
// CHECK-ARM: $d:
43-
// CHECK-ARM-NEXT: 11018: 11 10 01 00 .word 0x00011011
38+
// CHECK: __ARMv5ABSLongThunk_thumb_func:
39+
// CHECK-NEXT: 11014: 04 f0 1f e5 ldr pc, [pc, #-4]
40+
// CHECK: $d:
41+
// CHECK-NEXT: 11018: 11 10 01 00 .word 0x00011011
4442

45-
// CHECK-ARM-PI: _start:
46-
// CHECK-ARM-PI-NEXT: 1000: 03 00 00 ea b #12 <__ARMV5PILongThunk_thumb_func>
47-
// CHECK-ARM-PI-NEXT: 1004: 01 00 00 fa blx #4 <thumb_func>
48-
// CHECK-ARM-PI-NEXT: 1008: 00 00 00 fa blx #0 <thumb_func>
49-
// CHECK-ARM-PI-NEXT: 100c: 1e ff 2f e1 bx lr
43+
// CHECK-PI: _start:
44+
// CHECK-PI-NEXT: 1000: 03 00 00 ea b #12 <__ARMV5PILongThunk_thumb_func>
45+
// CHECK-PI-NEXT: 1004: 01 00 00 fa blx #4 <thumb_func>
46+
// CHECK-PI-NEXT: 1008: 00 00 00 fa blx #0 <thumb_func>
47+
// CHECK-PI-NEXT: 100c: 1e ff 2f e1 bx lr
5048

51-
// CHECK-THUMB-PI: thumb_func:
52-
// CHECK-THUMB-PI-NEXT: 1010: 70 47 bx lr
49+
// CHECK-PI: thumb_func:
50+
// CHECK-PI-NEXT: 1010: 70 47 bx lr
5351

54-
// CHECK-ARM-PI: __ARMV5PILongThunk_thumb_func:
55-
// CHECK-ARM-PI-NEXT: 1014: 04 c0 9f e5 ldr r12, [pc, #4]
56-
// CHECK-ARM-PI-NEXT: 1018: 0c c0 8f e0 add r12, pc, r12
57-
// CHECK-ARM-PI-NEXT: 101c: 1c ff 2f e1 bx r12
58-
// CHECK-ARM-PI: $d:
59-
// CHECK-ARM-PI-NEXT: 1020: f1 ff ff ff .word 0xfffffff1
52+
// CHECK-PI: __ARMV5PILongThunk_thumb_func:
53+
// CHECK-PI-NEXT: 1014: 04 c0 9f e5 ldr r12, [pc, #4]
54+
// CHECK-PI-NEXT: 1018: 0c c0 8f e0 add r12, pc, r12
55+
// CHECK-PI-NEXT: 101c: 1c ff 2f e1 bx r12
56+
// CHECK-PI: $d:
57+
// CHECK-PI-NEXT: 1020: f1 ff ff ff .word 0xfffffff1
6058

6159
.section .text.1, "ax", %progbits
6260
.thumb

0 commit comments

Comments
 (0)