10 #ifndef LLVM_MC_MCOBJECTSTREAMER_H
11 #define LLVM_MC_MCOBJECTSTREAMER_H
38 virtual void EmitInstToData(
const MCInst &Inst) = 0;
57 return CurSectionData;
100 unsigned ValueSize = 1,
101 unsigned MaxBytesToEmit = 0);
103 unsigned MaxBytesToEmit = 0);
106 unsigned Column,
unsigned Flags,
107 unsigned Isa,
unsigned Discriminator,
112 unsigned PointerSize);
117 virtual void EmitFill(uint64_t NumBytes, uint8_t FillValue);
118 virtual void EmitZeros(uint64_t NumBytes);
void setParent(MCSectionData *Value)
virtual void EmitGPRel32Value(const MCExpr *Value)
virtual void EmitWeakReference(MCSymbol *Alias, const MCSymbol *Symbol)
virtual void EmitFill(uint64_t NumBytes, uint8_t FillValue)
virtual void EmitValueImpl(const MCExpr *Value, unsigned Size)
virtual bool EmitValueToOffset(const MCExpr *Offset, unsigned char Value)
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...
virtual void EmitBundleLock(bool AlignToEnd)
The following instructions are a bundle-locked group.
virtual void EmitDwarfAdvanceLineAddr(int64_t LineDelta, const MCSymbol *LastLabel, const MCSymbol *Label, unsigned PointerSize)
const FragmentListType & getFragmentList() const
virtual void EmitGPRel64Value(const MCExpr *Value)
MCFragment * getCurrentFragment() const
void insert(MCFragment *F) const
virtual void EmitDebugLabel(MCSymbol *Symbol)
virtual void ChangeSection(const MCSection *Section, const MCExpr *Subsection)
virtual void EmitCodeAlignment(unsigned ByteAlignment, unsigned MaxBytesToEmit=0)
virtual void EmitDwarfLocDirective(unsigned FileNo, unsigned Line, unsigned Column, unsigned Flags, unsigned Isa, unsigned Discriminator, StringRef FileName)
EmitDwarfLocDirective - This implements the DWARF2.
Streaming object file generation interface.
MCDataFragment * getOrCreateDataFragment() const
MCObjectStreamer(MCContext &Context, MCTargetStreamer *TargetStreamer, MCAsmBackend &TAB, raw_ostream &_OS, MCCodeEmitter *_Emitter)
MCAssembler & getAssembler()
MCCodeEmitter - Generic instruction encoding interface.
virtual void EmitInstruction(const MCInst &Inst)
iterator insert(iterator where, NodeTy *New)
virtual void EmitInstToFragment(const MCInst &Inst)
Emit an instruction to a special fragment, because this instruction can change its size during relaxa...
virtual void EmitBytes(StringRef Data)
virtual void EmitDwarfAdvanceFrameAddr(const MCSymbol *LastLabel, const MCSymbol *Label)
virtual void EmitLabel(MCSymbol *Symbol)
const MCExpr * AddValueSymbols(const MCExpr *Value)
virtual void EmitULEB128Value(const MCExpr *Value)
virtual void EmitValueToAlignment(unsigned ByteAlignment, int64_t Value=0, unsigned ValueSize=1, unsigned MaxBytesToEmit=0)
virtual void FinishImpl()
FinishImpl - Streamer specific finalization.
virtual void EmitAssignment(MCSymbol *Symbol, const MCExpr *Value)
virtual void EmitSLEB128Value(const MCExpr *Value)
LLVM Value Representation.
virtual void EmitZeros(uint64_t NumBytes)
Emit NumBytes worth of zeros. This function properly handles data in virtual sections.
MCAsmBackend - Generic interface to target specific assembler backends.
MCSectionData * getCurrentSectionData() const
virtual void EmitBundleUnlock()
Ends a bundle-locked group.
virtual void reset()
state management