9#ifndef LLVM_MC_MCWINCOFFOBJECTWRITER_H
10#define LLVM_MC_MCWINCOFFOBJECTWRITER_H
24 virtual void anchor();
26 const unsigned Machine;
51 std::unique_ptr<MCWinCOFFObjectTargetWriter> TargetObjectWriter;
52 std::unique_ptr<WinCOFFWriter> ObjWriter, DwoWriter;
53 bool IncrementalLinkerCompatible =
false;
62 void reset()
override;
65 IncrementalLinkerCompatible =
Value;
70 bool IsPCRel)
const override;
82std::unique_ptr<MCObjectWriter>
84 raw_pwrite_stream &OS);
86std::unique_ptr<MCObjectWriter>
88 raw_pwrite_stream &OS, raw_pwrite_stream &DwoOS);
PowerPC TLS Dynamic Call Fixup
Generic interface to target specific assembler backends.
Context object for machine code objects.
Encode information on a single operation to perform on a byte sequence (e.g., an encoded instruction)...
Base class for classes that define behaviour that is specific to both the target and the object forma...
Instances of this class represent a uniqued identifier for a section in the current translation unit.
MCSymbol - Instances of this class represent a symbol name in the MC file, and MCSymbols are created ...
virtual bool recordRelocation(const MCFixup &) const
MCWinCOFFObjectTargetWriter(unsigned Machine_)
static bool classof(const MCObjectTargetWriter *W)
virtual ~MCWinCOFFObjectTargetWriter()=default
virtual unsigned getRelocType(MCContext &Ctx, const MCValue &Target, const MCFixup &Fixup, bool IsCrossSection, const MCAsmBackend &MAB) const =0
unsigned getMachine() const
Triple::ObjectFormatType getFormat() const override
Target - Wrapper for Target specific information.
LLVM Value Representation.
void recordRelocation(const MCFragment &F, const MCFixup &Fixup, MCValue Target, uint64_t &FixedValue) override
Record a relocation entry.
void reset() override
lifetime management
int getSectionNumber(const MCSection &Section) const
void setAssembler(MCAssembler *Asm) override
WinCOFFObjectWriter(std::unique_ptr< MCWinCOFFObjectTargetWriter > MOTW, raw_pwrite_stream &OS)
void executePostLayoutBinding() override
Perform any late binding of symbols (for example, to assign symbol indices for use when generating re...
friend class WinCOFFWriter
uint64_t writeObject() override
Write the object file and returns the number of bytes written.
void setIncrementalLinkerCompatible(bool Value)
bool isSymbolRefDifferenceFullyResolvedImpl(const MCSymbol &SymA, const MCFragment &FB, bool InSet, bool IsPCRel) const override
An abstract base class for streams implementations that also support a pwrite operation.
This is an optimization pass for GlobalISel generic memory operations.
std::unique_ptr< MCObjectWriter > createWinCOFFDwoObjectWriter(std::unique_ptr< MCWinCOFFObjectTargetWriter > MOTW, raw_pwrite_stream &OS, raw_pwrite_stream &DwoOS)
std::unique_ptr< MCObjectWriter > createWinCOFFObjectWriter(std::unique_ptr< MCWinCOFFObjectTargetWriter > MOTW, raw_pwrite_stream &OS)
Construct a new Win COFF writer instance.