llvm-project/llvm/lib/Target/ARM/MCTargetDesc
Peter Smith 2a92fc9b8e [MC][ELF][ARM] Add relocations for some pc-relative fixups
Add ELF relocations for the following fixups:
fixup_thumb_adr_pcrel_10 -> R_ARM_THM_PC8
fixup_thumb_cp -> R_ARM_THM_PC8
fixup_t2_adr_pcrel_12 -> R_ARM_THM_PREL_11_0
fixup_t2_ldst_pcrel_12 -> R_ARM_THM_PC12

While these relocations are short-ranged there is support in the open
source ELF linker's in binutils and soon to be in LLD. MC will no longer
resolve pc-relative fixups to global symbols due to interpositioning
concerns. We can handle these at link time by implementing the relocations.

The R_ARM_THM_PC8 has some extra encoding rules for addends that llvm-mc
sidesteps by not supporting addends for these instructions, using the wide
Thumb 2 instruction if it is available. I think that this is a reasonable
compromise given that these are rare.

This partiall reverts D72892, the Thumb fixups no longer need to be
evaluated at assembly time.

Differential Revision: https://reviews.llvm.org/D75039
2020-02-28 11:29:29 +00:00
..
ARMAddressingModes.h [ARM] Rename NEONModImm to VMOVModImm. NFC 2019-07-23 09:19:24 +00:00
ARMAsmBackend.cpp [MC][ELF][ARM] Add relocations for some pc-relative fixups 2020-02-28 11:29:29 +00:00
ARMAsmBackend.h [ARM] Support .reloc *, R_ARM_NONE, * 2019-05-17 02:51:54 +00:00
ARMAsmBackendDarwin.h [macho][NFC] Extract all CPU_(SUB_)TYPE logic to BinaryFormat 2020-02-21 12:43:29 -08:00
ARMAsmBackendELF.h
ARMAsmBackendWinCOFF.h
ARMBaseInfo.h [ARM][MVE] validForTailPredication insts 2019-10-15 13:12:51 +00:00
ARMELFObjectWriter.cpp [MC][ELF][ARM] Add relocations for some pc-relative fixups 2020-02-28 11:29:29 +00:00
ARMELFStreamer.cpp [MC][ARM] Don't create multiple .ARM.exidx associated to one .text 2020-02-25 18:18:13 -08:00
ARMFixupKinds.h [ARM] Add the non-MVE instructions in Arm v8.1-M. 2019-06-11 09:29:18 +00:00
ARMInstPrinter.cpp [ARM,MVE] Revise immediate VBIC/VORR to look more like NEON. 2020-01-23 11:53:52 +00:00
ARMInstPrinter.h [ARM,MVE] Revise immediate VBIC/VORR to look more like NEON. 2020-01-23 11:53:52 +00:00
ARMMCAsmInfo.cpp Revert "[ARM] Uses "Sun Style" syntax for section switching" 2019-10-25 14:03:07 -07:00
ARMMCAsmInfo.h
ARMMCCodeEmitter.cpp [ARM,MVE] Revise immediate VBIC/VORR to look more like NEON. 2020-01-23 11:53:52 +00:00
ARMMCExpr.cpp
ARMMCExpr.h
ARMMCTargetDesc.cpp [ARM] Add initial support for Custom Datapath Extension (CDE) 2020-02-17 15:39:16 +00:00
ARMMCTargetDesc.h [ARM] Add initial support for Custom Datapath Extension (CDE) 2020-02-17 15:39:16 +00:00
ARMMachORelocationInfo.cpp
ARMMachObjectWriter.cpp [MC] Minor cleanup to MCFixup::Kind handling. NFC. 2019-08-23 01:00:55 +00:00
ARMTargetStreamer.cpp [MC] De-capitalize some MCStreamer::Emit* functions 2020-02-14 19:11:53 -08:00
ARMUnwindOpAsm.cpp [MC] De-capitalize some MCStreamer::Emit* functions 2020-02-14 19:11:53 -08:00
ARMUnwindOpAsm.h [MC] De-capitalize some MCStreamer::Emit* functions 2020-02-14 19:11:53 -08:00
ARMWinCOFFObjectWriter.cpp [llvm] Migrate llvm::make_unique to std::make_unique 2019-08-15 15:54:37 +00:00
ARMWinCOFFStreamer.cpp [MC] De-capitalize some MCStreamer::Emit* functions 2020-02-14 19:11:53 -08:00
CMakeLists.txt [cmake] Explicitly mark libraries defined in lib/ as "Component Libraries" 2019-11-21 10:48:08 -08:00
LLVMBuild.txt [AArch64][SVE] Fix -DBUILD_SHARED_LIBS=on builds after -D74808/1874dee5662603c9251228c71b66de72cec0c979 2020-02-21 13:59:47 -08:00