Lines Matching refs:loc

821 void Mir2Lir::MarkLive(RegLocation loc) {  in MarkLive()  argument
822 RegStorage reg = loc.reg; in MarkLive()
826 int s_reg = loc.s_reg_low; in MarkLive()
853 if (loc.wide) { in MarkLive()
858 if (loc.wide) { in MarkLive()
909 void Mir2Lir::MarkClean(RegLocation loc) { in MarkClean() argument
910 if (loc.reg.IsPair()) { in MarkClean()
911 RegisterInfo* info = GetRegInfo(loc.reg.GetLow()); in MarkClean()
913 info = GetRegInfo(loc.reg.GetHigh()); in MarkClean()
916 RegisterInfo* info = GetRegInfo(loc.reg); in MarkClean()
922 void Mir2Lir::MarkDirty(RegLocation loc) { in MarkDirty() argument
923 if (loc.home) { in MarkDirty()
927 if (loc.reg.IsPair()) { in MarkDirty()
928 RegisterInfo* info = GetRegInfo(loc.reg.GetLow()); in MarkDirty()
930 info = GetRegInfo(loc.reg.GetHigh()); in MarkDirty()
933 RegisterInfo* info = GetRegInfo(loc.reg); in MarkDirty()
1008 RegLocation Mir2Lir::UpdateLoc(RegLocation loc) { in UpdateLoc() argument
1009 DCHECK(!loc.wide); in UpdateLoc()
1011 if (loc.location != kLocPhysReg) { in UpdateLoc()
1012 DCHECK((loc.location == kLocDalvikFrame) || in UpdateLoc()
1013 (loc.location == kLocCompilerTemp)); in UpdateLoc()
1014 RegStorage reg = AllocLiveReg(loc.s_reg_low, loc.ref ? kRefReg : kAnyReg, false); in UpdateLoc()
1021 loc.location = kLocPhysReg; in UpdateLoc()
1022 loc.reg = reg; in UpdateLoc()
1028 CheckRegLocation(loc); in UpdateLoc()
1030 return loc; in UpdateLoc()
1033 RegLocation Mir2Lir::UpdateLocWide(RegLocation loc) { in UpdateLocWide() argument
1034 DCHECK(loc.wide); in UpdateLocWide()
1036 if (loc.location != kLocPhysReg) { in UpdateLocWide()
1037 DCHECK((loc.location == kLocDalvikFrame) || in UpdateLocWide()
1038 (loc.location == kLocCompilerTemp)); in UpdateLocWide()
1039 RegStorage reg = AllocLiveReg(loc.s_reg_low, kAnyReg, true); in UpdateLocWide()
1056 loc.location = kLocPhysReg; in UpdateLocWide()
1057 loc.reg = reg; in UpdateLocWide()
1063 CheckRegLocation(loc); in UpdateLocWide()
1065 return loc; in UpdateLocWide()
1069 RegLocation Mir2Lir::UpdateRawLoc(RegLocation loc) { in UpdateRawLoc() argument
1070 if (loc.wide) in UpdateRawLoc()
1071 return UpdateLocWide(loc); in UpdateRawLoc()
1073 return UpdateLoc(loc); in UpdateRawLoc()
1076 RegLocation Mir2Lir::EvalLocWide(RegLocation loc, int reg_class, bool update) { in EvalLocWide() argument
1077 DCHECK(loc.wide); in EvalLocWide()
1079 loc = UpdateLocWide(loc); in EvalLocWide()
1082 if (loc.location == kLocPhysReg) { in EvalLocWide()
1083 if (!RegClassMatches(reg_class, loc.reg)) { in EvalLocWide()
1085 RegStorage new_regs = AllocTypedTempWide(loc.fp, reg_class); in EvalLocWide()
1087 Clobber(loc.reg); in EvalLocWide()
1089 loc.reg = new_regs; in EvalLocWide()
1090 MarkWide(loc.reg); in EvalLocWide()
1091 MarkLive(loc); in EvalLocWide()
1093 CheckRegLocation(loc); in EvalLocWide()
1094 return loc; in EvalLocWide()
1097 DCHECK_NE(loc.s_reg_low, INVALID_SREG); in EvalLocWide()
1098 DCHECK_NE(GetSRegHi(loc.s_reg_low), INVALID_SREG); in EvalLocWide()
1100 loc.reg = AllocTypedTempWide(loc.fp, reg_class); in EvalLocWide()
1101 MarkWide(loc.reg); in EvalLocWide()
1104 loc.location = kLocPhysReg; in EvalLocWide()
1105 MarkLive(loc); in EvalLocWide()
1107 CheckRegLocation(loc); in EvalLocWide()
1108 return loc; in EvalLocWide()
1111 RegLocation Mir2Lir::EvalLoc(RegLocation loc, int reg_class, bool update) { in EvalLoc() argument
1113 if (loc.ref && reg_class == kAnyReg) { in EvalLoc()
1117 if (loc.wide) { in EvalLoc()
1118 return EvalLocWide(loc, reg_class, update); in EvalLoc()
1121 loc = UpdateLoc(loc); in EvalLoc()
1123 if (loc.location == kLocPhysReg) { in EvalLoc()
1124 if (!RegClassMatches(reg_class, loc.reg)) { in EvalLoc()
1126 RegStorage new_reg = AllocTypedTemp(loc.fp, reg_class); in EvalLoc()
1128 Clobber(loc.reg); in EvalLoc()
1130 loc.reg = new_reg; in EvalLoc()
1131 MarkLive(loc); in EvalLoc()
1133 CheckRegLocation(loc); in EvalLoc()
1134 return loc; in EvalLoc()
1137 DCHECK_NE(loc.s_reg_low, INVALID_SREG); in EvalLoc()
1139 loc.reg = AllocTypedTemp(loc.fp, reg_class); in EvalLoc()
1140 CheckRegLocation(loc); in EvalLoc()
1143 loc.location = kLocPhysReg; in EvalLoc()
1144 MarkLive(loc); in EvalLoc()
1146 CheckRegLocation(loc); in EvalLoc()
1147 return loc; in EvalLoc()
1153 RegLocation loc = mir_graph_->reg_location_[i]; in CountRefs() local
1154 RefCounts* counts = loc.fp ? fp_counts : core_counts; in CountRefs()
1155 int p_map_idx = SRegToPMap(loc.s_reg_low); in CountRefs()
1157 if (loc.fp) { in CountRefs()
1158 if (loc.wide) { in CountRefs()
1171 if (loc.wide && WideGPRsAreAliases()) { in CountRefs()
1174 if (!IsInexpensiveConstant(loc)) { in CountRefs()