15 #ifndef LLVM_LIB_TARGET_MIPS_MCTARGETDESC_MIPSELFSTREAMER_H
16 #define LLVM_LIB_TARGET_MIPS_MCTARGETDESC_MIPSELFSTREAMER_H
27 class MCSubtargetInfo;
41 MipsOptionRecords.push_back(
42 std::unique_ptr<MipsRegInfoRecord>(RegInfoRecord));
59 const MCExpr *Subsection =
nullptr)
override;
64 const SMLoc &Loc)
override;
74 raw_pwrite_stream &OS,
75 MCCodeEmitter *Emitter,
bool RelaxAll);
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 ...
Base class for the full range of assembler expressions which are needed for parsing.
void createPendingLabelRelocs()
Mark labels as microMIPS, if necessary for the subtarget.
Context object for machine code objects.
void EmitLabel(MCSymbol *Symbol) override
Overriding this function allows us to record all labels that should be marked as microMIPS.
Instances of this class represent a single low-level machine instruction.
MCCodeEmitter - Generic instruction encoding interface.
MipsELFStreamer(MCContext &Context, MCAsmBackend &MAB, raw_pwrite_stream &OS, MCCodeEmitter *Emitter)
void SwitchSection(MCSection *Section, const MCExpr *Subsection=nullptr) override
Overriding this function allows us to dismiss all labels that are candidates for marking as microMIPS...
MCELFStreamer * createMipsELFStreamer(MCContext &Context, MCAsmBackend &MAB, raw_pwrite_stream &OS, MCCodeEmitter *Emitter, bool RelaxAll)
This is a 'vector' (really, a variable-sized array), optimized for the case when the array is small...
void EmitMipsOptionRecords()
Emits all the option records stored up until the point it's called.
void EmitValueImpl(const MCExpr *Value, unsigned Size, const SMLoc &Loc) override
Overriding this function allows us to dismiss all labels that are candidates for marking as microMIPS...
MCSubtargetInfo - Generic base class for all target subtargets.
An abstract base class for streams implementations that also support a pwrite operation.
cl::opt< bool > RelaxAll("mc-relax-all", cl::desc("When used with filetype=obj, ""relax all fixups in the emitted object file"))
LLVM Value Representation.
Generic interface to target specific assembler backends.
void EmitInstruction(const MCInst &Inst, const MCSubtargetInfo &STI) override
Overriding this function allows us to add arbitrary behaviour before the Inst is actually emitted...
Represents a location in source code.