![]() Arm Architecture v8.5a introduces Branch Target Identification (BTI). When enabled all indirect branches must target a bti instruction of the appropriate form. As PLT sequences may sometimes be the target of an indirect branch and PLT[0] always is, a static linker may need to generate PLT sequences that contain "bti c" as the first instruction. In effect: bti c adrp x16, page offset to .got.plt ... Instead of: adrp x16, page offset to .got.plt ... At present the PLT decoding assumes the adrp will always be the first instruction. This patch adds support for a single "bti c" to prefix it. A test binary has been uploaded with such a PLT sequence. A forthcoming LLD patch will make heavy use of the PLT decoding code. Differential Revision: https://reviews.llvm.org/D62598 llvm-svn: 362523 |
||
---|---|---|
.. | ||
Inputs | ||
arm64_32-fat.test | ||
arm64_32.s | ||
elf-aarch64-mapping-symbols.test | ||
lit.local.cfg | ||
mach-print-armv8crypto.test | ||
macho-arm64e.test | ||
macho-fat-arm-disasm.test | ||
macho-kextbundle.test | ||
macho-link-opt-hints.test | ||
macho-print-mrs.test | ||
macho-print-thread-arm64_32.test | ||
macho-print-thread.test | ||
macho-private-headers.test | ||
macho-reloc-addend.test | ||
macho-symbolized-disassembly.test | ||
macho-zerofill.s | ||
pc-rel-targets.test | ||
plt.test |