LLVM API Documentation

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Protected Member Functions | List of all members
llvm::MCObjectStreamer Class Referenceabstract

Streaming object file generation interface. More...

#include <MCObjectStreamer.h>

Inheritance diagram for llvm::MCObjectStreamer:
Inheritance graph
[legend]
Collaboration diagram for llvm::MCObjectStreamer:
Collaboration graph
[legend]

Public Member Functions

virtual void reset ()
 state management More...
 
MCAssemblergetAssembler ()
 
MCStreamer Interface
virtual void EmitLabel (MCSymbol *Symbol)
 
virtual void EmitDebugLabel (MCSymbol *Symbol)
 
virtual void EmitAssignment (MCSymbol *Symbol, const MCExpr *Value)
 
virtual void EmitValueImpl (const MCExpr *Value, unsigned Size)
 
virtual void EmitULEB128Value (const MCExpr *Value)
 
virtual void EmitSLEB128Value (const MCExpr *Value)
 
virtual void EmitWeakReference (MCSymbol *Alias, const MCSymbol *Symbol)
 
virtual void ChangeSection (const MCSection *Section, const MCExpr *Subsection)
 
virtual void EmitInstruction (const MCInst &Inst)
 
virtual void EmitInstToFragment (const MCInst &Inst)
 Emit an instruction to a special fragment, because this instruction can change its size during relaxation. More...
 
virtual void EmitBundleAlignMode (unsigned AlignPow2)
 Set the bundle alignment mode from now on in the section. The argument is the power of 2 to which the alignment is set. The value 0 means turn the bundle alignment off. More...
 
virtual void EmitBundleLock (bool AlignToEnd)
 The following instructions are a bundle-locked group. More...
 
virtual void EmitBundleUnlock ()
 Ends a bundle-locked group. More...
 
virtual void EmitBytes (StringRef Data)
 
virtual void EmitValueToAlignment (unsigned ByteAlignment, int64_t Value=0, unsigned ValueSize=1, unsigned MaxBytesToEmit=0)
 
virtual void EmitCodeAlignment (unsigned ByteAlignment, unsigned MaxBytesToEmit=0)
 
virtual bool EmitValueToOffset (const MCExpr *Offset, unsigned char Value)
 
virtual void EmitDwarfLocDirective (unsigned FileNo, unsigned Line, unsigned Column, unsigned Flags, unsigned Isa, unsigned Discriminator, StringRef FileName)
 EmitDwarfLocDirective - This implements the DWARF2. More...
 
virtual void EmitDwarfAdvanceLineAddr (int64_t LineDelta, const MCSymbol *LastLabel, const MCSymbol *Label, unsigned PointerSize)
 
virtual void EmitDwarfAdvanceFrameAddr (const MCSymbol *LastLabel, const MCSymbol *Label)
 
virtual void EmitGPRel32Value (const MCExpr *Value)
 
virtual void EmitGPRel64Value (const MCExpr *Value)
 
virtual void EmitFill (uint64_t NumBytes, uint8_t FillValue)
 
virtual void EmitZeros (uint64_t NumBytes)
 Emit NumBytes worth of zeros. This function properly handles data in virtual sections. More...
 
virtual void FinishImpl ()
 FinishImpl - Streamer specific finalization. More...
 
- Public Member Functions inherited from llvm::MCStreamer
virtual ~MCStreamer ()
 
MCContextgetContext () const
 
MCTargetStreamergetTargetStreamer ()
 
unsigned getNumFrameInfos ()
 
const MCDwarfFrameInfogetFrameInfo (unsigned i)
 
ArrayRef< MCDwarfFrameInfogetFrameInfos () const
 
unsigned getNumW64UnwindInfos ()
 
MCWin64EHUnwindInfogetW64UnwindInfo (unsigned i)
 
void generateCompactUnwindEncodings (MCAsmBackend *MAB)
 
virtual void EmitFileDirective (StringRef Filename)=0
 
virtual void EmitIdent (StringRef IdentString)
 
virtual bool EmitDwarfFileDirective (unsigned FileNo, StringRef Directory, StringRef Filename, unsigned CUID=0)
 
void EmitDwarfSetLineAddr (int64_t LineDelta, const MCSymbol *Label, int PointerSize)
 
virtual void EmitCompactUnwindEncoding (uint32_t CompactUnwindEncoding)
 
virtual void EmitCFISections (bool EH, bool Debug)
 
void EmitCFIStartProc ()
 
void EmitCFIEndProc ()
 
virtual void EmitCFIDefCfa (int64_t Register, int64_t Offset)
 
virtual void EmitCFIDefCfaOffset (int64_t Offset)
 
virtual void EmitCFIDefCfaRegister (int64_t Register)
 
virtual void EmitCFIOffset (int64_t Register, int64_t Offset)
 
virtual void EmitCFIPersonality (const MCSymbol *Sym, unsigned Encoding)
 
virtual void EmitCFILsda (const MCSymbol *Sym, unsigned Encoding)
 
virtual void EmitCFIRememberState ()
 
virtual void EmitCFIRestoreState ()
 
virtual void EmitCFISameValue (int64_t Register)
 
virtual void EmitCFIRestore (int64_t Register)
 
virtual void EmitCFIRelOffset (int64_t Register, int64_t Offset)
 
virtual void EmitCFIAdjustCfaOffset (int64_t Adjustment)
 
virtual void EmitCFIEscape (StringRef Values)
 
virtual void EmitCFISignalFrame ()
 
virtual void EmitCFIUndefined (int64_t Register)
 
virtual void EmitCFIRegister (int64_t Register1, int64_t Register2)
 
virtual void EmitCFIWindowSave ()
 
virtual void EmitWin64EHStartProc (const MCSymbol *Symbol)
 
virtual void EmitWin64EHEndProc ()
 
virtual void EmitWin64EHStartChained ()
 
virtual void EmitWin64EHEndChained ()
 
virtual void EmitWin64EHHandler (const MCSymbol *Sym, bool Unwind, bool Except)
 
virtual void EmitWin64EHHandlerData ()
 
virtual void EmitWin64EHPushReg (unsigned Register)
 
virtual void EmitWin64EHSetFrame (unsigned Register, unsigned Offset)
 
virtual void EmitWin64EHAllocStack (unsigned Size)
 
virtual void EmitWin64EHSaveReg (unsigned Register, unsigned Offset)
 
virtual void EmitWin64EHSaveXMM (unsigned Register, unsigned Offset)
 
virtual void EmitWin64EHPushFrame (bool Code)
 
virtual void EmitWin64EHEndProlog ()
 
void EmitRawText (const Twine &String)
 
virtual void Flush ()
 Flush - Causes any cached state to be written out. More...
 
void Finish ()
 Finish - Finish emission of machine code. More...
 
virtual bool isVerboseAsm () const
 
virtual bool hasRawTextSupport () const
 
virtual void AddComment (const Twine &T)
 
virtual raw_ostreamGetCommentOS ()
 
virtual void AddBlankLine ()
 AddBlankLine - Emit a blank line to a .s file to pretty it up. More...
 
MCSectionSubPair getCurrentSection () const
 
MCSectionSubPair getPreviousSection () const
 
unsigned GetSymbolOrder (const MCSymbol *Sym) const
 
void PushSection ()
 
bool PopSection ()
 
bool SubSection (const MCExpr *Subsection)
 
void SwitchSection (const MCSection *Section, const MCExpr *Subsection=0)
 
void SwitchSectionNoChange (const MCSection *Section, const MCExpr *Subsection=0)
 
void InitStreamer ()
 Initialize the streamer. More...
 
void setAutoInitSections (bool AutoInitSections)
 Tell this MCStreamer to call InitSections upon initialization. More...
 
virtual void InitSections ()=0
 InitSections - Create the default sections and set the initial one. More...
 
virtual void InitToTextSection ()=0
 InitToTextSection - Create a text section and switch the streamer to it. More...
 
void AssignSection (MCSymbol *Symbol, const MCSection *Section)
 
virtual void EmitEHSymAttributes (const MCSymbol *Symbol, MCSymbol *EHSymbol)
 
virtual void EmitAssemblerFlag (MCAssemblerFlag Flag)=0
 EmitAssemblerFlag - Note in the output the specified Flag. More...
 
virtual void EmitLinkerOptions (ArrayRef< std::string > Kind)
 
virtual void EmitDataRegion (MCDataRegionType Kind)
 EmitDataRegion - Note in the output the specified region Kind. More...
 
virtual void EmitThumbFunc (MCSymbol *Func)=0
 
virtual MCSymbolDatagetOrCreateSymbolData (MCSymbol *Symbol)
 getOrCreateSymbolData - Get symbol data for given symbol. More...
 
virtual bool EmitSymbolAttribute (MCSymbol *Symbol, MCSymbolAttr Attribute)=0
 EmitSymbolAttribute - Add the given Attribute to Symbol. More...
 
virtual void EmitSymbolDesc (MCSymbol *Symbol, unsigned DescValue)=0
 
virtual void BeginCOFFSymbolDef (const MCSymbol *Symbol)=0
 
virtual void EmitCOFFSymbolStorageClass (int StorageClass)=0
 
virtual void EmitCOFFSymbolType (int Type)=0
 
virtual void EndCOFFSymbolDef ()=0
 EndCOFFSymbolDef - Marks the end of the symbol definition. More...
 
virtual void EmitCOFFSecRel32 (MCSymbol const *Symbol)
 
virtual void EmitELFSize (MCSymbol *Symbol, const MCExpr *Value)=0
 
virtual void EmitCommonSymbol (MCSymbol *Symbol, uint64_t Size, unsigned ByteAlignment)=0
 
virtual void EmitLocalCommonSymbol (MCSymbol *Symbol, uint64_t Size, unsigned ByteAlignment)=0
 
virtual void EmitZerofill (const MCSection *Section, MCSymbol *Symbol=0, uint64_t Size=0, unsigned ByteAlignment=0)=0
 
virtual void EmitTBSSSymbol (const MCSection *Section, MCSymbol *Symbol, uint64_t Size, unsigned ByteAlignment=0)=0
 
void EmitValue (const MCExpr *Value, unsigned Size)
 
virtual void EmitIntValue (uint64_t Value, unsigned Size)
 
void EmitAbsValue (const MCExpr *Value, unsigned Size)
 
void EmitULEB128IntValue (uint64_t Value, unsigned Padding=0)
 
void EmitSLEB128IntValue (int64_t Value)
 
void EmitSymbolValue (const MCSymbol *Sym, unsigned Size)
 

Protected Member Functions

 MCObjectStreamer (MCContext &Context, MCTargetStreamer *TargetStreamer, MCAsmBackend &TAB, raw_ostream &_OS, MCCodeEmitter *_Emitter)
 
 MCObjectStreamer (MCContext &Context, MCTargetStreamer *TargetStreamer, MCAsmBackend &TAB, raw_ostream &_OS, MCCodeEmitter *_Emitter, MCAssembler *_Assembler)
 
 ~MCObjectStreamer ()
 
MCSectionDatagetCurrentSectionData () const
 
MCFragmentgetCurrentFragment () const
 
void insert (MCFragment *F) const
 
MCDataFragmentgetOrCreateDataFragment () const
 
const MCExprAddValueSymbols (const MCExpr *Value)
 
- Protected Member Functions inherited from llvm::MCStreamer
 MCStreamer (MCContext &Ctx, MCTargetStreamer *TargetStreamer)
 
const MCExprBuildSymbolDiff (MCContext &Context, const MCSymbol *A, const MCSymbol *B)
 
const MCExprForceExpAbs (const MCExpr *Expr)
 
void RecordProcStart (MCDwarfFrameInfo &Frame)
 
void RecordProcEnd (MCDwarfFrameInfo &Frame)
 
void EmitFrames (MCAsmBackend *MAB, bool usingCFI)
 
MCWin64EHUnwindInfogetCurrentW64UnwindInfo ()
 
void EmitW64Tables ()
 
virtual void EmitRawTextImpl (StringRef String)
 

Detailed Description

Streaming object file generation interface.

This class provides an implementation of the MCStreamer interface which is suitable for use with the assembler backend. Specific object file formats are expected to subclass this interface to implement directives specific to that file format or custom semantics expected by the object writer implementation.

Definition at line 33 of file MCObjectStreamer.h.

Constructor & Destructor Documentation

MCObjectStreamer::MCObjectStreamer ( MCContext Context,
MCTargetStreamer TargetStreamer,
MCAsmBackend TAB,
raw_ostream _OS,
MCCodeEmitter _Emitter 
)
protected

Definition at line 25 of file MCObjectStreamer.cpp.

MCObjectStreamer::MCObjectStreamer ( MCContext Context,
MCTargetStreamer TargetStreamer,
MCAsmBackend TAB,
raw_ostream _OS,
MCCodeEmitter _Emitter,
MCAssembler _Assembler 
)
protected

Definition at line 34 of file MCObjectStreamer.cpp.

MCObjectStreamer::~MCObjectStreamer ( )
protected

Member Function Documentation

const MCExpr * MCObjectStreamer::AddValueSymbols ( const MCExpr Value)
protected
void MCObjectStreamer::ChangeSection ( const MCSection ,
const MCExpr  
)
virtual

ChangeSection - Update streamer for a new active section.

This is called by PopSection and SwitchSection, if the current section changes.

Implements llvm::MCStreamer.

Reimplemented in llvm::MCELFStreamer.

Definition at line 174 of file MCObjectStreamer.cpp.

References getAssembler(), llvm::MCAssembler::getOrCreateSectionData(), llvm::MCSectionData::getSubsectionInsertionPoint(), and llvm::report_fatal_error().

Referenced by llvm::MCELFStreamer::ChangeSection().

void MCObjectStreamer::EmitAssignment ( MCSymbol Symbol,
const MCExpr Value 
)
virtual

EmitAssignment - Emit an assignment of Value to Symbol.

This corresponds to an assembler statement such as: symbol = value

The assignment generates no code, but has the side effect of binding the value in the current context. For the assembly streamer, this prints the binding into the .s file.

Parameters
Symbol- The symbol being assigned to.
Value- The value for the symbol.

Implements llvm::MCStreamer.

Definition at line 190 of file MCObjectStreamer.cpp.

References AddValueSymbols(), getAssembler(), llvm::MCAssembler::getOrCreateSymbolData(), and llvm::MCSymbol::setVariableValue().

void MCObjectStreamer::EmitBundleAlignMode ( unsigned  AlignPow2)
virtual

Set the bundle alignment mode from now on in the section. The argument is the power of 2 to which the alignment is set. The value 0 means turn the bundle alignment off.

Implements llvm::MCStreamer.

Definition at line 252 of file MCObjectStreamer.cpp.

References BundlingNotImplementedMsg, and llvm_unreachable.

void MCObjectStreamer::EmitBundleLock ( bool  AlignToEnd)
virtual

The following instructions are a bundle-locked group.

Parameters
AlignToEnd- If true, the bundle-locked group will be aligned to the end of a bundle.

Implements llvm::MCStreamer.

Definition at line 256 of file MCObjectStreamer.cpp.

References BundlingNotImplementedMsg, and llvm_unreachable.

void MCObjectStreamer::EmitBundleUnlock ( )
virtual

Ends a bundle-locked group.

Implements llvm::MCStreamer.

Definition at line 260 of file MCObjectStreamer.cpp.

References BundlingNotImplementedMsg, and llvm_unreachable.

void MCObjectStreamer::EmitBytes ( StringRef  Data)
virtual

EmitBytes - Emit the bytes in Data into the output.

This is used to implement assembler directives such as .byte, .ascii, etc.

Implements llvm::MCStreamer.

Definition at line 307 of file MCObjectStreamer.cpp.

References llvm::SmallVectorImpl< T >::append(), llvm::StringRef::begin(), llvm::StringRef::end(), llvm::MCDataFragment::getContents(), llvm::MCStreamer::getCurrentSection(), getOrCreateDataFragment(), and llvm::MCLineEntry::Make().

Referenced by llvm::MCELFStreamer::EmitIdent().

void MCObjectStreamer::EmitCodeAlignment ( unsigned  ByteAlignment,
unsigned  MaxBytesToEmit = 0 
)
virtual

EmitCodeAlignment - Emit nops until the byte alignment ByteAlignment is reached.

This used to align code where the alignment bytes may be executed. This can emit different bytes for different sizes to optimize execution.

Parameters
ByteAlignment- The alignment to reach. This must be a power of two on some targets.
MaxBytesToEmit- The maximum numbers of bytes to emit, or 0. If the alignment cannot be reached in this many bytes, no bytes are emitted.

Implements llvm::MCStreamer.

Definition at line 325 of file MCObjectStreamer.cpp.

References EmitValueToAlignment(), and getCurrentFragment().

void MCObjectStreamer::EmitDebugLabel ( MCSymbol Symbol)
virtual

Reimplemented from llvm::MCStreamer.

Reimplemented in llvm::MCELFStreamer.

Definition at line 145 of file MCObjectStreamer.cpp.

References EmitLabel().

void MCObjectStreamer::EmitDwarfAdvanceFrameAddr ( const MCSymbol LastLabel,
const MCSymbol Label 
)
virtual
void MCObjectStreamer::EmitDwarfAdvanceLineAddr ( int64_t  LineDelta,
const MCSymbol LastLabel,
const MCSymbol Label,
unsigned  PointerSize 
)
virtual
void MCObjectStreamer::EmitDwarfLocDirective ( unsigned  FileNo,
unsigned  Line,
unsigned  Column,
unsigned  Flags,
unsigned  Isa,
unsigned  Discriminator,
StringRef  FileName 
)
virtual

EmitDwarfLocDirective - This implements the DWARF2.

Reimplemented from llvm::MCStreamer.

Definition at line 264 of file MCObjectStreamer.cpp.

References llvm::MCStreamer::EmitDwarfLocDirective(), llvm::MCStreamer::getCurrentSection(), and llvm::MCLineEntry::Make().

void MCObjectStreamer::EmitFill ( uint64_t  NumBytes,
uint8_t  FillValue 
)
virtual

EmitFill - Emit NumBytes bytes worth of the value specified by FillValue. This implements directives such as '.space'.

Reimplemented from llvm::MCStreamer.

Definition at line 371 of file MCObjectStreamer.cpp.

References llvm::SmallVectorImpl< T >::append(), llvm::MCDataFragment::getContents(), and getOrCreateDataFragment().

Referenced by EmitValueToOffset().

void MCObjectStreamer::EmitGPRel32Value ( const MCExpr Value)
virtual

EmitGPRel32Value - Emit the expression Value into the output as a gprel32 (32-bit GP relative) value.

This is used to implement assembler directives such as .gprel32 on targets that support them.

Reimplemented from llvm::MCStreamer.

Definition at line 354 of file MCObjectStreamer.cpp.

References llvm::MCFixup::Create(), llvm::X86II::DF, llvm::FK_GPRel_4, llvm::MCDataFragment::getContents(), llvm::MCDataFragment::getFixups(), getOrCreateDataFragment(), llvm::SmallVectorImpl< T >::resize(), and llvm::SmallVectorTemplateCommon< T, typename >::size().

void MCObjectStreamer::EmitGPRel64Value ( const MCExpr Value)
virtual

EmitGPRel64Value - Emit the expression Value into the output as a gprel64 (64-bit GP relative) value.

This is used to implement assembler directives such as .gpdword on targets that support them.

Reimplemented from llvm::MCStreamer.

Definition at line 363 of file MCObjectStreamer.cpp.

References llvm::MCFixup::Create(), llvm::X86II::DF, llvm::FK_GPRel_4, llvm::MCDataFragment::getContents(), llvm::MCDataFragment::getFixups(), getOrCreateDataFragment(), llvm::SmallVectorImpl< T >::resize(), and llvm::SmallVectorTemplateCommon< T, typename >::size().

void MCObjectStreamer::EmitInstruction ( const MCInst Inst)
virtual
void MCObjectStreamer::EmitInstToFragment ( const MCInst Inst)
virtual
void MCObjectStreamer::EmitLabel ( MCSymbol Symbol)
virtual

EmitLabel - Emit a label for Symbol into the current section.

This corresponds to an assembler statement such as: foo:

Parameters
Symbol- The symbol to emit. A given symbol should only be emitted as a label once, and symbols emitted as a label should never be used in an assignment.

Reimplemented from llvm::MCStreamer.

Reimplemented in llvm::MCELFStreamer.

Definition at line 130 of file MCObjectStreamer.cpp.

References llvm::MCStreamer::EmitLabel(), F(), getAssembler(), llvm::MCDataFragment::getContents(), llvm::MCSymbolData::getFragment(), getOrCreateDataFragment(), llvm::MCAssembler::getOrCreateSymbolData(), llvm::MCSymbolData::setFragment(), llvm::MCSymbolData::setOffset(), and llvm::SmallVectorTemplateCommon< T, typename >::size().

Referenced by EmitDebugLabel(), llvm::MCELFStreamer::EmitLabel(), and EmitValueToOffset().

void MCObjectStreamer::EmitSLEB128Value ( const MCExpr Value)
virtual
void MCObjectStreamer::EmitULEB128Value ( const MCExpr Value)
virtual
void MCObjectStreamer::EmitValueImpl ( const MCExpr Value,
unsigned  Size 
)
virtual

EmitValue - Emit the expression Value into the output as a native integer of the given Size bytes.

This is used to implement assembler directives such as .word, .quad, etc.

Parameters
Value- The value to emit.
Size- The size of the integer (in bytes) to emit. This must match a native machine width.

Implements llvm::MCStreamer.

Reimplemented in llvm::MCELFStreamer.

Definition at line 105 of file MCObjectStreamer.cpp.

References AddValueSymbols(), llvm::MCFixup::Create(), llvm::X86II::DF, llvm::MCStreamer::EmitIntValue(), getAssembler(), llvm::MCDataFragment::getContents(), llvm::MCStreamer::getCurrentSection(), llvm::MCDataFragment::getFixups(), llvm::MCFixup::getKindForSize(), getOrCreateDataFragment(), llvm::MCLineEntry::Make(), llvm::SmallVectorImpl< T >::resize(), and llvm::SmallVectorTemplateCommon< T, typename >::size().

Referenced by llvm::MCELFStreamer::EmitValueImpl().

void MCObjectStreamer::EmitValueToAlignment ( unsigned  ByteAlignment,
int64_t  Value = 0,
unsigned  ValueSize = 1,
unsigned  MaxBytesToEmit = 0 
)
virtual

EmitValueToAlignment - Emit some number of copies of Value until the byte alignment ByteAlignment is reached.

If the number of bytes need to emit for the alignment is not a multiple of ValueSize, then the contents of the emitted fill bytes is undefined.

This used to implement the .align assembler directive.

Parameters
ByteAlignment- The alignment to reach. This must be a power of two on some targets.
Value- The value to use when filling bytes.
ValueSize- The size of the integer (in bytes) to emit for Value. This must match a native machine width.
MaxBytesToEmit- The maximum numbers of bytes to emit, or 0. If the alignment cannot be reached in this many bytes, no bytes are emitted.

Implements llvm::MCStreamer.

Reimplemented in llvm::MCELFStreamer.

Definition at line 312 of file MCObjectStreamer.cpp.

References llvm::LCOMM::ByteAlignment, getCurrentSectionData(), insert(), and llvm::MCSectionData::setAlignment().

Referenced by EmitCodeAlignment(), and llvm::MCELFStreamer::EmitValueToAlignment().

bool MCObjectStreamer::EmitValueToOffset ( const MCExpr Offset,
unsigned char  Value 
)
virtual

EmitValueToOffset - Emit some number of copies of Value until the byte offset Offset is reached.

This is used to implement assembler directives such as .org.

Parameters
Offset- The offset to reach. This may be an expression, but the expression must be associated with the current section.
Value- The value to use when filling bytes.
Returns
false on success, true if the offset was invalid.

Implements llvm::MCStreamer.

Definition at line 331 of file MCObjectStreamer.cpp.

References llvm::MCSymbolRefExpr::Create(), llvm::MCBinaryExpr::Create(), llvm::MCContext::CreateTempSymbol(), EmitFill(), EmitLabel(), getAssembler(), llvm::MCStreamer::getContext(), insert(), llvm::MCBinaryExpr::Sub, and llvm::MCSymbolRefExpr::VK_None.

void MCObjectStreamer::EmitWeakReference ( MCSymbol Alias,
const MCSymbol Symbol 
)
virtual

EmitWeakReference - Emit an weak reference from Alias to Symbol.

This corresponds to an assembler statement such as: .weakref alias, symbol

Parameters
Alias- The alias that is being created.
Symbol- The symbol being aliased.

Implements llvm::MCStreamer.

Reimplemented in llvm::MCELFStreamer.

Definition at line 169 of file MCObjectStreamer.cpp.

References llvm::report_fatal_error().

void MCObjectStreamer::EmitZeros ( uint64_t  NumBytes)
virtual

Emit NumBytes worth of zeros. This function properly handles data in virtual sections.

The implementation in this class just redirects to EmitFill.

Reimplemented from llvm::MCStreamer.

Definition at line 377 of file MCObjectStreamer.cpp.

References llvm::MCStreamer::getCurrentSection(), and insert().

void MCObjectStreamer::FinishImpl ( )
virtual

FinishImpl - Streamer specific finalization.

Implements llvm::MCStreamer.

Reimplemented in llvm::MCELFStreamer.

Definition at line 382 of file MCObjectStreamer.cpp.

References llvm::MCDwarfFileTable::Emit(), llvm::MCGenDwarfInfo::Emit(), llvm::MCAssembler::Finish(), getAssembler(), and llvm::MCStreamer::getContext().

Referenced by llvm::MCELFStreamer::FinishImpl().

MCAssembler& llvm::MCObjectStreamer::getAssembler ( )
inline
MCFragment * MCObjectStreamer::getCurrentFragment ( ) const
protected
MCSectionData* llvm::MCObjectStreamer::getCurrentSectionData ( ) const
inlineprotected
MCDataFragment * MCObjectStreamer::getOrCreateDataFragment ( ) const
protected

Get a data fragment to write into, creating a new one if the current fragment is not a data fragment.

Definition at line 66 of file MCObjectStreamer.cpp.

References F(), getCurrentFragment(), llvm::MCDataFragment::hasInstructions(), insert(), and llvm::MCAssembler::isBundlingEnabled().

Referenced by EmitBytes(), EmitFill(), EmitGPRel32Value(), EmitGPRel64Value(), EmitLabel(), and EmitValueImpl().

void llvm::MCObjectStreamer::insert ( MCFragment F) const
inlineprotected
void MCObjectStreamer::reset ( )
virtual

state management

Reimplemented from llvm::MCStreamer.

Definition at line 49 of file MCObjectStreamer.cpp.

References llvm::MCStreamer::reset(), and llvm::MCAssembler::reset().


The documentation for this class was generated from the following files: