Go to the documentation of this file.
36 int BankSwizzle =
MI->getOperand(OpNo).getImm();
37 switch (BankSwizzle) {
39 O <<
"BS:VEC_021/SCL_122";
42 O <<
"BS:VEC_120/SCL_212";
45 O <<
"BS:VEC_102/SCL_221";
64 unsigned CT =
MI->getOperand(OpNo).getImm();
79 int KCacheMode =
MI->getOperand(OpNo).getImm();
81 int KCacheBank =
MI->getOperand(OpNo - 2).getImm();
82 O <<
"CB" << KCacheBank <<
':';
83 int KCacheAddr =
MI->getOperand(OpNo + 2).getImm();
84 int LineSize = (KCacheMode == 1) ? 16 : 32;
85 O << KCacheAddr * 16 <<
'-' << KCacheAddr * 16 + LineSize;
99 int64_t Imm =
Op.getImm();
103 Op.getExpr()->print(
O <<
'@', &
MAI);
114 switch (
MI->getOperand(OpNo).getImm()) {
138 if (OpNo >=
MI->getNumOperands()) {
139 O <<
"/*Missing OP" << OpNo <<
"*/";
145 switch (
Op.getReg()) {
147 case R600::PRED_SEL_OFF:
154 }
else if (
Op.isImm()) {
156 }
else if (
Op.isDFPImm()) {
158 if (
Op.getDFPImm() == 0.0)
161 O << bit_cast<double>(
Op.getDFPImm());
163 }
else if (
Op.isExpr()) {
178 unsigned Sel =
MI->getOperand(OpNo).getImm();
219 if (
Op.getImm() == 0) {
224 #include "R600GenAsmWriter.inc"
This is an optimization pass for GlobalISel generic memory operations.
void printClamp(const MCInst *MI, unsigned OpNo, raw_ostream &O)
void printBankSwizzle(const MCInst *MI, unsigned OpNo, raw_ostream &O)
void printCT(const MCInst *MI, unsigned OpNo, raw_ostream &O)
void printOMOD(const MCInst *MI, unsigned OpNo, raw_ostream &O)
void printNeg(const MCInst *MI, unsigned OpNo, raw_ostream &O)
Instances of this class represent a single low-level machine instruction.
static const char * getRegisterName(unsigned RegNo)
void printKCache(const MCInst *MI, unsigned OpNo, raw_ostream &O)
void printLiteral(const MCInst *MI, unsigned OpNo, raw_ostream &O)
void printInst(const MCInst *MI, uint64_t Address, StringRef Annot, const MCSubtargetInfo &STI, raw_ostream &O) override
Print the specified MCInst to the specified raw_ostream.
void printRel(const MCInst *MI, unsigned OpNo, raw_ostream &O)
This class implements an extremely fast bulk output stream that can only output to a stream.
void printRSel(const MCInst *MI, unsigned OpNo, raw_ostream &O)
void printUpdatePred(const MCInst *MI, unsigned OpNo, raw_ostream &O)
void printAnnotation(raw_ostream &OS, StringRef Annot)
Utility function for printing annotations.
void printUpdateExecMask(const MCInst *MI, unsigned OpNo, raw_ostream &O)
static void printIfSet(const MCInst *MI, unsigned OpNo, raw_ostream &O, StringRef Asm, StringRef Default="")
assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())
void printLast(const MCInst *MI, unsigned OpNo, raw_ostream &O)
StringRef - Represent a constant reference to a string, i.e.
float BitsToFloat(uint32_t Bits)
This function takes a 32-bit integer and returns the bit equivalent float.
void printAbs(const MCInst *MI, unsigned OpNo, raw_ostream &O)
void printOperand(const MCInst *MI, unsigned OpNo, raw_ostream &O)
void printWrite(const MCInst *MI, unsigned OpNo, raw_ostream &O)
void printMemOperand(const MCInst *MI, unsigned OpNo, raw_ostream &O)
Instances of this class represent operands of the MCInst class.
void printInstruction(const MCInst *MI, uint64_t Address, raw_ostream &O)
Generic base class for all target subtargets.
Base class for the full range of assembler expressions which are needed for parsing.