2 // RUN
: llvm-mc
-filetype
=obj
-triple
=i386-unknown-linux
%s
-o
%t1.o
3 // RUN
: llvm-mc
-filetype
=obj
-triple
=i386-unknown-linux
%p
/Inputs
/shared.s
-o
%t2.o
4 // RUN
: ld.lld
-shared
-soname
=t2.so
%t2.o
-o
%t2.so
6 // RUN
: ld.lld
%t1.o
%t2.so
-o
%t.exe
-z retpolineplt
7 // RUN
: llvm-objdump
--no-print-imm-hex
-d
-s
--no-show-raw-insn
%t.exe | FileCheck
%s
9 // CHECK
: Contents of section
.got.plt:
10 // CHECK-NEXT
: 40224000 00000000 00000000 10124000
11 // CHECK-NEXT
: 30124000
13 // CHECK
: Disassembly of section
.plt:
15 // CHECK-NEXT
: <.plt>:
16 // CHECK-NEXT
: 4011d0
: pushl
4207276
17 // CHECK-NEXT
: 4011d6
: pushl
%eax
18 // CHECK-NEXT
: 4011d7
: movl
4207280, %eax
19 // CHECK-NEXT
: 4011dc
: calll
0x4011f0 <.plt+0x20>
20 // CHECK-NEXT
: 4011e1
: pause
21 // CHECK-NEXT
: 4011e3
: lfence
22 // CHECK-NEXT
: 4011e6
: jmp
0x4011e1 <.plt+0x11>
23 // CHECK-NEXT
: 4011e8
: int3
24 // CHECK-NEXT
: 4011e9
: int3
25 // CHECK-NEXT
: 4011ea
: int3
26 // CHECK-NEXT
: 4011eb
: int3
27 // CHECK-NEXT
: 4011ec
: int3
28 // CHECK-NEXT
: 4011ed
: int3
29 // CHECK-NEXT
: 4011ee
: int3
30 // CHECK-NEXT
: 4011ef
: int3
31 // CHECK-NEXT
: 4011f0: movl
%ecx
, (%esp
)
32 // CHECK-NEXT
: 4011f3: movl
4(%esp
), %ecx
33 // CHECK-NEXT
: 4011f7: movl
%eax
, 4(%esp
)
34 // CHECK-NEXT
: 4011fb
: movl
%ecx
, %eax
35 // CHECK-NEXT
: 4011fd: popl
%ecx
36 // CHECK-NEXT
: 4011fe
: retl
37 // CHECK-NEXT
: 4011ff
: int3
38 // CHECK-NEXT
: 401200: pushl
%eax
39 // CHECK-NEXT
: 401201: movl
4207284, %eax
40 // CHECK-NEXT
: 401206: calll
0x4011f0 <.plt+0x20>
41 // CHECK-NEXT
: 40120b: jmp
0x4011e1 <.plt+0x11>
42 // CHECK-NEXT
: 401210: pushl $
0
43 // CHECK-NEXT
: 401215: jmp
0x4011d0 <.plt>
44 // CHECK-NEXT
: 40121a: int3
45 // CHECK-NEXT
: 40121b: int3
46 // CHECK-NEXT
: 40121c
: int3
47 // CHECK-NEXT
: 40121d
: int3
48 // CHECK-NEXT
: 40121e
: int3
49 // CHECK-NEXT
: 40121f
: int3
50 // CHECK-NEXT
: 401220: pushl
%eax
51 // CHECK-NEXT
: 401221: movl
4207288, %eax
52 // CHECK-NEXT
: 401226: calll
0x4011f0 <.plt+0x20>
53 // CHECK-NEXT
: 40122b: jmp
0x4011e1 <.plt+0x11>
54 // CHECK-NEXT
: 401230: pushl $
8
55 // CHECK-NEXT
: 401235: jmp
0x4011d0 <.plt>
56 // CHECK-NEXT
: 40123a: int3
57 // CHECK-NEXT
: 40123b: int3
58 // CHECK-NEXT
: 40123c
: int3
59 // CHECK-NEXT
: 40123d
: int3
60 // CHECK-NEXT
: 40123e
: int3
61 // CHECK-NEXT
: 40123f
: int3