Lines Matching refs:ImmMO
3493 // Check if the DefMI is the add inst and set the ImmMO and RegMO
3497 MachineOperand *&ImmMO,
3506 ImmMO = &DefMI.getOperand(2);
3511 return isAnImmediateOperand(*ImmMO);
3553 bool PPCInstrInfo::isImmElgibleForForwarding(const MachineOperand &ImmMO,
3557 assert(isAnImmediateOperand(ImmMO) && "ImmMO is NOT an immediate");
3570 if (ImmMO.isGlobal() &&
3571 ImmMO.getGlobal()->getAlignment() < III.ImmMustBeMultipleOf)
3577 if (ImmMO.isImm()) {
3579 int64_t Immediate = ImmMO.getImm();
3601 // This ImmMO is forwarded if it meets the requriement describle
3613 // RegMO ImmMO
3624 // described in the III. If yes, set the ImmMO and RegMO accordingly.
3625 MachineOperand *ImmMO = nullptr;
3627 if (!isDefMIElgibleForForwarding(DefMI, III, ImmMO, RegMO))
3629 assert(ImmMO && RegMO && "Imm and Reg operand must have been set");
3631 // As we get the Imm operand now, we need to check if the ImmMO meet
3634 if (!isImmElgibleForForwarding(*ImmMO, DefMI, III, Imm))
3664 if (ImmMO->isImm()) {
3665 // If the ImmMO is Imm, change the operand that has ZERO to that Imm
3672 // register with ImmMO.
3674 // For some reason, we miss to set the flag for the ImmMO if it is CPI.
3676 ImmMO->setTargetFlags(PPCII::MO_TOC_LO);
3680 // ImmMO, we need to remove ZERO operand and all the operands behind it,
3681 // and, add the ImmMO, then, move back all the operands behind ZERO.
3691 MI.addOperand(*ImmMO);