27 SystemZObjectWriter(uint8_t OSABI);
28 ~SystemZObjectWriter()
override =
default;
38SystemZObjectWriter::SystemZObjectWriter(uint8_t OSABI)
72 case FK_Data_4:
return ELF::R_390_TLS_LE32;
73 case FK_Data_8:
return ELF::R_390_TLS_LE64;
81 case FK_Data_4:
return ELF::R_390_TLS_LDO32;
82 case FK_Data_8:
return ELF::R_390_TLS_LDO64;
90 case FK_Data_4:
return ELF::R_390_TLS_LDM32;
91 case FK_Data_8:
return ELF::R_390_TLS_LDM64;
100 case FK_Data_4:
return ELF::R_390_TLS_GD32;
101 case FK_Data_8:
return ELF::R_390_TLS_GD64;
118unsigned SystemZObjectWriter::getRelocType(
MCContext &Ctx,
121 bool IsPCRel)
const {
133 assert(!IsPCRel &&
"NTPOFF shouldn't be PC-relative");
138 return ELF::R_390_TLS_IEENT;
139 llvm_unreachable(
"Only PC-relative INDNTPOFF accesses are supported for now");
142 assert(!IsPCRel &&
"DTPOFF shouldn't be PC-relative");
146 assert(!IsPCRel &&
"TLSLDM shouldn't be PC-relative");
150 assert(!IsPCRel &&
"TLSGD shouldn't be PC-relative");
155 return ELF::R_390_GOTENT;
159 assert(IsPCRel &&
"@PLT shouldt be PC-relative");
167std::unique_ptr<MCObjectTargetWriter>
169 return std::make_unique<SystemZObjectWriter>(OSABI);
PowerPC TLS Dynamic Call Fixup
assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())
static unsigned getTLSLDMReloc(unsigned Kind)
static unsigned getTLSLDOReloc(unsigned Kind)
static unsigned getPCRelReloc(unsigned Kind)
static unsigned getAbsoluteReloc(unsigned Kind)
static unsigned getPLTReloc(unsigned Kind)
static unsigned getTLSLEReloc(unsigned Kind)
static unsigned getTLSGDReloc(unsigned Kind)
Context object for machine code objects.
virtual unsigned getRelocType(MCContext &Ctx, const MCValue &Target, const MCFixup &Fixup, bool IsPCRel) const =0
Encode information on a single operation to perform on a byte sequence (e.g., an encoded instruction)...
This represents an "assembler immediate".
Target - Wrapper for Target specific information.
#define llvm_unreachable(msg)
Marks that the current location is not supposed to be reachable.
This is an optimization pass for GlobalISel generic memory operations.
std::unique_ptr< MCObjectTargetWriter > createSystemZObjectWriter(uint8_t OSABI)
@ FirstLiteralRelocationKind
The range [FirstLiteralRelocationKind, MaxTargetFixupKind) is used for relocations coming from ....
@ FK_Data_8
A eight-byte fixup.
@ FK_Data_1
A one-byte fixup.
@ FK_Data_4
A four-byte fixup.
@ FK_Data_2
A two-byte fixup.