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:

protected Streamer

Method Overview

Inherited from MCTargetStreamer:

Methods

ARMTargetStreamer(llvm::MCStreamer& S)

Declared at: llvm/include/llvm/MC/MCStreamer.h:133

Parameters

llvm::MCStreamer& S

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)

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)

Declared at: llvm/include/llvm/MC/MCStreamer.h:157

Parameters

ARM::ArchKind Arch

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)

Declared at: llvm/include/llvm/MC/MCStreamer.h:152

Parameters

unsigned int Attribute
unsigned int Value

virtual void emitCantUnwind()

Declared at: llvm/include/llvm/MC/MCStreamer.h:138

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)

Declared at: llvm/include/llvm/MC/MCStreamer.h:156

Parameters

unsigned int FPU

virtual void emitFnEnd()

Declared at: llvm/include/llvm/MC/MCStreamer.h:137

virtual void emitFnStart()

Declared at: llvm/include/llvm/MC/MCStreamer.h:136

virtual void emitHandlerData()

Declared at: llvm/include/llvm/MC/MCStreamer.h:141

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 = "")

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)

Declared at: llvm/include/llvm/MC/MCStreamer.h:144

Parameters

unsigned int Reg
int64_t Offset = 0

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)

Declared at: llvm/include/llvm/MC/MCStreamer.h:145

Parameters

int64_t Offset

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)

Declared at: llvm/include/llvm/MC/MCStreamer.h:140

Parameters

unsigned int Index

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)

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)

Declared at: llvm/include/llvm/MC/MCStreamer.h:160

Parameters

const llvm::MCSubtargetInfo& STI

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)

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)

Declared at: llvm/include/llvm/MC/MCStreamer.h:148

Parameters

int64_t StackOffset
const SmallVectorImpl<uint8_t>& Opcodes

void finish()

Declared at: llvm/include/llvm/MC/MCStreamer.h:168

virtual void finishAttributeSection()

Declared at: llvm/include/llvm/MC/MCStreamer.h:161

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)

Declared at: llvm/include/llvm/MC/MCStreamer.h:151

Parameters

llvm::StringRef Vendor

~ARMTargetStreamer()

Declared at: llvm/include/llvm/MC/MCStreamer.h:134