class MCObjectWriter
Declaration
class MCObjectWriter { /* full declaration omitted */ };
Description
Defines the object file and target independent interfaces used by the assembler backend to write native file format object files. The object writer contains a few callbacks used by the assembler to allow the object writer to modify the assembler data structures at appropriate points. Once assembly is complete, the object writer is given the MCAssembler instance, which contains all the symbol and section data which should be emitted as part of writeObject().
Declared at: llvm/include/llvm/MC/MCObjectWriter.h:39
Method Overview
- protected MCObjectWriter()
- public MCObjectWriter(const llvm::MCObjectWriter &)
- public virtual void addAddrsigSymbol(const llvm::MCSymbol * Sym)
- public virtual void emitAddrsigSection()
- public virtual void executePostLayoutBinding(llvm::MCAssembler & Asm, const llvm::MCAsmLayout & Layout)
- public bool isSymbolRefDifferenceFullyResolved(const llvm::MCAssembler & Asm, const llvm::MCSymbolRefExpr * A, const llvm::MCSymbolRefExpr * B, bool InSet) const
- public virtual bool isSymbolRefDifferenceFullyResolvedImpl(const llvm::MCAssembler & Asm, const llvm::MCSymbol & A, const llvm::MCSymbol & B, bool InSet) const
- public virtual bool isSymbolRefDifferenceFullyResolvedImpl(const llvm::MCAssembler & Asm, const llvm::MCSymbol & SymA, const llvm::MCFragment & FB, bool InSet, bool IsPCRel) const
- public virtual void recordRelocation(llvm::MCAssembler & Asm, const llvm::MCAsmLayout & Layout, const llvm::MCFragment * Fragment, const llvm::MCFixup & Fixup, llvm::MCValue Target, uint64_t & FixedValue)
- public virtual void reset()
- public virtual uint64_t writeObject(llvm::MCAssembler & Asm, const llvm::MCAsmLayout & Layout)
- public virtual ~MCObjectWriter()
Methods
¶MCObjectWriter()
MCObjectWriter()
Declared at: llvm/include/llvm/MC/MCObjectWriter.h:41
¶MCObjectWriter(const llvm::MCObjectWriter&)
MCObjectWriter(const llvm::MCObjectWriter&)
Declared at: llvm/include/llvm/MC/MCObjectWriter.h:44
Parameters
- const llvm::MCObjectWriter&
¶virtual void addAddrsigSymbol(
const llvm::MCSymbol* Sym)
virtual void addAddrsigSymbol(
const llvm::MCSymbol* Sym)
Description
Record the given symbol in the address-significance table to be written diring writeObject().
Declared at: llvm/include/llvm/MC/MCObjectWriter.h:101
Parameters
- const llvm::MCSymbol* Sym
¶virtual void emitAddrsigSection()
virtual void emitAddrsigSection()
Description
Tell the object writer to emit an address-significance table during writeObject(). If this function is not called, all symbols are treated as address-significant.
Declared at: llvm/include/llvm/MC/MCObjectWriter.h:97
¶virtual void executePostLayoutBinding(
llvm::MCAssembler& Asm,
const llvm::MCAsmLayout& Layout)
virtual void executePostLayoutBinding(
llvm::MCAssembler& Asm,
const llvm::MCAsmLayout& Layout)
Description
Perform any late binding of symbols (for example, to assign symbol indices for use when generating relocations). This routine is called by the assembler after layout and relaxation is complete.
Declared at: llvm/include/llvm/MC/MCObjectWriter.h:59
Parameters
- llvm::MCAssembler& Asm
- const llvm::MCAsmLayout& Layout
¶bool isSymbolRefDifferenceFullyResolved(
const llvm::MCAssembler& Asm,
const llvm::MCSymbolRefExpr* A,
const llvm::MCSymbolRefExpr* B,
bool InSet) const
bool isSymbolRefDifferenceFullyResolved(
const llvm::MCAssembler& Asm,
const llvm::MCSymbolRefExpr* A,
const llvm::MCSymbolRefExpr* B,
bool InSet) const
Description
Check whether the difference (A - B) between two symbol references is fully resolved. Clients are not required to answer precisely and may conservatively return false, even when a difference is fully resolved.
Declared at: llvm/include/llvm/MC/MCObjectWriter.h:78
Parameters
- const llvm::MCAssembler& Asm
- const llvm::MCSymbolRefExpr* A
- const llvm::MCSymbolRefExpr* B
- bool InSet
¶virtual bool
isSymbolRefDifferenceFullyResolvedImpl(
const llvm::MCAssembler& Asm,
const llvm::MCSymbol& A,
const llvm::MCSymbol& B,
bool InSet) const
virtual bool
isSymbolRefDifferenceFullyResolvedImpl(
const llvm::MCAssembler& Asm,
const llvm::MCSymbol& A,
const llvm::MCSymbol& B,
bool InSet) const
Declared at: llvm/include/llvm/MC/MCObjectWriter.h:83
Parameters
- const llvm::MCAssembler& Asm
- const llvm::MCSymbol& A
- const llvm::MCSymbol& B
- bool InSet
¶virtual bool
isSymbolRefDifferenceFullyResolvedImpl(
const llvm::MCAssembler& Asm,
const llvm::MCSymbol& SymA,
const llvm::MCFragment& FB,
bool InSet,
bool IsPCRel) const
virtual bool
isSymbolRefDifferenceFullyResolvedImpl(
const llvm::MCAssembler& Asm,
const llvm::MCSymbol& SymA,
const llvm::MCFragment& FB,
bool InSet,
bool IsPCRel) const
Declared at: llvm/include/llvm/MC/MCObjectWriter.h:88
Parameters
- const llvm::MCAssembler& Asm
- const llvm::MCSymbol& SymA
- const llvm::MCFragment& FB
- bool InSet
- bool IsPCRel
¶virtual void recordRelocation(
llvm::MCAssembler& Asm,
const llvm::MCAsmLayout& Layout,
const llvm::MCFragment* Fragment,
const llvm::MCFixup& Fixup,
llvm::MCValue Target,
uint64_t& FixedValue)
virtual void recordRelocation(
llvm::MCAssembler& Asm,
const llvm::MCAsmLayout& Layout,
const llvm::MCFragment* Fragment,
const llvm::MCFixup& Fixup,
llvm::MCValue Target,
uint64_t& FixedValue)
Description
Record a relocation entry. This routine is called by the assembler after layout and relaxation, and post layout binding. The implementation is responsible for storing information about the relocation so that it can be emitted during writeObject().
Declared at: llvm/include/llvm/MC/MCObjectWriter.h:68
Parameters
- llvm::MCAssembler& Asm
- const llvm::MCAsmLayout& Layout
- const llvm::MCFragment* Fragment
- const llvm::MCFixup& Fixup
- llvm::MCValue Target
- uint64_t& FixedValue
¶virtual void reset()
virtual void reset()
Description
lifetime management
Declared at: llvm/include/llvm/MC/MCObjectWriter.h:49
¶virtual uint64_t writeObject(
llvm::MCAssembler& Asm,
const llvm::MCAsmLayout& Layout)
virtual uint64_t writeObject(
llvm::MCAssembler& Asm,
const llvm::MCAsmLayout& Layout)
Description
Write the object file and returns the number of bytes written. This routine is called by the assembler after layout and relaxation is complete, fixups have been evaluated and applied, and relocations generated.
Declared at: llvm/include/llvm/MC/MCObjectWriter.h:108
Parameters
- llvm::MCAssembler& Asm
- const llvm::MCAsmLayout& Layout
¶virtual ~MCObjectWriter()
virtual ~MCObjectWriter()
Declared at: llvm/include/llvm/MC/MCObjectWriter.h:46