/art/compiler/dex/quick/ |
D | gen_loadstore.cc | 43 void Mir2Lir::Workaround7250540(RegLocation rl_dest, RegStorage zero_reg) { in Workaround7250540() argument 44 if (rl_dest.fp) { in Workaround7250540() 45 int pmap_index = SRegToPMap(rl_dest.s_reg_low); in Workaround7250540() 49 int base_vreg = mir_graph_->SRegToVReg(rl_dest.s_reg_low); in Workaround7250540() 69 … StoreBaseDisp(TargetPtrReg(kSp), SRegOffset(rl_dest.s_reg_low), temp_reg, k32, kNotVolatile); in Workaround7250540() 173 void Mir2Lir::StoreValue(RegLocation rl_dest, RegLocation rl_src) { in StoreValue() argument 181 (rl_dest.s_reg_low != live_sreg_)); in StoreValue() 182 live_sreg_ = rl_dest.s_reg_low; in StoreValue() 186 DCHECK(!rl_dest.wide); in StoreValue() 189 rl_dest = UpdateLoc(rl_dest); in StoreValue() [all …]
|
D | mir_to_lir.cc | 163 void Mir2Lir::LoadArgDirect(int in_position, RegLocation rl_dest) { in LoadArgDirect() argument 182 if (!rl_dest.wide) { in LoadArgDirect() 185 OpRegCopy(rl_dest.reg, reg); in LoadArgDirect() 187 Load32Disp(TargetPtrReg(kSp), offset, rl_dest.reg); in LoadArgDirect() 193 OpRegCopy(rl_dest.reg, reg); in LoadArgDirect() 195 LoadBaseDisp(TargetPtrReg(kSp), offset, rl_dest.reg, k64, kNotVolatile); in LoadArgDirect() 205 if (rl_dest.reg.IsDouble() && (reg_arg_low.Valid() != reg_arg_high.Valid())) { in LoadArgDirect() 214 OpRegCopyWide(rl_dest.reg, RegStorage::MakeRegPair(reg_arg_low, reg_arg_high)); in LoadArgDirect() 216 OpRegCopy(rl_dest.reg, reg_arg_low); in LoadArgDirect() 218 Load32Disp(TargetPtrReg(kSp), offset_high, rl_dest.reg.GetHigh()); in LoadArgDirect() [all …]
|
D | gen_common.cc | 315 void Mir2Lir::GenIntToLong(RegLocation rl_dest, RegLocation rl_src) { in GenIntToLong() argument 316 RegLocation rl_result = EvalLoc(rl_dest, kCoreReg, true); in GenIntToLong() 323 StoreValueWide(rl_dest, rl_result); in GenIntToLong() 326 void Mir2Lir::GenIntNarrowing(Instruction::Code opcode, RegLocation rl_dest, in GenIntNarrowing() argument 329 RegLocation rl_result = EvalLoc(rl_dest, kCoreReg, true); in GenIntNarrowing() 345 StoreValue(rl_dest, rl_result); in GenIntNarrowing() 353 void Mir2Lir::GenNewArray(uint32_t type_idx, RegLocation rl_dest, in GenNewArray() argument 383 StoreValue(rl_dest, GetReturn(kRefReg)); in GenNewArray() 620 void Mir2Lir::GenSget(MIR* mir, RegLocation rl_dest, in GenSget() argument 676 RegLocation rl_result = EvalLoc(rl_dest, reg_class, true); in GenSget() [all …]
|
D | mir_to_lir.h | 822 RegLocation rl_src, RegLocation rl_dest, int lit); 823 bool HandleEasyMultiply(RegLocation rl_src, RegLocation rl_dest, int lit); 845 virtual void GenIntToLong(RegLocation rl_dest, RegLocation rl_src); 846 void GenIntNarrowing(Instruction::Code opcode, RegLocation rl_dest, 848 void GenNewArray(uint32_t type_idx, RegLocation rl_dest, 853 void GenSget(MIR* mir, RegLocation rl_dest, 856 RegLocation rl_dest, RegLocation rl_obj, bool is_long_or_double, bool is_object); 862 void GenConstClass(uint32_t type_idx, RegLocation rl_dest); 863 void GenConstString(uint32_t string_idx, RegLocation rl_dest); 864 void GenNewInstance(uint32_t type_idx, RegLocation rl_dest); [all …]
|
D | gen_invoke.cc | 1217 RegLocation rl_dest = InlineTarget(info); in GenInlinedReferenceGetReferent() local 1218 RegLocation rl_result = EvalLoc(rl_dest, kRefReg, true); in GenInlinedReferenceGetReferent() 1223 StoreValue(rl_dest, rl_result); in GenInlinedReferenceGetReferent() 1281 RegLocation rl_dest = InlineTarget(info); in GenInlinedCharAt() local 1282 RegLocation rl_result = EvalLoc(rl_dest, kCoreReg, true); in GenInlinedCharAt() 1286 StoreValue(rl_dest, rl_result); in GenInlinedCharAt() 1304 RegLocation rl_dest = InlineTarget(info); in GenInlinedStringIsEmptyOrLength() local 1305 RegLocation rl_result = EvalLoc(rl_dest, kCoreReg, true); in GenInlinedStringIsEmptyOrLength() 1324 StoreValue(rl_dest, rl_result); in GenInlinedStringIsEmptyOrLength() 1335 RegLocation rl_dest = (size == k64) ? InlineTargetWide(info) : InlineTarget(info); // result reg in GenInlinedReverseBytes() local [all …]
|
/art/compiler/dex/quick/arm64/ |
D | fp_arm64.cc | 24 void Arm64Mir2Lir::GenArithOpFloat(Instruction::Code opcode, RegLocation rl_dest, in GenArithOpFloat() argument 51 StoreValue(rl_dest, rl_result); in GenArithOpFloat() 54 GenNegFloat(rl_dest, rl_src1); in GenArithOpFloat() 61 rl_result = EvalLoc(rl_dest, kFPReg, true); in GenArithOpFloat() 63 StoreValue(rl_dest, rl_result); in GenArithOpFloat() 67 RegLocation rl_dest, RegLocation rl_src1, RegLocation rl_src2) { in GenArithOpDouble() argument 99 StoreValueWide(rl_dest, rl_result); in GenArithOpDouble() 102 GenNegDouble(rl_dest, rl_src1); in GenArithOpDouble() 112 rl_result = EvalLoc(rl_dest, kFPReg, true); in GenArithOpDouble() 113 DCHECK(rl_dest.wide); in GenArithOpDouble() [all …]
|
D | int_arm64.cc | 49 void Arm64Mir2Lir::GenCmpLong(RegLocation rl_dest, RegLocation rl_src1, in GenCmpLong() argument 54 rl_result = EvalLoc(rl_dest, kCoreReg, true); in GenCmpLong() 60 StoreValue(rl_dest, rl_result); in GenCmpLong() 63 void Arm64Mir2Lir::GenShiftOpLong(Instruction::Code opcode, RegLocation rl_dest, in GenShiftOpLong() argument 84 RegLocation rl_result = EvalLocWide(rl_dest, kCoreReg, true); in GenShiftOpLong() 86 StoreValueWide(rl_dest, rl_result); in GenShiftOpLong() 189 RegLocation rl_dest = mir_graph_->GetDest(mir); in GenSelect() local 193 RegLocation rl_result = EvalLoc(rl_dest, rl_dest.ref ? kRefReg : kCoreReg, true); in GenSelect() 195 rl_dest.ref ? kRefReg : kCoreReg); in GenSelect() 196 StoreValue(rl_dest, rl_result); in GenSelect() [all …]
|
D | codegen_arm64.h | 67 RegLocation rl_dest, int lit) OVERRIDE; 69 RegLocation rl_src, RegLocation rl_dest, int lit) OVERRIDE; 71 RegLocation rl_src, RegLocation rl_dest, int64_t lit); 72 bool EasyMultiply(RegLocation rl_src, RegLocation rl_dest, int lit) OVERRIDE; 140 void GenShiftOpLong(Instruction::Code opcode, RegLocation rl_dest, RegLocation rl_src1, 142 void GenArithImmOpLong(Instruction::Code opcode, RegLocation rl_dest, RegLocation rl_src1, 145 RegLocation rl_dest, int scale) OVERRIDE; 148 void GenShiftImmOpLong(Instruction::Code opcode, RegLocation rl_dest, RegLocation rl_src1, 150 void GenArithOpDouble(Instruction::Code opcode, RegLocation rl_dest, RegLocation rl_src1, 152 void GenArithOpFloat(Instruction::Code opcode, RegLocation rl_dest, RegLocation rl_src1, [all …]
|
D | call_arm64.cc | 279 void Arm64Mir2Lir::GenMoveException(RegLocation rl_dest) { in GenMoveException() argument 281 RegLocation rl_result = EvalLoc(rl_dest, kRefReg, true); in GenMoveException() 284 StoreValue(rl_dest, rl_result); in GenMoveException()
|
/art/compiler/dex/quick/mips/ |
D | fp_mips.cc | 25 RegLocation rl_dest, RegLocation rl_src1, RegLocation rl_src2) { in GenArithOpFloat() argument 55 StoreValue(rl_dest, rl_result); in GenArithOpFloat() 58 GenNegFloat(rl_dest, rl_src1); in GenArithOpFloat() 65 rl_result = EvalLoc(rl_dest, kFPReg, true); in GenArithOpFloat() 67 StoreValue(rl_dest, rl_result); in GenArithOpFloat() 71 RegLocation rl_dest, RegLocation rl_src1, RegLocation rl_src2) { in GenArithOpDouble() argument 97 StoreValueWide(rl_dest, rl_result); in GenArithOpDouble() 100 GenNegDouble(rl_dest, rl_src1); in GenArithOpDouble() 109 rl_result = EvalLoc(rl_dest, kFPReg, true); in GenArithOpDouble() 110 DCHECK(rl_dest.wide); in GenArithOpDouble() [all …]
|
D | int_mips.cc | 44 void MipsMir2Lir::GenCmpLong(RegLocation rl_dest, RegLocation rl_src1, in GenCmpLong() argument 50 RegLocation rl_result = EvalLoc(rl_dest, kCoreReg, true); in GenCmpLong() 62 StoreValue(rl_dest, rl_result); in GenCmpLong() 238 RegLocation MipsMir2Lir::GenDivRem(RegLocation rl_dest, RegStorage reg1, RegStorage reg2, in GenDivRem() argument 241 RegLocation rl_result = EvalLoc(rl_dest, kCoreReg, true); in GenDivRem() 250 RegLocation MipsMir2Lir::GenDivRemLit(RegLocation rl_dest, RegStorage reg1, int lit, in GenDivRemLit() argument 255 RegLocation rl_result = EvalLoc(rl_dest, kCoreReg, true); in GenDivRemLit() 265 RegLocation MipsMir2Lir::GenDivRem(RegLocation rl_dest, RegLocation rl_src1, in GenDivRem() argument 268 return rl_dest; in GenDivRem() 271 RegLocation MipsMir2Lir::GenDivRemLit(RegLocation rl_dest, RegLocation rl_src1, int lit, bool is_di… in GenDivRemLit() argument [all …]
|
D | codegen_mips.h | 31 RegLocation rl_dest, int lit); 32 bool EasyMultiply(RegLocation rl_src, RegLocation rl_dest, int lit) OVERRIDE; 87 void GenArithImmOpLong(Instruction::Code opcode, RegLocation rl_dest, 90 RegLocation rl_index, RegLocation rl_dest, int scale); 93 void GenShiftImmOpLong(Instruction::Code opcode, RegLocation rl_dest, RegLocation rl_src1, 95 void GenArithOpDouble(Instruction::Code opcode, RegLocation rl_dest, RegLocation rl_src1, 97 void GenArithOpFloat(Instruction::Code opcode, RegLocation rl_dest, RegLocation rl_src1, 99 void GenCmpFP(Instruction::Code opcode, RegLocation rl_dest, RegLocation rl_src1, 101 void GenConversion(Instruction::Code opcode, RegLocation rl_dest, RegLocation rl_src); 109 void GenArithOpLong(Instruction::Code opcode, RegLocation rl_dest, RegLocation rl_src1, [all …]
|
D | call_mips.cc | 261 void MipsMir2Lir::GenMoveException(RegLocation rl_dest) { in GenMoveException() argument 263 RegLocation rl_result = EvalLoc(rl_dest, kRefReg, true); in GenMoveException() 269 StoreValue(rl_dest, rl_result); in GenMoveException()
|
/art/compiler/dex/quick/arm/ |
D | fp_arm.cc | 23 void ArmMir2Lir::GenArithOpFloat(Instruction::Code opcode, RegLocation rl_dest, in GenArithOpFloat() argument 54 StoreValue(rl_dest, rl_result); in GenArithOpFloat() 57 GenNegFloat(rl_dest, rl_src1); in GenArithOpFloat() 64 rl_result = EvalLoc(rl_dest, kFPReg, true); in GenArithOpFloat() 66 StoreValue(rl_dest, rl_result); in GenArithOpFloat() 70 RegLocation rl_dest, RegLocation rl_src1, RegLocation rl_src2) { in GenArithOpDouble() argument 96 StoreValueWide(rl_dest, rl_result); in GenArithOpDouble() 99 GenNegDouble(rl_dest, rl_src1); in GenArithOpDouble() 109 rl_result = EvalLoc(rl_dest, kFPReg, true); in GenArithOpDouble() 110 DCHECK(rl_dest.wide); in GenArithOpDouble() [all …]
|
D | codegen_arm.h | 31 RegLocation rl_dest, int lit); 32 bool EasyMultiply(RegLocation rl_src, RegLocation rl_dest, int lit) OVERRIDE; 87 void GenArithOpLong(Instruction::Code opcode, RegLocation rl_dest, RegLocation rl_src1, 89 void GenArithImmOpLong(Instruction::Code opcode, RegLocation rl_dest, 92 RegLocation rl_index, RegLocation rl_dest, int scale); 95 void GenShiftImmOpLong(Instruction::Code opcode, RegLocation rl_dest, 97 void GenArithOpDouble(Instruction::Code opcode, RegLocation rl_dest, RegLocation rl_src1, 99 void GenArithOpFloat(Instruction::Code opcode, RegLocation rl_dest, RegLocation rl_src1, 101 void GenCmpFP(Instruction::Code opcode, RegLocation rl_dest, RegLocation rl_src1, 103 void GenConversion(Instruction::Code opcode, RegLocation rl_dest, RegLocation rl_src); [all …]
|
D | int_arm.cc | 122 void ArmMir2Lir::GenCmpLong(RegLocation rl_dest, RegLocation rl_src1, RegLocation rl_src2) { in GenCmpLong() argument 147 StoreValue(rl_dest, rl_temp); in GenCmpLong() 233 RegLocation rl_dest = mir_graph_->GetDest(mir); in GenSelect() local 236 RegisterClass result_reg_class = rl_dest.ref ? kRefReg : kCoreReg; in GenSelect() 243 rl_result = EvalLoc(rl_dest, result_reg_class, true); in GenSelect() 286 rl_result = EvalLoc(rl_dest, result_reg_class, true); in GenSelect() 302 StoreValue(rl_dest, rl_result); in GenSelect() 493 RegLocation rl_src, RegLocation rl_dest, int lit) { in SmallLiteralDivRem() argument 505 RegLocation rl_result = EvalLoc(rl_dest, kCoreReg, true); in SmallLiteralDivRem() 547 StoreValue(rl_dest, rl_result); in SmallLiteralDivRem() [all …]
|
D | call_arm.cc | 313 void ArmMir2Lir::GenMoveException(RegLocation rl_dest) { in GenMoveException() argument 315 RegLocation rl_result = EvalLoc(rl_dest, kRefReg, true); in GenMoveException() 321 StoreValue(rl_dest, rl_result); in GenMoveException()
|
/art/compiler/dex/quick/x86/ |
D | fp_x86.cc | 25 RegLocation rl_dest, RegLocation rl_src1, RegLocation rl_src2) { in GenArithOpFloat() argument 52 GenRemFP(rl_dest, rl_src1, rl_src2, false /* is_double */); in GenArithOpFloat() 55 GenNegFloat(rl_dest, rl_src1); in GenArithOpFloat() 62 rl_result = EvalLoc(rl_dest, kFPReg, true); in GenArithOpFloat() 72 StoreValue(rl_dest, rl_result); in GenArithOpFloat() 76 RegLocation rl_dest, RegLocation rl_src1, RegLocation rl_src2) { in GenArithOpDouble() argument 77 DCHECK(rl_dest.wide); in GenArithOpDouble() 78 DCHECK(rl_dest.fp); in GenArithOpDouble() 105 GenRemFP(rl_dest, rl_src1, rl_src2, true /* is_double */); in GenArithOpDouble() 108 GenNegDouble(rl_dest, rl_src1); in GenArithOpDouble() [all …]
|
D | int_x86.cc | 34 void X86Mir2Lir::GenCmpLong(RegLocation rl_dest, RegLocation rl_src1, in GenCmpLong() argument 39 RegLocation rl_result = EvalLoc(rl_dest, kCoreReg, true); in GenCmpLong() 47 StoreValue(rl_dest, rl_result); in GenCmpLong() 69 StoreValue(rl_dest, rl_result); in GenCmpLong() 273 RegLocation rl_dest = mir_graph_->GetDest(mir); in GenSelect() local 276 RegisterClass result_reg_class = rl_dest.ref ? kRefReg : kCoreReg; in GenSelect() 288 rl_result = EvalLoc(rl_dest, result_reg_class, true); in GenSelect() 294 rl_result = EvalLoc(rl_dest, result_reg_class, true); in GenSelect() 351 rl_result = EvalLoc(rl_dest, result_reg_class, true); in GenSelect() 381 StoreValue(rl_dest, rl_result); in GenSelect() [all …]
|
D | codegen_x86.h | 68 RegLocation rl_dest, int lit) OVERRIDE; 69 bool EasyMultiply(RegLocation rl_src, RegLocation rl_dest, int lit) OVERRIDE; 147 RegLocation rl_dest, int scale) OVERRIDE; 151 void GenArithOpDouble(Instruction::Code opcode, RegLocation rl_dest, RegLocation rl_src1, 153 void GenArithOpFloat(Instruction::Code opcode, RegLocation rl_dest, RegLocation rl_src1, 155 void GenCmpFP(Instruction::Code opcode, RegLocation rl_dest, RegLocation rl_src1, 157 void GenConversion(Instruction::Code opcode, RegLocation rl_dest, RegLocation rl_src) OVERRIDE; 170 void GenArithOpLong(Instruction::Code opcode, RegLocation rl_dest, RegLocation rl_src1, 172 void GenArithImmOpLong(Instruction::Code opcode, RegLocation rl_dest, RegLocation rl_src1, 174 void GenShiftImmOpLong(Instruction::Code opcode, RegLocation rl_dest, [all …]
|
D | target_x86.cc | 909 void X86Mir2Lir::GenConstWide(RegLocation rl_dest, int64_t value) { in GenConstWide() argument 911 rl_dest = UpdateLocWide(rl_dest); in GenConstWide() 912 if ((rl_dest.location == kLocDalvikFrame) || in GenConstWide() 913 (rl_dest.location == kLocCompilerTemp)) { in GenConstWide() 917 int displacement = SRegOffset(rl_dest.s_reg_low); in GenConstWide() 930 Mir2Lir::GenConstWide(rl_dest, value); in GenConstWide() 1283 RegLocation rl_dest = InlineTarget(info); in GenInlinedIndexOf() local 1429 StoreValue(rl_dest, rl_return); in GenInlinedIndexOf() 2145 RegLocation rl_dest = mir_graph_->GetDest(mir); in GenAddReduceVector() local 2173 rl_result = EvalLoc(rl_dest, kFPReg, true); in GenAddReduceVector() [all …]
|
D | call_x86.cc | 175 void X86Mir2Lir::GenMoveException(RegLocation rl_dest) { in GenMoveException() argument 179 RegLocation rl_result = EvalLoc(rl_dest, kRefReg, true); in GenMoveException() 182 StoreValue(rl_dest, rl_result); in GenMoveException()
|
D | utility_x86.cc | 392 LIR* X86Mir2Lir::OpMemReg(OpKind op, RegLocation rl_dest, int r_value) { in OpMemReg() argument 393 DCHECK_NE(rl_dest.location, kLocPhysReg); in OpMemReg() 394 int displacement = SRegOffset(rl_dest.s_reg_low); in OpMemReg() 395 bool is64Bit = rl_dest.wide != 0; in OpMemReg()
|
/art/compiler/dex/portable/ |
D | mir_to_gbc.h | 99 art::llvm::IntrinsicHelper::IntrinsicId id, RegLocation rl_dest); 108 void ConvertMoveException(RegLocation rl_dest); 112 void ConvertArrayLength(int opt_flags, RegLocation rl_dest, 125 void ConvertFPArithOp(OpKind op, RegLocation rl_dest, RegLocation rl_src1, 128 RegLocation rl_dest, RegLocation rl_src1, RegLocation rl_src2); 130 RegLocation rl_dest, RegLocation rl_src, int shift_amount); 131 void ConvertArithOp(OpKind op, RegLocation rl_dest, RegLocation rl_src1, 133 void ConvertArithOpLit(OpKind op, RegLocation rl_dest, RegLocation rl_src1, 138 art::llvm::IntrinsicHelper::IntrinsicId id, RegLocation rl_dest); 140 void ConvertNewInstance(uint32_t type_idx, RegLocation rl_dest); [all …]
|
D | mir_to_gbc.cc | 195 art::llvm::IntrinsicHelper::IntrinsicId id, RegLocation rl_dest) { in ConvertSget() argument 199 DefineValue(res, rl_dest.orig_sreg); in ConvertSget() 271 void MirConverter::ConvertMoveException(RegLocation rl_dest) { in ConvertMoveException() argument 275 DefineValue(res, rl_dest.orig_sreg); in ConvertMoveException() 296 RegLocation rl_dest, RegLocation rl_src) { in ConvertArrayLength() argument 303 DefineValue(res, rl_dest.orig_sreg); in ConvertArrayLength() 408 void MirConverter::ConvertFPArithOp(OpKind op, RegLocation rl_dest, in ConvertFPArithOp() argument 422 DefineValue(res, rl_dest.orig_sreg); in ConvertFPArithOp() 426 RegLocation rl_dest, RegLocation rl_src1, RegLocation rl_src2) { in ConvertShift() argument 432 DefineValue(res, rl_dest.orig_sreg); in ConvertShift() [all …]
|