Home | History | Annotate | Download | only in X86

Lines Matching refs:AM

83   bool X86FastEmitLoad(EVT VT, const X86AddressMode &AM, MachineMemOperand *MMO,
86 bool X86FastEmitStore(EVT VT, const Value *Val, const X86AddressMode &AM,
89 const X86AddressMode &AM,
95 bool X86SelectAddress(const Value *V, X86AddressMode &AM);
96 bool X86SelectCallAddress(const Value *V, X86AddressMode &AM);
139 bool handleConstantAddresses(const Value *V, X86AddressMode &AM);
364 bool X86FastISel::X86FastEmitLoad(EVT VT, const X86AddressMode &AM,
415 addFullAddress(MIB, AM);
426 const X86AddressMode &AM,
479 addFullAddress(MIB, AM).addReg(ValReg, getKillRegState(ValIsKill));
487 const X86AddressMode &AM,
513 addFullAddress(MIB, AM).addImm(Signed ? (uint64_t) CI->getSExtValue()
526 return X86FastEmitStore(VT, ValReg, ValKill, AM, MMO, Aligned);
544 bool X86FastISel::handleConstantAddresses(const Value *V, X86AddressMode &AM) {
559 (AM.Base.Reg == 0 && AM.IndexReg == 0)) {
561 AM.GV = GV;
569 AM.Base.Reg = getInstrInfo()->getGlobalBaseReg(FuncInfo.MF);
578 assert(AM.Base.Reg == 0 && AM.IndexReg == 0);
579 AM.Base.Reg = X86::RIP;
581 AM.GVOpFlags = GVFlags;
596 StubAM.Base.Reg = AM.Base.Reg;
628 AM.Base.Reg = LoadReg;
629 AM.GV = nullptr;
635 if (!AM.GV || !Subtarget->isPICStyleRIPRel()) {
636 if (AM.Base.Reg == 0) {
637 AM.Base.Reg = getRegForValue(V);
638 return AM.Base.Reg != 0;
640 if (AM.IndexReg == 0) {
641 assert(AM.Scale == 1 && "Scale with no index!");
642 AM.IndexReg = getRegForValue(V);
643 return AM.IndexReg != 0;
652 bool X86FastISel::X86SelectAddress(const Value *V, X86AddressMode &AM) {
681 return X86SelectAddress(U->getOperand(0), AM);
686 return X86SelectAddress(U->getOperand(0), AM);
692 return X86SelectAddress(U->getOperand(0), AM);
701 AM.BaseType = X86AddressMode::FrameIndexBase;
702 AM.Base.FrameIndex = SI->second;
711 uint64_t Disp = (int32_t)AM.Disp + (uint64_t)CI->getSExtValue();
714 AM.Disp = (uint32_t)Disp;
715 return X86SelectAddress(U->getOperand(0), AM);
722 X86AddressMode SavedAM = AM;
725 uint64_t Disp = (int32_t)AM.Disp;
726 unsigned IndexReg = AM.IndexReg;
727 unsigned Scale = AM.Scale;
759 (!AM.GV || !Subtarget->isPICStyleRIPRel()) &&
777 AM.IndexReg = IndexReg;
778 AM.Scale = Scale;
779 AM.Disp = (uint32_t)Disp;
788 } else if (X86SelectAddress(U->getOperand(0), AM)) {
794 AM = SavedAM;
798 if (handleConstantAddresses(*I, AM))
808 return handleConstantAddresses(V, AM);
813 bool X86FastISel::X86SelectCallAddress(const Value *V, X86AddressMode &AM) {
855 return X86SelectCallAddress(U->getOperand(0), AM);
862 return X86SelectCallAddress(U->getOperand(0), AM);
869 return X86SelectCallAddress(U->getOperand(0), AM);
881 (AM.Base.Reg != 0 || AM.IndexReg != 0))
894 AM.GV = GV;
901 assert(AM.Base.Reg == 0 && AM.IndexReg == 0);
902 AM.Base.Reg = X86::RIP;
904 AM.GVOpFlags = X86II::MO_PIC_BASE_OFFSET;
906 AM.GVOpFlags = X86II::MO_GOTOFF;
913 if (!AM.GV || !Subtarget->isPICStyleRIPRel()) {
914 if (AM.Base.Reg == 0) {
915 AM.Base.Reg = getRegForValue(V);
916 return AM.Base.Reg != 0;
918 if (AM.IndexReg == 0) {
919 assert(AM
920 AM.IndexReg = getRegForValue(V);
921 return AM.IndexReg != 0;
950 X86AddressMode AM;
951 if (!X86SelectAddress(Ptr, AM))
954 return X86FastEmitStore(VT, Val, AM, createMachineMemOperandFor(I), Aligned);
1102 X86AddressMode AM;
1103 if (!X86SelectAddress(Ptr, AM))
1107 if (!X86FastEmitLoad(VT, AM, createMachineMemOperandFor(LI), ResultReg))
2291 X86AddressMode AM;
2292 if (!X86SelectAddress(Slot, AM)) return false;
2293 if (!X86FastEmitStore(PtrTy, Op1, AM)) return false;
2298 X86AddressMode AM;
2300 if (!X86SelectAddress(DI->getAddress(), AM))
2305 addFullAddress(BuildMI(*FuncInfo.MBB, FuncInfo.InsertPt, DbgLoc, II), AM).
2916 X86AddressMode AM;
2919 AM.Base.Reg = RegInfo->getStackRegister();
2920 AM.Disp = LocMemOffset;
2927 bool Res = TryEmitSmallMemcpy(AM, SrcAM, Flags.getByValSize());
2933 if (!X86FastEmitStore(ArgVT, ArgVal, AM))
2936 if (!X86FastEmitStore(ArgVT, Arg, /*ValIsKill=*/false, AM))
3221 X86AddressMode AM;
3222 if (X86SelectAddress(C, AM)) {
3225 if (AM.BaseType == X86AddressMode::RegBase &&
3226 AM.IndexReg == 0 && AM.Disp == 0 && AM.GV == nullptr)
3227 return AM.Base.Reg;
3240 TII.get(Opc), ResultReg), AM);
3290 X86AddressMode AM;
3291 if (!X86SelectAddress(C, AM))
3297 TII.get(Opc), ResultReg), AM);
3343 X86AddressMode AM;
3344 if (!X86SelectAddress(Ptr, AM))
3356 AM.getFullAddress(AddrOps);