llvm-project/lld/test
Peter Smith 6b035b607f [LLD][ELF][ARM] Implement Thumb pc-relative relocations for adr and ldr
MC will now output the R_ARM_THM_PC8, R_ARM_THM_PC12 and
R_ARM_THM_PREL_11_0 relocations. These are short-ranged relocations that
are used to implement the adr rd, literal and ldr rd, literal pseudo
instructions.

The instructions use a new RelExpr called R_ARM_PCA in order to calculate
the required S + A - Pa expression, where Pa is AlignDown(P, 4) as the
instructions add their immediate to AlignDown(PC, 4). We also do not want
these relocations to generate or resolve against a PLT entry as the range
of these relocations is so short they would never reach.

The R_ARM_THM_PC8 has a special encoding convention for the relocation
addend, the immediate field is unsigned, yet the addend must be -4 to
account for the Thumb PC bias. The ABI (not the architecture) uses the
convention that the 8-byte immediate of 0xff represents -4.

Differential Revision: https://reviews.llvm.org/D75042
2020-02-28 11:29:29 +00:00
..
COFF [llvm-objdump] Print file format in lowercase to match GNU output. 2020-02-12 08:17:01 -08:00
Driver/Inputs
ELF [LLD][ELF][ARM] Implement Thumb pc-relative relocations for adr and ldr 2020-02-28 11:29:29 +00:00
MinGW Use error instead of fatal to report usage errors 2019-10-10 09:46:41 +00:00
Unit
darwin [Darwin] Do not error on '-lto_library' option 2018-06-13 18:59:14 +00:00
mach-o [LLD] - Fix a test after obj2yaml change. 2019-10-30 18:28:52 +03:00
wasm [lld][WebAssembly] Allow symbols with explict import names to be undefined at link time. 2020-02-19 18:02:49 -08:00
CMakeLists.txt build: reduce CMake handling for zlib 2020-01-02 11:19:12 -08:00
lit.cfg.py ELF: Change FileSize back to a uint64_t. 2019-03-01 18:53:41 +00:00
lit.site.cfg.py.in build: reduce CMake handling for zlib 2020-01-02 11:19:12 -08:00