Add 2 ifunc tests for i386 and x86-64
* ld-ifunc/ifunc-21-i386.d: Likewise. * ld-ifunc/ifunc-21-i386.s: Likewise. * ld-ifunc/ifunc-21-x86-64.d: Likewise. * ld-ifunc/ifunc-21-x86-64.s: Likewise. * ld-ifunc/ifunc-22-i386.d: Likewise. * ld-ifunc/ifunc-22-i386.s: Likewise. * ld-ifunc/ifunc-22-x86-64.d: Likewise. * ld-ifunc/ifunc-22-x86-64.s: Likewise.
This commit is contained in:
parent
c74be520ba
commit
0762fbb6a7
9 changed files with 211 additions and 0 deletions
|
@ -1,3 +1,14 @@
|
|||
2015-09-02 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
* ld-ifunc/ifunc-21-i386.d: Likewise.
|
||||
* ld-ifunc/ifunc-21-i386.s: Likewise.
|
||||
* ld-ifunc/ifunc-21-x86-64.d: Likewise.
|
||||
* ld-ifunc/ifunc-21-x86-64.s: Likewise.
|
||||
* ld-ifunc/ifunc-22-i386.d: Likewise.
|
||||
* ld-ifunc/ifunc-22-i386.s: Likewise.
|
||||
* ld-ifunc/ifunc-22-x86-64.d: Likewise.
|
||||
* ld-ifunc/ifunc-22-x86-64.s: Likewise.
|
||||
|
||||
2015-09-01 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
PR ld/18900
|
||||
|
|
30
ld/testsuite/ld-ifunc/ifunc-21-i386.d
Normal file
30
ld/testsuite/ld-ifunc/ifunc-21-i386.d
Normal file
|
@ -0,0 +1,30 @@
|
|||
#ld: -m elf_i386
|
||||
#as: --32
|
||||
#objdump: -dw
|
||||
#target: x86_64-*-* i?86-*-*
|
||||
|
||||
.*: +file format .*
|
||||
|
||||
|
||||
Disassembly of section .plt:
|
||||
|
||||
0+8048080 <.plt>:
|
||||
[ ]*[a-f0-9]+: ff 25 b8 90 04 08 jmp \*0x80490b8
|
||||
[ ]*[a-f0-9]+: 68 00 00 00 00 push \$0x0
|
||||
[ ]*[a-f0-9]+: e9 00 00 00 00 jmp 8048090 <__start>
|
||||
|
||||
Disassembly of section .text:
|
||||
|
||||
0+8048090 <__start>:
|
||||
[ ]*[a-f0-9]+: e8 00 00 00 00 call 8048095 <__start\+0x5>
|
||||
[ ]*[a-f0-9]+: 5b pop %ebx
|
||||
[ ]*[a-f0-9]+: 81 c3 17 10 00 00 add \$0x1017,%ebx
|
||||
[ ]*[a-f0-9]+: 8b 83 0c 00 00 00 mov 0xc\(%ebx\),%eax
|
||||
[ ]*[a-f0-9]+: 8d ([0-9a-f]{2} ){5}[ ]+lea[ ]+.*
|
||||
|
||||
0+80480a8 <foo>:
|
||||
[ ]*[a-f0-9]+: c3 ret
|
||||
|
||||
0+80480a9 <bar>:
|
||||
[ ]*[a-f0-9]+: c3 ret
|
||||
#pass
|
23
ld/testsuite/ld-ifunc/ifunc-21-i386.s
Normal file
23
ld/testsuite/ld-ifunc/ifunc-21-i386.s
Normal file
|
@ -0,0 +1,23 @@
|
|||
.text
|
||||
.type start,"function"
|
||||
.global start
|
||||
start:
|
||||
.type _start,"function"
|
||||
.global _start
|
||||
_start:
|
||||
.type __start,"function"
|
||||
.global __start
|
||||
__start:
|
||||
.type __start,"function"
|
||||
call .L6
|
||||
.L6:
|
||||
popl %ebx
|
||||
addl $_GLOBAL_OFFSET_TABLE_+[.-.L6], %ebx
|
||||
mov foo@GOT(%ebx), %eax
|
||||
mov bar@GOT(%ebx), %eax
|
||||
.type foo, %gnu_indirect_function
|
||||
foo:
|
||||
ret
|
||||
.type bar, %function
|
||||
bar:
|
||||
ret
|
27
ld/testsuite/ld-ifunc/ifunc-21-x86-64.d
Normal file
27
ld/testsuite/ld-ifunc/ifunc-21-x86-64.d
Normal file
|
@ -0,0 +1,27 @@
|
|||
#as: --64
|
||||
#ld: -melf_x86_64
|
||||
#objdump: -dw
|
||||
#target: x86_64-*-*
|
||||
|
||||
.*: +file format .*
|
||||
|
||||
|
||||
Disassembly of section .plt:
|
||||
|
||||
0+4000d0 <.plt>:
|
||||
[ ]*[a-f0-9]+: ff 25 32 00 20 00 jmpq \*0x200032\(%rip\) # 600108 <_GLOBAL_OFFSET_TABLE_\+0x18>
|
||||
[ ]*[a-f0-9]+: 68 00 00 00 00 pushq \$0x0
|
||||
[ ]*[a-f0-9]+: e9 00 00 00 00 jmpq 4000e0 <__start>
|
||||
|
||||
Disassembly of section .text:
|
||||
|
||||
0+4000e0 <__start>:
|
||||
[ ]*[a-f0-9]+: 48 8b 05 21 00 20 00 mov 0x200021\(%rip\),%rax # 600108 <_GLOBAL_OFFSET_TABLE_\+0x18>
|
||||
[ ]*[a-f0-9]+: 48 8d ([0-9a-f]{2} ){5}[ ]+lea[ ]+.*
|
||||
|
||||
0+4000ee <foo>:
|
||||
[ ]*[a-f0-9]+: c3 retq
|
||||
|
||||
0+4000ef <bar>:
|
||||
[ ]*[a-f0-9]+: c3 retq
|
||||
#pass
|
19
ld/testsuite/ld-ifunc/ifunc-21-x86-64.s
Normal file
19
ld/testsuite/ld-ifunc/ifunc-21-x86-64.s
Normal file
|
@ -0,0 +1,19 @@
|
|||
.text
|
||||
.type start,"function"
|
||||
.global start
|
||||
start:
|
||||
.type _start,"function"
|
||||
.global _start
|
||||
_start:
|
||||
.type __start,"function"
|
||||
.global __start
|
||||
__start:
|
||||
.type __start,"function"
|
||||
movq foo@GOTPCREL(%rip), %rax
|
||||
movq bar@GOTPCREL(%rip), %rax
|
||||
.type foo, %gnu_indirect_function
|
||||
foo:
|
||||
ret
|
||||
.type bar, %function
|
||||
bar:
|
||||
ret
|
30
ld/testsuite/ld-ifunc/ifunc-22-i386.d
Normal file
30
ld/testsuite/ld-ifunc/ifunc-22-i386.d
Normal file
|
@ -0,0 +1,30 @@
|
|||
#ld: -m elf_i386
|
||||
#as: --32
|
||||
#objdump: -dw
|
||||
#target: x86_64-*-* i?86-*-*
|
||||
|
||||
.*: +file format .*
|
||||
|
||||
|
||||
Disassembly of section .plt:
|
||||
|
||||
0+8048080 <.plt>:
|
||||
[ ]*[a-f0-9]+: ff 25 b8 90 04 08 jmp \*0x80490b8
|
||||
[ ]*[a-f0-9]+: 68 00 00 00 00 push \$0x0
|
||||
[ ]*[a-f0-9]+: e9 00 00 00 00 jmp 8048090 <__start>
|
||||
|
||||
Disassembly of section .text:
|
||||
|
||||
0+8048090 <__start>:
|
||||
[ ]*[a-f0-9]+: e8 00 00 00 00 call 8048095 <__start\+0x5>
|
||||
[ ]*[a-f0-9]+: 5b pop %ebx
|
||||
[ ]*[a-f0-9]+: 81 c3 17 10 00 00 add \$0x1017,%ebx
|
||||
[ ]*[a-f0-9]+: 8b 83 0c 00 00 00 mov 0xc\(%ebx\),%eax
|
||||
[ ]*[a-f0-9]+: 8d ([0-9a-f]{2} ){5}[ ]+lea[ ]+.*
|
||||
|
||||
0+80480a8 <foo>:
|
||||
[ ]*[a-f0-9]+: c3 ret
|
||||
|
||||
0+80480a9 <bar>:
|
||||
[ ]*[a-f0-9]+: c3 ret
|
||||
#pass
|
24
ld/testsuite/ld-ifunc/ifunc-22-i386.s
Normal file
24
ld/testsuite/ld-ifunc/ifunc-22-i386.s
Normal file
|
@ -0,0 +1,24 @@
|
|||
.text
|
||||
.type start,"function"
|
||||
.global start
|
||||
start:
|
||||
.type _start,"function"
|
||||
.global _start
|
||||
_start:
|
||||
.type __start,"function"
|
||||
.global __start
|
||||
__start:
|
||||
.type __start,"function"
|
||||
call .L6
|
||||
.L6:
|
||||
popl %ebx
|
||||
addl $_GLOBAL_OFFSET_TABLE_+[.-.L6], %ebx
|
||||
mov foo@GOT(%ebx), %eax
|
||||
mov bar@GOT(%ebx), %eax
|
||||
.global foo
|
||||
.type foo, %gnu_indirect_function
|
||||
foo:
|
||||
ret
|
||||
.type bar, %function
|
||||
bar:
|
||||
ret
|
27
ld/testsuite/ld-ifunc/ifunc-22-x86-64.d
Normal file
27
ld/testsuite/ld-ifunc/ifunc-22-x86-64.d
Normal file
|
@ -0,0 +1,27 @@
|
|||
#as: --64
|
||||
#ld: -melf_x86_64
|
||||
#objdump: -dw
|
||||
#target: x86_64-*-*
|
||||
|
||||
.*: +file format .*
|
||||
|
||||
|
||||
Disassembly of section .plt:
|
||||
|
||||
0+4000d0 <.plt>:
|
||||
[ ]*[a-f0-9]+: ff 25 32 00 20 00 jmpq \*0x200032\(%rip\) # 600108 <_GLOBAL_OFFSET_TABLE_\+0x18>
|
||||
[ ]*[a-f0-9]+: 68 00 00 00 00 pushq \$0x0
|
||||
[ ]*[a-f0-9]+: e9 00 00 00 00 jmpq 4000e0 <__start>
|
||||
|
||||
Disassembly of section .text:
|
||||
|
||||
0+4000e0 <__start>:
|
||||
[ ]*[a-f0-9]+: 48 8b 05 21 00 20 00 mov 0x200021\(%rip\),%rax # 600108 <_GLOBAL_OFFSET_TABLE_\+0x18>
|
||||
[ ]*[a-f0-9]+: 48 8d ([0-9a-f]{2} ){5}[ ]+lea[ ]+.*
|
||||
|
||||
0+4000ee <foo>:
|
||||
[ ]*[a-f0-9]+: c3 retq
|
||||
|
||||
0+4000ef <bar>:
|
||||
[ ]*[a-f0-9]+: c3 retq
|
||||
#pass
|
20
ld/testsuite/ld-ifunc/ifunc-22-x86-64.s
Normal file
20
ld/testsuite/ld-ifunc/ifunc-22-x86-64.s
Normal file
|
@ -0,0 +1,20 @@
|
|||
.text
|
||||
.type start,"function"
|
||||
.global start
|
||||
start:
|
||||
.type _start,"function"
|
||||
.global _start
|
||||
_start:
|
||||
.type __start,"function"
|
||||
.global __start
|
||||
__start:
|
||||
.type __start,"function"
|
||||
movq foo@GOTPCREL(%rip), %rax
|
||||
movq bar@GOTPCREL(%rip), %rax
|
||||
.type foo, %gnu_indirect_function
|
||||
.globl foo
|
||||
foo:
|
||||
ret
|
||||
.type bar, %function
|
||||
bar:
|
||||
ret
|
Loading…
Add table
Reference in a new issue