Lines Matching refs:loc
748 extern RegLocation dvmCompilerUpdateLoc(CompilationUnit *cUnit, RegLocation loc) in dvmCompilerUpdateLoc() argument
750 assert(!loc.wide); in dvmCompilerUpdateLoc()
751 if (loc.location == kLocDalvikFrame) { in dvmCompilerUpdateLoc()
752 RegisterInfo *infoLo = allocLive(cUnit, loc.sRegLow, kAnyReg); in dvmCompilerUpdateLoc()
758 loc.lowReg = infoLo->reg; in dvmCompilerUpdateLoc()
759 loc.location = kLocPhysReg; in dvmCompilerUpdateLoc()
764 return loc; in dvmCompilerUpdateLoc()
769 RegLocation loc) in dvmCompilerUpdateLocWide() argument
771 assert(loc.wide); in dvmCompilerUpdateLocWide()
772 if (loc.location == kLocDalvikFrame) { in dvmCompilerUpdateLocWide()
774 RegisterInfo *infoLo = allocLive(cUnit, loc.sRegLow, kAnyReg); in dvmCompilerUpdateLocWide()
776 dvmCompilerSRegHi(loc.sRegLow), kAnyReg); in dvmCompilerUpdateLocWide()
795 loc.lowReg = infoLo->reg; in dvmCompilerUpdateLocWide()
796 loc.highReg = infoHi->reg; in dvmCompilerUpdateLocWide()
797 loc.location = kLocPhysReg; in dvmCompilerUpdateLocWide()
798 dvmCompilerMarkPair(cUnit, loc.lowReg, loc.highReg); in dvmCompilerUpdateLocWide()
799 assert(!FPREG(loc.lowReg) || ((loc.lowReg & 0x1) == 0)); in dvmCompilerUpdateLocWide()
800 return loc; in dvmCompilerUpdateLocWide()
815 return loc; in dvmCompilerUpdateLocWide()
818 static RegLocation evalLocWide(CompilationUnit *cUnit, RegLocation loc, in evalLocWide() argument
821 assert(loc.wide); in evalLocWide()
826 loc = dvmCompilerUpdateLocWide(cUnit, loc); in evalLocWide()
829 if (loc.location == kLocPhysReg) { in evalLocWide()
830 assert(FPREG(loc.lowReg) == FPREG(loc.highReg)); in evalLocWide()
831 assert(!FPREG(loc.lowReg) || ((loc.lowReg & 0x1) == 0)); in evalLocWide()
832 if (!regClassMatches(regClass, loc.lowReg)) { in evalLocWide()
834 newRegs = dvmCompilerAllocTypedTempPair(cUnit, loc.fp, regClass); in evalLocWide()
837 dvmCompilerRegCopyWide(cUnit, lowReg, highReg, loc.lowReg, in evalLocWide()
838 loc.highReg); in evalLocWide()
839 copyRegInfo(cUnit, lowReg, loc.lowReg); in evalLocWide()
840 copyRegInfo(cUnit, highReg, loc.highReg); in evalLocWide()
841 dvmCompilerClobber(cUnit, loc.lowReg); in evalLocWide()
842 dvmCompilerClobber(cUnit, loc.highReg); in evalLocWide()
843 loc.lowReg = lowReg; in evalLocWide()
844 loc.highReg = highReg; in evalLocWide()
845 dvmCompilerMarkPair(cUnit, loc.lowReg, loc.highReg); in evalLocWide()
846 assert(!FPREG(loc.lowReg) || ((loc.lowReg & 0x1) == 0)); in evalLocWide()
848 return loc; in evalLocWide()
851 assert((loc.location != kLocRetval) || (loc.sRegLow == INVALID_SREG)); in evalLocWide()
852 assert((loc.location != kLocRetval) || in evalLocWide()
853 (dvmCompilerSRegHi(loc.sRegLow) == INVALID_SREG)); in evalLocWide()
855 newRegs = dvmCompilerAllocTypedTempPair(cUnit, loc.fp, regClass); in evalLocWide()
856 loc.lowReg = newRegs & 0xff; in evalLocWide()
857 loc.highReg = (newRegs >> 8) & 0xff; in evalLocWide()
859 dvmCompilerMarkPair(cUnit, loc.lowReg, loc.highReg); in evalLocWide()
861 loc.location = kLocPhysReg; in evalLocWide()
862 dvmCompilerMarkLive(cUnit, loc.lowReg, loc.sRegLow); in evalLocWide()
863 dvmCompilerMarkLive(cUnit, loc.highReg, dvmCompilerSRegHi(loc.sRegLow)); in evalLocWide()
865 assert(!FPREG(loc.lowReg) || ((loc.lowReg & 0x1) == 0)); in evalLocWide()
866 return loc; in evalLocWide()
869 extern RegLocation dvmCompilerEvalLoc(CompilationUnit *cUnit, RegLocation loc, in dvmCompilerEvalLoc() argument
873 if (loc.wide) in dvmCompilerEvalLoc()
874 return evalLocWide(cUnit, loc, regClass, update); in dvmCompilerEvalLoc()
875 loc = dvmCompilerUpdateLoc(cUnit, loc); in dvmCompilerEvalLoc()
877 if (loc.location == kLocPhysReg) { in dvmCompilerEvalLoc()
878 if (!regClassMatches(regClass, loc.lowReg)) { in dvmCompilerEvalLoc()
880 newReg = dvmCompilerAllocTypedTemp(cUnit, loc.fp, regClass); in dvmCompilerEvalLoc()
881 dvmCompilerRegCopy(cUnit, newReg, loc.lowReg); in dvmCompilerEvalLoc()
882 copyRegInfo(cUnit, newReg, loc.lowReg); in dvmCompilerEvalLoc()
883 dvmCompilerClobber(cUnit, loc.lowReg); in dvmCompilerEvalLoc()
884 loc.lowReg = newReg; in dvmCompilerEvalLoc()
886 return loc; in dvmCompilerEvalLoc()
889 assert((loc.location != kLocRetval) || (loc.sRegLow == INVALID_SREG)); in dvmCompilerEvalLoc()
891 newReg = dvmCompilerAllocTypedTemp(cUnit, loc.fp, regClass); in dvmCompilerEvalLoc()
892 loc.lowReg = newReg; in dvmCompilerEvalLoc()
895 loc.location = kLocPhysReg; in dvmCompilerEvalLoc()
896 dvmCompilerMarkLive(cUnit, loc.lowReg, loc.sRegLow); in dvmCompilerEvalLoc()
898 return loc; in dvmCompilerEvalLoc()
910 RegLocation loc = cUnit->regLocation[ in dvmCompilerGetSrc() local
912 loc.fp = cUnit->regLocation[dvmCompilerSSASrc(mir, num)].fp; in dvmCompilerGetSrc()
913 loc.wide = false; in dvmCompilerGetSrc()
914 return loc; in dvmCompilerGetSrc()
921 RegLocation loc = cUnit->regLocation[SREG(cUnit, getDestSSAName(mir, num))]; in dvmCompilerGetDest() local
922 loc.fp = cUnit->regLocation[getDestSSAName(mir, num)].fp; in dvmCompilerGetDest()
923 loc.wide = false; in dvmCompilerGetDest()
924 return loc; in dvmCompilerGetDest()
1003 RegLocation loc) in dvmCompilerKillNullCheckedLoc() argument
1005 if (loc.location != kLocRetval) { in dvmCompilerKillNullCheckedLoc()
1006 assert(loc.sRegLow != INVALID_SREG); in dvmCompilerKillNullCheckedLoc()
1007 dvmClearBit(cUnit->regPool->nullCheckedRegs, loc.sRegLow); in dvmCompilerKillNullCheckedLoc()
1008 if (loc.wide) { in dvmCompilerKillNullCheckedLoc()
1009 assert(dvmCompilerSRegHi(loc.sRegLow) != INVALID_SREG); in dvmCompilerKillNullCheckedLoc()
1011 dvmCompilerSRegHi(loc.sRegLow)); in dvmCompilerKillNullCheckedLoc()