35 int BankSwizzle =
MI->getOperand(OpNo).getImm();
36 switch (BankSwizzle) {
38 O <<
"BS:VEC_021/SCL_122";
41 O <<
"BS:VEC_120/SCL_212";
44 O <<
"BS:VEC_102/SCL_221";
63 unsigned CT =
MI->getOperand(OpNo).getImm();
78 int KCacheMode =
MI->getOperand(OpNo).getImm();
80 int KCacheBank =
MI->getOperand(OpNo - 2).getImm();
81 O <<
"CB" << KCacheBank <<
':';
82 int KCacheAddr =
MI->getOperand(OpNo + 2).getImm();
83 int LineSize = (KCacheMode == 1) ? 16 : 32;
84 O << KCacheAddr * 16 <<
'-' << KCacheAddr * 16 + LineSize;
98 int64_t Imm =
Op.getImm();
99 O << Imm << '(' << llvm::bit_cast<float>(
static_cast<uint32_t>(Imm)) <<
')';
113 switch (
MI->getOperand(OpNo).getImm()) {
137 if (OpNo >=
MI->getNumOperands()) {
138 O <<
"/*Missing OP" << OpNo <<
"*/";
144 switch (
Op.getReg()) {
146 case R600::PRED_SEL_OFF:
153 }
else if (
Op.isImm()) {
155 }
else if (
Op.isDFPImm()) {
157 if (
Op.getDFPImm() == 0.0)
160 O << bit_cast<double>(
Op.getDFPImm());
162 }
else if (
Op.isExpr()) {
177 unsigned Sel =
MI->getOperand(OpNo).getImm();
218 if (
Op.getImm() == 0) {
223#include "R600GenAsmWriter.inc"
Provides R600 specific target descriptions.
assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())
static void printIfSet(const MCInst *MI, unsigned OpNo, raw_ostream &O, StringRef Asm, StringRef Default="")
This class represents an Operation in the Expression.
bool print(raw_ostream &OS, DIDumpOptions DumpOpts, const DWARFExpression *Expr, DWARFUnit *U) const
Base class for the full range of assembler expressions which are needed for parsing.
void printAnnotation(raw_ostream &OS, StringRef Annot)
Utility function for printing annotations.
Instances of this class represent a single low-level machine instruction.
Instances of this class represent operands of the MCInst class.
Generic base class for all target subtargets.
static const char * getRegisterName(MCRegister Reg)
void printAbs(const MCInst *MI, unsigned OpNo, raw_ostream &O)
void printClamp(const MCInst *MI, unsigned OpNo, raw_ostream &O)
void printUpdateExecMask(const MCInst *MI, unsigned OpNo, raw_ostream &O)
void printRel(const MCInst *MI, unsigned OpNo, raw_ostream &O)
void printRSel(const MCInst *MI, unsigned OpNo, raw_ostream &O)
void printNeg(const MCInst *MI, unsigned OpNo, raw_ostream &O)
void printOperand(const MCInst *MI, unsigned OpNo, raw_ostream &O)
void printOMOD(const MCInst *MI, unsigned OpNo, raw_ostream &O)
void printUpdatePred(const MCInst *MI, unsigned OpNo, raw_ostream &O)
void printLiteral(const MCInst *MI, unsigned OpNo, raw_ostream &O)
void printInstruction(const MCInst *MI, uint64_t Address, raw_ostream &O)
void printWrite(const MCInst *MI, unsigned OpNo, raw_ostream &O)
void printCT(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 printMemOperand(const MCInst *MI, unsigned OpNo, raw_ostream &O)
void printLast(const MCInst *MI, unsigned OpNo, raw_ostream &O)
void printKCache(const MCInst *MI, unsigned OpNo, raw_ostream &O)
void printBankSwizzle(const MCInst *MI, unsigned OpNo, raw_ostream &O)
StringRef - Represent a constant reference to a string, i.e.
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.