[PATCH] aarch64: ld: fix relaxations for ilp32 mode
Andreas Schwab
schwab@linux-m68k.org
Thu Jan 19 12:34:00 GMT 2017
On Jan 19 2017, Yury Norov <ynorov@caviumnetworks.com> wrote:
> @@ -5640,11 +5669,12 @@ elfNN_aarch64_tls_relax (struct elf_aarch64_link_hash_table *globals,
> if (is_local)
> {
> /* GD->LE relaxation:
> - adrp x0, :tlsgd:var => movz x0, :tprel_g1:var
> + adrp x0, :tlsgd:var => movz R0, :tprel_g1:var
> or
> - adrp x0, :tlsdesc:var => movz x0, :tprel_g1:var
> - */
> - bfd_putl32 (0xd2a00000, contents + rel->r_offset);
> + adrp x0, :tlsdesc:var => movz R0, :tprel_g1:var
> +
> + Where R is x for LP64, and x for ilp32. */
s/x/w/, and ILP32 for consistency.
> @@ -5707,17 +5738,17 @@ elfNN_aarch64_tls_relax (struct elf_aarch64_link_hash_table *globals,
> {
> /* Tiny GD->LE relaxation:
> adr x0, :tlsgd:var => mrs x1, tpidr_el0
> - bl __tls_get_addr => add x0, x1, #:tprel_hi12:x, lsl #12
> - nop => add x0, x0, #:tprel_lo12_nc:x
> - */
> + bl __tls_get_addr => add R0, R1, #:tprel_hi12:x, lsl #12
> + nop => add R0, R0, #:tprel_lo12_nc:x
> +
> + Where R is x for LP64, and x for ilp32. */
Ditto.
Andreas.
--
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5
"And now for something completely different."
More information about the Binutils
mailing list