mirror of
https://github.com/darlinghq/darling-gdb.git
synced 2024-12-11 14:14:23 +00:00
[Binutils][AARCH64]Add TLS IE large memory support.
bfd/ 2015-10-02 Renlin Li <renlin.li@arm.com> * reloc.c: Make AARCH64_TLSIE_MOVW_GOTTPREL_G1 and AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC defined in alphabetical order. * libbfd.h: Regenerate. * bfd-in2.h: Likewise. * elfnn-aarch64.c (elfNN_aarch64_howto_table): Make TLSIE_MOVW_GOTTPREL_G1 check overflow. (aarch64_reloc_got_type): Add support for TLSIE_MOVW_GOTTPREL_G1 and TLSIE_MOVW_GOTTPREL_G0_NC. (elfNN_aarch64_final_link_relocate): Likewise. (elfNN_aarch64_relocate_section): Likewise. (elfNN_aarch64_gc_sweep_hook): Likewise. (elfNN_aarch64_check_relocs): Likewise. * elfxx-aarch64.c (_bfd_aarch64_elf_put_addend): Likewise. (_bfd_aarch64_elf_resolve_relocation): Likewise. gas/ 2015-10-02 Renlin Li <renlin.li@arm.com> * config/tc-aarch64.c (reloc_table): Add two entries for gottprel_g0_nc and gottprel_g1. (process_movw_reloc_info): Add support. (md_apply_fix): Likewise. (aarch64_force_relocation): Likewise. gas/testsuite/ 2015-10-02 Renlin Li <renlin.li@arm.com> * gas/aarch64/reloc-gottprel_g0_nc.d: New. * gas/aarch64/reloc-gottprel_g0_nc.s: New. * gas/aarch64/reloc-gottprel_g1.d: New. * gas/aarch64/reloc-gottprel_g1.s: New. ld/testsuite/ 2015-10-02 Renlin Li <renlin.li@arm.com> * ld-aarch64/tls-large-ie.d: New. * ld-aarch64/tls-large-ie.s: New. * ld-aarch64/aarch64-elf.exp: Run new test.
This commit is contained in:
parent
7ba7cfe431
commit
3b957e5b07
@ -1,3 +1,20 @@
|
||||
2015-10-02 Renlin Li <renlin.li@arm.com>
|
||||
|
||||
* reloc.c: Make AARCH64_TLSIE_MOVW_GOTTPREL_G1 and
|
||||
AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC defined in alphabetical order.
|
||||
* libbfd.h: Regenerate.
|
||||
* bfd-in2.h: Likewise.
|
||||
* elfnn-aarch64.c (elfNN_aarch64_howto_table): Make
|
||||
TLSIE_MOVW_GOTTPREL_G1 check overflow.
|
||||
(aarch64_reloc_got_type): Add support for TLSIE_MOVW_GOTTPREL_G1
|
||||
and TLSIE_MOVW_GOTTPREL_G0_NC.
|
||||
(elfNN_aarch64_final_link_relocate): Likewise.
|
||||
(elfNN_aarch64_relocate_section): Likewise.
|
||||
(elfNN_aarch64_gc_sweep_hook): Likewise.
|
||||
(elfNN_aarch64_check_relocs): Likewise.
|
||||
* elfxx-aarch64.c (_bfd_aarch64_elf_put_addend): Likewise.
|
||||
(_bfd_aarch64_elf_resolve_relocation): Likewise.
|
||||
|
||||
2015-10-02 Renlin Li <renlin.li@arm.com>
|
||||
|
||||
* elfnn-aarch64.c (aarch64_reloc_got_type): Add
|
||||
|
@ -5792,12 +5792,6 @@ BFD_RELOC_AARCH64_TLSGD_ADR_PAGE21. */
|
||||
/* AArch64 TLS General Dynamic relocation. */
|
||||
BFD_RELOC_AARCH64_TLSGD_MOVW_G1,
|
||||
|
||||
/* AArch64 TLS INITIAL EXEC relocation. */
|
||||
BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G1,
|
||||
|
||||
/* AArch64 TLS INITIAL EXEC relocation. */
|
||||
BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC,
|
||||
|
||||
/* AArch64 TLS INITIAL EXEC relocation. */
|
||||
BFD_RELOC_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21,
|
||||
|
||||
@ -5810,6 +5804,12 @@ BFD_RELOC_AARCH64_TLSGD_ADR_PAGE21. */
|
||||
/* AArch64 TLS INITIAL EXEC relocation. */
|
||||
BFD_RELOC_AARCH64_TLSIE_LD_GOTTPREL_PREL19,
|
||||
|
||||
/* AArch64 TLS INITIAL EXEC relocation. */
|
||||
BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC,
|
||||
|
||||
/* AArch64 TLS INITIAL EXEC relocation. */
|
||||
BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G1,
|
||||
|
||||
/* bit[23:12] of byte offset to module TLS base address. */
|
||||
BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_HI12,
|
||||
|
||||
|
@ -1038,34 +1038,6 @@ static reloc_howto_type elfNN_aarch64_howto_table[] =
|
||||
0xffff, /* dst_mask */
|
||||
FALSE), /* pcrel_offset */
|
||||
|
||||
HOWTO64 (AARCH64_R (TLSIE_MOVW_GOTTPREL_G1), /* type */
|
||||
16, /* rightshift */
|
||||
2, /* size (0 = byte, 1 = short, 2 = long) */
|
||||
16, /* bitsize */
|
||||
FALSE, /* pc_relative */
|
||||
0, /* bitpos */
|
||||
complain_overflow_dont, /* complain_on_overflow */
|
||||
bfd_elf_generic_reloc, /* special_function */
|
||||
AARCH64_R_STR (TLSIE_MOVW_GOTTPREL_G1), /* name */
|
||||
FALSE, /* partial_inplace */
|
||||
0xffff, /* src_mask */
|
||||
0xffff, /* dst_mask */
|
||||
FALSE), /* pcrel_offset */
|
||||
|
||||
HOWTO64 (AARCH64_R (TLSIE_MOVW_GOTTPREL_G0_NC), /* type */
|
||||
0, /* rightshift */
|
||||
2, /* size (0 = byte, 1 = short, 2 = long) */
|
||||
16, /* bitsize */
|
||||
FALSE, /* pc_relative */
|
||||
0, /* bitpos */
|
||||
complain_overflow_dont, /* complain_on_overflow */
|
||||
bfd_elf_generic_reloc, /* special_function */
|
||||
AARCH64_R_STR (TLSIE_MOVW_GOTTPREL_G0_NC), /* name */
|
||||
FALSE, /* partial_inplace */
|
||||
0xffff, /* src_mask */
|
||||
0xffff, /* dst_mask */
|
||||
FALSE), /* pcrel_offset */
|
||||
|
||||
HOWTO (AARCH64_R (TLSIE_ADR_GOTTPREL_PAGE21), /* type */
|
||||
12, /* rightshift */
|
||||
2, /* size (0 = byte, 1 = short, 2 = long) */
|
||||
@ -1122,6 +1094,34 @@ static reloc_howto_type elfNN_aarch64_howto_table[] =
|
||||
0x1ffffc, /* dst_mask */
|
||||
FALSE), /* pcrel_offset */
|
||||
|
||||
HOWTO64 (AARCH64_R (TLSIE_MOVW_GOTTPREL_G0_NC), /* type */
|
||||
0, /* rightshift */
|
||||
2, /* size (0 = byte, 1 = short, 2 = long) */
|
||||
16, /* bitsize */
|
||||
FALSE, /* pc_relative */
|
||||
0, /* bitpos */
|
||||
complain_overflow_dont, /* complain_on_overflow */
|
||||
bfd_elf_generic_reloc, /* special_function */
|
||||
AARCH64_R_STR (TLSIE_MOVW_GOTTPREL_G0_NC), /* name */
|
||||
FALSE, /* partial_inplace */
|
||||
0xffff, /* src_mask */
|
||||
0xffff, /* dst_mask */
|
||||
FALSE), /* pcrel_offset */
|
||||
|
||||
HOWTO64 (AARCH64_R (TLSIE_MOVW_GOTTPREL_G1), /* type */
|
||||
16, /* rightshift */
|
||||
2, /* size (0 = byte, 1 = short, 2 = long) */
|
||||
16, /* bitsize */
|
||||
FALSE, /* pc_relative */
|
||||
0, /* bitpos */
|
||||
complain_overflow_unsigned, /* complain_on_overflow */
|
||||
bfd_elf_generic_reloc, /* special_function */
|
||||
AARCH64_R_STR (TLSIE_MOVW_GOTTPREL_G1), /* name */
|
||||
FALSE, /* partial_inplace */
|
||||
0xffff, /* src_mask */
|
||||
0xffff, /* dst_mask */
|
||||
FALSE), /* pcrel_offset */
|
||||
|
||||
/* ADD: bit[23:12] of byte offset to module TLS base address. */
|
||||
HOWTO (AARCH64_R (TLSLD_ADD_DTPREL_HI12), /* type */
|
||||
12, /* rightshift */
|
||||
@ -4506,6 +4506,8 @@ aarch64_reloc_got_type (bfd_reloc_code_real_type r_type)
|
||||
case BFD_RELOC_AARCH64_TLSIE_LD32_GOTTPREL_LO12_NC:
|
||||
case BFD_RELOC_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC:
|
||||
case BFD_RELOC_AARCH64_TLSIE_LD_GOTTPREL_PREL19:
|
||||
case BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC:
|
||||
case BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G1:
|
||||
return GOT_TLS_IE;
|
||||
|
||||
default:
|
||||
@ -5476,6 +5478,8 @@ elfNN_aarch64_final_link_relocate (reloc_howto_type *howto,
|
||||
|
||||
case BFD_RELOC_AARCH64_TLSGD_MOVW_G0_NC:
|
||||
case BFD_RELOC_AARCH64_TLSGD_MOVW_G1:
|
||||
case BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC:
|
||||
case BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G1:
|
||||
if (globals->root.sgot == NULL)
|
||||
return bfd_reloc_notsupported;
|
||||
|
||||
@ -6120,6 +6124,8 @@ elfNN_aarch64_relocate_section (bfd *output_bfd,
|
||||
case BFD_RELOC_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21:
|
||||
case BFD_RELOC_AARCH64_TLSIE_LDNN_GOTTPREL_LO12_NC:
|
||||
case BFD_RELOC_AARCH64_TLSIE_LD_GOTTPREL_PREL19:
|
||||
case BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC:
|
||||
case BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G1:
|
||||
if (! symbol_got_offset_mark_p (input_bfd, h, r_symndx))
|
||||
{
|
||||
bfd_boolean need_relocs = FALSE;
|
||||
@ -6566,6 +6572,8 @@ elfNN_aarch64_gc_sweep_hook (bfd *abfd,
|
||||
case BFD_RELOC_AARCH64_TLSIE_LD32_GOTTPREL_LO12_NC:
|
||||
case BFD_RELOC_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC:
|
||||
case BFD_RELOC_AARCH64_TLSIE_LD_GOTTPREL_PREL19:
|
||||
case BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC:
|
||||
case BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G1:
|
||||
case BFD_RELOC_AARCH64_TLSLD_ADD_LO12_NC:
|
||||
case BFD_RELOC_AARCH64_TLSLD_ADR_PAGE21:
|
||||
case BFD_RELOC_AARCH64_TLSLD_ADR_PREL21:
|
||||
@ -7041,6 +7049,8 @@ elfNN_aarch64_check_relocs (bfd *abfd, struct bfd_link_info *info,
|
||||
case BFD_RELOC_AARCH64_TLSIE_LD32_GOTTPREL_LO12_NC:
|
||||
case BFD_RELOC_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC:
|
||||
case BFD_RELOC_AARCH64_TLSIE_LD_GOTTPREL_PREL19:
|
||||
case BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC:
|
||||
case BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G1:
|
||||
case BFD_RELOC_AARCH64_TLSLD_ADD_LO12_NC:
|
||||
case BFD_RELOC_AARCH64_TLSLD_ADR_PAGE21:
|
||||
case BFD_RELOC_AARCH64_TLSLD_ADR_PREL21:
|
||||
|
@ -335,6 +335,8 @@ _bfd_aarch64_elf_put_addend (bfd *abfd,
|
||||
case BFD_RELOC_AARCH64_MOVW_GOTOFF_G1:
|
||||
case BFD_RELOC_AARCH64_TLSGD_MOVW_G0_NC:
|
||||
case BFD_RELOC_AARCH64_TLSGD_MOVW_G1:
|
||||
case BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC:
|
||||
case BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G1:
|
||||
case BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G0_NC:
|
||||
case BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G1_NC:
|
||||
case BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G0_NC:
|
||||
@ -492,6 +494,7 @@ _bfd_aarch64_elf_resolve_relocation (bfd_reloc_code_real_type r_type,
|
||||
value = value + addend;
|
||||
break;
|
||||
|
||||
case BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G1:
|
||||
case BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G1:
|
||||
case BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G1_NC:
|
||||
value = (value + addend) & (bfd_vma) 0xffff0000;
|
||||
@ -502,6 +505,7 @@ _bfd_aarch64_elf_resolve_relocation (bfd_reloc_code_real_type r_type,
|
||||
value = (value + addend) & ~(bfd_vma) 0xfff;
|
||||
break;
|
||||
|
||||
case BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC:
|
||||
case BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G0:
|
||||
case BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G0_NC:
|
||||
value = (value + addend) & (bfd_vma) 0xffff;
|
||||
|
@ -2757,12 +2757,12 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@",
|
||||
"BFD_RELOC_AARCH64_TLSGD_ADD_LO12_NC",
|
||||
"BFD_RELOC_AARCH64_TLSGD_MOVW_G0_NC",
|
||||
"BFD_RELOC_AARCH64_TLSGD_MOVW_G1",
|
||||
"BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G1",
|
||||
"BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC",
|
||||
"BFD_RELOC_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21",
|
||||
"BFD_RELOC_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC",
|
||||
"BFD_RELOC_AARCH64_TLSIE_LD32_GOTTPREL_LO12_NC",
|
||||
"BFD_RELOC_AARCH64_TLSIE_LD_GOTTPREL_PREL19",
|
||||
"BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC",
|
||||
"BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G1",
|
||||
"BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_HI12",
|
||||
"BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_LO12",
|
||||
"BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_LO12_NC",
|
||||
|
16
bfd/reloc.c
16
bfd/reloc.c
@ -6837,14 +6837,6 @@ ENUM
|
||||
BFD_RELOC_AARCH64_TLSGD_MOVW_G1
|
||||
ENUMDOC
|
||||
AArch64 TLS General Dynamic relocation.
|
||||
ENUM
|
||||
BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G1
|
||||
ENUMDOC
|
||||
AArch64 TLS INITIAL EXEC relocation.
|
||||
ENUM
|
||||
BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC
|
||||
ENUMDOC
|
||||
AArch64 TLS INITIAL EXEC relocation.
|
||||
ENUM
|
||||
BFD_RELOC_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21
|
||||
ENUMDOC
|
||||
@ -6861,6 +6853,14 @@ ENUM
|
||||
BFD_RELOC_AARCH64_TLSIE_LD_GOTTPREL_PREL19
|
||||
ENUMDOC
|
||||
AArch64 TLS INITIAL EXEC relocation.
|
||||
ENUM
|
||||
BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC
|
||||
ENUMDOC
|
||||
AArch64 TLS INITIAL EXEC relocation.
|
||||
ENUM
|
||||
BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G1
|
||||
ENUMDOC
|
||||
AArch64 TLS INITIAL EXEC relocation.
|
||||
ENUM
|
||||
BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_HI12
|
||||
ENUMDOC
|
||||
|
@ -1,3 +1,11 @@
|
||||
2015-10-02 Renlin Li <renlin.li@arm.com>
|
||||
|
||||
* config/tc-aarch64.c (reloc_table): Add two entries for
|
||||
gottprel_g0_nc and gottprel_g1.
|
||||
(process_movw_reloc_info): Add support.
|
||||
(md_apply_fix): Likewise.
|
||||
(aarch64_force_relocation): Likewise.
|
||||
|
||||
2015-10-02 Renlin Li <renlin.li@arm.com>
|
||||
|
||||
* config/tc-aarch64.c (reloc_table): New relocation modifier tlsgd_g0_nc.
|
||||
|
@ -2482,6 +2482,24 @@ static struct reloc_table_entry reloc_table[] = {
|
||||
BFD_RELOC_AARCH64_LD64_GOTOFF_LO15,
|
||||
0},
|
||||
|
||||
/* Get to the page containing GOT TLS entry for a symbol */
|
||||
{"gottprel_g0_nc", 0,
|
||||
0, /* adr_type */
|
||||
0,
|
||||
BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC,
|
||||
0,
|
||||
0,
|
||||
0},
|
||||
|
||||
/* Get to the page containing GOT TLS entry for a symbol */
|
||||
{"gottprel_g1", 0,
|
||||
0, /* adr_type */
|
||||
0,
|
||||
BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G1,
|
||||
0,
|
||||
0,
|
||||
0},
|
||||
|
||||
/* Get to the page containing GOT TLS entry for a symbol */
|
||||
{"tlsgd", 0,
|
||||
BFD_RELOC_AARCH64_TLSGD_ADR_PREL21, /* adr_type */
|
||||
@ -4706,6 +4724,7 @@ process_movw_reloc_info (void)
|
||||
case BFD_RELOC_AARCH64_MOVW_G0_S:
|
||||
case BFD_RELOC_AARCH64_MOVW_GOTOFF_G0_NC:
|
||||
case BFD_RELOC_AARCH64_TLSGD_MOVW_G0_NC:
|
||||
case BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC:
|
||||
case BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G0:
|
||||
case BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G0_NC:
|
||||
case BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G0:
|
||||
@ -4717,6 +4736,7 @@ process_movw_reloc_info (void)
|
||||
case BFD_RELOC_AARCH64_MOVW_G1_S:
|
||||
case BFD_RELOC_AARCH64_MOVW_GOTOFF_G1:
|
||||
case BFD_RELOC_AARCH64_TLSGD_MOVW_G1:
|
||||
case BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G1:
|
||||
case BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G1:
|
||||
case BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G1_NC:
|
||||
case BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G1:
|
||||
@ -6942,6 +6962,8 @@ md_apply_fix (fixS * fixP, valueT * valP, segT seg)
|
||||
case BFD_RELOC_AARCH64_TLSIE_LD32_GOTTPREL_LO12_NC:
|
||||
case BFD_RELOC_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC:
|
||||
case BFD_RELOC_AARCH64_TLSIE_LD_GOTTPREL_PREL19:
|
||||
case BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC:
|
||||
case BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G1:
|
||||
case BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_HI12:
|
||||
case BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_LO12:
|
||||
case BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_LO12_NC:
|
||||
@ -7172,7 +7194,9 @@ aarch64_force_relocation (struct fix *fixp)
|
||||
case BFD_RELOC_AARCH64_TLSIE_LD32_GOTTPREL_LO12_NC:
|
||||
case BFD_RELOC_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC:
|
||||
case BFD_RELOC_AARCH64_TLSIE_LD_GOTTPREL_PREL19:
|
||||
case BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_HI12:
|
||||
case BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC:
|
||||
case BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G1:
|
||||
case BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_HI12:
|
||||
case BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_LO12:
|
||||
case BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_LO12_NC:
|
||||
case BFD_RELOC_AARCH64_TLSLD_ADD_LO12_NC:
|
||||
|
@ -1,3 +1,10 @@
|
||||
2015-10-02 Renlin Li <renlin.li@arm.com>
|
||||
|
||||
* gas/aarch64/reloc-gottprel_g0_nc.d: New.
|
||||
* gas/aarch64/reloc-gottprel_g0_nc.s: New.
|
||||
* gas/aarch64/reloc-gottprel_g1.d: New.
|
||||
* gas/aarch64/reloc-gottprel_g1.s: New.
|
||||
|
||||
2015-10-02 Renlin Li <renlin.li@arm.com>
|
||||
|
||||
* gas/aarch64/reloc-tlsgd_g0_nc.d: New.
|
||||
|
9
gas/testsuite/gas/aarch64/reloc-gottprel_g0_nc.d
Normal file
9
gas/testsuite/gas/aarch64/reloc-gottprel_g0_nc.d
Normal file
@ -0,0 +1,9 @@
|
||||
#objdump: -dr
|
||||
|
||||
.*: file format .*
|
||||
|
||||
Disassembly of section \.text:
|
||||
|
||||
0000000000000000 <.*>:
|
||||
0: f280001c movk x28, #0x0
|
||||
0: R_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC x
|
4
gas/testsuite/gas/aarch64/reloc-gottprel_g0_nc.s
Normal file
4
gas/testsuite/gas/aarch64/reloc-gottprel_g0_nc.s
Normal file
@ -0,0 +1,4 @@
|
||||
// Test file for AArch64 GAS -- gottprel_g0_nc
|
||||
|
||||
func:
|
||||
movk x28, #:gottprel_g0_nc:x
|
9
gas/testsuite/gas/aarch64/reloc-gottprel_g1.d
Normal file
9
gas/testsuite/gas/aarch64/reloc-gottprel_g1.d
Normal file
@ -0,0 +1,9 @@
|
||||
#objdump: -dr
|
||||
|
||||
.*: file format .*
|
||||
|
||||
Disassembly of section \.text:
|
||||
|
||||
0000000000000000 <.*>:
|
||||
0: d2a0001c movz x28, #0x0, lsl #16
|
||||
0: R_AARCH64_TLSIE_MOVW_GOTTPREL_G1 x
|
4
gas/testsuite/gas/aarch64/reloc-gottprel_g1.s
Normal file
4
gas/testsuite/gas/aarch64/reloc-gottprel_g1.s
Normal file
@ -0,0 +1,4 @@
|
||||
// Test file for AArch64 GAS -- gottprel_g1
|
||||
|
||||
func:
|
||||
movz x28, #:gottprel_g1:x
|
@ -1,3 +1,9 @@
|
||||
2015-10-02 Renlin Li <renlin.li@arm.com>
|
||||
|
||||
* ld-aarch64/tls-large-ie.d: New.
|
||||
* ld-aarch64/tls-large-ie.s: New.
|
||||
* ld-aarch64/aarch64-elf.exp: Run new test.
|
||||
|
||||
2015-10-02 Renlin Li <renlin.li@arm.com>
|
||||
|
||||
* ld-aarch64/emit-relocs-516.d: New.
|
||||
|
@ -197,6 +197,7 @@ run_dump_test "tls-tiny-desc"
|
||||
run_dump_test "tls-tiny-desc-ie"
|
||||
run_dump_test "tls-tiny-desc-le"
|
||||
run_dump_test "tls-tiny-ie"
|
||||
run_dump_test "tls-large-ie"
|
||||
run_dump_test "tls-tiny-ld"
|
||||
run_dump_test "tls-small-ld"
|
||||
run_dump_test "tlsle"
|
||||
|
19
ld/testsuite/ld-aarch64/tls-large-ie.d
Normal file
19
ld/testsuite/ld-aarch64/tls-large-ie.d
Normal file
@ -0,0 +1,19 @@
|
||||
#source: tls-large-ie.s
|
||||
#ld: -shared -T relocs.ld -e0
|
||||
#objdump: -dr
|
||||
#...
|
||||
|
||||
Disassembly of section .text:
|
||||
|
||||
0000000000010000 \<test\>:
|
||||
10000: 58000121 ldr x1, 10024 \<test\+0x24\>
|
||||
10004: 10000102 adr x2, 10024 \<test\+0x24\>
|
||||
10008: 8b020021 add x1, x1, x2
|
||||
1000c: d53bd042 mrs x2, tpidr_el0
|
||||
10010: d2a00000 movz x0, #0x0, lsl #16
|
||||
10014: f2800100 movk x0, #0x8
|
||||
10018: f8606820 ldr x0, \[x1,x0\]
|
||||
1001c: 8b020000 add x0, x0, x2
|
||||
10020: d503201f nop
|
||||
10024: 0000ffdc .word 0x0000ffdc
|
||||
10028: 00000000 .word 0x00000000
|
15
ld/testsuite/ld-aarch64/tls-large-ie.s
Normal file
15
ld/testsuite/ld-aarch64/tls-large-ie.s
Normal file
@ -0,0 +1,15 @@
|
||||
.global var
|
||||
.text
|
||||
test:
|
||||
ldr x1, .Lgot
|
||||
adr x2, .Lgot
|
||||
add x1, x1, x2
|
||||
|
||||
mrs x2, tpidr_el0
|
||||
movz x0, #:gottprel_g1:var
|
||||
movk x0, #:gottprel_g0_nc:var
|
||||
ldr x0, [x1, x0]
|
||||
add x0, x0, x2
|
||||
nop
|
||||
|
||||
.Lgot: .xword _GLOBAL_OFFSET_TABLE_ - .
|
Loading…
Reference in New Issue
Block a user