Lines Matching refs:III

3316     ImmInstrInfo III;  in getForwardingDefMI()  local
3329 if (!ConvertibleImmForm && !instrHasImmForm(Opc, IsVFReg, III, true)) in getForwardingDefMI()
3511 ImmInstrInfo III; in foldFrameOffset() local
3515 III)) in foldFrameOffset()
3557 if (III.ZeroIsSpecialOrig == III.ImmOpNo && in foldFrameOffset()
3580 MI.getOperand(III.ImmOpNo) in foldFrameOffset()
3584 MI.getOperand(III.OpNoForForwarding) in foldFrameOffset()
3624 ImmInstrInfo &III) const { in isImmInstrEligibleForFolding()
3639 III, true)) in isImmInstrEligibleForFolding()
3642 if (!III.IsSummingOperands) in isImmInstrEligibleForFolding()
3645 MachineOperand ImmOperand = MI.getOperand(III.ImmOpNo); in isImmInstrEligibleForFolding()
3646 MachineOperand RegOperand = MI.getOperand(III.OpNoForForwarding); in isImmInstrEligibleForFolding()
3733 ImmInstrInfo III; in convertToImmediateForm() local
3737 bool HasImmForm = instrHasImmForm(MI.getOpcode(), IsVFReg, III, PostRA); in convertToImmediateForm()
3742 transformToImmFormFedByAdd(MI, III, ForwardingOperand, *DefMI, in convertToImmediateForm()
3749 transformToImmFormFedByLI(MI, III, ForwardingOperand, *DefMI)) in convertToImmediateForm()
3898 ImmInstrInfo &III, bool PostRA) const { in instrHasImmForm() argument
3903 III.ImmOpNo = 2; in instrHasImmForm()
3904 III.OpNoForForwarding = 2; in instrHasImmForm()
3905 III.ImmWidth = 16; in instrHasImmForm()
3906 III.ImmMustBeMultipleOf = 1; in instrHasImmForm()
3907 III.TruncateImmTo = 0; in instrHasImmForm()
3908 III.IsSummingOperands = false; in instrHasImmForm()
3913 III.SignedImm = true; in instrHasImmForm()
3914 III.ZeroIsSpecialOrig = 0; in instrHasImmForm()
3915 III.ZeroIsSpecialNew = 1; in instrHasImmForm()
3916 III.IsCommutative = true; in instrHasImmForm()
3917 III.IsSummingOperands = true; in instrHasImmForm()
3918 III.ImmOpcode = Opc == PPC::ADD4 ? PPC::ADDI : PPC::ADDI8; in instrHasImmForm()
3922 III.SignedImm = true; in instrHasImmForm()
3923 III.ZeroIsSpecialOrig = 0; in instrHasImmForm()
3924 III.ZeroIsSpecialNew = 0; in instrHasImmForm()
3925 III.IsCommutative = true; in instrHasImmForm()
3926 III.IsSummingOperands = true; in instrHasImmForm()
3927 III.ImmOpcode = Opc == PPC::ADDC ? PPC::ADDIC : PPC::ADDIC8; in instrHasImmForm()
3930 III.SignedImm = true; in instrHasImmForm()
3931 III.ZeroIsSpecialOrig = 0; in instrHasImmForm()
3932 III.ZeroIsSpecialNew = 0; in instrHasImmForm()
3933 III.IsCommutative = true; in instrHasImmForm()
3934 III.IsSummingOperands = true; in instrHasImmForm()
3935 III.ImmOpcode = PPC::ADDIC_rec; in instrHasImmForm()
3939 III.SignedImm = true; in instrHasImmForm()
3940 III.ZeroIsSpecialOrig = 0; in instrHasImmForm()
3941 III.ZeroIsSpecialNew = 0; in instrHasImmForm()
3942 III.IsCommutative = false; in instrHasImmForm()
3943 III.ImmOpcode = Opc == PPC::SUBFC ? PPC::SUBFIC : PPC::SUBFIC8; in instrHasImmForm()
3947 III.SignedImm = true; in instrHasImmForm()
3948 III.ZeroIsSpecialOrig = 0; in instrHasImmForm()
3949 III.ZeroIsSpecialNew = 0; in instrHasImmForm()
3950 III.IsCommutative = false; in instrHasImmForm()
3951 III.ImmOpcode = Opc == PPC::CMPW ? PPC::CMPWI : PPC::CMPDI; in instrHasImmForm()
3955 III.SignedImm = false; in instrHasImmForm()
3956 III.ZeroIsSpecialOrig = 0; in instrHasImmForm()
3957 III.ZeroIsSpecialNew = 0; in instrHasImmForm()
3958 III.IsCommutative = false; in instrHasImmForm()
3959 III.ImmOpcode = Opc == PPC::CMPLW ? PPC::CMPLWI : PPC::CMPLDI; in instrHasImmForm()
3967 III.SignedImm = false; in instrHasImmForm()
3968 III.ZeroIsSpecialOrig = 0; in instrHasImmForm()
3969 III.ZeroIsSpecialNew = 0; in instrHasImmForm()
3970 III.IsCommutative = true; in instrHasImmForm()
3974 III.ImmOpcode = PPC::ANDI_rec; in instrHasImmForm()
3977 III.ImmOpcode = PPC::ANDI8_rec; in instrHasImmForm()
3979 case PPC::OR: III.ImmOpcode = PPC::ORI; break; in instrHasImmForm()
3980 case PPC::OR8: III.ImmOpcode = PPC::ORI8; break; in instrHasImmForm()
3981 case PPC::XOR: III.ImmOpcode = PPC::XORI; break; in instrHasImmForm()
3982 case PPC::XOR8: III.ImmOpcode = PPC::XORI8; break; in instrHasImmForm()
3999 III.SignedImm = false; in instrHasImmForm()
4000 III.ZeroIsSpecialOrig = 0; in instrHasImmForm()
4001 III.ZeroIsSpecialNew = 0; in instrHasImmForm()
4002 III.IsCommutative = false; in instrHasImmForm()
4007 III.ImmWidth = 16; in instrHasImmForm()
4010 III.TruncateImmTo = 5; in instrHasImmForm()
4012 III.TruncateImmTo = 6; in instrHasImmForm()
4015 case PPC::RLWNM: III.ImmOpcode = PPC::RLWINM; break; in instrHasImmForm()
4016 case PPC::RLWNM8: III.ImmOpcode = PPC::RLWINM8; break; in instrHasImmForm()
4018 III.ImmOpcode = PPC::RLWINM_rec; in instrHasImmForm()
4021 III.ImmOpcode = PPC::RLWINM8_rec; in instrHasImmForm()
4023 case PPC::SLW: III.ImmOpcode = PPC::RLWINM; break; in instrHasImmForm()
4024 case PPC::SLW8: III.ImmOpcode = PPC::RLWINM8; break; in instrHasImmForm()
4026 III.ImmOpcode = PPC::RLWINM_rec; in instrHasImmForm()
4029 III.ImmOpcode = PPC::RLWINM8_rec; in instrHasImmForm()
4031 case PPC::SRW: III.ImmOpcode = PPC::RLWINM; break; in instrHasImmForm()
4032 case PPC::SRW8: III.ImmOpcode = PPC::RLWINM8; break; in instrHasImmForm()
4034 III.ImmOpcode = PPC::RLWINM_rec; in instrHasImmForm()
4037 III.ImmOpcode = PPC::RLWINM8_rec; in instrHasImmForm()
4040 III.ImmWidth = 5; in instrHasImmForm()
4041 III.TruncateImmTo = 0; in instrHasImmForm()
4042 III.ImmOpcode = PPC::SRAWI; in instrHasImmForm()
4045 III.ImmWidth = 5; in instrHasImmForm()
4046 III.TruncateImmTo = 0; in instrHasImmForm()
4047 III.ImmOpcode = PPC::SRAWI_rec; in instrHasImmForm()
4061 III.SignedImm = false; in instrHasImmForm()
4062 III.ZeroIsSpecialOrig = 0; in instrHasImmForm()
4063 III.ZeroIsSpecialNew = 0; in instrHasImmForm()
4064 III.IsCommutative = false; in instrHasImmForm()
4069 III.ImmWidth = 16; in instrHasImmForm()
4072 III.TruncateImmTo = 6; in instrHasImmForm()
4074 III.TruncateImmTo = 7; in instrHasImmForm()
4077 case PPC::RLDCL: III.ImmOpcode = PPC::RLDICL; break; in instrHasImmForm()
4079 III.ImmOpcode = PPC::RLDICL_rec; in instrHasImmForm()
4081 case PPC::RLDCR: III.ImmOpcode = PPC::RLDICR; break; in instrHasImmForm()
4083 III.ImmOpcode = PPC::RLDICR_rec; in instrHasImmForm()
4085 case PPC::SLD: III.ImmOpcode = PPC::RLDICR; break; in instrHasImmForm()
4087 III.ImmOpcode = PPC::RLDICR_rec; in instrHasImmForm()
4089 case PPC::SRD: III.ImmOpcode = PPC::RLDICL; break; in instrHasImmForm()
4091 III.ImmOpcode = PPC::RLDICL_rec; in instrHasImmForm()
4094 III.ImmWidth = 6; in instrHasImmForm()
4095 III.TruncateImmTo = 0; in instrHasImmForm()
4096 III.ImmOpcode = PPC::SRADI; in instrHasImmForm()
4099 III.ImmWidth = 6; in instrHasImmForm()
4100 III.TruncateImmTo = 0; in instrHasImmForm()
4101 III.ImmOpcode = PPC::SRADI_rec; in instrHasImmForm()
4127 III.SignedImm = true; in instrHasImmForm()
4128 III.ZeroIsSpecialOrig = 1; in instrHasImmForm()
4129 III.ZeroIsSpecialNew = 2; in instrHasImmForm()
4130 III.IsCommutative = true; in instrHasImmForm()
4131 III.IsSummingOperands = true; in instrHasImmForm()
4132 III.ImmOpNo = 1; in instrHasImmForm()
4133 III.OpNoForForwarding = 2; in instrHasImmForm()
4136 case PPC::LBZX: III.ImmOpcode = PPC::LBZ; break; in instrHasImmForm()
4137 case PPC::LBZX8: III.ImmOpcode = PPC::LBZ8; break; in instrHasImmForm()
4138 case PPC::LHZX: III.ImmOpcode = PPC::LHZ; break; in instrHasImmForm()
4139 case PPC::LHZX8: III.ImmOpcode = PPC::LHZ8; break; in instrHasImmForm()
4140 case PPC::LHAX: III.ImmOpcode = PPC::LHA; break; in instrHasImmForm()
4141 case PPC::LHAX8: III.ImmOpcode = PPC::LHA8; break; in instrHasImmForm()
4142 case PPC::LWZX: III.ImmOpcode = PPC::LWZ; break; in instrHasImmForm()
4143 case PPC::LWZX8: III.ImmOpcode = PPC::LWZ8; break; in instrHasImmForm()
4145 III.ImmOpcode = PPC::LWA; in instrHasImmForm()
4146 III.ImmMustBeMultipleOf = 4; in instrHasImmForm()
4148 case PPC::LDX: III.ImmOpcode = PPC::LD; III.ImmMustBeMultipleOf = 4; break; in instrHasImmForm()
4149 case PPC::LFSX: III.ImmOpcode = PPC::LFS; break; in instrHasImmForm()
4150 case PPC::LFDX: III.ImmOpcode = PPC::LFD; break; in instrHasImmForm()
4151 case PPC::STBX: III.ImmOpcode = PPC::STB; break; in instrHasImmForm()
4152 case PPC::STBX8: III.ImmOpcode = PPC::STB8; break; in instrHasImmForm()
4153 case PPC::STHX: III.ImmOpcode = PPC::STH; break; in instrHasImmForm()
4154 case PPC::STHX8: III.ImmOpcode = PPC::STH8; break; in instrHasImmForm()
4155 case PPC::STWX: III.ImmOpcode = PPC::STW; break; in instrHasImmForm()
4156 case PPC::STWX8: III.ImmOpcode = PPC::STW8; break; in instrHasImmForm()
4158 III.ImmOpcode = PPC::STD; in instrHasImmForm()
4159 III.ImmMustBeMultipleOf = 4; in instrHasImmForm()
4161 case PPC::STFSX: III.ImmOpcode = PPC::STFS; break; in instrHasImmForm()
4162 case PPC::STFDX: III.ImmOpcode = PPC::STFD; break; in instrHasImmForm()
4185 III.SignedImm = true; in instrHasImmForm()
4186 III.ZeroIsSpecialOrig = 2; in instrHasImmForm()
4187 III.ZeroIsSpecialNew = 3; in instrHasImmForm()
4188 III.IsCommutative = false; in instrHasImmForm()
4189 III.IsSummingOperands = true; in instrHasImmForm()
4190 III.ImmOpNo = 2; in instrHasImmForm()
4191 III.OpNoForForwarding = 3; in instrHasImmForm()
4194 case PPC::LBZUX: III.ImmOpcode = PPC::LBZU; break; in instrHasImmForm()
4195 case PPC::LBZUX8: III.ImmOpcode = PPC::LBZU8; break; in instrHasImmForm()
4196 case PPC::LHZUX: III.ImmOpcode = PPC::LHZU; break; in instrHasImmForm()
4197 case PPC::LHZUX8: III.ImmOpcode = PPC::LHZU8; break; in instrHasImmForm()
4198 case PPC::LHAUX: III.ImmOpcode = PPC::LHAU; break; in instrHasImmForm()
4199 case PPC::LHAUX8: III.ImmOpcode = PPC::LHAU8; break; in instrHasImmForm()
4200 case PPC::LWZUX: III.ImmOpcode = PPC::LWZU; break; in instrHasImmForm()
4201 case PPC::LWZUX8: III.ImmOpcode = PPC::LWZU8; break; in instrHasImmForm()
4203 III.ImmOpcode = PPC::LDU; in instrHasImmForm()
4204 III.ImmMustBeMultipleOf = 4; in instrHasImmForm()
4206 case PPC::LFSUX: III.ImmOpcode = PPC::LFSU; break; in instrHasImmForm()
4207 case PPC::LFDUX: III.ImmOpcode = PPC::LFDU; break; in instrHasImmForm()
4208 case PPC::STBUX: III.ImmOpcode = PPC::STBU; break; in instrHasImmForm()
4209 case PPC::STBUX8: III.ImmOpcode = PPC::STBU8; break; in instrHasImmForm()
4210 case PPC::STHUX: III.ImmOpcode = PPC::STHU; break; in instrHasImmForm()
4211 case PPC::STHUX8: III.ImmOpcode = PPC::STHU8; break; in instrHasImmForm()
4212 case PPC::STWUX: III.ImmOpcode = PPC::STWU; break; in instrHasImmForm()
4213 case PPC::STWUX8: III.ImmOpcode = PPC::STWU8; break; in instrHasImmForm()
4215 III.ImmOpcode = PPC::STDU; in instrHasImmForm()
4216 III.ImmMustBeMultipleOf = 4; in instrHasImmForm()
4218 case PPC::STFSUX: III.ImmOpcode = PPC::STFSU; break; in instrHasImmForm()
4219 case PPC::STFDUX: III.ImmOpcode = PPC::STFDU; break; in instrHasImmForm()
4238 III.SignedImm = true; in instrHasImmForm()
4239 III.ZeroIsSpecialOrig = 1; in instrHasImmForm()
4240 III.ZeroIsSpecialNew = 2; in instrHasImmForm()
4241 III.IsCommutative = true; in instrHasImmForm()
4242 III.IsSummingOperands = true; in instrHasImmForm()
4243 III.ImmOpNo = 1; in instrHasImmForm()
4244 III.OpNoForForwarding = 2; in instrHasImmForm()
4245 III.ImmMustBeMultipleOf = 4; in instrHasImmForm()
4249 III.ImmOpcode = PPC::LXV; in instrHasImmForm()
4250 III.ImmMustBeMultipleOf = 16; in instrHasImmForm()
4255 III.ImmOpcode = PPC::LXSSP; in instrHasImmForm()
4257 III.ImmOpcode = PPC::LFS; in instrHasImmForm()
4258 III.ImmMustBeMultipleOf = 1; in instrHasImmForm()
4264 III.ImmOpcode = PPC::DFLOADf32; in instrHasImmForm()
4269 III.ImmOpcode = PPC::LXSD; in instrHasImmForm()
4271 III.ImmOpcode = PPC::LFD; in instrHasImmForm()
4272 III.ImmMustBeMultipleOf = 1; in instrHasImmForm()
4278 III.ImmOpcode = PPC::DFLOADf64; in instrHasImmForm()
4281 III.ImmOpcode = PPC::STXV; in instrHasImmForm()
4282 III.ImmMustBeMultipleOf = 16; in instrHasImmForm()
4287 III.ImmOpcode = PPC::STXSSP; in instrHasImmForm()
4289 III.ImmOpcode = PPC::STFS; in instrHasImmForm()
4290 III.ImmMustBeMultipleOf = 1; in instrHasImmForm()
4296 III.ImmOpcode = PPC::DFSTOREf32; in instrHasImmForm()
4301 III.ImmOpcode = PPC::STXSD; in instrHasImmForm()
4303 III.ImmOpcode = PPC::STFD; in instrHasImmForm()
4304 III.ImmMustBeMultipleOf = 1; in instrHasImmForm()
4310 III.ImmOpcode = PPC::DFSTOREf64; in instrHasImmForm()
4360 const ImmInstrInfo &III, in isUseMIElgibleForForwarding() argument
4370 if (!III.IsSummingOperands) in isUseMIElgibleForForwarding()
4374 if (!III.ZeroIsSpecialOrig) in isUseMIElgibleForForwarding()
4379 if (OpNoForForwarding != III.OpNoForForwarding) in isUseMIElgibleForForwarding()
4384 if (MI.getOperand(III.ZeroIsSpecialOrig).getReg() != PPC::ZERO && in isUseMIElgibleForForwarding()
4385 MI.getOperand(III.ZeroIsSpecialOrig).getReg() != PPC::ZERO8) in isUseMIElgibleForForwarding()
4398 const ImmInstrInfo &III, in isDefMIElgibleForForwarding() argument
4461 const ImmInstrInfo &III, in isImmElgibleForForwarding() argument
4469 if (III.ImmMustBeMultipleOf > 4 || in isImmElgibleForForwarding()
4470 III.TruncateImmTo || III.ImmWidth != 16) in isImmElgibleForForwarding()
4479 if (ImmMO.getGlobal()->getPointerAlignment(DL) < III.ImmMustBeMultipleOf) in isImmElgibleForForwarding()
4492 if (III.SignedImm && !ActualValue.isSignedIntN(III.ImmWidth)) in isImmElgibleForForwarding()
4494 if (!III.SignedImm && !ActualValue.isIntN(III.ImmWidth)) in isImmElgibleForForwarding()
4498 if (Imm % III.ImmMustBeMultipleOf) in isImmElgibleForForwarding()
4500 if (III.TruncateImmTo) in isImmElgibleForForwarding()
4501 Imm &= ((1 << III.TruncateImmTo) - 1); in isImmElgibleForForwarding()
4773 ImmInstrInfo III; in transformToNewImmFormFedByAdd() local
4778 if (!instrHasImmForm(XFormOpcode, IsVFReg, III, PostRA)) in transformToNewImmFormFedByAdd()
4781 if (!III.IsSummingOperands) in transformToNewImmFormFedByAdd()
4784 if (OpNoForForwarding != III.OpNoForForwarding) in transformToNewImmFormFedByAdd()
4787 MachineOperand ImmOperandMI = MI.getOperand(III.ImmOpNo); in transformToNewImmFormFedByAdd()
4794 if (!isDefMIElgibleForForwarding(DefMI, III, ImmMO, RegMO)) in transformToNewImmFormFedByAdd()
4803 if (!isImmElgibleForForwarding(*ImmMO, DefMI, III, Imm, ImmBase)) in transformToNewImmFormFedByAdd()
4808 if (MI.getOperand(III.OpNoForForwarding).isKill()) in transformToNewImmFormFedByAdd()
4809 ForwardKilledOperandReg = MI.getOperand(III.OpNoForForwarding).getReg(); in transformToNewImmFormFedByAdd()
4817 MI.getOperand(III.OpNoForForwarding).setReg(RegMO->getReg()); in transformToNewImmFormFedByAdd()
4819 MI.getOperand(III.OpNoForForwarding).setIsKill(true); in transformToNewImmFormFedByAdd()
4824 MI.getOperand(III.ImmOpNo).setImm(Imm); in transformToNewImmFormFedByAdd()
4857 MachineInstr &MI, const ImmInstrInfo &III, unsigned OpNoForForwarding, in transformToImmFormFedByAdd() argument
4866 if (!isUseMIElgibleForForwarding(MI, III, OpNoForForwarding)) in transformToImmFormFedByAdd()
4873 if (!isDefMIElgibleForForwarding(DefMI, III, ImmMO, RegMO)) in transformToImmFormFedByAdd()
4880 if (!isImmElgibleForForwarding(*ImmMO, DefMI, III, Imm)) in transformToImmFormFedByAdd()
4905 MI.getOperand(III.OpNoForForwarding).ChangeToRegister(RegMO->getReg(), in transformToImmFormFedByAdd()
4913 replaceInstrOperandWithImm(MI, III.ZeroIsSpecialOrig, Imm); in transformToImmFormFedByAdd()
4929 for (unsigned i = MI.getNumOperands() - 1; i >= III.ZeroIsSpecialOrig; i--) { in transformToImmFormFedByAdd()
4944 MI.setDesc(get(III.ImmOpcode)); in transformToImmFormFedByAdd()
4969 const ImmInstrInfo &III, in transformToImmFormFedByLI() argument
4983 if ((ConstantOpNo != III.OpNoForForwarding) && !III.IsCommutative) in transformToImmFormFedByLI()
4985 if (Imm % III.ImmMustBeMultipleOf) in transformToImmFormFedByLI()
4987 if (III.TruncateImmTo) in transformToImmFormFedByLI()
4988 Imm &= ((1 << III.TruncateImmTo) - 1); in transformToImmFormFedByLI()
4989 if (III.SignedImm) { in transformToImmFormFedByLI()
4991 if (!ActualValue.isSignedIntN(III.ImmWidth)) in transformToImmFormFedByLI()
4994 uint64_t UnsignedMax = (1 << III.ImmWidth) - 1; in transformToImmFormFedByLI()
5002 if (PostRA && III.ZeroIsSpecialOrig != III.ZeroIsSpecialNew) { in transformToImmFormFedByLI()
5003 unsigned PosForOrigZero = III.ZeroIsSpecialOrig ? III.ZeroIsSpecialOrig : in transformToImmFormFedByLI()
5004 III.ZeroIsSpecialNew + 1; in transformToImmFormFedByLI()
5006 Register NewZeroReg = MI.getOperand(III.ZeroIsSpecialNew).getReg(); in transformToImmFormFedByLI()
5010 ConstantOpNo != III.ZeroIsSpecialNew) in transformToImmFormFedByLI()
5034 MI.setDesc(get(III.ImmOpcode)); in transformToImmFormFedByLI()
5035 if (ConstantOpNo == III.OpNoForForwarding) { in transformToImmFormFedByLI()
5065 replaceInstrOperandWithImm(MI, III.OpNoForForwarding, SH); in transformToImmFormFedByLI()
5074 replaceInstrOperandWithImm(MI, III.OpNoForForwarding, SH); in transformToImmFormFedByLI()
5083 else if (III.IsCommutative) { in transformToImmFormFedByLI()
5085 swapMIOperands(MI, ConstantOpNo, III.OpNoForForwarding); in transformToImmFormFedByLI()
5091 if (III.OpNoForForwarding != III.ImmOpNo) in transformToImmFormFedByLI()
5092 swapMIOperands(MI, III.OpNoForForwarding, III.ImmOpNo); in transformToImmFormFedByLI()
5097 if (!PostRA && III.ZeroIsSpecialOrig != III.ZeroIsSpecialNew) { in transformToImmFormFedByLI()
5098 if (III.ZeroIsSpecialNew) { in transformToImmFormFedByLI()
5101 Register RegToModify = MI.getOperand(III.ZeroIsSpecialNew).getReg(); in transformToImmFormFedByLI()