diff options
author | Alan Modra <amodra@gmail.com> | 2011-03-23 15:25:06 +0000 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2011-03-23 15:25:06 +0000 |
commit | 663a1470e1a7af58a3d0691f480bc5621bd0c54f (patch) | |
tree | eb7a84aef9f6d307fdb4f8472b0e1759b04f6625 /ld/testsuite/ld-powerpc/tlsopt2.s | |
parent | 6f8a4444ff2b2239ccc23fb175f89d8c5fc4435f (diff) | |
download | gdb-663a1470e1a7af58a3d0691f480bc5621bd0c54f.zip gdb-663a1470e1a7af58a3d0691f480bc5621bd0c54f.tar.gz gdb-663a1470e1a7af58a3d0691f480bc5621bd0c54f.tar.bz2 |
bfd/
* elf32-ppc.c (ppc_elf_tls_optimize): Catch more cases where
old-style __tls_get_addr calls without marker relocs don't match
their arg setup insn one for one. If such mismatches are found
report the reloc and don't do any tls optimization.
* elf64-ppc.c (ppc64_elf_tls_optimize): Likewise.
ld/testsuite/
* ld-powerpc/tlsmark.s: Delete non-optimizable section.
* ld-powerpc/tlsmark32.s: Likewise.
* ld-powerpc/tlsmark.d: Adjust to suit.
* ld-powerpc/tlsmark32.d: Likewise.
* ld-powerpc/tlsopt1.d, * ld-powerpc/tlsopt1.s: New.
* ld-powerpc/tlsopt2.d, * ld-powerpc/tlsopt2.s: New.
* ld-powerpc/tlsopt3.d, * ld-powerpc/tlsopt3.s: New.
* ld-powerpc/tlsopt4.d, * ld-powerpc/tlsopt4.s: New.
* ld-powerpc/tlsopt1_32.d, * ld-powerpc/tlsopt1_32.s: New.
* ld-powerpc/tlsopt2_32.d, * ld-powerpc/tlsopt2_32.s: New.
* ld-powerpc/tlsopt3_32.d, * ld-powerpc/tlsopt3_32.s: New.
* ld-powerpc/tlsopt4_32.d, * ld-powerpc/tlsopt4_32.s: New.
* ld-powerpc/powerpc.exp: Run new tests.
Diffstat (limited to 'ld/testsuite/ld-powerpc/tlsopt2.s')
-rw-r--r-- | ld/testsuite/ld-powerpc/tlsopt2.s | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/ld/testsuite/ld-powerpc/tlsopt2.s b/ld/testsuite/ld-powerpc/tlsopt2.s new file mode 100644 index 0000000..adfbfa8 --- /dev/null +++ b/ld/testsuite/ld-powerpc/tlsopt2.s @@ -0,0 +1,11 @@ + .section ".no_opt2", "ax", %progbits +# this section should not be optimised since we have old-style +# __tls_get_addr without marker relocs, and two arg setup insns +# feed into one __tls_get_addr call. + addi 3,2,gd@got@tlsgd + cmpdi 4,0 + beq 0f + addi 3,2,gd@got@tlsgd +0: + bl __tls_get_addr + nop |