25 for (
unsigned OpIndex = 0; OpIndex < Inst.
getNumOperands(); ++OpIndex) {
44 for (
auto *
L : Labels) {
45 auto *Label = cast<MCSymbolELF>(
L);
56 Labels.push_back(Symbol);
60 const MCExpr *Subsection) {
72 for (
const auto &
I : MipsOptionRecords)
73 I->EmitMipsOptionRecord();
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 ...
void registerSymbol(const MCSymbol &Symbol, bool *Created=nullptr)
Base class for the full range of assembler expressions which are needed for parsing.
Reg
All possible values of the reg field in the ModR/M byte.
void EmitLabel(MCSymbol *Symbol) override
Emit a label for Symbol into the current section.
MCContext & getContext() const
void createPendingLabelRelocs()
Mark labels as microMIPS, if necessary for the subtarget.
Context object for machine code objects.
unsigned getReg() const
Returns the register number.
void SetPhysRegUsed(unsigned Reg, const MCRegisterInfo *MCRegInfo)
void EmitValueImpl(const MCExpr *Value, unsigned Size, SMLoc Loc=SMLoc()) override
Emit the expression Value into the output as a native integer of the given Size bytes.
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.
MCRegisterInfo base class - We assume that the target defines a static array of MCRegisterDesc object...
MCTargetStreamer * getTargetStreamer()
virtual void SwitchSection(MCSection *Section, const MCExpr *Subsection=nullptr)
Set the current section where code is being emitted to Section.
MCAssembler & getAssembler()
MCCodeEmitter - Generic instruction encoding interface.
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)
void EmitInstruction(const MCInst &Inst, const MCSubtargetInfo &STI) override
Emit the given Instruction into the current section.
bool isMicroMipsEnabled() const
void EmitMipsOptionRecords()
Emits all the option records stored up until the point it's called.
const MCRegisterInfo * getRegisterInfo() const
unsigned getNumOperands() const
void EmitValueImpl(const MCExpr *Value, unsigned Size, 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.
Instances of this class represent operands of the MCInst class.
const MCOperand & getOperand(unsigned i) const