diff options
Diffstat (limited to 'ld/testsuite')
32 files changed, 569 insertions, 0 deletions
diff --git a/ld/testsuite/ChangeLog b/ld/testsuite/ChangeLog index b8d04f5..92d7ebf 100644 --- a/ld/testsuite/ChangeLog +++ b/ld/testsuite/ChangeLog @@ -1,5 +1,32 @@ 2015-10-22 H.J. Lu <hongjiu.lu@intel.com> + * ld-i386/call3.s: New file. + * ld-i386/call3a.d: Likewise. + * ld-i386/call3b.d: Likewise. + * ld-i386/call3c.d: Likewise. + * ld-i386/call3d.d: Likewise. + * ld-i386/call3e.d: Likewise. + * ld-i386/call3f.d: Likewise. + * ld-i386/call3g.d: Likewise. + * ld-i386/call3h.d: Likewise. + * ld-i386/load1-nacl.d: Likewise. + * ld-x86-64/call1.s: Likewise. + * ld-x86-64/call1a.d: Likewise. + * ld-x86-64/call1b.d: Likewise. + * ld-x86-64/call1c.d: Likewise. + * ld-x86-64/call1d.d: Likewise. + * ld-x86-64/call1e.d: Likewise. + * ld-x86-64/call1f.d: Likewise. + * ld-x86-64/call1g.d: Likewise. + * ld-x86-64/call1h.d: Likewise. + * ld-x86-64/call1i.d: Likewise. + * ld-x86-64/load1a-nacl.d: Likewise. + * ld-x86-64/load1b-nacl.d: Likewise. + * ld-x86-64/load1c-nacl.d: Likewise. + * ld-x86-64/load1d-nacl.d: Likewise. + +2015-10-22 H.J. Lu <hongjiu.lu@intel.com> + * ld-ifunc/ifunc-5r-local-x86-64.d: Replace R_X86_64_GOTPCREL with R_X86_64_REX_GOTPCRELX. * ld-x86-64/plt-main1.rd: Likewise. diff --git a/ld/testsuite/ld-i386/call3.s b/ld/testsuite/ld-i386/call3.s new file mode 100644 index 0000000..ce003c8 --- /dev/null +++ b/ld/testsuite/ld-i386/call3.s @@ -0,0 +1,9 @@ + .text + .globl foo + .type foo, @function +foo: + ret + .globl _start + .type _start, @function +_start: + call *foo@GOT diff --git a/ld/testsuite/ld-i386/call3a.d b/ld/testsuite/ld-i386/call3a.d new file mode 100644 index 0000000..a8ff27f --- /dev/null +++ b/ld/testsuite/ld-i386/call3a.d @@ -0,0 +1,13 @@ +#source: call3.s +#as: --32 +#ld: -melf_i386 +#objdump: -dw + +.*: +file format .* + + +Disassembly of section .text: + +#... +[ ]*[a-f0-9]+: 67 e8 ([0-9a-f]{2} ){4} * addr16 call +[a-f0-9]+ <foo> +#pass diff --git a/ld/testsuite/ld-i386/call3b.d b/ld/testsuite/ld-i386/call3b.d new file mode 100644 index 0000000..06af6f5 --- /dev/null +++ b/ld/testsuite/ld-i386/call3b.d @@ -0,0 +1,13 @@ +#source: call3.s +#as: --32 +#ld: -melf_i386 -z call-nop=prefix-addr +#objdump: -dw + +.*: +file format .* + + +Disassembly of section .text: + +#... +[ ]*[a-f0-9]+: 67 e8 ([0-9a-f]{2} ){4} * addr16 call +[a-f0-9]+ <foo> +#pass diff --git a/ld/testsuite/ld-i386/call3c.d b/ld/testsuite/ld-i386/call3c.d new file mode 100644 index 0000000..64e8372 --- /dev/null +++ b/ld/testsuite/ld-i386/call3c.d @@ -0,0 +1,14 @@ +#source: call3.s +#as: --32 +#ld: -melf_i386 -z call-nop=prefix-nop +#objdump: -dw + +.*: +file format .* + + +Disassembly of section .text: + +#... +[ ]*[a-f0-9]+: 90 nop +[ ]*[a-f0-9]+: e8 ([0-9a-f]{2} ){4} * call +[a-f0-9]+ <foo> +#pass diff --git a/ld/testsuite/ld-i386/call3d.d b/ld/testsuite/ld-i386/call3d.d new file mode 100644 index 0000000..a9274c8 --- /dev/null +++ b/ld/testsuite/ld-i386/call3d.d @@ -0,0 +1,14 @@ +#source: call3.s +#as: --32 +#ld: -melf_i386 -z call-nop=suffix-nop +#objdump: -dw + +.*: +file format .* + + +Disassembly of section .text: + +#... +[ ]*[a-f0-9]+: e8 ([0-9a-f]{2} ){4} * call +[a-f0-9]+ <foo> +[ ]*[a-f0-9]+: 90 nop +#pass diff --git a/ld/testsuite/ld-i386/call3e.d b/ld/testsuite/ld-i386/call3e.d new file mode 100644 index 0000000..2876b49 --- /dev/null +++ b/ld/testsuite/ld-i386/call3e.d @@ -0,0 +1,13 @@ +#source: call3.s +#as: --32 +#ld: -melf_i386 -z call-nop=prefix-0x67 +#objdump: -dw + +.*: +file format .* + + +Disassembly of section .text: + +#... +[ ]*[a-f0-9]+: 67 e8 ([0-9a-f]{2} ){4} * addr16 call +[a-f0-9]+ <foo> +#pass diff --git a/ld/testsuite/ld-i386/call3f.d b/ld/testsuite/ld-i386/call3f.d new file mode 100644 index 0000000..5ab0cf1 --- /dev/null +++ b/ld/testsuite/ld-i386/call3f.d @@ -0,0 +1,14 @@ +#source: call3.s +#as: --32 +#ld: -melf_i386 -z call-nop=prefix-0x90 +#objdump: -dw + +.*: +file format .* + + +Disassembly of section .text: + +#... +[ ]*[a-f0-9]+: 90 nop +[ ]*[a-f0-9]+: e8 ([0-9a-f]{2} ){4} * call +[a-f0-9]+ <foo> +#pass diff --git a/ld/testsuite/ld-i386/call3g.d b/ld/testsuite/ld-i386/call3g.d new file mode 100644 index 0000000..8287770 --- /dev/null +++ b/ld/testsuite/ld-i386/call3g.d @@ -0,0 +1,14 @@ +#source: call3.s +#as: --32 +#ld: -melf_i386 -z call-nop=suffix-0x90 +#objdump: -dw + +.*: +file format .* + + +Disassembly of section .text: + +#... +[ ]*[a-f0-9]+: e8 ([0-9a-f]{2} ){4} * call +[a-f0-9]+ <foo> +[ ]*[a-f0-9]+: 90 nop +#pass diff --git a/ld/testsuite/ld-i386/call3h.d b/ld/testsuite/ld-i386/call3h.d new file mode 100644 index 0000000..83f371a --- /dev/null +++ b/ld/testsuite/ld-i386/call3h.d @@ -0,0 +1,14 @@ +#source: call3.s +#as: --32 +#ld: -melf_i386 -z call-nop=suffix-144 +#objdump: -dw + +.*: +file format .* + + +Disassembly of section .text: + +#... +[ ]*[a-f0-9]+: e8 ([0-9a-f]{2} ){4} * call +[a-f0-9]+ <foo> +[ ]*[a-f0-9]+: 90 nop +#pass diff --git a/ld/testsuite/ld-i386/i386.exp b/ld/testsuite/ld-i386/i386.exp index 3d28dcc..9bf08da 100644 --- a/ld/testsuite/ld-i386/i386.exp +++ b/ld/testsuite/ld-i386/i386.exp @@ -296,9 +296,18 @@ run_dump_test "mov1b" run_dump_test "branch1" run_dump_test "call1" run_dump_test "call2" +run_dump_test "call3a" +run_dump_test "call3b" +run_dump_test "call3c" +run_dump_test "call3d" +run_dump_test "call3e" +run_dump_test "call3f" +run_dump_test "call3g" +run_dump_test "call3h" run_dump_test "jmp1" run_dump_test "jmp2" run_dump_test "load1" +run_dump_test "load1-nacl" run_dump_test "load2" run_dump_test "load3" run_dump_test "load4a" diff --git a/ld/testsuite/ld-i386/load1-nacl.d b/ld/testsuite/ld-i386/load1-nacl.d new file mode 100644 index 0000000..1245639 --- /dev/null +++ b/ld/testsuite/ld-i386/load1-nacl.d @@ -0,0 +1,59 @@ +#source: load1.s +#as: --32 +#ld: -melf_i386 +#objdump: -dw --sym +#target: i?86-*-nacl* x86_64-*-nacl* + +.*: +file format .* + +SYMBOL TABLE: +#... +10030080 l O .data 0+1 bar +#... +10030081 g O .data 0+1 foo +#... + +Disassembly of section .text: + +0+20000 <_start>: +[ ]*[a-f0-9]+: 8d 05 80 00 03 10 lea 0x10030080,%eax +[ ]*[a-f0-9]+: 81 d0 80 00 03 10 adc \$0x10030080,%eax +[ ]*[a-f0-9]+: 81 c3 80 00 03 10 add \$0x10030080,%ebx +[ ]*[a-f0-9]+: 81 e1 80 00 03 10 and \$0x10030080,%ecx +[ ]*[a-f0-9]+: 81 fa 80 00 03 10 cmp \$0x10030080,%edx +[ ]*[a-f0-9]+: 81 cf 80 00 03 10 or \$0x10030080,%edi +[ ]*[a-f0-9]+: 81 de 80 00 03 10 sbb \$0x10030080,%esi +[ ]*[a-f0-9]+: 81 ed 80 00 03 10 sub \$0x10030080,%ebp +[ ]*[a-f0-9]+: 81 f4 80 00 03 10 xor \$0x10030080,%esp +[ ]*[a-f0-9]+: f7 c1 80 00 03 10 test \$0x10030080,%ecx +[ ]*[a-f0-9]+: 8d 05 80 00 03 10 lea 0x10030080,%eax +[ ]*[a-f0-9]+: 81 d0 80 00 03 10 adc \$0x10030080,%eax +[ ]*[a-f0-9]+: 81 c3 80 00 03 10 add \$0x10030080,%ebx +[ ]*[a-f0-9]+: 81 e1 80 00 03 10 and \$0x10030080,%ecx +[ ]*[a-f0-9]+: 81 fa 80 00 03 10 cmp \$0x10030080,%edx +[ ]*[a-f0-9]+: 81 cf 80 00 03 10 or \$0x10030080,%edi +[ ]*[a-f0-9]+: 81 de 80 00 03 10 sbb \$0x10030080,%esi +[ ]*[a-f0-9]+: 81 ed 80 00 03 10 sub \$0x10030080,%ebp +[ ]*[a-f0-9]+: 81 f4 80 00 03 10 xor \$0x10030080,%esp +[ ]*[a-f0-9]+: f7 c1 80 00 03 10 test \$0x10030080,%ecx +[ ]*[a-f0-9]+: 8d 05 81 00 03 10 lea 0x10030081,%eax +[ ]*[a-f0-9]+: 81 d0 81 00 03 10 adc \$0x10030081,%eax +[ ]*[a-f0-9]+: 81 c3 81 00 03 10 add \$0x10030081,%ebx +[ ]*[a-f0-9]+: 81 e1 81 00 03 10 and \$0x10030081,%ecx +[ ]*[a-f0-9]+: 81 fa 81 00 03 10 cmp \$0x10030081,%edx +[ ]*[a-f0-9]+: 81 cf 81 00 03 10 or \$0x10030081,%edi +[ ]*[a-f0-9]+: 81 de 81 00 03 10 sbb \$0x10030081,%esi +[ ]*[a-f0-9]+: 81 ed 81 00 03 10 sub \$0x10030081,%ebp +[ ]*[a-f0-9]+: 81 f4 81 00 03 10 xor \$0x10030081,%esp +[ ]*[a-f0-9]+: f7 c1 81 00 03 10 test \$0x10030081,%ecx +[ ]*[a-f0-9]+: 8d 05 81 00 03 10 lea 0x10030081,%eax +[ ]*[a-f0-9]+: 81 d0 81 00 03 10 adc \$0x10030081,%eax +[ ]*[a-f0-9]+: 81 c3 81 00 03 10 add \$0x10030081,%ebx +[ ]*[a-f0-9]+: 81 e1 81 00 03 10 and \$0x10030081,%ecx +[ ]*[a-f0-9]+: 81 fa 81 00 03 10 cmp \$0x10030081,%edx +[ ]*[a-f0-9]+: 81 cf 81 00 03 10 or \$0x10030081,%edi +[ ]*[a-f0-9]+: 81 de 81 00 03 10 sbb \$0x10030081,%esi +[ ]*[a-f0-9]+: 81 ed 81 00 03 10 sub \$0x10030081,%ebp +[ ]*[a-f0-9]+: 81 f4 81 00 03 10 xor \$0x10030081,%esp +[ ]*[a-f0-9]+: f7 c1 81 00 03 10 test \$0x10030081,%ecx +#pass diff --git a/ld/testsuite/ld-i386/load1.d b/ld/testsuite/ld-i386/load1.d index e93531e..062ea18 100644 --- a/ld/testsuite/ld-i386/load1.d +++ b/ld/testsuite/ld-i386/load1.d @@ -1,6 +1,7 @@ #as: --32 #ld: -melf_i386 #objdump: -dw --sym +#notarget: i?86-*-nacl* x86_64-*-nacl* .*: +file format .* diff --git a/ld/testsuite/ld-x86-64/call1.s b/ld/testsuite/ld-x86-64/call1.s new file mode 100644 index 0000000..92c9f05 --- /dev/null +++ b/ld/testsuite/ld-x86-64/call1.s @@ -0,0 +1,9 @@ + .text + .globl foo + .type foo, @function +foo: + ret + .globl _start + .type _start, @function +_start: + call *foo@GOTPCREL(%rip) diff --git a/ld/testsuite/ld-x86-64/call1a.d b/ld/testsuite/ld-x86-64/call1a.d new file mode 100644 index 0000000..2a63b1c --- /dev/null +++ b/ld/testsuite/ld-x86-64/call1a.d @@ -0,0 +1,13 @@ +#source: call1.s +#as: --64 +#ld: -melf_x86_64 +#objdump: -dw + +.*: +file format .* + + +Disassembly of section .text: + +#... +[ ]*[a-f0-9]+: 67 e8 ([0-9a-f]{2} ){4} * addr32 callq +[a-f0-9]+ <foo> +#pass diff --git a/ld/testsuite/ld-x86-64/call1b.d b/ld/testsuite/ld-x86-64/call1b.d new file mode 100644 index 0000000..e782fa2 --- /dev/null +++ b/ld/testsuite/ld-x86-64/call1b.d @@ -0,0 +1,13 @@ +#source: call1.s +#as: --64 +#ld: -melf_x86_64 -z call-nop=prefix-addr +#objdump: -dw + +.*: +file format .* + + +Disassembly of section .text: + +#... +[ ]*[a-f0-9]+: 67 e8 ([0-9a-f]{2} ){4} * addr32 callq +[a-f0-9]+ <foo> +#pass diff --git a/ld/testsuite/ld-x86-64/call1c.d b/ld/testsuite/ld-x86-64/call1c.d new file mode 100644 index 0000000..d058fc7 --- /dev/null +++ b/ld/testsuite/ld-x86-64/call1c.d @@ -0,0 +1,14 @@ +#source: call1.s +#as: --64 +#ld: -melf_x86_64 -z call-nop=prefix-nop +#objdump: -dw + +.*: +file format .* + + +Disassembly of section .text: + +#... +[ ]*[a-f0-9]+: 90 nop +[ ]*[a-f0-9]+: e8 ([0-9a-f]{2} ){4} * callq +[a-f0-9]+ <foo> +#pass diff --git a/ld/testsuite/ld-x86-64/call1d.d b/ld/testsuite/ld-x86-64/call1d.d new file mode 100644 index 0000000..8871cc6 --- /dev/null +++ b/ld/testsuite/ld-x86-64/call1d.d @@ -0,0 +1,14 @@ +#source: call1.s +#as: --64 +#ld: -melf_x86_64 -z call-nop=suffix-nop +#objdump: -dw + +.*: +file format .* + + +Disassembly of section .text: + +#... +[ ]*[a-f0-9]+: e8 ([0-9a-f]{2} ){4} * callq +[a-f0-9]+ <foo> +[ ]*[a-f0-9]+: 90 nop +#pass diff --git a/ld/testsuite/ld-x86-64/call1e.d b/ld/testsuite/ld-x86-64/call1e.d new file mode 100644 index 0000000..7127f1a --- /dev/null +++ b/ld/testsuite/ld-x86-64/call1e.d @@ -0,0 +1,13 @@ +#source: call1.s +#as: --64 +#ld: -melf_x86_64 -z call-nop=prefix-0x67 +#objdump: -dw + +.*: +file format .* + + +Disassembly of section .text: + +#... +[ ]*[a-f0-9]+: 67 e8 ([0-9a-f]{2} ){4} * addr32 callq +[a-f0-9]+ <foo> +#pass diff --git a/ld/testsuite/ld-x86-64/call1f.d b/ld/testsuite/ld-x86-64/call1f.d new file mode 100644 index 0000000..587bade --- /dev/null +++ b/ld/testsuite/ld-x86-64/call1f.d @@ -0,0 +1,14 @@ +#source: call1.s +#as: --64 +#ld: -melf_x86_64 -z call-nop=prefix-0x90 +#objdump: -dw + +.*: +file format .* + + +Disassembly of section .text: + +#... +[ ]*[a-f0-9]+: 90 nop +[ ]*[a-f0-9]+: e8 ([0-9a-f]{2} ){4} * callq +[a-f0-9]+ <foo> +#pass diff --git a/ld/testsuite/ld-x86-64/call1g.d b/ld/testsuite/ld-x86-64/call1g.d new file mode 100644 index 0000000..3bb512e --- /dev/null +++ b/ld/testsuite/ld-x86-64/call1g.d @@ -0,0 +1,14 @@ +#source: call1.s +#as: --64 +#ld: -melf_x86_64 -z call-nop=suffix-0x90 +#objdump: -dw + +.*: +file format .* + + +Disassembly of section .text: + +#... +[ ]*[a-f0-9]+: e8 ([0-9a-f]{2} ){4} * callq +[a-f0-9]+ <foo> +[ ]*[a-f0-9]+: 90 nop +#pass diff --git a/ld/testsuite/ld-x86-64/call1h.d b/ld/testsuite/ld-x86-64/call1h.d new file mode 100644 index 0000000..c7c8dde --- /dev/null +++ b/ld/testsuite/ld-x86-64/call1h.d @@ -0,0 +1,14 @@ +#source: call1.s +#as: --64 +#ld: -melf_x86_64 -z call-nop=suffix-144 +#objdump: -dw + +.*: +file format .* + + +Disassembly of section .text: + +#... +[ ]*[a-f0-9]+: e8 ([0-9a-f]{2} ){4} * callq +[a-f0-9]+ <foo> +[ ]*[a-f0-9]+: 90 nop +#pass diff --git a/ld/testsuite/ld-x86-64/call1i.d b/ld/testsuite/ld-x86-64/call1i.d new file mode 100644 index 0000000..b3684ad --- /dev/null +++ b/ld/testsuite/ld-x86-64/call1i.d @@ -0,0 +1,14 @@ +#source: call1.s +#as: --x32 +#ld: -melf32_x86_64 -z call-nop=suffix-0x90 +#objdump: -dw + +.*: +file format .* + + +Disassembly of section .text: + +#... +[ ]*[a-f0-9]+: e8 ([0-9a-f]{2} ){4} * callq +[a-f0-9]+ <foo> +[ ]*[a-f0-9]+: 90 nop +#pass diff --git a/ld/testsuite/ld-x86-64/load1a-nacl.d b/ld/testsuite/ld-x86-64/load1a-nacl.d new file mode 100644 index 0000000..aba9db9 --- /dev/null +++ b/ld/testsuite/ld-x86-64/load1a-nacl.d @@ -0,0 +1,55 @@ +#source: load1.s +#as: --64 +#ld: -melf_x86_64 +#objdump: -dw --sym +#target: x86_64-*-nacl* + +.*: +file format .* + +SYMBOL TABLE: +#... +0+100300c8 l O .data 0+1 bar +#... +0+100300c9 g O .data 0+1 foo +#... + +Disassembly of section .text: + +0+20000 <_start>: +[ ]*[a-f0-9]+: 81 d0 c8 00 03 10 adc \$0x100300c8,%eax +[ ]*[a-f0-9]+: 81 c3 c8 00 03 10 add \$0x100300c8,%ebx +[ ]*[a-f0-9]+: 81 e1 c8 00 03 10 and \$0x100300c8,%ecx +[ ]*[a-f0-9]+: 81 fa c8 00 03 10 cmp \$0x100300c8,%edx +[ ]*[a-f0-9]+: 81 ce c8 00 03 10 or \$0x100300c8,%esi +[ ]*[a-f0-9]+: 81 df c8 00 03 10 sbb \$0x100300c8,%edi +[ ]*[a-f0-9]+: 81 ed c8 00 03 10 sub \$0x100300c8,%ebp +[ ]*[a-f0-9]+: 41 81 f0 c8 00 03 10 xor \$0x100300c8,%r8d +[ ]*[a-f0-9]+: 41 f7 c7 c8 00 03 10 test \$0x100300c8,%r15d +[ ]*[a-f0-9]+: 48 81 d0 c8 00 03 10 adc \$0x100300c8,%rax +[ ]*[a-f0-9]+: 48 81 c3 c8 00 03 10 add \$0x100300c8,%rbx +[ ]*[a-f0-9]+: 48 81 e1 c8 00 03 10 and \$0x100300c8,%rcx +[ ]*[a-f0-9]+: 48 81 fa c8 00 03 10 cmp \$0x100300c8,%rdx +[ ]*[a-f0-9]+: 48 81 cf c8 00 03 10 or \$0x100300c8,%rdi +[ ]*[a-f0-9]+: 48 81 de c8 00 03 10 sbb \$0x100300c8,%rsi +[ ]*[a-f0-9]+: 48 81 ed c8 00 03 10 sub \$0x100300c8,%rbp +[ ]*[a-f0-9]+: 49 81 f0 c8 00 03 10 xor \$0x100300c8,%r8 +[ ]*[a-f0-9]+: 49 f7 c7 c8 00 03 10 test \$0x100300c8,%r15 +[ ]*[a-f0-9]+: 81 d0 c9 00 03 10 adc \$0x100300c9,%eax +[ ]*[a-f0-9]+: 81 c3 c9 00 03 10 add \$0x100300c9,%ebx +[ ]*[a-f0-9]+: 81 e1 c9 00 03 10 and \$0x100300c9,%ecx +[ ]*[a-f0-9]+: 81 fa c9 00 03 10 cmp \$0x100300c9,%edx +[ ]*[a-f0-9]+: 81 ce c9 00 03 10 or \$0x100300c9,%esi +[ ]*[a-f0-9]+: 81 df c9 00 03 10 sbb \$0x100300c9,%edi +[ ]*[a-f0-9]+: 81 ed c9 00 03 10 sub \$0x100300c9,%ebp +[ ]*[a-f0-9]+: 41 81 f0 c9 00 03 10 xor \$0x100300c9,%r8d +[ ]*[a-f0-9]+: 41 f7 c7 c9 00 03 10 test \$0x100300c9,%r15d +[ ]*[a-f0-9]+: 48 81 d0 c9 00 03 10 adc \$0x100300c9,%rax +[ ]*[a-f0-9]+: 48 81 c3 c9 00 03 10 add \$0x100300c9,%rbx +[ ]*[a-f0-9]+: 48 81 e1 c9 00 03 10 and \$0x100300c9,%rcx +[ ]*[a-f0-9]+: 48 81 fa c9 00 03 10 cmp \$0x100300c9,%rdx +[ ]*[a-f0-9]+: 48 81 cf c9 00 03 10 or \$0x100300c9,%rdi +[ ]*[a-f0-9]+: 48 81 de c9 00 03 10 sbb \$0x100300c9,%rsi +[ ]*[a-f0-9]+: 48 81 ed c9 00 03 10 sub \$0x100300c9,%rbp +[ ]*[a-f0-9]+: 49 81 f0 c9 00 03 10 xor \$0x100300c9,%r8 +[ ]*[a-f0-9]+: 49 f7 c7 c9 00 03 10 test \$0x100300c9,%r15 +#pass diff --git a/ld/testsuite/ld-x86-64/load1a.d b/ld/testsuite/ld-x86-64/load1a.d index e03efbd..5c9349e 100644 --- a/ld/testsuite/ld-x86-64/load1a.d +++ b/ld/testsuite/ld-x86-64/load1a.d @@ -2,6 +2,7 @@ #as: --64 #ld: -melf_x86_64 #objdump: -dw --sym +#notarget: x86_64-*-nacl* .*: +file format .* diff --git a/ld/testsuite/ld-x86-64/load1b-nacl.d b/ld/testsuite/ld-x86-64/load1b-nacl.d new file mode 100644 index 0000000..b6fa43d --- /dev/null +++ b/ld/testsuite/ld-x86-64/load1b-nacl.d @@ -0,0 +1,55 @@ +#source: load1.s +#as: --x32 +#ld: -melf32_x86_64 +#objdump: -dw --sym +#target: x86_64-*-nacl* + +.*: +file format .* + +SYMBOL TABLE: +#... +1003008c l O .data 0+1 bar +#... +1003008d g O .data 0+1 foo +#... + +Disassembly of section .text: + +0+20000 <_start>: +[ ]*[a-f0-9]+: 81 d0 8c 00 03 10 adc \$0x1003008c,%eax +[ ]*[a-f0-9]+: 81 c3 8c 00 03 10 add \$0x1003008c,%ebx +[ ]*[a-f0-9]+: 81 e1 8c 00 03 10 and \$0x1003008c,%ecx +[ ]*[a-f0-9]+: 81 fa 8c 00 03 10 cmp \$0x1003008c,%edx +[ ]*[a-f0-9]+: 81 ce 8c 00 03 10 or \$0x1003008c,%esi +[ ]*[a-f0-9]+: 81 df 8c 00 03 10 sbb \$0x1003008c,%edi +[ ]*[a-f0-9]+: 81 ed 8c 00 03 10 sub \$0x1003008c,%ebp +[ ]*[a-f0-9]+: 41 81 f0 8c 00 03 10 xor \$0x1003008c,%r8d +[ ]*[a-f0-9]+: 41 f7 c7 8c 00 03 10 test \$0x1003008c,%r15d +[ ]*[a-f0-9]+: 48 81 d0 8c 00 03 10 adc \$0x1003008c,%rax +[ ]*[a-f0-9]+: 48 81 c3 8c 00 03 10 add \$0x1003008c,%rbx +[ ]*[a-f0-9]+: 48 81 e1 8c 00 03 10 and \$0x1003008c,%rcx +[ ]*[a-f0-9]+: 48 81 fa 8c 00 03 10 cmp \$0x1003008c,%rdx +[ ]*[a-f0-9]+: 48 81 cf 8c 00 03 10 or \$0x1003008c,%rdi +[ ]*[a-f0-9]+: 48 81 de 8c 00 03 10 sbb \$0x1003008c,%rsi +[ ]*[a-f0-9]+: 48 81 ed 8c 00 03 10 sub \$0x1003008c,%rbp +[ ]*[a-f0-9]+: 49 81 f0 8c 00 03 10 xor \$0x1003008c,%r8 +[ ]*[a-f0-9]+: 49 f7 c7 8c 00 03 10 test \$0x1003008c,%r15 +[ ]*[a-f0-9]+: 81 d0 8d 00 03 10 adc \$0x1003008d,%eax +[ ]*[a-f0-9]+: 81 c3 8d 00 03 10 add \$0x1003008d,%ebx +[ ]*[a-f0-9]+: 81 e1 8d 00 03 10 and \$0x1003008d,%ecx +[ ]*[a-f0-9]+: 81 fa 8d 00 03 10 cmp \$0x1003008d,%edx +[ ]*[a-f0-9]+: 81 ce 8d 00 03 10 or \$0x1003008d,%esi +[ ]*[a-f0-9]+: 81 df 8d 00 03 10 sbb \$0x1003008d,%edi +[ ]*[a-f0-9]+: 81 ed 8d 00 03 10 sub \$0x1003008d,%ebp +[ ]*[a-f0-9]+: 41 81 f0 8d 00 03 10 xor \$0x1003008d,%r8d +[ ]*[a-f0-9]+: 41 f7 c7 8d 00 03 10 test \$0x1003008d,%r15d +[ ]*[a-f0-9]+: 48 81 d0 8d 00 03 10 adc \$0x1003008d,%rax +[ ]*[a-f0-9]+: 48 81 c3 8d 00 03 10 add \$0x1003008d,%rbx +[ ]*[a-f0-9]+: 48 81 e1 8d 00 03 10 and \$0x1003008d,%rcx +[ ]*[a-f0-9]+: 48 81 fa 8d 00 03 10 cmp \$0x1003008d,%rdx +[ ]*[a-f0-9]+: 48 81 cf 8d 00 03 10 or \$0x1003008d,%rdi +[ ]*[a-f0-9]+: 48 81 de 8d 00 03 10 sbb \$0x1003008d,%rsi +[ ]*[a-f0-9]+: 48 81 ed 8d 00 03 10 sub \$0x1003008d,%rbp +[ ]*[a-f0-9]+: 49 81 f0 8d 00 03 10 xor \$0x1003008d,%r8 +[ ]*[a-f0-9]+: 49 f7 c7 8d 00 03 10 test \$0x1003008d,%r15 +#pass diff --git a/ld/testsuite/ld-x86-64/load1b.d b/ld/testsuite/ld-x86-64/load1b.d index 5adc89d..70ef274 100644 --- a/ld/testsuite/ld-x86-64/load1b.d +++ b/ld/testsuite/ld-x86-64/load1b.d @@ -2,6 +2,7 @@ #as: --x32 #ld: -melf32_x86_64 #objdump: -dw --sym +#notarget: x86_64-*-nacl* .*: +file format .* diff --git a/ld/testsuite/ld-x86-64/load1c-nacl.d b/ld/testsuite/ld-x86-64/load1c-nacl.d new file mode 100644 index 0000000..497006a --- /dev/null +++ b/ld/testsuite/ld-x86-64/load1c-nacl.d @@ -0,0 +1,48 @@ +#source: load1.s +#as: --64 +#ld: -shared -melf_x86_64 +#objdump: -dw +#target: x86_64-*-nacl* + +.*: +file format .* + +Disassembly of section .text: + +0+ <_start>: +[ ]*[a-f0-9]+: 13 05 22 03 01 10 adc 0x10010322\(%rip\),%eax # 10010328 <_DYNAMIC\+0xe0> +[ ]*[a-f0-9]+: 03 1d 1c 03 01 10 add 0x1001031c\(%rip\),%ebx # 10010328 <_DYNAMIC\+0xe0> +[ ]*[a-f0-9]+: 23 0d 16 03 01 10 and 0x10010316\(%rip\),%ecx # 10010328 <_DYNAMIC\+0xe0> +[ ]*[a-f0-9]+: 3b 15 10 03 01 10 cmp 0x10010310\(%rip\),%edx # 10010328 <_DYNAMIC\+0xe0> +[ ]*[a-f0-9]+: 0b 35 0a 03 01 10 or 0x1001030a\(%rip\),%esi # 10010328 <_DYNAMIC\+0xe0> +[ ]*[a-f0-9]+: 1b 3d 04 03 01 10 sbb 0x10010304\(%rip\),%edi # 10010328 <_DYNAMIC\+0xe0> +[ ]*[a-f0-9]+: 2b 2d fe 02 01 10 sub 0x100102fe\(%rip\),%ebp # 10010328 <_DYNAMIC\+0xe0> +[ ]*[a-f0-9]+: 44 33 05 f7 02 01 10 xor 0x100102f7\(%rip\),%r8d # 10010328 <_DYNAMIC\+0xe0> +[ ]*[a-f0-9]+: 44 85 3d f0 02 01 10 test %r15d,0x100102f0\(%rip\) # 10010328 <_DYNAMIC\+0xe0> +[ ]*[a-f0-9]+: 48 13 05 e9 02 01 10 adc 0x100102e9\(%rip\),%rax # 10010328 <_DYNAMIC\+0xe0> +[ ]*[a-f0-9]+: 48 03 1d e2 02 01 10 add 0x100102e2\(%rip\),%rbx # 10010328 <_DYNAMIC\+0xe0> +[ ]*[a-f0-9]+: 48 23 0d db 02 01 10 and 0x100102db\(%rip\),%rcx # 10010328 <_DYNAMIC\+0xe0> +[ ]*[a-f0-9]+: 48 3b 15 d4 02 01 10 cmp 0x100102d4\(%rip\),%rdx # 10010328 <_DYNAMIC\+0xe0> +[ ]*[a-f0-9]+: 48 0b 3d cd 02 01 10 or 0x100102cd\(%rip\),%rdi # 10010328 <_DYNAMIC\+0xe0> +[ ]*[a-f0-9]+: 48 1b 35 c6 02 01 10 sbb 0x100102c6\(%rip\),%rsi # 10010328 <_DYNAMIC\+0xe0> +[ ]*[a-f0-9]+: 48 2b 2d bf 02 01 10 sub 0x100102bf\(%rip\),%rbp # 10010328 <_DYNAMIC\+0xe0> +[ ]*[a-f0-9]+: 4c 33 05 b8 02 01 10 xor 0x100102b8\(%rip\),%r8 # 10010328 <_DYNAMIC\+0xe0> +[ ]*[a-f0-9]+: 4c 85 3d b1 02 01 10 test %r15,0x100102b1\(%rip\) # 10010328 <_DYNAMIC\+0xe0> +[ ]*[a-f0-9]+: 13 05 b3 02 01 10 adc 0x100102b3\(%rip\),%eax # 10010330 <_DYNAMIC\+0xe8> +[ ]*[a-f0-9]+: 03 1d ad 02 01 10 add 0x100102ad\(%rip\),%ebx # 10010330 <_DYNAMIC\+0xe8> +[ ]*[a-f0-9]+: 23 0d a7 02 01 10 and 0x100102a7\(%rip\),%ecx # 10010330 <_DYNAMIC\+0xe8> +[ ]*[a-f0-9]+: 3b 15 a1 02 01 10 cmp 0x100102a1\(%rip\),%edx # 10010330 <_DYNAMIC\+0xe8> +[ ]*[a-f0-9]+: 0b 35 9b 02 01 10 or 0x1001029b\(%rip\),%esi # 10010330 <_DYNAMIC\+0xe8> +[ ]*[a-f0-9]+: 1b 3d 95 02 01 10 sbb 0x10010295\(%rip\),%edi # 10010330 <_DYNAMIC\+0xe8> +[ ]*[a-f0-9]+: 2b 2d 8f 02 01 10 sub 0x1001028f\(%rip\),%ebp # 10010330 <_DYNAMIC\+0xe8> +[ ]*[a-f0-9]+: 44 33 05 88 02 01 10 xor 0x10010288\(%rip\),%r8d # 10010330 <_DYNAMIC\+0xe8> +[ ]*[a-f0-9]+: 44 85 3d 81 02 01 10 test %r15d,0x10010281\(%rip\) # 10010330 <_DYNAMIC\+0xe8> +[ ]*[a-f0-9]+: 48 13 05 7a 02 01 10 adc 0x1001027a\(%rip\),%rax # 10010330 <_DYNAMIC\+0xe8> +[ ]*[a-f0-9]+: 48 03 1d 73 02 01 10 add 0x10010273\(%rip\),%rbx # 10010330 <_DYNAMIC\+0xe8> +[ ]*[a-f0-9]+: 48 23 0d 6c 02 01 10 and 0x1001026c\(%rip\),%rcx # 10010330 <_DYNAMIC\+0xe8> +[ ]*[a-f0-9]+: 48 3b 15 65 02 01 10 cmp 0x10010265\(%rip\),%rdx # 10010330 <_DYNAMIC\+0xe8> +[ ]*[a-f0-9]+: 48 0b 3d 5e 02 01 10 or 0x1001025e\(%rip\),%rdi # 10010330 <_DYNAMIC\+0xe8> +[ ]*[a-f0-9]+: 48 1b 35 57 02 01 10 sbb 0x10010257\(%rip\),%rsi # 10010330 <_DYNAMIC\+0xe8> +[ ]*[a-f0-9]+: 48 2b 2d 50 02 01 10 sub 0x10010250\(%rip\),%rbp # 10010330 <_DYNAMIC\+0xe8> +[ ]*[a-f0-9]+: 4c 33 05 49 02 01 10 xor 0x10010249\(%rip\),%r8 # 10010330 <_DYNAMIC\+0xe8> +[ ]*[a-f0-9]+: 4c 85 3d 42 02 01 10 test %r15,0x10010242\(%rip\) # 10010330 <_DYNAMIC\+0xe8> +#pass diff --git a/ld/testsuite/ld-x86-64/load1c.d b/ld/testsuite/ld-x86-64/load1c.d index 2e0eb07..b589d97 100644 --- a/ld/testsuite/ld-x86-64/load1c.d +++ b/ld/testsuite/ld-x86-64/load1c.d @@ -2,6 +2,7 @@ #as: --64 #ld: -shared -melf_x86_64 #objdump: -dw +#notarget: x86_64-*-nacl* .*: +file format .* diff --git a/ld/testsuite/ld-x86-64/load1d-nacl.d b/ld/testsuite/ld-x86-64/load1d-nacl.d new file mode 100644 index 0000000..97fd749 --- /dev/null +++ b/ld/testsuite/ld-x86-64/load1d-nacl.d @@ -0,0 +1,48 @@ +#source: load1.s +#as: --x32 +#ld: -shared -melf32_x86_64 +#objdump: -dw +#target: x86_64-*-nacl* + +.*: +file format .* + +Disassembly of section .text: + +0+ <_start>: +[ ]*[a-f0-9]+: 13 05 fa 01 01 10 adc 0x100101fa\(%rip\),%eax # 10010200 <_DYNAMIC\+0x70> +[ ]*[a-f0-9]+: 03 1d f4 01 01 10 add 0x100101f4\(%rip\),%ebx # 10010200 <_DYNAMIC\+0x70> +[ ]*[a-f0-9]+: 23 0d ee 01 01 10 and 0x100101ee\(%rip\),%ecx # 10010200 <_DYNAMIC\+0x70> +[ ]*[a-f0-9]+: 3b 15 e8 01 01 10 cmp 0x100101e8\(%rip\),%edx # 10010200 <_DYNAMIC\+0x70> +[ ]*[a-f0-9]+: 0b 35 e2 01 01 10 or 0x100101e2\(%rip\),%esi # 10010200 <_DYNAMIC\+0x70> +[ ]*[a-f0-9]+: 1b 3d dc 01 01 10 sbb 0x100101dc\(%rip\),%edi # 10010200 <_DYNAMIC\+0x70> +[ ]*[a-f0-9]+: 2b 2d d6 01 01 10 sub 0x100101d6\(%rip\),%ebp # 10010200 <_DYNAMIC\+0x70> +[ ]*[a-f0-9]+: 44 33 05 cf 01 01 10 xor 0x100101cf\(%rip\),%r8d # 10010200 <_DYNAMIC\+0x70> +[ ]*[a-f0-9]+: 44 85 3d c8 01 01 10 test %r15d,0x100101c8\(%rip\) # 10010200 <_DYNAMIC\+0x70> +[ ]*[a-f0-9]+: 48 13 05 c1 01 01 10 adc 0x100101c1\(%rip\),%rax # 10010200 <_DYNAMIC\+0x70> +[ ]*[a-f0-9]+: 48 03 1d ba 01 01 10 add 0x100101ba\(%rip\),%rbx # 10010200 <_DYNAMIC\+0x70> +[ ]*[a-f0-9]+: 48 23 0d b3 01 01 10 and 0x100101b3\(%rip\),%rcx # 10010200 <_DYNAMIC\+0x70> +[ ]*[a-f0-9]+: 48 3b 15 ac 01 01 10 cmp 0x100101ac\(%rip\),%rdx # 10010200 <_DYNAMIC\+0x70> +[ ]*[a-f0-9]+: 48 0b 3d a5 01 01 10 or 0x100101a5\(%rip\),%rdi # 10010200 <_DYNAMIC\+0x70> +[ ]*[a-f0-9]+: 48 1b 35 9e 01 01 10 sbb 0x1001019e\(%rip\),%rsi # 10010200 <_DYNAMIC\+0x70> +[ ]*[a-f0-9]+: 48 2b 2d 97 01 01 10 sub 0x10010197\(%rip\),%rbp # 10010200 <_DYNAMIC\+0x70> +[ ]*[a-f0-9]+: 4c 33 05 90 01 01 10 xor 0x10010190\(%rip\),%r8 # 10010200 <_DYNAMIC\+0x70> +[ ]*[a-f0-9]+: 4c 85 3d 89 01 01 10 test %r15,0x10010189\(%rip\) # 10010200 <_DYNAMIC\+0x70> +[ ]*[a-f0-9]+: 13 05 8b 01 01 10 adc 0x1001018b\(%rip\),%eax # 10010208 <_DYNAMIC\+0x78> +[ ]*[a-f0-9]+: 03 1d 85 01 01 10 add 0x10010185\(%rip\),%ebx # 10010208 <_DYNAMIC\+0x78> +[ ]*[a-f0-9]+: 23 0d 7f 01 01 10 and 0x1001017f\(%rip\),%ecx # 10010208 <_DYNAMIC\+0x78> +[ ]*[a-f0-9]+: 3b 15 79 01 01 10 cmp 0x10010179\(%rip\),%edx # 10010208 <_DYNAMIC\+0x78> +[ ]*[a-f0-9]+: 0b 35 73 01 01 10 or 0x10010173\(%rip\),%esi # 10010208 <_DYNAMIC\+0x78> +[ ]*[a-f0-9]+: 1b 3d 6d 01 01 10 sbb 0x1001016d\(%rip\),%edi # 10010208 <_DYNAMIC\+0x78> +[ ]*[a-f0-9]+: 2b 2d 67 01 01 10 sub 0x10010167\(%rip\),%ebp # 10010208 <_DYNAMIC\+0x78> +[ ]*[a-f0-9]+: 44 33 05 60 01 01 10 xor 0x10010160\(%rip\),%r8d # 10010208 <_DYNAMIC\+0x78> +[ ]*[a-f0-9]+: 44 85 3d 59 01 01 10 test %r15d,0x10010159\(%rip\) # 10010208 <_DYNAMIC\+0x78> +[ ]*[a-f0-9]+: 48 13 05 52 01 01 10 adc 0x10010152\(%rip\),%rax # 10010208 <_DYNAMIC\+0x78> +[ ]*[a-f0-9]+: 48 03 1d 4b 01 01 10 add 0x1001014b\(%rip\),%rbx # 10010208 <_DYNAMIC\+0x78> +[ ]*[a-f0-9]+: 48 23 0d 44 01 01 10 and 0x10010144\(%rip\),%rcx # 10010208 <_DYNAMIC\+0x78> +[ ]*[a-f0-9]+: 48 3b 15 3d 01 01 10 cmp 0x1001013d\(%rip\),%rdx # 10010208 <_DYNAMIC\+0x78> +[ ]*[a-f0-9]+: 48 0b 3d 36 01 01 10 or 0x10010136\(%rip\),%rdi # 10010208 <_DYNAMIC\+0x78> +[ ]*[a-f0-9]+: 48 1b 35 2f 01 01 10 sbb 0x1001012f\(%rip\),%rsi # 10010208 <_DYNAMIC\+0x78> +[ ]*[a-f0-9]+: 48 2b 2d 28 01 01 10 sub 0x10010128\(%rip\),%rbp # 10010208 <_DYNAMIC\+0x78> +[ ]*[a-f0-9]+: 4c 33 05 21 01 01 10 xor 0x10010121\(%rip\),%r8 # 10010208 <_DYNAMIC\+0x78> +[ ]*[a-f0-9]+: 4c 85 3d 1a 01 01 10 test %r15,0x1001011a\(%rip\) # 10010208 <_DYNAMIC\+0x78> +#pass diff --git a/ld/testsuite/ld-x86-64/load1d.d b/ld/testsuite/ld-x86-64/load1d.d index 68292ac..ec07c4f 100644 --- a/ld/testsuite/ld-x86-64/load1d.d +++ b/ld/testsuite/ld-x86-64/load1d.d @@ -2,6 +2,7 @@ #as: --x32 #ld: -shared -melf32_x86_64 #objdump: -dw +#notarget: x86_64-*-nacl* .*: +file format .* diff --git a/ld/testsuite/ld-x86-64/x86-64.exp b/ld/testsuite/ld-x86-64/x86-64.exp index 7b8990b..6caea5f 100644 --- a/ld/testsuite/ld-x86-64/x86-64.exp +++ b/ld/testsuite/ld-x86-64/x86-64.exp @@ -325,6 +325,19 @@ run_dump_test "load1a" run_dump_test "load1b" run_dump_test "load1c" run_dump_test "load1d" +run_dump_test "load1a-nacl" +run_dump_test "load1b-nacl" +run_dump_test "load1c-nacl" +run_dump_test "load1d-nacl" +run_dump_test "call1a" +run_dump_test "call1b" +run_dump_test "call1c" +run_dump_test "call1d" +run_dump_test "call1e" +run_dump_test "call1f" +run_dump_test "call1g" +run_dump_test "call1h" +run_dump_test "call1i" run_dump_test "pr17935-1" run_dump_test "pr17935-2" run_dump_test "pr18160" |