diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 93314775b46..55d4828cc6a 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,7 @@ +2014-04-15 Marcus Shawcroft + + * (elfNN_aarch64_tls_relax): Fix instruction mask. + 2014-04-14 Alan Modra * elf32-ppc.c (BA): Define diff --git a/bfd/elfnn-aarch64.c b/bfd/elfnn-aarch64.c index 638938d880a..a251698d9d8 100644 --- a/bfd/elfnn-aarch64.c +++ b/bfd/elfnn-aarch64.c @@ -3957,7 +3957,7 @@ elfNN_aarch64_tls_relax (struct elf_aarch64_link_hash_table *globals, ldr xd, [x0, #:tlsdesc_lo12:var] => ldr x0, [x0, #:gottprel_lo12:var] */ insn = bfd_getl32 (contents + rel->r_offset); - insn &= 0xfffffff0; + insn &= 0xffffffe0; bfd_putl32 (insn, contents + rel->r_offset); return bfd_reloc_continue; } diff --git a/ld/testsuite/ChangeLog b/ld/testsuite/ChangeLog index e239ce8d7b4..ae0fa895295 100644 --- a/ld/testsuite/ChangeLog +++ b/ld/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2014-04-15 Marcus Shawcroft + + * ld-aarch64/tls-relax-gdesc-ie.s (var): Adjust test case + to include all 5 bits of LDR destination register. + 2014-04-10 Senthil Kumar Selvaraj * ld-avr/norelax_diff.d: New testcase. diff --git a/ld/testsuite/ld-aarch64/tls-relax-gdesc-ie.s b/ld/testsuite/ld-aarch64/tls-relax-gdesc-ie.s index c20690c117c..38b372132f4 100644 --- a/ld/testsuite/ld-aarch64/tls-relax-gdesc-ie.s +++ b/ld/testsuite/ld-aarch64/tls-relax-gdesc-ie.s @@ -4,7 +4,7 @@ var: .word 2 .text adrp x0, :tlsdesc:var - ldr x1, [x0, #:tlsdesc_lo12:var] + ldr x17, [x0, #:tlsdesc_lo12:var] add x0, x0, :tlsdesc_lo12:var .tlsdesccall var blr x1