Lines Matching refs:MI

31 static bool isReg(const MCInst &MI, unsigned OpNo) {  in isReg()  argument
32 assert(MI.getOperand(OpNo).isReg() && "Register operand expected."); in isReg()
33 return MI.getOperand(OpNo).getReg() == R; in isReg()
78 void MipsInstPrinter::printInst(const MCInst *MI, uint64_t Address, in printInst() argument
81 switch (MI->getOpcode()) { in printInst()
91 printSaveRestore(MI, STI, O); in printInst()
96 printSaveRestore(MI, STI, O); in printInst()
101 printSaveRestore(MI, STI, O); in printInst()
106 printSaveRestore(MI, STI, O); in printInst()
112 if (!printAliasInstr(MI, Address, STI, O) && in printInst()
113 !printAlias(*MI, Address, STI, O)) in printInst()
114 printInstruction(MI, Address, STI, O); in printInst()
117 switch (MI->getOpcode()) { in printInst()
126 void MipsInstPrinter::printOperand(const MCInst *MI, unsigned OpNo, in printOperand() argument
128 const MCOperand &Op = MI->getOperand(OpNo); in printOperand()
143 void MipsInstPrinter::printJumpOperand(const MCInst *MI, unsigned OpNo, in printJumpOperand() argument
146 const MCOperand &Op = MI->getOperand(OpNo); in printJumpOperand()
148 return printOperand(MI, OpNo, STI, O); in printJumpOperand()
156 void MipsInstPrinter::printBranchOperand(const MCInst *MI, uint64_t Address, in printBranchOperand() argument
160 const MCOperand &Op = MI->getOperand(OpNo); in printBranchOperand()
162 return printOperand(MI, OpNo, STI, O); in printBranchOperand()
177 void MipsInstPrinter::printUImm(const MCInst *MI, int opNum, in printUImm() argument
179 const MCOperand &MO = MI->getOperand(opNum); in printUImm()
189 printOperand(MI, opNum, STI, O); in printUImm()
192 void MipsInstPrinter::printMemOperand(const MCInst *MI, int opNum, in printMemOperand() argument
201 switch (MI->getOpcode()) { in printMemOperand()
210 opNum = MI->getNumOperands() - 2; in printMemOperand()
214 printOperand(MI, opNum + 1, STI, O); in printMemOperand()
216 printOperand(MI, opNum, STI, O); in printMemOperand()
220 void MipsInstPrinter::printMemOperandEA(const MCInst *MI, int opNum, in printMemOperandEA() argument
225 printOperand(MI, opNum, STI, O); in printMemOperandEA()
227 printOperand(MI, opNum + 1, STI, O); in printMemOperandEA()
230 void MipsInstPrinter::printFCCOperand(const MCInst *MI, int opNum, in printFCCOperand() argument
233 const MCOperand &MO = MI->getOperand(opNum); in printFCCOperand()
238 printSHFMask(const MCInst *MI, int opNum, raw_ostream &O) { in printSHFMask() argument
242 bool MipsInstPrinter::printAlias(const char *Str, const MCInst &MI, in printAlias() argument
248 printBranchOperand(&MI, Address, OpNo, STI, OS); in printAlias()
250 printOperand(&MI, OpNo, STI, OS); in printAlias()
254 bool MipsInstPrinter::printAlias(const char *Str, const MCInst &MI, in printAlias() argument
258 printAlias(Str, MI, Address, OpNo0, STI, OS, IsBranch); in printAlias()
261 printBranchOperand(&MI, Address, OpNo1, STI, OS); in printAlias()
263 printOperand(&MI, OpNo1, STI, OS); in printAlias()
267 bool MipsInstPrinter::printAlias(const MCInst &MI, uint64_t Address, in printAlias() argument
269 switch (MI.getOpcode()) { in printAlias()
274 return (isReg<Mips::ZERO>(MI, 0) && isReg<Mips::ZERO>(MI, 1) && in printAlias()
275 printAlias("b", MI, Address, 2, STI, OS, true)) || in printAlias()
276 (isReg<Mips::ZERO>(MI, 1) && in printAlias()
277 printAlias("beqz", MI, Address, 0, 2, STI, OS, true)); in printAlias()
280 return isReg<Mips::ZERO_64>(MI, 1) && in printAlias()
281 printAlias("beqz", MI, Address, 0, 2, STI, OS, true); in printAlias()
285 return isReg<Mips::ZERO>(MI, 1) && in printAlias()
286 printAlias("bnez", MI, Address, 0, 2, STI, OS, true); in printAlias()
289 return isReg<Mips::ZERO_64>(MI, 1) && in printAlias()
290 printAlias("bnez", MI, Address, 0, 2, STI, OS, true); in printAlias()
293 return isReg<Mips::ZERO>(MI, 0) && in printAlias()
294 printAlias("bal", MI, Address, 1, STI, OS, true); in printAlias()
297 return isReg<Mips::FCC0>(MI, 0) && in printAlias()
298 printAlias("bc1t", MI, Address, 1, STI, OS, true); in printAlias()
301 return isReg<Mips::FCC0>(MI, 0) && in printAlias()
302 printAlias("bc1f", MI, Address, 1, STI, OS, true); in printAlias()
306 return (isReg<Mips::ZERO>(MI, 0) && in printAlias()
307 printAlias("jr", MI, Address, 1, STI, OS)) || in printAlias()
308 (isReg<Mips::RA>(MI, 0) && in printAlias()
309 printAlias("jalr", MI, Address, 1, STI, OS)); in printAlias()
313 return (isReg<Mips::ZERO_64>(MI, 0) && in printAlias()
314 printAlias("jr", MI, Address, 1, STI, OS)) || in printAlias()
315 (isReg<Mips::RA_64>(MI, 0) && in printAlias()
316 printAlias("jalr", MI, Address, 1, STI, OS)); in printAlias()
321 return isReg<Mips::ZERO>(MI, 2) && in printAlias()
322 printAlias("not", MI, Address, 0, 1, STI, OS); in printAlias()
325 return isReg<Mips::ZERO_64>(MI, 2) && in printAlias()
326 printAlias("not", MI, Address, 0, 1, STI, OS); in printAlias()
331 return isReg<Mips::ZERO>(MI, 2) && in printAlias()
332 printAlias("move", MI, Address, 0, 1, STI, OS); in printAlias()
338 void MipsInstPrinter::printSaveRestore(const MCInst *MI, in printSaveRestore() argument
341 for (unsigned i = 0, e = MI->getNumOperands(); i != e; ++i) { in printSaveRestore()
343 if (MI->getOperand(i).isReg()) in printSaveRestore()
344 printRegName(O, MI->getOperand(i).getReg()); in printSaveRestore()
346 printUImm<16>(MI, i, STI, O); in printSaveRestore()
350 void MipsInstPrinter::printRegisterList(const MCInst *MI, int opNum, in printRegisterList() argument
355 for (int i = opNum, e = MI->getNumOperands() - 2; i != e; ++i) { in printRegisterList()
358 printRegName(O, MI->getOperand(i).getReg()); in printRegisterList()