13#ifndef LLVM_LIB_TARGET_MIPS_MIPSASMPRINTER_H
14#define LLVM_LIB_TARGET_MIPS_MIPSASMPRINTER_H
31class MachineBasicBlock;
32class MachineConstantPool;
36class MipsFunctionInfo;
37class MipsTargetStreamer;
64 bool InConstantPool =
false;
66 std::map<const char *, const Mips16HardFloatInfo::FuncSignature *>
77 void emitPseudoIndirectBranch(
MCStreamer &OutStreamer,
83 void emitInlineAsmStart()
const override;
93 unsigned Reg1,
unsigned Reg2);
96 unsigned Reg1,
unsigned Reg2,
unsigned Reg3);
99 unsigned Reg1,
unsigned Reg2,
unsigned FPReg1,
100 unsigned FPReg2,
bool LE);
113 bool isLongBranchPseudo(
int Opcode)
const;
121 std::unique_ptr<MCStreamer> Streamer)
129 bool UsingConstantPools =
131 if (!UsingConstantPools)
132 AsmPrinter::emitConstantPool();
137 void printSavedRegsBitmask();
138 void emitFrameDirective();
139 const char *getCurrentABIString()
const;
140 void emitFunctionEntryLabel()
override;
141 void emitFunctionBodyStart()
override;
142 void emitFunctionBodyEnd()
override;
146 bool PrintAsmMemoryOperand(
const MachineInstr *
MI,
unsigned OpNum,
152 const char *Modifier =
nullptr);
154 void emitStartOfAsmFile(
Module &M)
override;
155 void emitEndOfAsmFile(
Module &M)
override;
157 void emitDebugValue(
const MCExpr *
Value,
unsigned Size)
const override;
#define LLVM_LIBRARY_VISIBILITY
Machine Check Debug Module
static bool printOperand(raw_ostream &OS, const SelectionDAG *G, const SDValue Value)
static void printMemOperand(raw_ostream &OS, const MachineMemOperand &MMO, const MachineFunction *MF, const Module *M, const MachineFrameInfo *MFI, const TargetInstrInfo *TII, LLVMContext &Ctx)
This class is intended to be used as a driving class for all asm writers.
Base class for the full range of assembler expressions which are needed for parsing.
Instances of this class represent a single low-level machine instruction.
Instances of this class represent operands of the MCInst class.
Streaming machine code generation interface.
Generic base class for all target subtargets.
MCSymbol - Instances of this class represent a symbol name in the MC file, and MCSymbols are created ...
The MachineConstantPool class keeps track of constants referenced by a function which must be spilled...
Representation of each machine instruction.
MachineOperand class - Representation of each machine instruction operand.
MipsAsmPrinter(TargetMachine &TM, std::unique_ptr< MCStreamer > Streamer)
void emitConstantPool() override
Print to the current output stream assembly representations of the constants in the constant pool MCP...
MipsMCInstLower MCInstLowering
const MipsSubtarget * Subtarget
const MipsFunctionInfo * MipsFI
StringRef getPassName() const override
getPassName - Return a nice clean name for a pass.
MipsFunctionInfo - This class is derived from MachineFunction private Mips target-specific informatio...
MipsMCInstLower - This class is used to lower an MachineInstr into an MCInst.
static bool useConstantIslands()
bool inMips16Mode() const
A Module instance is used to store all the information related to an LLVM module.
StringRef - Represent a constant reference to a string, i.e.
Primary interface to the complete machine description for the target machine.
LLVM Value Representation.
This class implements an extremely fast bulk output stream that can only output to a stream.
This is an optimization pass for GlobalISel generic memory operations.
OutputIt move(R &&Range, OutputIt Out)
Provide wrappers to std::move which take ranges instead of having to pass begin/end explicitly.
Implement std::hash so that hash_code can be used in STL containers.