1 #source: ibt-plt-3.s
2 #as: --32
3 #ld: -shared -m elf_i386 -z ibtplt --hash-style=sysv -z noseparate-code
4 #objdump: -dw
5 
6 .*: +file format .*
7 
8 
9 Disassembly of section .plt:
10 
11 0+140 <.plt>:
12  +[a-f0-9]+:	ff b3 04 00 00 00    	push   0x4\(%ebx\)
13  +[a-f0-9]+:	ff a3 08 00 00 00    	jmp    \*0x8\(%ebx\)
14  +[a-f0-9]+:	0f 1f 40 00          	nopl   0x0\(%eax\)
15  +[a-f0-9]+:	f3 0f 1e fb          	endbr32
16  +[a-f0-9]+:	68 00 00 00 00       	push   \$0x0
17  +[a-f0-9]+:	e9 e2 ff ff ff       	jmp    140 <.plt>
18  +[a-f0-9]+:	66 90                	xchg   %ax,%ax
19  +[a-f0-9]+:	f3 0f 1e fb          	endbr32
20  +[a-f0-9]+:	68 08 00 00 00       	push   \$0x8
21  +[a-f0-9]+:	e9 d2 ff ff ff       	jmp    140 <.plt>
22  +[a-f0-9]+:	66 90                	xchg   %ax,%ax
23 
24 Disassembly of section .plt.sec:
25 
26 0+170 <bar1@plt>:
27  +[a-f0-9]+:	f3 0f 1e fb          	endbr32
28  +[a-f0-9]+:	ff a3 0c 00 00 00    	jmp    \*0xc\(%ebx\)
29  +[a-f0-9]+:	66 0f 1f 44 00 00    	nopw   0x0\(%eax,%eax,1\)
30 
31 0+180 <bar2@plt>:
32  +[a-f0-9]+:	f3 0f 1e fb          	endbr32
33  +[a-f0-9]+:	ff a3 10 00 00 00    	jmp    \*0x10\(%ebx\)
34  +[a-f0-9]+:	66 0f 1f 44 00 00    	nopw   0x0\(%eax,%eax,1\)
35 
36 Disassembly of section .text:
37 
38 0+190 <foo>:
39  +[a-f0-9]+:	53                   	push   %ebx
40  +[a-f0-9]+:	e8 18 00 00 00       	call   1ae <__x86.get_pc_thunk.bx>
41  +[a-f0-9]+:	81 c3 1a 11 00 00    	add    \$0x111a,%ebx
42  +[a-f0-9]+:	83 ec 08             	sub    \$0x8,%esp
43  +[a-f0-9]+:	e8 dc ff ff ff       	call   180 <bar2@plt>
44  +[a-f0-9]+:	e8 c7 ff ff ff       	call   170 <bar1@plt>
45  +[a-f0-9]+:	83 c4 08             	add    \$0x8,%esp
46  +[a-f0-9]+:	5b                   	pop    %ebx
47  +[a-f0-9]+:	c3                   	ret
48 
49 0+1ae <__x86.get_pc_thunk.bx>:
50  +[a-f0-9]+:	8b 1c 24             	mov    \(%esp\),%ebx
51  +[a-f0-9]+:	c3                   	ret
52 #pass
53