diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2015-09-02 15:30:32 -0700 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2015-09-02 15:30:32 -0700 |
commit | 0762fbb6a7543730d61384344a95fa7bf174a6cb (patch) | |
tree | a57191f6e37cf6eb001af80bc3dc8bba17438288 /ld | |
parent | c74be520ba8ed2d013d43916b923b837294343cc (diff) | |
download | binutils-0762fbb6a7543730d61384344a95fa7bf174a6cb.zip binutils-0762fbb6a7543730d61384344a95fa7bf174a6cb.tar.gz binutils-0762fbb6a7543730d61384344a95fa7bf174a6cb.tar.bz2 |
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.
Diffstat (limited to 'ld')
-rw-r--r-- | ld/testsuite/ChangeLog | 11 | ||||
-rw-r--r-- | ld/testsuite/ld-ifunc/ifunc-21-i386.d | 30 | ||||
-rw-r--r-- | ld/testsuite/ld-ifunc/ifunc-21-i386.s | 23 | ||||
-rw-r--r-- | ld/testsuite/ld-ifunc/ifunc-21-x86-64.d | 27 | ||||
-rw-r--r-- | ld/testsuite/ld-ifunc/ifunc-21-x86-64.s | 19 | ||||
-rw-r--r-- | ld/testsuite/ld-ifunc/ifunc-22-i386.d | 30 | ||||
-rw-r--r-- | ld/testsuite/ld-ifunc/ifunc-22-i386.s | 24 | ||||
-rw-r--r-- | ld/testsuite/ld-ifunc/ifunc-22-x86-64.d | 27 | ||||
-rw-r--r-- | ld/testsuite/ld-ifunc/ifunc-22-x86-64.s | 20 |
9 files changed, 211 insertions, 0 deletions
diff --git a/ld/testsuite/ChangeLog b/ld/testsuite/ChangeLog index 0241c08..ca1b665 100644 --- a/ld/testsuite/ChangeLog +++ b/ld/testsuite/ChangeLog @@ -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 diff --git a/ld/testsuite/ld-ifunc/ifunc-21-i386.d b/ld/testsuite/ld-ifunc/ifunc-21-i386.d new file mode 100644 index 0000000..4c3a6a3 --- /dev/null +++ b/ld/testsuite/ld-ifunc/ifunc-21-i386.d @@ -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 diff --git a/ld/testsuite/ld-ifunc/ifunc-21-i386.s b/ld/testsuite/ld-ifunc/ifunc-21-i386.s new file mode 100644 index 0000000..e1af106 --- /dev/null +++ b/ld/testsuite/ld-ifunc/ifunc-21-i386.s @@ -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 diff --git a/ld/testsuite/ld-ifunc/ifunc-21-x86-64.d b/ld/testsuite/ld-ifunc/ifunc-21-x86-64.d new file mode 100644 index 0000000..ea46631 --- /dev/null +++ b/ld/testsuite/ld-ifunc/ifunc-21-x86-64.d @@ -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 diff --git a/ld/testsuite/ld-ifunc/ifunc-21-x86-64.s b/ld/testsuite/ld-ifunc/ifunc-21-x86-64.s new file mode 100644 index 0000000..0cf92ac --- /dev/null +++ b/ld/testsuite/ld-ifunc/ifunc-21-x86-64.s @@ -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 diff --git a/ld/testsuite/ld-ifunc/ifunc-22-i386.d b/ld/testsuite/ld-ifunc/ifunc-22-i386.d new file mode 100644 index 0000000..4c3a6a3 --- /dev/null +++ b/ld/testsuite/ld-ifunc/ifunc-22-i386.d @@ -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 diff --git a/ld/testsuite/ld-ifunc/ifunc-22-i386.s b/ld/testsuite/ld-ifunc/ifunc-22-i386.s new file mode 100644 index 0000000..f6fc784 --- /dev/null +++ b/ld/testsuite/ld-ifunc/ifunc-22-i386.s @@ -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 diff --git a/ld/testsuite/ld-ifunc/ifunc-22-x86-64.d b/ld/testsuite/ld-ifunc/ifunc-22-x86-64.d new file mode 100644 index 0000000..ea46631 --- /dev/null +++ b/ld/testsuite/ld-ifunc/ifunc-22-x86-64.d @@ -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 diff --git a/ld/testsuite/ld-ifunc/ifunc-22-x86-64.s b/ld/testsuite/ld-ifunc/ifunc-22-x86-64.s new file mode 100644 index 0000000..f402c62 --- /dev/null +++ b/ld/testsuite/ld-ifunc/ifunc-22-x86-64.s @@ -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 |