38 return (
Value >> 32) & 0xffffffff;
48 return Value & 0xffffffff;
96 {
"fixup_ve_reflong", 0, 32, 0}, {
"fixup_ve_srel32", 0, 32, 0},
97 {
"fixup_ve_hi32", 0, 32, 0}, {
"fixup_ve_lo32", 0, 32, 0},
98 {
"fixup_ve_pc_hi32", 0, 32, 0}, {
"fixup_ve_pc_lo32", 0, 32, 0},
99 {
"fixup_ve_got_hi32", 0, 32, 0}, {
"fixup_ve_got_lo32", 0, 32, 0},
100 {
"fixup_ve_gotoff_hi32", 0, 32, 0}, {
"fixup_ve_gotoff_lo32", 0, 32, 0},
101 {
"fixup_ve_plt_hi32", 0, 32, 0}, {
"fixup_ve_plt_lo32", 0, 32, 0},
102 {
"fixup_ve_tls_gd_hi32", 0, 32, 0}, {
"fixup_ve_tls_gd_lo32", 0, 32, 0},
103 {
"fixup_ve_tpoff_hi32", 0, 32, 0}, {
"fixup_ve_tpoff_lo32", 0, 32, 0},
127 if ((Count % 8) != 0)
130 for (
uint64_t i = 0; i < Count; i += 8)
131 support::endian::write<uint64_t>(
OS, 0x7900000000000000ULL,
138class ELFVEAsmBackend :
public VEAsmBackend {
143 : VEAsmBackend(
T), OSType(OSType) {}
145 std::unique_ptr<MCObjectTargetWriter>
146 createObjectTargetWriter()
const override {
156 switch (
Fixup.getKind()) {
176 "Invalid fixup offset!");
180 for (
unsigned i = 0; i != NumBytes; ++i) {
unsigned const MachineRegisterInfo * MRI
assert(UImm &&(UImm !=~static_cast< T >(0)) &&"Invalid immediate!")
Analysis containing CSE Info
Returns the sub type a function will return at a given Idx Should correspond to the result type of an ExtractValue instruction executed with just that one unsigned Idx
mir Rename Register Operands
PowerPC TLS Dynamic Call Fixup
static uint64_t adjustFixupValue(unsigned Kind, uint64_t Value)
static unsigned getFixupKindNumBytes(unsigned Kind)
getFixupKindNumBytes - The number of bytes the fixup may change.
ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory),...
Generic interface to target specific assembler backends.
virtual bool writeNopData(raw_ostream &OS, uint64_t Count, const MCSubtargetInfo *STI) const =0
Write an (optimal) nop sequence of Count bytes to the given output.
virtual MCFixupKindInfo getFixupKindInfo(MCFixupKind Kind) const
Get information on a fixup kind.
virtual bool mayNeedRelaxation(unsigned Opcode, ArrayRef< MCOperand > Operands, const MCSubtargetInfo &STI) const
Check whether the given instruction (encoded as Opcode+Operands) may need relaxation.
virtual void applyFixup(const MCFragment &, const MCFixup &, const MCValue &Target, uint8_t *Data, uint64_t Value, bool IsResolved)=0
Encode information on a single operation to perform on a byte sequence (e.g., an encoded instruction)...
MCRegisterInfo base class - We assume that the target defines a static array of MCRegisterDesc object...
Generic base class for all target subtargets.
const Triple & getTargetTriple() const
Target - Wrapper for Target specific information.
OSType getOS() const
Get the parsed operating system type of this triple.
LLVM Value Representation.
This class implements an extremely fast bulk output stream that can only output to a stream.
#define llvm_unreachable(msg)
Marks that the current location is not supposed to be reachable.
@ fixup_ve_srel32
fixup_ve_srel32 - 32-bit fixup corresponding to foo for relative branch
@ fixup_ve_got_hi32
fixup_ve_got_hi32 - 32-bit fixup corresponding to foo@got_hi
@ fixup_ve_gotoff_hi32
fixup_ve_gotoff_hi32 - 32-bit fixup corresponding to foo@gotoff_hi
@ fixup_ve_got_lo32
fixup_ve_got_lo32 - 32-bit fixup corresponding to foo@got_lo
@ fixup_ve_pc_hi32
fixup_ve_pc_hi32 - 32-bit fixup corresponding to foo@pc_hi
@ fixup_ve_lo32
fixup_ve_lo32 - 32-bit fixup corresponding to foo@lo
@ fixup_ve_gotoff_lo32
fixup_ve_gotoff_lo32 - 32-bit fixup corresponding to foo@gotoff_lo
@ fixup_ve_hi32
fixup_ve_hi32 - 32-bit fixup corresponding to foo@hi
@ fixup_ve_pc_lo32
fixup_ve_pc_lo32 - 32-bit fixup corresponding to foo@pc_lo
@ fixup_ve_plt_hi32
fixup_ve_plt_hi32/lo32
@ fixup_ve_reflong
fixup_ve_reflong - 32-bit fixup corresponding to foo
@ fixup_ve_tls_gd_hi32
fixups for Thread Local Storage
This is an optimization pass for GlobalISel generic memory operations.
@ 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.
MCAsmBackend * createVEAsmBackend(const Target &T, const MCSubtargetInfo &STI, const MCRegisterInfo &MRI, const MCTargetOptions &Options)
std::unique_ptr< MCObjectTargetWriter > createVEELFObjectWriter(uint8_t OSABI)
Target independent information on a fixup kind.