diff options
author | Richard Sandiford <richard.sandiford@arm.com> | 2015-03-04 09:08:49 +0000 |
---|---|---|
committer | Richard Sandiford <richard.sandiford@arm.com> | 2015-03-04 09:09:05 +0000 |
commit | e09ab7ac788fd5509adc40b86a3631a3028c1d33 (patch) | |
tree | d037ee4c87765b44b3042deb8991032af495e818 /bfd | |
parent | bb3d65e427e2cf3a2fbe322443d36336e03545da (diff) | |
download | gdb-e09ab7ac788fd5509adc40b86a3631a3028c1d33.zip gdb-e09ab7ac788fd5509adc40b86a3631a3028c1d33.tar.gz gdb-e09ab7ac788fd5509adc40b86a3631a3028c1d33.tar.bz2 |
Allow MOVK for R_AARCH64_TLSLE_MOVW_TPREL_G{0,1}NC
bfd/
PR gas/17843
* elfxx-aarch64.c (_bfd_aarch64_elf_put_addend): Expect
R_AARCH64_TLSLE_MOVW_TPREL_G0_NC and R_AARCH64_TLSLE_MOVW_TPREL_G1_NC
to be used with MOVK rather than MOVZ.
gas/
PR gas/17843
* config/tc-aarch64.c (process_movw_reloc_info): Allow
R_AARCH64_TLSLE_MOVW_TPREL_G0_NC and R_AARCH64_TLSLE_MOVW_TPREL_G1_NC
for MOVK.
gas/testsuite/
PR gas/17843
* gas/aarch64/tls.s, gas/aarch64/tls.d: Add test for
R_AARCH64_TLSLE_MOVW_TPREL_G0/R_AARCH64_TLSLE_MOVW_TPREL_G1_NC
sequence.
ld/testsuite/
PR gas/17843
* ld-aarch64/tlsle.s, ld-aarch64/tlsle.d: New test.
* ld-aarch64/aarch64-elf.exp: Run it.
Diffstat (limited to 'bfd')
-rw-r--r-- | bfd/ChangeLog | 7 | ||||
-rw-r--r-- | bfd/elfxx-aarch64.c | 4 |
2 files changed, 9 insertions, 2 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 72c9196..ee6adb8 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,10 @@ +2015-03-04 Richard Sandiford <richard.sandiford@arm.com> + + PR gas/17843 + * elfxx-aarch64.c (_bfd_aarch64_elf_put_addend): Expect + R_AARCH64_TLSLE_MOVW_TPREL_G0_NC and R_AARCH64_TLSLE_MOVW_TPREL_G1_NC + to be used with MOVK rather than MOVZ. + 2015-03-03 DJ Delorie <dj@redhat.com> * elf32-rl78.c (rl78_elf_relax_section): Only relax ADDR16's if diff --git a/bfd/elfxx-aarch64.c b/bfd/elfxx-aarch64.c index 1d661b3..35f3e22 100644 --- a/bfd/elfxx-aarch64.c +++ b/bfd/elfxx-aarch64.c @@ -304,9 +304,7 @@ _bfd_aarch64_elf_put_addend (bfd *abfd, case BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G2: case BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G1: - case BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G1_NC: case BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G0: - case BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G0_NC: case BFD_RELOC_AARCH64_MOVW_G0_S: case BFD_RELOC_AARCH64_MOVW_G1_S: case BFD_RELOC_AARCH64_MOVW_G2_S: @@ -327,6 +325,8 @@ _bfd_aarch64_elf_put_addend (bfd *abfd, /* Group relocations to create a 16, 32, 48 or 64 bit unsigned data or abs address inline. */ + case BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G0_NC: + case BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G1_NC: case BFD_RELOC_AARCH64_MOVW_G0: case BFD_RELOC_AARCH64_MOVW_G0_NC: case BFD_RELOC_AARCH64_MOVW_G1: |