35 assert(!
"Not implemented");
44 AMDGPUAsmBackend(
const Target &
T)
47 virtual unsigned getNumFixupKinds()
const {
return 0; };
48 virtual void applyFixup(
const MCFixup &Fixup,
char *Data,
unsigned DataSize,
49 uint64_t
Value)
const;
50 virtual bool fixupNeedsRelaxation(
const MCFixup &Fixup, uint64_t
Value,
55 virtual void relaxInstruction(
const MCInst &Inst,
MCInst &Res)
const {
56 assert(!
"Not implemented");
58 virtual bool mayNeedRelaxation(
const MCInst &Inst)
const {
return false; }
59 virtual bool writeNopData(uint64_t Count,
MCObjectWriter *OW)
const {
73 void AMDGPUAsmBackend::applyFixup(
const MCFixup &Fixup,
char *Data,
74 unsigned DataSize, uint64_t
Value)
const {
76 uint16_t *Dst = (uint16_t*)(Data + Fixup.
getOffset());
78 *Dst = (Value - 4) / 4;
87 class ELFAMDGPUAsmBackend :
public AMDGPUAsmBackend {
89 ELFAMDGPUAsmBackend(
const Target &
T) : AMDGPUAsmBackend(T) { }
102 return new ELFAMDGPUAsmBackend(T);
MCObjectWriter * createAMDGPUELFObjectWriter(raw_ostream &OS)
uint32_t getOffset() const
MCFixupKind getKind() const
A four-byte pc relative fixup.
Provides AMDGPU specific target descriptions.
LLVM Value Representation.
MCAsmBackend - Generic interface to target specific assembler backends.
void writeSectionData(const MCSectionData *Section, const MCAsmLayout &Layout) const
Emit the section contents using the given object writer.
const MCRegisterInfo & MRI
MCAsmBackend * createAMDGPUAsmBackend(const Target &T, const MCRegisterInfo &MRI, StringRef TT, StringRef CPU)