28 #define DEBUG_TYPE "asm-printer" 31 #define PRINT_ALIAS_INSTR 32 #include "RISCVGenAsmWriter.inc" 35 #define GEN_UNCOMPRESS_INSTR 36 #include "RISCVGenCompressInstEmitter.inc" 40 cl::desc(
"Disable the emission of assembler pseudo instructions"),
49 Res = uncompressInst(UncompressedMI, *MI,
MRI, STI);
51 NewMI =
const_cast<MCInst *
>(&UncompressedMI);
63 const char *Modifier) {
64 assert((Modifier == 0 || Modifier[0] == 0) &&
"No modifiers supported");
77 assert(MO.
isExpr() &&
"Unknown operand kind in printOperand");
96 assert (((FenceArg >> 4) == 0) &&
"Invalid immediate in printFenceArg");
This class represents lattice values for constants.
const FeatureBitset & getFeatureBits() const
void printCSRSystemRegister(const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI, raw_ostream &O)
unsigned getReg() const
Returns the register number.
const MCExpr * getExpr() const
void printFRMArg(const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI, raw_ostream &O)
void printInst(const MCInst *MI, raw_ostream &O, StringRef Annot, const MCSubtargetInfo &STI) override
Print the specified MCInst to the specified raw_ostream.
Instances of this class represent a single low-level machine instruction.
initializer< Ty > init(const Ty &Val)
void print(raw_ostream &OS, const MCAsmInfo *MAI, bool InParens=false) const
static const char * getRegisterName(unsigned RegNo, unsigned AltIdx=RISCV::ABIRegAltName)
void printFenceArg(const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI, raw_ostream &O)
const MCOperand & getOperand(unsigned i) const
static cl::opt< bool > NoAliases("riscv-no-aliases", cl::desc("Disable the emission of assembler pseudo instructions"), cl::init(false), cl::Hidden)
bool printAliasInstr(const MCInst *MI, const MCSubtargetInfo &STI, raw_ostream &O)
void printOperand(const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI, raw_ostream &O, const char *Modifier=nullptr)
void printInstruction(const MCInst *MI, const MCSubtargetInfo &STI, raw_ostream &O)
Generic base class for all target subtargets.
assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())
static StringRef roundingModeToString(RoundingMode RndMode)
void printAnnotation(raw_ostream &OS, StringRef Annot)
Utility function for printing annotations.
const SysReg * lookupSysRegByEncoding(uint16_t)
This class implements an extremely fast bulk output stream that can only output to a stream...
StringRef - Represent a constant reference to a string, i.e.
void printRegName(raw_ostream &O, unsigned RegNo) const override
Print the assembler register name.
Instances of this class represent operands of the MCInst class.
const MCRegisterInfo & MRI