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:131
Inherits from: MCTargetStreamer
Member Variables
Inherited from MCTargetStreamer:
Method Overview
- public ARMTargetStreamer(llvm::MCStreamer & S)
- public virtual void AnnotateTLSDescriptorSequence(const llvm::MCSymbolRefExpr * SRE)
- public const llvm::MCExpr * addConstantPoolEntry(const llvm::MCExpr *, llvm::SMLoc Loc)
- public virtual void emitArch(ARM::ArchKind Arch)
- public virtual void emitArchExtension(unsigned int ArchExt)
- public virtual void emitAttribute(unsigned int Attribute, unsigned int Value)
- public virtual void emitCantUnwind()
- 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 void finish()
- 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 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:133
Parameters
¶virtual void AnnotateTLSDescriptorSequence(
const llvm::MCSymbolRefExpr* SRE)
virtual void AnnotateTLSDescriptorSequence(
const llvm::MCSymbolRefExpr* SRE)
Declared at: llvm/include/llvm/MC/MCStreamer.h:164
Parameters
- const llvm::MCSymbolRefExpr* SRE
¶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:177
Parameters
- const llvm::MCExpr*
- llvm::SMLoc Loc
¶virtual void emitArch(ARM::ArchKind Arch)
virtual void emitArch(ARM::ArchKind Arch)
Declared at: llvm/include/llvm/MC/MCStreamer.h:157
Parameters
- ARM::ArchKind Arch
¶virtual void emitArchExtension(
unsigned int ArchExt)
virtual void emitArchExtension(
unsigned int ArchExt)
Declared at: llvm/include/llvm/MC/MCStreamer.h:158
Parameters
- unsigned int 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:152
Parameters
- unsigned int Attribute
- unsigned int Value
¶virtual void emitCantUnwind()
virtual void emitCantUnwind()
Declared at: llvm/include/llvm/MC/MCStreamer.h:138
¶void emitCurrentConstantPool()
void emitCurrentConstantPool()
Description
Callback used to implemnt the .ltorg directive. Emit contents of constant pool for the current section.
Declared at: llvm/include/llvm/MC/MCStreamer.h:181
¶virtual void emitFPU(unsigned int FPU)
virtual void emitFPU(unsigned int FPU)
Declared at: llvm/include/llvm/MC/MCStreamer.h:156
Parameters
- unsigned int FPU
¶virtual void emitFnEnd()
virtual void emitFnEnd()
Declared at: llvm/include/llvm/MC/MCStreamer.h:137
¶virtual void emitFnStart()
virtual void emitFnStart()
Declared at: llvm/include/llvm/MC/MCStreamer.h:136
¶virtual void emitHandlerData()
virtual void emitHandlerData()
Declared at: llvm/include/llvm/MC/MCStreamer.h:141
¶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:162
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:154
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:144
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:159
Parameters
- ARM::ArchKind Arch
¶virtual void emitPad(int64_t Offset)
virtual void emitPad(int64_t Offset)
Declared at: llvm/include/llvm/MC/MCStreamer.h:145
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:139
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:140
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:146
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:142
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:160
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:153
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:166
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:148
Parameters
- int64_t StackOffset
- const SmallVectorImpl<uint8_t>& Opcodes
¶void finish()
void finish()
Declared at: llvm/include/llvm/MC/MCStreamer.h:168
¶virtual void finishAttributeSection()
virtual void finishAttributeSection()
Declared at: llvm/include/llvm/MC/MCStreamer.h:161
¶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:172
¶virtual void switchVendor(llvm::StringRef Vendor)
virtual void switchVendor(llvm::StringRef Vendor)
Declared at: llvm/include/llvm/MC/MCStreamer.h:151
Parameters
- llvm::StringRef Vendor
¶~ARMTargetStreamer()
~ARMTargetStreamer()
Declared at: llvm/include/llvm/MC/MCStreamer.h:134