26 #define DEBUG_TYPE "asm-printer" 28 #define GET_INSTRUCTION_NAME 29 #include "HexagonGenAsmWriter.inc" 42 MCInst const &MCI = *
I.getInst();
57 OS << (IsLoop1 ?
" :endloop01" :
" :endloop0");
73 if (MO.
getExpr()->evaluateAsAbsolute(Value))
88 if (Expr.evaluateAsAbsolute(Value))
89 O <<
format(
"0x%" PRIx64, Value);
bool isDuplex(MCInstrInfo const &MCII, MCInst const &MCI)
void printRegName(raw_ostream &O, unsigned RegNo) const override
Print the assembler register name.
This class represents lattice values for constants.
void printBrtarget(MCInst const *MI, unsigned OpNo, raw_ostream &O) const
format_object< Ts... > format(const char *Fmt, const Ts &... Vals)
These are helper functions used to produce formatted output.
bool isBundle(MCInst const &MCI)
bool isOuterLoop(MCInst const &MCI)
void printInst(MCInst const *MI, raw_ostream &O, StringRef Annot, const MCSubtargetInfo &STI) override
Print the specified MCInst to the specified raw_ostream.
bool isImmext(MCInst const &MCI)
Base class for the full range of assembler expressions which are needed for parsing.
iterator_range< Hexagon::PacketIterator > bundleInstructions(MCInstrInfo const &MCII, MCInst const &MCI)
unsigned getReg() const
Returns the register number.
format_object< int64_t > formatImm(int64_t Value) const
Utility function to print immediates in decimal or hex.
const MCInst * getInst() const
const MCExpr * getExpr() const
Instances of this class represent a single low-level machine instruction.
#define llvm_unreachable(msg)
Marks that the current location is not supposed to be reachable.
unsigned short getExtendableOp(MCInstrInfo const &MCII, MCInst const &MCI)
const MCOperand & getOperand(unsigned i) const
void printInstruction(MCInst const *MI, raw_ostream &O)
Generic base class for all target subtargets.
size_t bundleSize(MCInst const &MCI)
assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())
bool isInnerLoop(MCInst const &MCI)
#define HEXAGON_PACKET_SIZE
LLVM Value Representation.
static char const * getRegisterName(unsigned RegNo)
This class implements an extremely fast bulk output stream that can only output to a stream...
bool isConstExtended(MCInstrInfo const &MCII, MCInst const &MCI)
StringRef - Represent a constant reference to a string, i.e.
Instances of this class represent operands of the MCInst class.
void printOperand(MCInst const *MI, unsigned OpNo, raw_ostream &O) const