Lines Matching refs:AM
78 bool X86FastEmitLoad(MVT VT, X86AddressMode &AM, MachineMemOperand *MMO,
81 bool X86FastEmitStore(EVT VT, const Value *Val, X86AddressMode &AM,
83 bool X86FastEmitStore(EVT VT, unsigned ValReg, X86AddressMode &AM,
89 bool X86SelectAddress(const Value *V, X86AddressMode &AM);
90 bool X86SelectCallAddress(const Value *V, X86AddressMode &AM);
136 bool handleConstantAddresses(const Value *V, X86AddressMode &AM);
165 X86AddressMode &AM);
215 X86AddressMode &AM) { in addFullAddress() argument
217 AM.IndexReg = constrainOperandRegClass(MIB->getDesc(), AM.IndexReg, in addFullAddress()
220 return ::addFullAddress(MIB, AM); in addFullAddress()
318 bool X86FastISel::X86FastEmitLoad(MVT VT, X86AddressMode &AM, in X86FastEmitLoad() argument
471 addFullAddress(MIB, AM); in X86FastEmitLoad()
481 bool X86FastISel::X86FastEmitStore(EVT VT, unsigned ValReg, X86AddressMode &AM, in X86FastEmitStore() argument
647 addFullAddress(MIB, AM).addReg(ValReg); in X86FastEmitStore()
655 X86AddressMode &AM, in X86FastEmitStore() argument
683 addFullAddress(MIB, AM).addImm(Signed ? (uint64_t) CI->getSExtValue() in X86FastEmitStore()
695 return X86FastEmitStore(VT, ValReg, AM, MMO, Aligned); in X86FastEmitStore()
712 bool X86FastISel::handleConstantAddresses(const Value *V, X86AddressMode &AM) { in handleConstantAddresses() argument
731 (AM.Base.Reg == 0 && AM.IndexReg == 0)) { in handleConstantAddresses()
733 AM.GV = GV; in handleConstantAddresses()
741 AM.Base.Reg = getInstrInfo()->getGlobalBaseReg(FuncInfo.MF); in handleConstantAddresses()
750 assert(AM.Base.Reg == 0 && AM.IndexReg == 0); in handleConstantAddresses()
751 AM.Base.Reg = X86::RIP; in handleConstantAddresses()
753 AM.GVOpFlags = GVFlags; in handleConstantAddresses()
768 StubAM.Base.Reg = AM.Base.Reg; in handleConstantAddresses()
801 AM.Base.Reg = LoadReg; in handleConstantAddresses()
802 AM.GV = nullptr; in handleConstantAddresses()
808 if (!AM.GV || !Subtarget->isPICStyleRIPRel()) { in handleConstantAddresses()
809 if (AM.Base.Reg == 0) { in handleConstantAddresses()
810 AM.Base.Reg = getRegForValue(V); in handleConstantAddresses()
811 return AM.Base.Reg != 0; in handleConstantAddresses()
813 if (AM.IndexReg == 0) { in handleConstantAddresses()
814 assert(AM.Scale == 1 && "Scale with no index!"); in handleConstantAddresses()
815 AM.IndexReg = getRegForValue(V); in handleConstantAddresses()
816 return AM.IndexReg != 0; in handleConstantAddresses()
825 bool X86FastISel::X86SelectAddress(const Value *V, X86AddressMode &AM) { in X86SelectAddress() argument
854 return X86SelectAddress(U->getOperand(0), AM); in X86SelectAddress()
860 return X86SelectAddress(U->getOperand(0), AM); in X86SelectAddress()
866 return X86SelectAddress(U->getOperand(0), AM); in X86SelectAddress()
875 AM.BaseType = X86AddressMode::FrameIndexBase; in X86SelectAddress()
876 AM.Base.FrameIndex = SI->second; in X86SelectAddress()
885 uint64_t Disp = (int32_t)AM.Disp + (uint64_t)CI->getSExtValue(); in X86SelectAddress()
888 AM.Disp = (uint32_t)Disp; in X86SelectAddress()
889 return X86SelectAddress(U->getOperand(0), AM); in X86SelectAddress()
896 X86AddressMode SavedAM = AM; in X86SelectAddress()
899 uint64_t Disp = (int32_t)AM.Disp; in X86SelectAddress()
900 unsigned IndexReg = AM.IndexReg; in X86SelectAddress()
901 unsigned Scale = AM.Scale; in X86SelectAddress()
933 (!AM.GV || !Subtarget->isPICStyleRIPRel()) && in X86SelectAddress()
951 AM.IndexReg = IndexReg; in X86SelectAddress()
952 AM.Scale = Scale; in X86SelectAddress()
953 AM.Disp = (uint32_t)Disp; in X86SelectAddress()
962 } else if (X86SelectAddress(U->getOperand(0), AM)) { in X86SelectAddress()
968 AM = SavedAM; in X86SelectAddress()
971 if (handleConstantAddresses(I, AM)) in X86SelectAddress()
981 return handleConstantAddresses(V, AM); in X86SelectAddress()
986 bool X86FastISel::X86SelectCallAddress(const Value *V, X86AddressMode &AM) { in X86SelectCallAddress() argument
1028 return X86SelectCallAddress(U->getOperand(0), AM); in X86SelectCallAddress()
1036 return X86SelectCallAddress(U->getOperand(0), AM); in X86SelectCallAddress()
1042 return X86SelectCallAddress(U->getOperand(0), AM); in X86SelectCallAddress()
1054 (AM.Base.Reg != 0 || AM.IndexReg != 0)) in X86SelectCallAddress()
1063 AM.GV = GV; in X86SelectCallAddress()
1071 assert(AM.Base.Reg == 0 && AM.IndexReg == 0); in X86SelectCallAddress()
1072 AM.Base.Reg = X86::RIP; in X86SelectCallAddress()
1074 AM.GVOpFlags = Subtarget->classifyLocalReference(nullptr); in X86SelectCallAddress()
1081 if (!AM.GV || !Subtarget->isPICStyleRIPRel()) { in X86SelectCallAddress()
1104 if (AM.Base.Reg == 0) { in X86SelectCallAddress()
1105 AM.Base.Reg = GetCallRegForValue(V); in X86SelectCallAddress()
1106 return AM.Base.Reg != 0; in X86SelectCallAddress()
1108 if (AM.IndexReg == 0) { in X86SelectCallAddress()
1109 assert(AM.Scale == 1 && "Scale with no index!"); in X86SelectCallAddress()
1110 AM.IndexReg = GetCallRegForValue(V); in X86SelectCallAddress()
1111 return AM.IndexReg != 0; in X86SelectCallAddress()
1153 X86AddressMode AM; in X86SelectStore() local
1154 if (!X86SelectAddress(Ptr, AM)) in X86SelectStore()
1157 return X86FastEmitStore(VT, Val, AM, createMachineMemOperandFor(I), Aligned); in X86SelectStore()
1340 X86AddressMode AM; in X86SelectLoad() local
1341 if (!X86SelectAddress(Ptr, AM)) in X86SelectLoad()
1345 if (!X86FastEmitLoad(VT, AM, createMachineMemOperandFor(LI), ResultReg, in X86SelectLoad()
2768 X86AddressMode AM; in fastLowerIntrinsicCall() local
2769 if (!X86SelectAddress(Slot, AM)) return false; in fastLowerIntrinsicCall()
2770 if (!X86FastEmitStore(PtrTy, Op1, AM)) return false; in fastLowerIntrinsicCall()
2775 X86AddressMode AM; in fastLowerIntrinsicCall() local
2777 if (!X86SelectAddress(DI->getAddress(), AM)) in fastLowerIntrinsicCall()
2782 addFullAddress(BuildMI(*FuncInfo.MBB, FuncInfo.InsertPt, DbgLoc, II), AM) in fastLowerIntrinsicCall()
3395 X86AddressMode AM; in fastLowerCall() local
3396 AM.Base.Reg = RegInfo->getStackRegister(); in fastLowerCall()
3397 AM.Disp = LocMemOffset; in fastLowerCall()
3406 if (!TryEmitSmallMemcpy(AM, SrcAM, Flags.getByValSize())) in fastLowerCall()
3412 if (!X86FastEmitStore(ArgVT, ArgVal, AM, MMO)) in fastLowerCall()
3415 if (!X86FastEmitStore(ArgVT, ArgReg, AM, MMO)) in fastLowerCall()
3796 X86AddressMode AM; in X86MaterializeGV() local
3797 if (X86SelectAddress(GV, AM)) { in X86MaterializeGV()
3800 if (AM.BaseType == X86AddressMode::RegBase && in X86MaterializeGV()
3801 AM.IndexReg == 0 && AM.Disp == 0 && AM.GV == nullptr) in X86MaterializeGV()
3802 return AM.Base.Reg; in X86MaterializeGV()
3818 TII.get(Opc), ResultReg), AM); in X86MaterializeGV()
3880 X86AddressMode AM; in fastMaterializeAlloca() local
3881 if (!X86SelectAddress(C, AM)) in fastMaterializeAlloca()
3890 TII.get(Opc), ResultReg), AM); in fastMaterializeAlloca()
3933 X86AddressMode AM; in tryToFoldLoadIntoMI() local
3934 if (!X86SelectAddress(Ptr, AM)) in tryToFoldLoadIntoMI()
3942 AM.getFullAddress(AddrOps); in tryToFoldLoadIntoMI()
3959 if (!MO.isReg() || MO.isDef() || MO.getReg() != AM.IndexReg) in tryToFoldLoadIntoMI()