LLVM: lib/Target/Hexagon/MCTargetDesc/HexagonInstPrinter.cpp Source File (original) (raw)
1
2
3
4
5
6
7
8
9
10
11
12
21
22using namespace llvm;
23
24#define DEBUG_TYPE "asm-printer"
25
26#define GET_INSTRUCTION_NAME
27#include "HexagonGenAsmWriter.inc"
28
32
38 OS << '\v';
39 HasExtender = false;
41 } else {
43 }
47 HasExtender = false;
48}
49
54 O << "#";
55 MCOperand const &MO = MI->getOperand(OpNo);
58 } else if (MO.isExpr()) {
62 else
64 } else {
66 }
67}
68
71 MCOperand const &MO = MI->getOperand(OpNo);
75 if (Expr.evaluateAsAbsolute(Value))
77 else {
80 O << "##";
81 MAI.printExpr(O, Expr);
82 }
83}
assert(UImm &&(UImm !=~static_cast< T >(0)) &&"Invalid immediate!")
void printRegName(raw_ostream &O, MCRegister Reg) override
Print the assembler register name.
Definition HexagonInstPrinter.cpp:29
void printInstruction(const MCInst *MI, uint64_t Address, raw_ostream &O)
void printBrtarget(MCInst const *MI, unsigned OpNo, raw_ostream &O) const
Definition HexagonInstPrinter.cpp:69
void printOperand(MCInst const *MI, unsigned OpNo, raw_ostream &O) const
Definition HexagonInstPrinter.cpp:50
void printInst(MCInst const *MI, uint64_t Address, StringRef Annot, const MCSubtargetInfo &STI, raw_ostream &O) override
Print the specified MCInst to the specified raw_ostream.
Definition HexagonInstPrinter.cpp:33
static char const * getRegisterName(MCRegister Reg)
Base class for the full range of assembler expressions which are needed for parsing.
format_object< int64_t > formatImm(int64_t Value) const
Utility function to print immediates in decimal or hex.
Instances of this class represent a single low-level machine instruction.
Instances of this class represent operands of the MCInst class.
MCRegister getReg() const
Returns the register number.
const MCExpr * getExpr() const
Wrapper class representing physical registers. Should be passed by value.
Generic base class for all target subtargets.
StringRef - Represent a constant reference to a string, i.e.
LLVM Value Representation.
This class implements an extremely fast bulk output stream that can only output to a stream.
#define llvm_unreachable(msg)
Marks that the current location is not supposed to be reachable.
bool isConstExtended(MCInstrInfo const &MCII, MCInst const &MCI)
bool isDuplex(MCInstrInfo const &MCII, MCInst const &MCI)
unsigned short getExtendableOp(MCInstrInfo const &MCII, MCInst const &MCI)
bool isImmext(MCInst const &MCI)
This is an optimization pass for GlobalISel generic memory operations.
format_object< Ts... > format(const char *Fmt, const Ts &... Vals)
These are helper functions used to produce formatted output.