Lines Matching full:mi
32 static bool isReg(const MCInst &MI, unsigned OpNo) { in isReg() argument
33 assert(MI.getOperand(OpNo).isReg() && "Register operand expected."); in isReg()
34 return MI.getOperand(OpNo).getReg() == R; in isReg()
80 void MipsInstPrinter::printInst(const MCInst *MI, uint64_t Address, in printInst() argument
83 switch (MI->getOpcode()) { in printInst()
93 printSaveRestore(MI, STI, O); in printInst()
98 printSaveRestore(MI, STI, O); in printInst()
103 printSaveRestore(MI, STI, O); in printInst()
108 printSaveRestore(MI, STI, O); in printInst()
114 if (!printAliasInstr(MI, Address, STI, O) && in printInst()
115 !printAlias(*MI, Address, STI, O)) in printInst()
116 printInstruction(MI, Address, STI, O); in printInst()
119 switch (MI->getOpcode()) { in printInst()
128 void MipsInstPrinter::printOperand(const MCInst *MI, unsigned OpNo, in printOperand() argument
130 const MCOperand &Op = MI->getOperand(OpNo); in printOperand()
145 void MipsInstPrinter::printJumpOperand(const MCInst *MI, unsigned OpNo, in printJumpOperand() argument
148 const MCOperand &Op = MI->getOperand(OpNo); in printJumpOperand()
150 return printOperand(MI, OpNo, STI, O); in printJumpOperand()
158 void MipsInstPrinter::printBranchOperand(const MCInst *MI, uint64_t Address, in printBranchOperand() argument
162 const MCOperand &Op = MI->getOperand(OpNo); in printBranchOperand()
164 return printOperand(MI, OpNo, STI, O); in printBranchOperand()
179 void MipsInstPrinter::printUImm(const MCInst *MI, int opNum, in printUImm() argument
181 const MCOperand &MO = MI->getOperand(opNum); in printUImm()
191 printOperand(MI, opNum, STI, O); in printUImm()
194 void MipsInstPrinter::printMemOperand(const MCInst *MI, int opNum, in printMemOperand() argument
203 switch (MI->getOpcode()) { in printMemOperand()
212 opNum = MI->getNumOperands() - 2; in printMemOperand()
217 printOperand(MI, opNum + 1, STI, O); in printMemOperand()
219 printOperand(MI, opNum, STI, O); in printMemOperand()
223 void MipsInstPrinter::printMemOperandEA(const MCInst *MI, int opNum, in printMemOperandEA() argument
228 printOperand(MI, opNum, STI, O); in printMemOperandEA()
230 printOperand(MI, opNum + 1, STI, O); in printMemOperandEA()
233 void MipsInstPrinter::printFCCOperand(const MCInst *MI, int opNum, in printFCCOperand() argument
236 const MCOperand &MO = MI->getOperand(opNum); in printFCCOperand()
241 printSHFMask(const MCInst *MI, int opNum, raw_ostream &O) { in printSHFMask() argument
245 bool MipsInstPrinter::printAlias(const char *Str, const MCInst &MI, in printAlias() argument
251 printBranchOperand(&MI, Address, OpNo, STI, OS); in printAlias()
253 printOperand(&MI, OpNo, STI, OS); in printAlias()
257 bool MipsInstPrinter::printAlias(const char *Str, const MCInst &MI, in printAlias() argument
261 printAlias(Str, MI, Address, OpNo0, STI, OS, IsBranch); in printAlias()
264 printBranchOperand(&MI, Address, OpNo1, STI, OS); in printAlias()
266 printOperand(&MI, OpNo1, STI, OS); in printAlias()
270 bool MipsInstPrinter::printAlias(const MCInst &MI, uint64_t Address, in printAlias() argument
272 switch (MI.getOpcode()) { in printAlias()
277 return (isReg<Mips::ZERO>(MI, 0) && isReg<Mips::ZERO>(MI, 1) && in printAlias()
278 printAlias("b", MI, Address, 2, STI, OS, true)) || in printAlias()
279 (isReg<Mips::ZERO>(MI, 1) && in printAlias()
280 printAlias("beqz", MI, Address, 0, 2, STI, OS, true)); in printAlias()
283 return isReg<Mips::ZERO_64>(MI, 1) && in printAlias()
284 printAlias("beqz", MI, Address, 0, 2, STI, OS, true); in printAlias()
288 return isReg<Mips::ZERO>(MI, 1) && in printAlias()
289 printAlias("bnez", MI, Address, 0, 2, STI, OS, true); in printAlias()
292 return isReg<Mips::ZERO_64>(MI, 1) && in printAlias()
293 printAlias("bnez", MI, Address, 0, 2, STI, OS, true); in printAlias()
296 return isReg<Mips::ZERO>(MI, 0) && in printAlias()
297 printAlias("bal", MI, Address, 1, STI, OS, true); in printAlias()
300 return isReg<Mips::FCC0>(MI, 0) && in printAlias()
301 printAlias("bc1t", MI, Address, 1, STI, OS, true); in printAlias()
304 return isReg<Mips::FCC0>(MI, 0) && in printAlias()
305 printAlias("bc1f", MI, Address, 1, STI, OS, true); in printAlias()
309 return (isReg<Mips::ZERO>(MI, 0) && in printAlias()
310 printAlias("jr", MI, Address, 1, STI, OS)) || in printAlias()
311 (isReg<Mips::RA>(MI, 0) && in printAlias()
312 printAlias("jalr", MI, Address, 1, STI, OS)); in printAlias()
316 return (isReg<Mips::ZERO_64>(MI, 0) && in printAlias()
317 printAlias("jr", MI, Address, 1, STI, OS)) || in printAlias()
318 (isReg<Mips::RA_64>(MI, 0) && in printAlias()
319 printAlias("jalr", MI, Address, 1, STI, OS)); in printAlias()
324 return isReg<Mips::ZERO>(MI, 2) && in printAlias()
325 printAlias("not", MI, Address, 0, 1, STI, OS); in printAlias()
328 return isReg<Mips::ZERO_64>(MI, 2) && in printAlias()
329 printAlias("not", MI, Address, 0, 1, STI, OS); in printAlias()
334 return isReg<Mips::ZERO>(MI, 2) && in printAlias()
335 printAlias("move", MI, Address, 0, 1, STI, OS); in printAlias()
341 void MipsInstPrinter::printSaveRestore(const MCInst *MI, in printSaveRestore() argument
344 for (unsigned i = 0, e = MI->getNumOperands(); i != e; ++i) { in printSaveRestore()
346 if (MI->getOperand(i).isReg()) in printSaveRestore()
347 printRegName(O, MI->getOperand(i).getReg()); in printSaveRestore()
349 printUImm<16>(MI, i, STI, O); in printSaveRestore()
353 void MipsInstPrinter::printRegisterList(const MCInst *MI, int opNum, in printRegisterList() argument
358 for (int i = opNum, e = MI->getNumOperands() - 2; i != e; ++i) { in printRegisterList()
361 printRegName(O, MI->getOperand(i).getReg()); in printRegisterList()