old-cross-binutils/ld/testsuite/ld-aarch64
Marcus Shawcroft 4106101c44 [AArch64] Workaround for Cortex A53 erratum 843419
Some early revisions of the Cortex-A53 have an erratum (843419).  The
details of the erratum are quite complex and involve dynamic
conditions.  For the purposes of the workaround we have simplified the
static conditions to an ADRP in the last two instructions of a 4KByte
page, followed within four instructions by a load/store dependent on
the ADRP.

This patch adds support to conservatively scan for and workaround
Cortex A53 erratum 843419.  There are two different workaround
strategies used.  The first is to rewrite ADRP instructions which form
part of an erratum sequence with an ADR instruction.  In situations
where the ADR provides insufficient offset the dependent load or store
instruction from the sequence is moved to a stub section and branches
are inserted from the original sequence to the relocated instruction
and back again.

Stub section sizes are rounded up to a multiple of 4096 in order to
ensure that the act of inserting work around stubs does not create
more errata sequences.

Workaround stubs are always inserted into the stub section associated
with the input section containing the erratum sequence.  This ensures
that the fully relocated form of the veneered load store instruction
is available at the point in time when the stub section is written.
2015-04-01 13:16:38 +01:00
..
aarch64-elf.exp [AArch64] Workaround for Cortex A53 erratum 843419 2015-04-01 13:16:38 +01:00
aarch64.ld
copy-reloc-exe.s [AArch64] Improve copy relocation support on four absolute relocation types 2014-08-26 15:48:47 +01:00
copy-reloc-so.s [AArch64] Improve copy relocation support on four absolute relocation types 2014-08-26 15:48:47 +01:00
copy-reloc.d [AArch64] Improve copy relocation support on four absolute relocation types 2014-08-26 15:48:47 +01:00
eh-frame-bar.s Fix linker testsuite failures for Aarch64. 2014-08-26 15:06:49 +01:00
eh-frame-foo.s Fix linker testsuite failures for Aarch64. 2014-08-26 15:06:49 +01:00
eh-frame.d Fix linker testsuite failures for Aarch64. 2014-08-26 15:06:49 +01:00
emit-relocs-257-be.d
emit-relocs-257.d
emit-relocs-257.s
emit-relocs-260-be.d
emit-relocs-260.d
emit-relocs-260.s
emit-relocs-262.d
emit-relocs-262.s
emit-relocs-263.d
emit-relocs-263.s
emit-relocs-264-bad.d [AArch64] Improve copy relocation support on four absolute relocation types 2014-08-26 15:48:47 +01:00
emit-relocs-264.d opcodes/ 2013-01-04 14:59:33 +00:00
emit-relocs-264.s
emit-relocs-265.d
emit-relocs-265.s
emit-relocs-266-bad.d [AArch64] Improve copy relocation support on four absolute relocation types 2014-08-26 15:48:47 +01:00
emit-relocs-266.d opcodes/ 2013-01-04 14:59:33 +00:00
emit-relocs-266.s
emit-relocs-267.d
emit-relocs-267.s
emit-relocs-268-bad.d [AArch64] Improve copy relocation support on four absolute relocation types 2014-08-26 15:48:47 +01:00
emit-relocs-268.d opcodes/ 2013-01-04 14:59:33 +00:00
emit-relocs-268.s
emit-relocs-269-bad.d [AArch64] Improve copy relocation support on four absolute relocation types 2014-08-26 15:48:47 +01:00
emit-relocs-269.d opcodes/ 2013-01-04 14:59:33 +00:00
emit-relocs-269.s
emit-relocs-270-bad.d
emit-relocs-270.d opcodes/ 2013-01-04 14:59:33 +00:00
emit-relocs-270.s
emit-relocs-271.d opcodes/ 2013-01-04 14:59:33 +00:00
emit-relocs-271.s
emit-relocs-272.d opcodes/ 2013-01-04 14:59:33 +00:00
emit-relocs-272.s
emit-relocs-273.d
emit-relocs-273.s
emit-relocs-274.d
emit-relocs-274.s
emit-relocs-275.d
emit-relocs-275.s
emit-relocs-276.d
emit-relocs-276.s
emit-relocs-277.d
emit-relocs-277.s
emit-relocs-278.d
emit-relocs-278.s
emit-relocs-279-bad.d
emit-relocs-279.d
emit-relocs-279.s
emit-relocs-280.d
emit-relocs-280.s
emit-relocs-282.d
emit-relocs-282.s
emit-relocs-283.d
emit-relocs-283.s
emit-relocs-284.d
emit-relocs-284.s
emit-relocs-285.d
emit-relocs-285.s
emit-relocs-286-bad.d
emit-relocs-286.d
emit-relocs-286.s
emit-relocs-287.d
emit-relocs-287.s
emit-relocs-299.d
emit-relocs-299.s
emit-relocs-309-low-bad.d
emit-relocs-309-low.d [AArch64] Adjust testcases for move of &_DYNAMIC to got[0]. 2013-07-02 06:37:33 +00:00
emit-relocs-309-up-bad.d
emit-relocs-309-up.d [AArch64] Adjust testcases for move of &_DYNAMIC to got[0]. 2013-07-02 06:37:33 +00:00
emit-relocs-309.s [PATCH, COMMITTED] [AArch64] Replace the :got_prel19: address modifier with :got: 2013-07-03 17:26:36 +00:00
emit-relocs-311.d [AArch64] Fix creation of .got and placement of _GLOBAL_OFFSET_TABLE_ 2013-07-02 06:39:26 +00:00
emit-relocs-311.s
emit-relocs-312.d [AArch64] Adjust testcases for move of &_DYNAMIC to got[0]. 2013-07-02 06:37:33 +00:00
emit-relocs-312.s
emit-relocs-local-addend-bar.s Enable elf_backend_rela_normal for AArch64 2014-07-08 09:29:06 +01:00
emit-relocs-local-addend-foo.s Enable elf_backend_rela_normal for AArch64 2014-07-08 09:29:06 +01:00
emit-relocs-local-addend.d Move ELF section headers to end of object file 2014-09-11 00:15:51 +09:30
emit-relocs1.s
erratum835769.d [AArch64] Implement branch over stub section. 2015-03-25 15:16:04 +00:00
erratum835769.s [AArch64] Cortex-A53 erratum 835769 linker workaround 2014-10-24 11:39:35 +01:00
erratum843419.d [AArch64] Workaround for Cortex A53 erratum 843419 2015-04-01 13:16:38 +01:00
erratum843419.s [AArch64] Workaround for Cortex A53 erratum 843419 2015-04-01 13:16:38 +01:00
farcall-b-none-function.d
farcall-b-none-function.s
farcall-b.d [AArch64] Implement branch over stub section. 2015-03-25 15:16:04 +00:00
farcall-b.s
farcall-back-be.d [AArch64] Fix branch stubs for BE 2015-03-26 16:20:38 +00:00
farcall-back.d [AArch64] Implement branch over stub section. 2015-03-25 15:16:04 +00:00
farcall-back.s
farcall-bl-none-function.d
farcall-bl-none-function.s
farcall-bl.d [AArch64] Implement branch over stub section. 2015-03-25 15:16:04 +00:00
farcall-bl.s
farcall-section.d
farcall-section.s
gc-got-relocs.d [AArch64] Adjust testcases for move of &_DYNAMIC to got[0]. 2013-07-02 06:37:33 +00:00
gc-plt-hidden.s 2013-04-10 Venkataramanan Kumar <venkataramanan.kumar@linaro.org> 2013-04-10 12:00:14 +00:00
gc-plt-main.s 2013-04-10 Venkataramanan Kumar <venkataramanan.kumar@linaro.org> 2013-04-10 12:00:14 +00:00
gc-plt-relocs.d [AArch64] Fix creation of .got and placement of _GLOBAL_OFFSET_TABLE_ 2013-07-02 06:39:26 +00:00
gc-plt1.s 2013-04-10 Venkataramanan Kumar <venkataramanan.kumar@linaro.org> 2013-04-10 12:00:14 +00:00
gc-plt2.s 2013-04-10 Venkataramanan Kumar <venkataramanan.kumar@linaro.org> 2013-04-10 12:00:14 +00:00
gc-relocs-257-dyn.d 2013-04-10 Venkataramanan Kumar <venkataramanan.kumar@linaro.org> 2013-04-10 12:00:14 +00:00
gc-relocs-257.d 2013-04-10 Venkataramanan Kumar <venkataramanan.kumar@linaro.org> 2013-04-10 12:00:14 +00:00
gc-relocs-257.s 2013-04-10 Venkataramanan Kumar <venkataramanan.kumar@linaro.org> 2013-04-10 12:00:14 +00:00
gc-relocs-309.s [PATCH, COMMITTED] [AArch64] Replace the :got_prel19: address modifier with :got: 2013-07-03 17:26:36 +00:00
gc-relocs-311.s * elf64-aarch64.c (elf64_aarch64_gc_sweep_hook): Use 2013-04-03 14:21:18 +00:00
gc-relocs-312.s * elf64-aarch64.c (elf64_aarch64_gc_sweep_hook): Use 2013-04-03 14:21:18 +00:00
gc-relocs-tlsdesc.s * elf64-aarch64.c (elf64_aarch64_gc_sweep_hook): Use 2013-04-03 14:21:18 +00:00
gc-relocs-tlsgd.s * elf64-aarch64.c (elf64_aarch64_gc_sweep_hook): Use 2013-04-03 14:21:18 +00:00
gc-relocs-tlsie.s * elf64-aarch64.c (elf64_aarch64_gc_sweep_hook): Use 2013-04-03 14:21:18 +00:00
gc-relocs-tlsle.s * elf64-aarch64.c (elf64_aarch64_gc_sweep_hook): Use 2013-04-03 14:21:18 +00:00
gc-start.s * elf64-aarch64.c (elf64_aarch64_gc_sweep_hook): Use 2013-04-03 14:21:18 +00:00
gc-tls-relocs.d Strip undefined symbols from .symtab 2015-02-19 13:36:34 +10:30
ifunc-1-local.d aarch64: Add support for GNU indirect functions. 2013-10-03 14:46:09 +00:00
ifunc-1-local.s aarch64: Add support for GNU indirect functions. 2013-10-03 14:46:09 +00:00
ifunc-1.d aarch64: Add support for GNU indirect functions. 2013-10-03 14:46:09 +00:00
ifunc-1.s aarch64: Add support for GNU indirect functions. 2013-10-03 14:46:09 +00:00
ifunc-2-local.d aarch64: Add support for GNU indirect functions. 2013-10-03 14:46:09 +00:00
ifunc-2-local.s aarch64: Add support for GNU indirect functions. 2013-10-03 14:46:09 +00:00
ifunc-2.d aarch64: Add support for GNU indirect functions. 2013-10-03 14:46:09 +00:00
ifunc-2.s aarch64: Add support for GNU indirect functions. 2013-10-03 14:46:09 +00:00
ifunc-3.s aarch64: Add support for GNU indirect functions. 2013-10-03 14:46:09 +00:00
ifunc-3a.d aarch64: Add support for GNU indirect functions. 2013-10-03 14:46:09 +00:00
ifunc-3b.d aarch64: Add support for GNU indirect functions. 2013-10-03 14:46:09 +00:00
ifunc-4.d aarch64: Add support for GNU indirect functions. 2013-10-03 14:46:09 +00:00
ifunc-4.s aarch64: Add support for GNU indirect functions. 2013-10-03 14:46:09 +00:00
ifunc-4a.d aarch64: Add support for GNU indirect functions. 2013-10-03 14:46:09 +00:00
ifunc-5-local.s aarch64: Add support for GNU indirect functions. 2013-10-03 14:46:09 +00:00
ifunc-5.s aarch64: Add support for GNU indirect functions. 2013-10-03 14:46:09 +00:00
ifunc-5a-local.d aarch64: Add support for GNU indirect functions. 2013-10-03 14:46:09 +00:00
ifunc-5a.d aarch64: Add support for GNU indirect functions. 2013-10-03 14:46:09 +00:00
ifunc-5b-local.d aarch64: Add support for GNU indirect functions. 2013-10-03 14:46:09 +00:00
ifunc-5b.d aarch64: Add support for GNU indirect functions. 2013-10-03 14:46:09 +00:00
ifunc-5r-local.d aarch64: Add support for GNU indirect functions. 2013-10-03 14:46:09 +00:00
ifunc-6.s aarch64: Add support for GNU indirect functions. 2013-10-03 14:46:09 +00:00
ifunc-6a.d aarch64: Add support for GNU indirect functions. 2013-10-03 14:46:09 +00:00
ifunc-6b.d aarch64: Add support for GNU indirect functions. 2013-10-03 14:46:09 +00:00
ifunc-7.s aarch64: Add support for GNU indirect functions. 2013-10-03 14:46:09 +00:00
ifunc-7a.d aarch64: Add support for GNU indirect functions. 2013-10-03 14:46:09 +00:00
ifunc-7b.d aarch64: Add support for GNU indirect functions. 2013-10-03 14:46:09 +00:00
ifunc-7c.d aarch64: Add support for GNU indirect functions. 2013-10-03 14:46:09 +00:00
ifunc-8.d aarch64: Add support for GNU indirect functions. 2013-10-03 14:46:09 +00:00
ifunc-8a.s aarch64: Add support for GNU indirect functions. 2013-10-03 14:46:09 +00:00
ifunc-8b.s aarch64: Add support for GNU indirect functions. 2013-10-03 14:46:09 +00:00
ifunc-9.d aarch64: Add support for GNU indirect functions. 2013-10-03 14:46:09 +00:00
ifunc-9.s aarch64: Add support for GNU indirect functions. 2013-10-03 14:46:09 +00:00
ifunc-10.d aarch64: Add support for GNU indirect functions. 2013-10-03 14:46:09 +00:00
ifunc-10.s aarch64: Add support for GNU indirect functions. 2013-10-03 14:46:09 +00:00
ifunc-11.d aarch64: Add support for GNU indirect functions. 2013-10-03 14:46:09 +00:00
ifunc-11.s aarch64: Add support for GNU indirect functions. 2013-10-03 14:46:09 +00:00
ifunc-12.d aarch64: Add support for GNU indirect functions. 2013-10-03 14:46:09 +00:00
ifunc-12.s aarch64: Add support for GNU indirect functions. 2013-10-03 14:46:09 +00:00
ifunc-13.d aarch64: Add support for GNU indirect functions. 2013-10-03 14:46:09 +00:00
ifunc-13a.s aarch64: Add support for GNU indirect functions. 2013-10-03 14:46:09 +00:00
ifunc-13b.s aarch64: Add support for GNU indirect functions. 2013-10-03 14:46:09 +00:00
ifunc-14a.d aarch64: Add support for GNU indirect functions. 2013-10-03 14:46:09 +00:00
ifunc-14a.s aarch64: Add support for GNU indirect functions. 2013-10-03 14:46:09 +00:00
ifunc-14b.d aarch64: Add support for GNU indirect functions. 2013-10-03 14:46:09 +00:00
ifunc-14b.s aarch64: Add support for GNU indirect functions. 2013-10-03 14:46:09 +00:00
ifunc-14c.d aarch64: Add support for GNU indirect functions. 2013-10-03 14:46:09 +00:00
ifunc-14c.s aarch64: Add support for GNU indirect functions. 2013-10-03 14:46:09 +00:00
ifunc-14d.d aarch64: Add support for GNU indirect functions. 2013-10-03 14:46:09 +00:00
ifunc-14e.d aarch64: Add support for GNU indirect functions. 2013-10-03 14:46:09 +00:00
ifunc-14f.d aarch64: Add support for GNU indirect functions. 2013-10-03 14:46:09 +00:00
ifunc-15.d aarch64: Add support for GNU indirect functions. 2013-10-03 14:46:09 +00:00
ifunc-15.s aarch64: Add support for GNU indirect functions. 2013-10-03 14:46:09 +00:00
ifunc-16.d aarch64: Add support for GNU indirect functions. 2013-10-03 14:46:09 +00:00
ifunc-16.s aarch64: Add support for GNU indirect functions. 2013-10-03 14:46:09 +00:00
ifunc-17a.d aarch64: Add support for GNU indirect functions. 2013-10-03 14:46:09 +00:00
ifunc-17a.s aarch64: Add support for GNU indirect functions. 2013-10-03 14:46:09 +00:00
ifunc-17b.d aarch64: Add support for GNU indirect functions. 2013-10-03 14:46:09 +00:00
ifunc-17b.s aarch64: Add support for GNU indirect functions. 2013-10-03 14:46:09 +00:00
ifunc-18a.d aarch64: Add support for GNU indirect functions. 2013-10-03 14:46:09 +00:00
ifunc-18a.s aarch64: Add support for GNU indirect functions. 2013-10-03 14:46:09 +00:00
ifunc-18b.d aarch64: Add support for GNU indirect functions. 2013-10-03 14:46:09 +00:00
ifunc-18b.s aarch64: Add support for GNU indirect functions. 2013-10-03 14:46:09 +00:00
ifunc-19a.d aarch64: Add support for GNU indirect functions. 2013-10-03 14:46:09 +00:00
ifunc-19a.s aarch64: Add support for GNU indirect functions. 2013-10-03 14:46:09 +00:00
ifunc-19b.d aarch64: Add support for GNU indirect functions. 2013-10-03 14:46:09 +00:00
ifunc-19b.s aarch64: Add support for GNU indirect functions. 2013-10-03 14:46:09 +00:00
ifunc-20.d aarch64: Add support for GNU indirect functions. 2013-10-03 14:46:09 +00:00
ifunc-20.s aarch64: Add support for GNU indirect functions. 2013-10-03 14:46:09 +00:00
ifunc-21.d ld/testsuite/ld-aarch64: Fixup IFUNC tests to work on all targets 2013-12-11 21:05:36 +00:00
ifunc-21.s bfd/elfnn-aarch64.c: Fix miscalculation of GOTPLT offset for ifunc syms. 2013-11-26 15:24:54 +00:00
ifunc-22.d ld/testsuite/ld-aarch64: Fixup IFUNC tests to work on all targets 2013-12-11 21:05:36 +00:00
ifunc-22.s bfd/elfnn-aarch64.c: Handle static links with ifunc correctly. 2013-11-26 15:25:11 +00:00
limit-b.d
limit-b.s
limit-bl.d
limit-bl.s
local-addend-r.d Move ELF section headers to end of object file 2014-09-11 00:15:51 +09:30
pr17415.d [AArch64] Enable overflow check for R_AARCH64_TLSLE_ADD_TPREL_HI12 2015-01-13 11:18:10 +00:00
pr17415.s [AArch64] Enable overflow check for R_AARCH64_TLSLE_ADD_TPREL_HI12 2015-01-13 11:18:10 +00:00
relasz.d bfd/elfnn-aarch64.c: Fix calculation of DT_RELASZ 2014-03-25 09:01:50 +00:00
relasz.s bfd/elfnn-aarch64.c: Fix calculation of DT_RELASZ 2014-03-25 09:01:50 +00:00
relocs-257-symbolic-func.d [AArch64] Fix function pointer variable with -Bsymbolic-functions 2015-01-13 11:36:54 +00:00
relocs-257-symbolic-func.s [AArch64] Fix function pointer variable with -Bsymbolic-functions 2015-01-13 11:36:54 +00:00
relocs.ld
tls-desc-ie.d [AArch64] Fix creation of .got and placement of _GLOBAL_OFFSET_TABLE_ 2013-07-02 06:39:26 +00:00
tls-desc-ie.s
tls-relax-all.d [AArch64] Fix creation of .got and placement of _GLOBAL_OFFSET_TABLE_ 2013-07-02 06:39:26 +00:00
tls-relax-all.s
tls-relax-gd-ie.d [AArch64] Fix creation of .got and placement of _GLOBAL_OFFSET_TABLE_ 2013-07-02 06:39:26 +00:00
tls-relax-gd-ie.s
tls-relax-gd-le.d
tls-relax-gd-le.s
tls-relax-gdesc-ie-2.d [AArch64] Fix creation of .got and placement of _GLOBAL_OFFSET_TABLE_ 2013-07-02 06:39:26 +00:00
tls-relax-gdesc-ie-2.s
tls-relax-gdesc-ie.d [AArch64] Fix creation of .got and placement of _GLOBAL_OFFSET_TABLE_ 2013-07-02 06:39:26 +00:00
tls-relax-gdesc-ie.s [AArch64] Fix off by one error in instruction relaxation mask. 2014-04-15 17:46:07 +01:00
tls-relax-gdesc-le-2.d
tls-relax-gdesc-le-2.s
tls-relax-gdesc-le.d
tls-relax-gdesc-le.s
tls-relax-ie-le-2.d
tls-relax-ie-le-2.s
tls-relax-ie-le-3.d
tls-relax-ie-le-3.s
tls-relax-ie-le.d
tls-relax-ie-le.s
tls-tiny-desc-ie.d [AArch64] Add tiny DESC test cases. 2015-02-26 22:59:27 +00:00
tls-tiny-desc-ie.s [AArch64] Add tiny DESC test cases. 2015-02-26 22:59:27 +00:00
tls-tiny-desc-le.d [AArch64] Add tiny DESC test cases. 2015-02-26 22:59:27 +00:00
tls-tiny-desc-le.s [AArch64] Add tiny DESC test cases. 2015-02-26 22:59:27 +00:00
tls-tiny-desc.d [AArch64] Add tiny DESC test cases. 2015-02-26 22:59:27 +00:00
tls-tiny-desc.s [AArch64] Add tiny DESC test cases. 2015-02-26 22:59:27 +00:00
tls-tiny-gd-ie.d Add tiny memory model GD test cases. 2015-02-26 22:23:09 +00:00
tls-tiny-gd-ie.s Add tiny memory model GD test cases. 2015-02-26 22:23:09 +00:00
tls-tiny-gd-le.d Add tiny memory model GD test cases. 2015-02-26 22:23:09 +00:00
tls-tiny-gd-le.s Add tiny memory model GD test cases. 2015-02-26 22:23:09 +00:00
tls-tiny-gd.d Add tiny memory model GD test cases. 2015-02-26 22:23:09 +00:00
tls-tiny-gd.s Add tiny memory model GD test cases. 2015-02-26 22:23:09 +00:00
tls-tiny-ie.d Adding tls-tiny-ie test. 2015-02-26 22:23:09 +00:00
tls-tiny-ie.s Adding tls-tiny-ie test. 2015-02-26 22:23:09 +00:00
tlsle-symbol-offset.d Fixed AArch64 TLS relocation resolution. 2012-10-16 16:36:50 +00:00
tlsle-symbol-offset.s Fixed AArch64 TLS relocation resolution. 2012-10-16 16:36:50 +00:00
tlsle.d Allow MOVK for R_AARCH64_TLSLE_MOVW_TPREL_G{0,1}NC 2015-03-04 09:09:05 +00:00
tlsle.s Allow MOVK for R_AARCH64_TLSLE_MOVW_TPREL_G{0,1}NC 2015-03-04 09:09:05 +00:00
tprel_g2_overflow.d [AArch64] Enable overflow check for TLSLE_MOVW_TPREL_G2 2015-01-13 11:21:43 +00:00
tprel_g2_overflow.s [AArch64] Enable overflow check for TLSLE_MOVW_TPREL_G2 2015-01-13 11:21:43 +00:00
weak-undefined.d
weak-undefined.s