Lines Matching defs:MI

167 void ARMAsmPrinter::printOperand(const MachineInstr *MI, int OpNum,
169 const MachineOperand &MO = MI->getOperand(OpNum);
179 const MachineFunction &MF = *MI->getParent()->getParent();
249 bool ARMAsmPrinter::PrintAsmOperand(const MachineInstr *MI, unsigned OpNum,
259 return AsmPrinter::PrintAsmOperand(MI, OpNum, AsmVariant, ExtraCode, O);
261 if (MI->getOperand(OpNum).isReg()) {
263 << ARMInstPrinter::getRegisterName(MI->getOperand(OpNum).getReg())
269 if (!MI->getOperand(OpNum).isImm())
271 O << MI->getOperand(OpNum).getImm();
275 printOperand(MI, OpNum, O);
278 if (MI->getOperand(OpNum).isReg()) {
279 unsigned Reg = MI->getOperand(OpNum).getReg();
293 if (!MI->getOperand(OpNum).isImm())
295 O << ~(MI->getOperand(OpNum).getImm());
298 if (!MI->getOperand(OpNum).isImm())
300 O << (MI->getOperand(OpNum).getImm() & 0xffff);
303 if (!MI->getOperand(OpNum).isReg())
305 const MachineOperand &MO = MI->getOperand(OpNum);
324 while (MI->getOperand(RegOps).isReg()) {
326 << ARMInstPrinter::getRegisterName(MI->getOperand(RegOps).getReg());
338 const MachineOperand &FlagsOP = MI->getOperand(OpNum - 1);
349 unsigned OpFlags = MI->getOperand(OpNum).getImm();
352 Flags = MI->getOperand(OpNum).getImm();
365 const MachineOperand &MO = MI->getOperand(OpNum);
377 if (RegOp >= MI->getNumOperands())
379 const MachineOperand &MO = MI->getOperand(RegOp);
389 if (!MI->getOperand(OpNum).isReg())
391 unsigned Reg = MI->getOperand(OpNum).getReg();
405 const MachineOperand &MO = MI->getOperand(OpNum);
408 const MachineFunction &MF = *MI->getParent()->getParent();
420 printOperand(MI, OpNum, O);
424 bool ARMAsmPrinter::PrintAsmMemoryOperand(const MachineInstr *MI,
436 if (!MI->getOperand(OpNum).isReg())
438 O << ARMInstPrinter::getRegisterName(MI->getOperand(OpNum).getReg());
443 const MachineOperand &MO = MI->getOperand(OpNum);
853 void ARMAsmPrinter::EmitJumpTable(const MachineInstr *MI) {
854 unsigned Opcode = MI->getOpcode();
861 const MachineOperand &MO1 = MI->getOperand(OpNum);
862 const MachineOperand &MO2 = MI->getOperand(OpNum+1); // Unique Id
904 void ARMAsmPrinter::EmitJump2Table(const MachineInstr *MI) {
905 unsigned Opcode = MI->getOpcode();
907 const MachineOperand &MO1 = MI->getOperand(OpNum);
908 const MachineOperand &MO2 = MI->getOperand(OpNum+1); // Unique Id
919 if (MI->getOpcode() == ARM::t2TBB_JT) {
923 } else if (MI->getOpcode() == ARM::t2TBH_JT) {
965 void ARMAsmPrinter::EmitUnwindingInstruction(const MachineInstr *MI) {
966 assert(MI->getFlag(MachineInstr::FrameSetup) &&
971 const MachineFunction &MF = *MI->getParent()->getParent();
976 unsigned Opc = MI->getOpcode();
987 SrcReg = MI->getOperand(1).getReg();
988 DstReg = MI->getOperand(0).getReg();
992 if (MI->mayStore()) {
1005 MI->dump();
1015 for (unsigned i = StartOp, NumOps = MI->getNumOperands() - NumOffset;
1017 const MachineOperand &MO = MI->getOperand(i);
1028 assert(MI->getOperand(2).getReg() == ARM::SP &&
1040 MI->dump();
1047 Offset = -MI->getOperand(2).getImm();
1051 Offset = MI->getOperand(2).getImm();
1054 Offset = MI->getOperand(2).getImm()*4;
1058 Offset = -MI->getOperand(2).getImm()*4;
1063 unsigned CPI = MI->getOperand(1).getIndex();
1087 MI->dump();
1092 MI->dump();
1096 MI->dump();
1108 void ARMAsmPrinter::EmitInstruction(const MachineInstr *MI) {
1110 if (InConstantPool && MI->getOpcode() != ARM::CONSTPOOL_ENTRY) {
1116 if (EnableARMEHABI && MI->getFlag(MachineInstr::FrameSetup))
1117 EmitUnwindingInstruction(MI);
1120 if (emitPseudoExpansionLowering(OutStreamer, MI))
1123 assert(!convertAddSubFlagsOpcode(MI->getOpcode()) &&
1127 unsigned Opc = MI->getOpcode();
1135 MCSymbol *CPISymbol = GetCPISymbol(MI->getOperand(1).getIndex());
1136 OutStreamer.EmitInstruction(MCInstBuilder(MI->getOpcode() ==
1138 : (MI->getOpcode() == ARM::tLEApcrel ? ARM::tADR
1140 .addReg(MI->getOperand(0).getReg())
1143 .addImm(MI->getOperand(2).getImm())
1144 .addReg(MI->getOperand(3).getReg()));
1151 GetARMJTIPICJumpTableLabel2(MI->getOperand(1).getIndex(),
1152 MI->getOperand(2).getImm());
1153 OutStreamer.EmitInstruction(MCInstBuilder(MI->getOpcode() ==
1155 : (MI->getOpcode() == ARM::tLEApcrelJT ? ARM::tADR
1157 .addReg(MI->getOperand(0).getReg())
1160 .addImm(MI->getOperand(3).getImm())
1161 .addReg(MI->getOperand(4).getReg()));
1177 .addReg(MI->getOperand(0).getReg()));
1189 .addReg(MI->getOperand(0).getReg())
1207 .addReg(MI->getOperand(0).getReg())
1225 const GlobalValue *GV = MI->getOperand(0).getGlobal();
1239 TmpInst.addOperand(MCOperand::CreateReg(MI->getOperand(0).getReg()));
1241 unsigned TF = MI->getOperand(1).getTargetFlags();
1243 const GlobalValue *GV = MI->getOperand(1).getGlobal();
1249 MI->getOperand(2).getImm(), OutContext);
1276 TmpInst.addOperand(MCOperand::CreateReg(MI->getOperand(0).getReg()));
1277 TmpInst.addOperand(MCOperand::CreateReg(MI->getOperand(1).getReg()));
1279 unsigned TF = MI->getOperand(2).getTargetFlags();
1281 const GlobalValue *GV = MI->getOperand(2).getGlobal();
1287 MI->getOperand(3).getImm(), OutContext);
1316 getFunctionNumber(), MI->getOperand(2).getImm(),
1321 .addReg(MI->getOperand(0).getReg())
1322 .addReg(MI->getOperand(0).getReg())
1337 getFunctionNumber(), MI->getOperand(2).getImm(),
1342 .addReg(MI->getOperand(0).getReg())
1344 .addReg(MI->getOperand(1).getReg())
1346 .addImm(MI->getOperand(3).getImm())
1347 .addReg(MI->getOperand(4).getReg())
1368 getFunctionNumber(), MI->getOperand(2).getImm(),
1373 switch (MI->getOpcode()) {
1386 .addReg(MI->getOperand(0).getReg())
1388 .addReg(MI->getOperand(1).getReg())
1391 .addImm(MI->getOperand(3).getImm())
1392 .addReg(MI->getOperand(4).getReg()));
1401 /// The required alignment is specified on the basic block holding this MI.
1402 unsigned LabelId = (unsigned)MI->getOperand(0).getImm();
1403 unsigned CPIdx = (unsigned)MI->getOperand(1).getIndex();
1424 .addReg(MI->getOperand(0).getReg())
1430 EmitJump2Table(MI);
1437 .addReg(MI->getOperand(0).getReg())
1443 EmitJump2Table(MI);
1452 .addReg(MI->getOperand(0).getReg())
1458 EmitJump2Table(MI);
1466 unsigned Opc = MI->getOpcode() == ARM::BR_JTr ?
1470 TmpInst.addOperand(MCOperand::CreateReg(MI->getOperand(0).getReg()));
1484 EmitJumpTable(MI);
1491 if (MI->getOperand(1).getReg() == 0) {
1495 TmpInst.addOperand(MCOperand::CreateReg(MI->getOperand(0).getReg()));
1496 TmpInst.addOperand(MCOperand::CreateImm(MI->getOperand(2).getImm()));
1500 TmpInst.addOperand(MCOperand::CreateReg(MI->getOperand(0).getReg()));
1501 TmpInst.addOperand(MCOperand::CreateReg(MI->getOperand(1).getReg()));
1510 EmitJumpTable(MI);
1518 .addReg(MI->getOperand(0).getReg())
1519 .addReg(MI->getOperand(1).getReg())
1527 EmitJumpTable(MI);
1572 unsigned SrcReg = MI->getOperand(0).getReg();
1573 unsigned ValReg = MI->getOperand(1).getReg();
1638 unsigned SrcReg = MI->getOperand(0).getReg();
1639 unsigned ValReg = MI->getOperand(1).getReg();
1695 unsigned SrcReg = MI->getOperand(0).getReg();
1696 unsigned ScratchReg = MI->getOperand(1).getReg();
1734 unsigned SrcReg = MI->getOperand(0).getReg();
1735 unsigned ScratchReg = MI->getOperand(1).getReg();
1779 LowerARMMachineInstrToMCInst(MI, TmpInst, *this);