2 // RUN
: llvm-mc
-arm-add-build-attributes
-filetype
=obj
-triple
=thumbv7a-none-linux-gnueabi
%s
-o
%t
3 // RUN
: ld.lld
%t --shared
-o
%t.so
4 // RUN
: llvm-objdump
-d
--no-show-raw-insn
%t.so | FileCheck
%s
16 // Check that we generate
a thunk for an undefined symbol called via
a plt
19 // CHECK
: Disassembly of section
.text:
21 // CHECK-NEXT
: <sym1
>:
22 // CHECK-NEXT
: 101e0
: b.w
0x101f0 <__ThumbV7PILongThunk_elsewhere
>
23 // CHECK-NEXT
: b.w
0x101fc <__ThumbV7PILongThunk_weakref
>
24 // CHECK-NEXT
: blx
0x10230
25 // CHECK-NEXT
: blx
0x10240
26 // CHECK
: <__ThumbV7PILongThunk_elsewhere
>:
27 // CHECK-NEXT
: 101f0: movw
r12, #52
28 // CHECK-NEXT
: movt
r12, #0
29 // CHECK-NEXT
: add r12, pc
31 // CHECK
: <__ThumbV7PILongThunk_weakref
>:
32 // CHECK-NEXT
: 101fc
: movw
r12, #56
33 // CHECK-NEXT
: movt
r12, #0
34 // CHECK-NEXT
: add r12, pc
37 // CHECK
: Disassembly of section
.plt:
40 // CHECK-NEXT
: 10210: str
lr, [sp
, #-4]!
41 // CHECK-NEXT
: add lr, pc
, #0, #12
42 // CHECK-NEXT
: add lr, lr, #32
43 // CHECK-NEXT
: ldr pc
, [lr, #148]!
45 // CHECK-NEXT
: 10220: d4 d4 d4 d4
.word 0xd4d4d4d4
46 // CHECK-NEXT
: .word 0xd4d4d4d4
47 // CHECK-NEXT
: .word 0xd4d4d4d4
48 // CHECK-NEXT
: .word 0xd4d4d4d4
50 // CHECK-NEXT
: 10230: add r12, pc
, #0, #12
51 // CHECK-NEXT
: add r12, r12, #32
52 // CHECK-NEXT
: ldr pc
, [r12, #124]!
54 // CHECK-NEXT
: 1023c
: d4 d4 d4 d4
.word 0xd4d4d4d4
56 // CHECK-NEXT
: 10240: add r12, pc
, #0, #12
57 // CHECK-NEXT
: add r12, r12, #32
58 // CHECK-NEXT
: ldr pc
, [r12, #112]!
60 // CHECK-NEXT
: 1024c
: d4 d4 d4 d4
.word 0xd4d4d4d4