Lines Matching refs:rl_src
276 RegLocation rl_src = mir_graph_->GetSrc(mir, 0); in GenSelect() local
279 RegisterClass src_reg_class = rl_src.ref ? kRefReg : kCoreReg; in GenSelect()
297 rl_src = LoadValue(rl_src, src_reg_class); in GenSelect()
321 (rl_src.location == kLocPhysReg && rl_src.reg.GetRegNum() == rl_result.reg.GetRegNum()); in GenSelect()
331 OpRegImm(kOpCmp, rl_src.reg, 0); in GenSelect()
350 rl_src = LoadValue(rl_src, src_reg_class); in GenSelect()
373 OpRegImm(kOpCmp, rl_src.reg, 0); in GenSelect()
606 RegLocation X86Mir2Lir::GenDivRemLit(RegLocation rl_dest, RegLocation rl_src, in GenDivRemLit() argument
615 LoadValueDirectFixed(rl_src, rl_result.reg); in GenDivRemLit()
623 LoadValueDirectFixed(rl_src, rl_result.reg); in GenDivRemLit()
645 rl_src = LoadValue(rl_src, kCoreReg); in GenDivRemLit()
647 if (IsSameReg(rl_result.reg, rl_src.reg)) { in GenDivRemLit()
653 OpRegImm(kOpCmp, rl_src.reg, 0); in GenDivRemLit()
659 NewLIR3(kX86Lea32RM, rl_result.reg.GetReg(), rl_src.reg.GetReg(), std::abs(imm) - 1); in GenDivRemLit()
660 NewLIR2(kX86Test32RR, rl_src.reg.GetReg(), rl_src.reg.GetReg()); in GenDivRemLit()
661 OpCondRegReg(kOpCmov, kCondPl, rl_result.reg, rl_src.reg); in GenDivRemLit()
705 rl_src = LoadValue(rl_src, kCoreReg); in GenDivRemLit()
706 RegStorage numerator_reg = rl_src.reg; in GenDivRemLit()
1464 void X86Mir2Lir::GenMultiplyByTwoBitMultiplier(RegLocation rl_src, in GenMultiplyByTwoBitMultiplier() argument
1469 OpRegRegImm(kOpLsl, t_reg, rl_src.reg, second_bit - first_bit); in GenMultiplyByTwoBitMultiplier()
1470 OpRegRegReg(kOpAdd, rl_result.reg, rl_src.reg, t_reg); in GenMultiplyByTwoBitMultiplier()
1599 RegLocation rl_src, RegLocation rl_dest, int lit) { in SmallLiteralDivRem() argument
1600 UNUSED(dalvik_opcode, is_div, rl_src, rl_dest, lit); in SmallLiteralDivRem()
1605 bool X86Mir2Lir::EasyMultiply(RegLocation rl_src, RegLocation rl_dest, int lit) { in EasyMultiply() argument
1606 UNUSED(rl_src, rl_dest, lit); in EasyMultiply()
1948 void X86Mir2Lir::GenLongRegOrMemOp(RegLocation rl_dest, RegLocation rl_src, in GenLongRegOrMemOp() argument
1951 X86OpCode x86op = GetOpcode(op, rl_dest, rl_src, false); in GenLongRegOrMemOp()
1952 if (rl_src.location == kLocPhysReg) { in GenLongRegOrMemOp()
1956 NewLIR2(x86op, rl_dest.reg.GetReg(), rl_src.reg.GetReg()); in GenLongRegOrMemOp()
1958 rl_src = LoadValueWide(rl_src, kCoreReg); in GenLongRegOrMemOp()
1959 if (rl_dest.reg.GetLowReg() == rl_src.reg.GetHighReg()) { in GenLongRegOrMemOp()
1963 rl_src.reg.SetHighReg(temp_reg.GetReg()); in GenLongRegOrMemOp()
1965 NewLIR2(x86op, rl_dest.reg.GetLowReg(), rl_src.reg.GetLowReg()); in GenLongRegOrMemOp()
1967 x86op = GetOpcode(op, rl_dest, rl_src, true); in GenLongRegOrMemOp()
1968 NewLIR2(x86op, rl_dest.reg.GetHighReg(), rl_src.reg.GetHighReg()); in GenLongRegOrMemOp()
1974 DCHECK((rl_src.location == kLocDalvikFrame) || in GenLongRegOrMemOp()
1975 (rl_src.location == kLocCompilerTemp)); in GenLongRegOrMemOp()
1977 int displacement = SRegOffset(rl_src.s_reg_low); in GenLongRegOrMemOp()
1985 x86op = GetOpcode(op, rl_dest, rl_src, true); in GenLongRegOrMemOp()
1992 void X86Mir2Lir::GenLongArith(RegLocation rl_dest, RegLocation rl_src, Instruction::Code op) { in GenLongArith() argument
1998 rl_src = UpdateLocWideTyped(rl_src); in GenLongArith()
1999 GenLongRegOrMemOp(rl_result, rl_src, op); in GenLongArith()
2002 } else if (!cu_->target64 && Intersects(rl_src, rl_dest)) { in GenLongArith()
2004 rl_src = LoadValueWide(rl_src, kCoreReg); in GenLongArith()
2006 rl_src = UpdateLocWideTyped(rl_src); in GenLongArith()
2007 GenLongRegOrMemOp(rl_result, rl_src, op); in GenLongArith()
2015 rl_src = LoadValueWide(rl_src, kCoreReg); in GenLongArith()
2018 X86OpCode x86op = GetOpcode(op, rl_dest, rl_src, false); in GenLongArith()
2024 cu_->target64 ? rl_src.reg.GetReg() : rl_src.reg.GetLowReg()); in GenLongArith()
2030 x86op = GetOpcode(op, rl_dest, rl_src, true); in GenLongArith()
2031 lir = NewLIR3(x86op, r_base, displacement + HIWORD_OFFSET, rl_src.reg.GetHighReg()); in GenLongArith()
2038 int v_src_reg = mir_graph_->SRegToVReg(rl_src.s_reg_low); in GenLongArith()
2045 Clobber(rl_src.reg); in GenLongArith()
2134 void X86Mir2Lir::GenNotLong(RegLocation rl_dest, RegLocation rl_src) { in GenNotLong() argument
2136 rl_src = LoadValueWide(rl_src, kCoreReg); in GenNotLong()
2139 OpRegCopy(rl_result.reg, rl_src.reg); in GenNotLong()
2147 void X86Mir2Lir::GenDivRemLongLit(RegLocation rl_dest, RegLocation rl_src, in GenDivRemLongLit() argument
2154 StoreValueWide(rl_dest, rl_src); in GenDivRemLongLit()
2163 rl_src = LoadValueWide(rl_src, kCoreReg); in GenDivRemLongLit()
2167 OpRegCopy(rl_result.reg, rl_src.reg); in GenDivRemLongLit()
2171 OpRegReg(kOpCmp, rl_src.reg, rs_temp); in GenDivRemLongLit()
2188 rl_src = LoadValueWide(rl_src, kCoreReg); in GenDivRemLongLit()
2190 if (IsSameReg(rl_result.reg, rl_src.reg)) { in GenDivRemLongLit()
2195 OpRegReg(kOpAdd, rl_result.reg, rl_src.reg); in GenDivRemLongLit()
2196 NewLIR2(kX86Test64RR, rl_src.reg.GetReg(), rl_src.reg.GetReg()); in GenDivRemLongLit()
2197 OpCondRegReg(kOpCmov, kCondPl, rl_result.reg, rl_src.reg); in GenDivRemLongLit()
2246 rl_src = LoadValueWide(rl_src, kCoreReg); in GenDivRemLongLit()
2247 numerator_reg = rl_src.reg; in GenDivRemLongLit()
2253 rl_src = UpdateLocWideTyped(rl_src); in GenDivRemLongLit()
2254 if (rl_src.location != kLocPhysReg) { in GenDivRemLongLit()
2257 int displacement = SRegOffset(rl_src.s_reg_low); in GenDivRemLongLit()
2264 NewLIR1(kX86Imul64DaR, rl_src.reg.GetReg()); in GenDivRemLongLit()
2391 void X86Mir2Lir::GenNegLong(RegLocation rl_dest, RegLocation rl_src) { in GenNegLong() argument
2392 rl_src = LoadValueWide(rl_src, kCoreReg); in GenNegLong()
2396 OpRegReg(kOpNeg, rl_result.reg, rl_src.reg); in GenNegLong()
2398 rl_result = ForceTempWide(rl_src); in GenNegLong()
2495 RegLocation rl_index, RegLocation rl_src, int scale, bool card_mark) { in GenArrayPut() argument
2530 rl_src = LoadValueWide(rl_src, reg_class); in GenArrayPut()
2532 rl_src = LoadValue(rl_src, reg_class); in GenArrayPut()
2535 if ((size == kSignedByte || size == kUnsignedByte) && !IsByteRegister(rl_src.reg)) { in GenArrayPut()
2537 OpRegCopy(temp, rl_src.reg); in GenArrayPut()
2540 … StoreBaseIndexedDisp(rl_array.reg, rl_index.reg, scale, data_offset, rl_src.reg, size, opt_flags); in GenArrayPut()
2547 MarkGCCard(opt_flags, rl_src.reg, rl_array.reg); in GenArrayPut()
2552 RegLocation rl_src, int shift_amount, int flags) { in GenShiftImmOpLong() argument
2573 OpRegRegImm(op, rl_result.reg, rl_src.reg, shift_amount); in GenShiftImmOpLong()
2580 OpRegCopy(rl_result.reg.GetHigh(), rl_src.reg.GetLow()); in GenShiftImmOpLong()
2583 OpRegCopy(rl_result.reg.GetHigh(), rl_src.reg.GetLow()); in GenShiftImmOpLong()
2587 OpRegCopy(rl_result.reg.GetLow(), rl_src.reg.GetLow()); in GenShiftImmOpLong()
2588 OpRegCopy(rl_result.reg.GetHigh(), rl_src.reg.GetHigh()); in GenShiftImmOpLong()
2597 OpRegCopy(rl_result.reg.GetLow(), rl_src.reg.GetHigh()); in GenShiftImmOpLong()
2598 OpRegCopy(rl_result.reg.GetHigh(), rl_src.reg.GetHigh()); in GenShiftImmOpLong()
2601 OpRegCopy(rl_result.reg.GetLow(), rl_src.reg.GetHigh()); in GenShiftImmOpLong()
2602 OpRegCopy(rl_result.reg.GetHigh(), rl_src.reg.GetHigh()); in GenShiftImmOpLong()
2606 OpRegCopy(rl_result.reg.GetLow(), rl_src.reg.GetLow()); in GenShiftImmOpLong()
2607 OpRegCopy(rl_result.reg.GetHigh(), rl_src.reg.GetHigh()); in GenShiftImmOpLong()
2616 OpRegCopy(rl_result.reg.GetLow(), rl_src.reg.GetHigh()); in GenShiftImmOpLong()
2619 OpRegCopy(rl_result.reg.GetLow(), rl_src.reg.GetHigh()); in GenShiftImmOpLong()
2623 OpRegCopy(rl_result.reg.GetLow(), rl_src.reg.GetLow()); in GenShiftImmOpLong()
2624 OpRegCopy(rl_result.reg.GetHigh(), rl_src.reg.GetHigh()); in GenShiftImmOpLong()
2638 RegLocation rl_src, RegLocation rl_shift, int flags) { in GenShiftImmOpLong() argument
2642 rl_src = LoadValueWide(rl_src, kCoreReg); in GenShiftImmOpLong()
2643 StoreValueWide(rl_dest, rl_src); in GenShiftImmOpLong()
2648 GenArithOpLong(Instruction::ADD_LONG, rl_dest, rl_src, rl_src, flags); in GenShiftImmOpLong()
2651 if (PartiallyIntersects(rl_src, rl_dest)) { in GenShiftImmOpLong()
2652 GenShiftOpLong(opcode, rl_dest, rl_src, rl_shift); in GenShiftImmOpLong()
2655 rl_src = LoadValueWide(rl_src, kCoreReg); in GenShiftImmOpLong()
2656 RegLocation rl_result = GenShiftImmOpLong(opcode, rl_dest, rl_src, shift_amount, flags); in GenShiftImmOpLong()
2855 bool X86Mir2Lir::GenLongImm(RegLocation rl_dest, RegLocation rl_src, Instruction::Code op) { in GenLongImm() argument
2856 DCHECK(rl_src.is_const); in GenLongImm()
2857 int64_t val = mir_graph_->ConstantValueWide(rl_src); in GenLongImm()
3012 RegLocation rl_dest, RegLocation rl_src) { in GenInstanceofFinal() argument
3013 RegLocation object = LoadValue(rl_src, kRefReg); in GenInstanceofFinal()
3332 void X86Mir2Lir::GenIntToLong(RegLocation rl_dest, RegLocation rl_src) { in GenIntToLong() argument
3334 Mir2Lir::GenIntToLong(rl_dest, rl_src); in GenIntToLong()
3337 rl_src = UpdateLocTyped(rl_src); in GenIntToLong()
3339 if (rl_src.location == kLocPhysReg) { in GenIntToLong()
3340 NewLIR2(kX86MovsxdRR, rl_result.reg.GetReg(), rl_src.reg.GetReg()); in GenIntToLong()
3342 int displacement = SRegOffset(rl_src.s_reg_low); in GenIntToLong()
3352 void X86Mir2Lir::GenLongToInt(RegLocation rl_dest, RegLocation rl_src) { in GenLongToInt() argument
3353 rl_src = UpdateLocWide(rl_src); in GenLongToInt()
3354 rl_src = NarrowRegLoc(rl_src); in GenLongToInt()
3355 StoreValue(rl_dest, rl_src); in GenLongToInt()
3362 if (rl_src.location == kLocPhysReg && rl_dest.location == kLocPhysReg in GenLongToInt()
3363 && IsSameReg(rl_src.reg, rl_dest.reg)) { in GenLongToInt()