9#ifndef LLVM_MC_MCWINCOFFOBJECTWRITER_H
10#define LLVM_MC_MCWINCOFFOBJECTWRITER_H
21class raw_pwrite_stream;
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;
64 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);
COFF::MachineTypes Machine
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...
Defines the object file and target independent interfaces used by the assembler backend to write nati...
MCSymbol - Instances of this class represent a symbol name in the MC file, and MCSymbols are created ...
This represents an "assembler immediate".
virtual bool recordRelocation(const MCFixup &) const
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 reset() override
lifetime management
void recordRelocation(MCAssembler &Asm, const MCFragment *Fragment, const MCFixup &Fixup, MCValue Target, uint64_t &FixedValue) override
Record a relocation entry.
void setIncrementalLinkerCompatible(bool Value)
bool isSymbolRefDifferenceFullyResolvedImpl(const MCAssembler &Asm, const MCSymbol &SymA, const MCFragment &FB, bool InSet, bool IsPCRel) const override
void executePostLayoutBinding(MCAssembler &Asm) override
Perform any late binding of symbols (for example, to assign symbol indices for use when generating re...
uint64_t writeObject(MCAssembler &Asm) override
Write the object file and returns the number of bytes written.
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.