class ARMTargetStreamer
Declaration
class ARMTargetStreamer : public MCTargetStreamer { /* full declaration omitted */ };
Description
Target specific streamer interface. This is used so that targets can implement support for target specific assembly directives. If target foo wants to use this, it should implement 3 classes: * FooTargetStreamer : public MCTargetStreamer * FooTargetAsmStreamer : public FooTargetStreamer * FooTargetELFStreamer : public FooTargetStreamer FooTargetStreamer should have a pure virtual method for each directive. For example, for a ".bar symbol_name" directive, it should have virtual emitBar(const MCSymbol &Symbol ) = 0; The FooTargetAsmStreamer and FooTargetELFStreamer classes implement the method. The assembly streamer just prints ".bar symbol_name". The object streamer does whatever is needed to implement .bar in the object file. In the assembly printer and parser the target streamer can be used by calling getTargetStreamer and casting it to FooTargetStreamer: MCTargetStreamer &TS = OutStreamer.getTargetStreamer(); FooTargetStreamer &ATS = static_cast <FooTargetStreamer & >(TS); The base classes FooTargetAsmStreamer and FooTargetELFStreamer should *never* be treated differently. Callers should always talk to a FooTargetStreamer.
Declared at: llvm/include/llvm/MC/MCStreamer.h:135
Inherits from: MCTargetStreamer
Member Variables
- private std::unique_ptr<AssemblerConstantPools> ConstantPools
Inherited from MCTargetStreamer:
Method Overview
- public ARMTargetStreamer(llvm::MCStreamer & S)
- public const llvm::MCExpr * addConstantPoolEntry(const llvm::MCExpr *, llvm::SMLoc Loc)
- public virtual void annotateTLSDescriptorSequence(const llvm::MCSymbolRefExpr * SRE)
- public virtual void emitARMWinCFIAllocStack(unsigned int Size, bool Wide)
- public virtual void emitARMWinCFICustom(unsigned int Opcode)
- public virtual void emitARMWinCFIEpilogEnd()
- public virtual void emitARMWinCFIEpilogStart(unsigned int Condition)
- public virtual void emitARMWinCFINop(bool Wide)
- public virtual void emitARMWinCFIPrologEnd(bool Fragment)
- public virtual void emitARMWinCFISaveFRegs(unsigned int First, unsigned int Last)
- public virtual void emitARMWinCFISaveLR(unsigned int Offset)
- public virtual void emitARMWinCFISaveRegMask(unsigned int Mask, bool Wide)
- public virtual void emitARMWinCFISaveSP(unsigned int Reg)
- public virtual void emitArch(ARM::ArchKind Arch)
- public virtual void emitArchExtension(uint64_t ArchExt)
- public virtual void emitAttribute(unsigned int Attribute, unsigned int Value)
- public virtual void emitCantUnwind()
- public void emitConstantPools()
- public void emitCurrentConstantPool()
- public virtual void emitFPU(unsigned int FPU)
- public virtual void emitFnEnd()
- public virtual void emitFnStart()
- public virtual void emitHandlerData()
- public virtual void emitInst(uint32_t Inst, char Suffix = '\x00')
- public virtual void emitIntTextAttribute(unsigned int Attribute, unsigned int IntValue, llvm::StringRef StringValue = "")
- public virtual void emitMovSP(unsigned int Reg, int64_t Offset = 0)
- public virtual void emitObjectArch(ARM::ArchKind Arch)
- public virtual void emitPad(int64_t Offset)
- public virtual void emitPersonality(const llvm::MCSymbol * Personality)
- public virtual void emitPersonalityIndex(unsigned int Index)
- public virtual void emitRegSave(const SmallVectorImpl<unsigned int> & RegList, bool isVector)
- public virtual void emitSetFP(unsigned int FpReg, unsigned int SpReg, int64_t Offset = 0)
- public void emitTargetAttributes(const llvm::MCSubtargetInfo & STI)
- public virtual void emitTextAttribute(unsigned int Attribute, llvm::StringRef String)
- public virtual void emitThumbSet(llvm::MCSymbol * Symbol, const llvm::MCExpr * Value)
- public virtual void emitUnwindRaw(int64_t StackOffset, const SmallVectorImpl<uint8_t> & Opcodes)
- public virtual void finishAttributeSection()
- public virtual void reset()
- public virtual void switchVendor(llvm::StringRef Vendor)
- public ~ARMTargetStreamer()
Inherited from MCTargetStreamer:
- public changeSection
- public emitAssignment
- public emitConstantPools
- public emitDwarfFileDirective
- public emitLabel
- public emitRawBytes
- public emitValue
- public finish
- public getStreamer
- public prettyPrintAsm
Methods
¶ARMTargetStreamer(llvm::MCStreamer& S)
ARMTargetStreamer(llvm::MCStreamer& S)
Declared at: llvm/include/llvm/MC/MCStreamer.h:137
Parameters
¶const llvm::MCExpr* addConstantPoolEntry(
const llvm::MCExpr*,
llvm::SMLoc Loc)
const llvm::MCExpr* addConstantPoolEntry(
const llvm::MCExpr*,
llvm::SMLoc Loc)
Description
Callback used to implement the ldr= pseudo. Add a new entry to the constant pool for the current section and return an MCExpr that can be used to refer to the constant pool location.
Declared at: llvm/include/llvm/MC/MCStreamer.h:192
Parameters
- const llvm::MCExpr*
- llvm::SMLoc Loc
¶virtual void annotateTLSDescriptorSequence(
const llvm::MCSymbolRefExpr* SRE)
virtual void annotateTLSDescriptorSequence(
const llvm::MCSymbolRefExpr* SRE)
Declared at: llvm/include/llvm/MC/MCStreamer.h:168
Parameters
- const llvm::MCSymbolRefExpr* SRE
¶virtual void emitARMWinCFIAllocStack(
unsigned int Size,
bool Wide)
virtual void emitARMWinCFIAllocStack(
unsigned int Size,
bool Wide)
Declared at: llvm/include/llvm/MC/MCStreamer.h:174
Parameters
- unsigned int Size
- bool Wide
¶virtual void emitARMWinCFICustom(
unsigned int Opcode)
virtual void emitARMWinCFICustom(
unsigned int Opcode)
Declared at: llvm/include/llvm/MC/MCStreamer.h:183
Parameters
- unsigned int Opcode
¶virtual void emitARMWinCFIEpilogEnd()
virtual void emitARMWinCFIEpilogEnd()
Declared at: llvm/include/llvm/MC/MCStreamer.h:182
¶virtual void emitARMWinCFIEpilogStart(
unsigned int Condition)
virtual void emitARMWinCFIEpilogStart(
unsigned int Condition)
Declared at: llvm/include/llvm/MC/MCStreamer.h:181
Parameters
- unsigned int Condition
¶virtual void emitARMWinCFINop(bool Wide)
virtual void emitARMWinCFINop(bool Wide)
Declared at: llvm/include/llvm/MC/MCStreamer.h:180
Parameters
- bool Wide
¶virtual void emitARMWinCFIPrologEnd(bool Fragment)
virtual void emitARMWinCFIPrologEnd(bool Fragment)
Declared at: llvm/include/llvm/MC/MCStreamer.h:179
Parameters
- bool Fragment
¶virtual void emitARMWinCFISaveFRegs(
unsigned int First,
unsigned int Last)
virtual void emitARMWinCFISaveFRegs(
unsigned int First,
unsigned int Last)
Declared at: llvm/include/llvm/MC/MCStreamer.h:177
Parameters
- unsigned int First
- unsigned int Last
¶virtual void emitARMWinCFISaveLR(
unsigned int Offset)
virtual void emitARMWinCFISaveLR(
unsigned int Offset)
Declared at: llvm/include/llvm/MC/MCStreamer.h:178
Parameters
- unsigned int Offset
¶virtual void emitARMWinCFISaveRegMask(
unsigned int Mask,
bool Wide)
virtual void emitARMWinCFISaveRegMask(
unsigned int Mask,
bool Wide)
Declared at: llvm/include/llvm/MC/MCStreamer.h:175
Parameters
- unsigned int Mask
- bool Wide
¶virtual void emitARMWinCFISaveSP(unsigned int Reg)
virtual void emitARMWinCFISaveSP(unsigned int Reg)
Declared at: llvm/include/llvm/MC/MCStreamer.h:176
Parameters
- unsigned int Reg
¶virtual void emitArch(ARM::ArchKind Arch)
virtual void emitArch(ARM::ArchKind Arch)
Declared at: llvm/include/llvm/MC/MCStreamer.h:161
Parameters
- ARM::ArchKind Arch
¶virtual void emitArchExtension(uint64_t ArchExt)
virtual void emitArchExtension(uint64_t ArchExt)
Declared at: llvm/include/llvm/MC/MCStreamer.h:162
Parameters
- uint64_t ArchExt
¶virtual void emitAttribute(unsigned int Attribute,
unsigned int Value)
virtual void emitAttribute(unsigned int Attribute,
unsigned int Value)
Declared at: llvm/include/llvm/MC/MCStreamer.h:156
Parameters
- unsigned int Attribute
- unsigned int Value
¶virtual void emitCantUnwind()
virtual void emitCantUnwind()
Declared at: llvm/include/llvm/MC/MCStreamer.h:142
¶void emitConstantPools()
void emitConstantPools()
Declared at: llvm/include/llvm/MC/MCStreamer.h:172
¶void emitCurrentConstantPool()
void emitCurrentConstantPool()
Description
Callback used to implement the .ltorg directive. Emit contents of constant pool for the current section.
Declared at: llvm/include/llvm/MC/MCStreamer.h:196
¶virtual void emitFPU(unsigned int FPU)
virtual void emitFPU(unsigned int FPU)
Declared at: llvm/include/llvm/MC/MCStreamer.h:160
Parameters
- unsigned int FPU
¶virtual void emitFnEnd()
virtual void emitFnEnd()
Declared at: llvm/include/llvm/MC/MCStreamer.h:141
¶virtual void emitFnStart()
virtual void emitFnStart()
Declared at: llvm/include/llvm/MC/MCStreamer.h:140
¶virtual void emitHandlerData()
virtual void emitHandlerData()
Declared at: llvm/include/llvm/MC/MCStreamer.h:145
¶virtual void emitInst(uint32_t Inst,
char Suffix = '\x00')
virtual void emitInst(uint32_t Inst,
char Suffix = '\x00')
Declared at: llvm/include/llvm/MC/MCStreamer.h:166
Parameters
- uint32_t Inst
- char Suffix = '\x00'
¶virtual void emitIntTextAttribute(
unsigned int Attribute,
unsigned int IntValue,
llvm::StringRef StringValue = "")
virtual void emitIntTextAttribute(
unsigned int Attribute,
unsigned int IntValue,
llvm::StringRef StringValue = "")
Declared at: llvm/include/llvm/MC/MCStreamer.h:158
Parameters
- unsigned int Attribute
- unsigned int IntValue
- llvm::StringRef StringValue = ""
¶virtual void emitMovSP(unsigned int Reg,
int64_t Offset = 0)
virtual void emitMovSP(unsigned int Reg,
int64_t Offset = 0)
Declared at: llvm/include/llvm/MC/MCStreamer.h:148
Parameters
- unsigned int Reg
- int64_t Offset = 0
¶virtual void emitObjectArch(ARM::ArchKind Arch)
virtual void emitObjectArch(ARM::ArchKind Arch)
Declared at: llvm/include/llvm/MC/MCStreamer.h:163
Parameters
- ARM::ArchKind Arch
¶virtual void emitPad(int64_t Offset)
virtual void emitPad(int64_t Offset)
Declared at: llvm/include/llvm/MC/MCStreamer.h:149
Parameters
- int64_t Offset
¶virtual void emitPersonality(
const llvm::MCSymbol* Personality)
virtual void emitPersonality(
const llvm::MCSymbol* Personality)
Declared at: llvm/include/llvm/MC/MCStreamer.h:143
Parameters
- const llvm::MCSymbol* Personality
¶virtual void emitPersonalityIndex(
unsigned int Index)
virtual void emitPersonalityIndex(
unsigned int Index)
Declared at: llvm/include/llvm/MC/MCStreamer.h:144
Parameters
- unsigned int Index
¶virtual void emitRegSave(
const SmallVectorImpl<unsigned int>& RegList,
bool isVector)
virtual void emitRegSave(
const SmallVectorImpl<unsigned int>& RegList,
bool isVector)
Declared at: llvm/include/llvm/MC/MCStreamer.h:150
Parameters
- const SmallVectorImpl<unsigned int>& RegList
- bool isVector
¶virtual void emitSetFP(unsigned int FpReg,
unsigned int SpReg,
int64_t Offset = 0)
virtual void emitSetFP(unsigned int FpReg,
unsigned int SpReg,
int64_t Offset = 0)
Declared at: llvm/include/llvm/MC/MCStreamer.h:146
Parameters
- unsigned int FpReg
- unsigned int SpReg
- int64_t Offset = 0
¶void emitTargetAttributes(
const llvm::MCSubtargetInfo& STI)
void emitTargetAttributes(
const llvm::MCSubtargetInfo& STI)
Declared at: llvm/include/llvm/MC/MCStreamer.h:164
Parameters
- const llvm::MCSubtargetInfo& STI
¶virtual void emitTextAttribute(
unsigned int Attribute,
llvm::StringRef String)
virtual void emitTextAttribute(
unsigned int Attribute,
llvm::StringRef String)
Declared at: llvm/include/llvm/MC/MCStreamer.h:157
Parameters
- unsigned int Attribute
- llvm::StringRef String
¶virtual void emitThumbSet(
llvm::MCSymbol* Symbol,
const llvm::MCExpr* Value)
virtual void emitThumbSet(
llvm::MCSymbol* Symbol,
const llvm::MCExpr* Value)
Declared at: llvm/include/llvm/MC/MCStreamer.h:170
Parameters
- llvm::MCSymbol* Symbol
- const llvm::MCExpr* Value
¶virtual void emitUnwindRaw(
int64_t StackOffset,
const SmallVectorImpl<uint8_t>& Opcodes)
virtual void emitUnwindRaw(
int64_t StackOffset,
const SmallVectorImpl<uint8_t>& Opcodes)
Declared at: llvm/include/llvm/MC/MCStreamer.h:152
Parameters
- int64_t StackOffset
- const SmallVectorImpl<uint8_t>& Opcodes
¶virtual void finishAttributeSection()
virtual void finishAttributeSection()
Declared at: llvm/include/llvm/MC/MCStreamer.h:165
¶virtual void reset()
virtual void reset()
Description
Reset any state between object emissions, i.e. the equivalent of MCStreamer's reset method.
Declared at: llvm/include/llvm/MC/MCStreamer.h:187
¶virtual void switchVendor(llvm::StringRef Vendor)
virtual void switchVendor(llvm::StringRef Vendor)
Declared at: llvm/include/llvm/MC/MCStreamer.h:155
Parameters
- llvm::StringRef Vendor
¶~ARMTargetStreamer()
~ARMTargetStreamer()
Declared at: llvm/include/llvm/MC/MCStreamer.h:138