From 4a4c5f250b2251c4f6a11b748061d044a6919b9b Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Thu, 3 Mar 2011 22:11:33 +0000 Subject: Supprt TLS x32 IE->LE transition. bfd/ 2011-03-03 H.J. Lu * elf64-x86-64.c (elf_x86_64_check_tls_transition): Supprt TLS x32 IE->LE transition. (elf_x86_64_relocate_section): Likewise. ld/testsuite/ 2011-03-03 H.J. Lu * ld-x86-64/tlsie4.dd: New. * ld-x86-64/tlsie4.s: Likewise. * ld-x86-64/x86-64.exp (x86_64tests): Add tlsie4. --- ld/testsuite/ChangeLog | 7 +++++++ ld/testsuite/ld-x86-64/tlsie4.dd | 18 ++++++++++++++++++ ld/testsuite/ld-x86-64/tlsie4.s | 16 ++++++++++++++++ ld/testsuite/ld-x86-64/x86-64.exp | 3 +++ 4 files changed, 44 insertions(+) create mode 100644 ld/testsuite/ld-x86-64/tlsie4.dd create mode 100644 ld/testsuite/ld-x86-64/tlsie4.s (limited to 'ld') diff --git a/ld/testsuite/ChangeLog b/ld/testsuite/ChangeLog index 4ff663f..c5bad13 100644 --- a/ld/testsuite/ChangeLog +++ b/ld/testsuite/ChangeLog @@ -1,3 +1,10 @@ +2011-03-03 H.J. Lu + + * ld-x86-64/tlsie4.dd: New. + * ld-x86-64/tlsie4.s: Likewise. + + * ld-x86-64/x86-64.exp (x86_64tests): Add tlsie4. + 2011-02-25 H.J. Lu PR ld/12516 diff --git a/ld/testsuite/ld-x86-64/tlsie4.dd b/ld/testsuite/ld-x86-64/tlsie4.dd new file mode 100644 index 0000000..d52e337 --- /dev/null +++ b/ld/testsuite/ld-x86-64/tlsie4.dd @@ -0,0 +1,18 @@ +#source: tlsie4.s +#as: --x32 +#ld: -melf32_x86_64 tmpdir/tlsie4 +#objdump: -drw +#target: x86_64-*-linux* + +.*: +file format .* + +Disassembly of section .text: + +[a-f0-9]+ <_start>: +[ ]*[a-f0-9]+: c7 c0 fc ff ff ff mov \$0xfffffffc,%eax +[ ]*[a-f0-9]+: 8d 80 fc ff ff ff lea -0x4\(%rax\),%eax +[ ]*[a-f0-9]+: 41 c7 c0 fc ff ff ff mov \$0xfffffffc,%r8d +[ ]*[a-f0-9]+: 45 8d 80 fc ff ff ff lea -0x4\(%r8\),%r8d +[ ]*[a-f0-9]+: 41 c7 c4 fc ff ff ff mov \$0xfffffffc,%r12d +[ ]*[a-f0-9]+: 41 81 c4 fc ff ff ff add \$0xfffffffc,%r12d +#pass diff --git a/ld/testsuite/ld-x86-64/tlsie4.s b/ld/testsuite/ld-x86-64/tlsie4.s new file mode 100644 index 0000000..ca63546 --- /dev/null +++ b/ld/testsuite/ld-x86-64/tlsie4.s @@ -0,0 +1,16 @@ + .text + .globl _start +_start: + mov foo@GOTTPOFF(%rip), %eax + add foo@GOTTPOFF(%rip), %eax + mov foo@GOTTPOFF(%rip), %r8d + add foo@GOTTPOFF(%rip), %r8d + mov foo@GOTTPOFF(%rip), %r12d + add foo@GOTTPOFF(%rip), %r12d + .globl foo + .section .tdata,"awT",@progbits + .align 4 + .type foo, @object + .size foo, 4 +foo: + .long 100 diff --git a/ld/testsuite/ld-x86-64/x86-64.exp b/ld/testsuite/ld-x86-64/x86-64.exp index a82a56f..43b9c39 100644 --- a/ld/testsuite/ld-x86-64/x86-64.exp +++ b/ld/testsuite/ld-x86-64/x86-64.exp @@ -87,6 +87,9 @@ set x86_64tests { {"Split by file with 'l' flag on section." "-split-by-file -r" "--64" {split-by-file1.s split-by-file2.s} {{readelf -SW split-by-file.rd}} "split-by-file.o"} + {"TLS X32 IE->LE transition" "-melf32_x86_64" + "--x32" {tlsie4.s} + {{objdump -dwr tlsie4.dd}} "tlsie4"} } run_ld_link_tests $x86_64tests -- cgit v1.1