Lines Matching refs:rl_src
272 RegLocation rl_src = mir_graph_->GetSrc(mir, 0); in GenSelect() local
275 RegisterClass src_reg_class = rl_src.ref ? kRefReg : kCoreReg; in GenSelect()
293 rl_src = LoadValue(rl_src, src_reg_class); in GenSelect()
317 (rl_src.location == kLocPhysReg && rl_src.reg.GetRegNum() == rl_result.reg.GetRegNum()); in GenSelect()
327 OpRegImm(kOpCmp, rl_src.reg, 0); in GenSelect()
346 rl_src = LoadValue(rl_src, src_reg_class); in GenSelect()
369 OpRegImm(kOpCmp, rl_src.reg, 0); in GenSelect()
601 RegLocation X86Mir2Lir::GenDivRemLit(RegLocation rl_dest, RegLocation rl_src, in GenDivRemLit() argument
610 LoadValueDirectFixed(rl_src, rl_result.reg); in GenDivRemLit()
618 LoadValueDirectFixed(rl_src, rl_result.reg); in GenDivRemLit()
633 rl_src = LoadValue(rl_src, kCoreReg); in GenDivRemLit()
635 if (IsSameReg(rl_result.reg, rl_src.reg)) { in GenDivRemLit()
639 NewLIR3(kX86Lea32RM, rl_result.reg.GetReg(), rl_src.reg.GetReg(), std::abs(imm) - 1); in GenDivRemLit()
640 NewLIR2(kX86Test32RR, rl_src.reg.GetReg(), rl_src.reg.GetReg()); in GenDivRemLit()
641 OpCondRegReg(kOpCmov, kCondPl, rl_result.reg, rl_src.reg); in GenDivRemLit()
686 rl_src = LoadValue(rl_src, kCoreReg); in GenDivRemLit()
687 numerator_reg = rl_src.reg; in GenDivRemLit()
691 LoadValueDirectFixed(rl_src, rs_r0); in GenDivRemLit()
1108 void X86Mir2Lir::GenMultiplyByTwoBitMultiplier(RegLocation rl_src, in GenMultiplyByTwoBitMultiplier() argument
1112 OpRegRegImm(kOpLsl, t_reg, rl_src.reg, second_bit - first_bit); in GenMultiplyByTwoBitMultiplier()
1113 OpRegRegReg(kOpAdd, rl_result.reg, rl_src.reg, t_reg); in GenMultiplyByTwoBitMultiplier()
1242 RegLocation rl_src, RegLocation rl_dest, int lit) { in SmallLiteralDivRem() argument
1247 bool X86Mir2Lir::EasyMultiply(RegLocation rl_src, RegLocation rl_dest, int lit) { in EasyMultiply() argument
1582 void X86Mir2Lir::GenLongRegOrMemOp(RegLocation rl_dest, RegLocation rl_src, in GenLongRegOrMemOp() argument
1585 X86OpCode x86op = GetOpcode(op, rl_dest, rl_src, false); in GenLongRegOrMemOp()
1586 if (rl_src.location == kLocPhysReg) { in GenLongRegOrMemOp()
1590 NewLIR2(x86op, rl_dest.reg.GetReg(), rl_src.reg.GetReg()); in GenLongRegOrMemOp()
1592 rl_src = LoadValueWide(rl_src, kCoreReg); in GenLongRegOrMemOp()
1593 if (rl_dest.reg.GetLowReg() == rl_src.reg.GetHighReg()) { in GenLongRegOrMemOp()
1597 rl_src.reg.SetHighReg(temp_reg.GetReg()); in GenLongRegOrMemOp()
1599 NewLIR2(x86op, rl_dest.reg.GetLowReg(), rl_src.reg.GetLowReg()); in GenLongRegOrMemOp()
1601 x86op = GetOpcode(op, rl_dest, rl_src, true); in GenLongRegOrMemOp()
1602 NewLIR2(x86op, rl_dest.reg.GetHighReg(), rl_src.reg.GetHighReg()); in GenLongRegOrMemOp()
1603 FreeTemp(rl_src.reg); // ??? in GenLongRegOrMemOp()
1609 DCHECK((rl_src.location == kLocDalvikFrame) || in GenLongRegOrMemOp()
1610 (rl_src.location == kLocCompilerTemp)); in GenLongRegOrMemOp()
1612 int displacement = SRegOffset(rl_src.s_reg_low); in GenLongRegOrMemOp()
1620 x86op = GetOpcode(op, rl_dest, rl_src, true); in GenLongRegOrMemOp()
1627 void X86Mir2Lir::GenLongArith(RegLocation rl_dest, RegLocation rl_src, Instruction::Code op) { in GenLongArith() argument
1633 rl_src = UpdateLocWideTyped(rl_src, kCoreReg); in GenLongArith()
1634 GenLongRegOrMemOp(rl_result, rl_src, op); in GenLongArith()
1642 rl_src = LoadValueWide(rl_src, kCoreReg); in GenLongArith()
1645 X86OpCode x86op = GetOpcode(op, rl_dest, rl_src, false); in GenLongArith()
1651 cu_->target64 ? rl_src.reg.GetReg() : rl_src.reg.GetLowReg()); in GenLongArith()
1657 x86op = GetOpcode(op, rl_dest, rl_src, true); in GenLongArith()
1658 lir = NewLIR3(x86op, r_base, displacement + HIWORD_OFFSET, rl_src.reg.GetHighReg()); in GenLongArith()
1665 int v_src_reg = mir_graph_->SRegToVReg(rl_src.s_reg_low); in GenLongArith()
1672 Clobber(rl_src.reg); in GenLongArith()
1762 void X86Mir2Lir::GenNotLong(RegLocation rl_dest, RegLocation rl_src) { in GenNotLong() argument
1764 rl_src = LoadValueWide(rl_src, kCoreReg); in GenNotLong()
1767 OpRegCopy(rl_result.reg, rl_src.reg); in GenNotLong()
1775 void X86Mir2Lir::GenDivRemLongLit(RegLocation rl_dest, RegLocation rl_src, in GenDivRemLongLit() argument
1782 StoreValueWide(rl_dest, rl_src); in GenDivRemLongLit()
1791 rl_src = LoadValueWide(rl_src, kCoreReg); in GenDivRemLongLit()
1795 OpRegCopy(rl_result.reg, rl_src.reg); in GenDivRemLongLit()
1799 OpRegReg(kOpCmp, rl_src.reg, rs_temp); in GenDivRemLongLit()
1816 rl_src = LoadValueWide(rl_src, kCoreReg); in GenDivRemLongLit()
1818 if (IsSameReg(rl_result.reg, rl_src.reg)) { in GenDivRemLongLit()
1823 OpRegReg(kOpAdd, rl_result.reg, rl_src.reg); in GenDivRemLongLit()
1824 NewLIR2(kX86Test64RR, rl_src.reg.GetReg(), rl_src.reg.GetReg()); in GenDivRemLongLit()
1825 OpCondRegReg(kOpCmov, kCondPl, rl_result.reg, rl_src.reg); in GenDivRemLongLit()
1870 rl_src = LoadValueWide(rl_src, kCoreReg); in GenDivRemLongLit()
1871 numerator_reg = rl_src.reg; in GenDivRemLongLit()
1875 LoadValueDirectWideFixed(rl_src, rs_r0q); in GenDivRemLongLit()
2007 void X86Mir2Lir::GenNegLong(RegLocation rl_dest, RegLocation rl_src) { in GenNegLong() argument
2008 rl_src = LoadValueWide(rl_src, kCoreReg); in GenNegLong()
2012 OpRegReg(kOpNeg, rl_result.reg, rl_src.reg); in GenNegLong()
2014 rl_result = ForceTempWide(rl_src); in GenNegLong()
2111 RegLocation rl_index, RegLocation rl_src, int scale, bool card_mark) { in GenArrayPut() argument
2146 rl_src = LoadValueWide(rl_src, reg_class); in GenArrayPut()
2148 rl_src = LoadValue(rl_src, reg_class); in GenArrayPut()
2151 if ((size == kSignedByte || size == kUnsignedByte) && !IsByteRegister(rl_src.reg)) { in GenArrayPut()
2153 OpRegCopy(temp, rl_src.reg); in GenArrayPut()
2156 StoreBaseIndexedDisp(rl_array.reg, rl_index.reg, scale, data_offset, rl_src.reg, size); in GenArrayPut()
2163 MarkGCCard(rl_src.reg, rl_array.reg); in GenArrayPut()
2168 RegLocation rl_src, int shift_amount) { in GenShiftImmOpLong() argument
2188 OpRegRegImm(op, rl_result.reg, rl_src.reg, shift_amount); in GenShiftImmOpLong()
2195 OpRegCopy(rl_result.reg.GetHigh(), rl_src.reg.GetLow()); in GenShiftImmOpLong()
2198 OpRegCopy(rl_result.reg.GetHigh(), rl_src.reg.GetLow()); in GenShiftImmOpLong()
2202 OpRegCopy(rl_result.reg.GetLow(), rl_src.reg.GetLow()); in GenShiftImmOpLong()
2203 OpRegCopy(rl_result.reg.GetHigh(), rl_src.reg.GetHigh()); in GenShiftImmOpLong()
2212 OpRegCopy(rl_result.reg.GetLow(), rl_src.reg.GetHigh()); in GenShiftImmOpLong()
2213 OpRegCopy(rl_result.reg.GetHigh(), rl_src.reg.GetHigh()); in GenShiftImmOpLong()
2216 OpRegCopy(rl_result.reg.GetLow(), rl_src.reg.GetHigh()); in GenShiftImmOpLong()
2217 OpRegCopy(rl_result.reg.GetHigh(), rl_src.reg.GetHigh()); in GenShiftImmOpLong()
2221 OpRegCopy(rl_result.reg.GetLow(), rl_src.reg.GetLow()); in GenShiftImmOpLong()
2222 OpRegCopy(rl_result.reg.GetHigh(), rl_src.reg.GetHigh()); in GenShiftImmOpLong()
2231 OpRegCopy(rl_result.reg.GetLow(), rl_src.reg.GetHigh()); in GenShiftImmOpLong()
2234 OpRegCopy(rl_result.reg.GetLow(), rl_src.reg.GetHigh()); in GenShiftImmOpLong()
2238 OpRegCopy(rl_result.reg.GetLow(), rl_src.reg.GetLow()); in GenShiftImmOpLong()
2239 OpRegCopy(rl_result.reg.GetHigh(), rl_src.reg.GetHigh()); in GenShiftImmOpLong()
2253 RegLocation rl_src, RegLocation rl_shift) { in GenShiftImmOpLong() argument
2257 rl_src = LoadValueWide(rl_src, kCoreReg); in GenShiftImmOpLong()
2258 StoreValueWide(rl_dest, rl_src); in GenShiftImmOpLong()
2263 GenArithOpLong(Instruction::ADD_LONG, rl_dest, rl_src, rl_src); in GenShiftImmOpLong()
2266 if (BadOverlap(rl_src, rl_dest)) { in GenShiftImmOpLong()
2267 GenShiftOpLong(opcode, rl_dest, rl_src, rl_shift); in GenShiftImmOpLong()
2270 rl_src = LoadValueWide(rl_src, kCoreReg); in GenShiftImmOpLong()
2271 RegLocation rl_result = GenShiftImmOpLong(opcode, rl_dest, rl_src, shift_amount); in GenShiftImmOpLong()
2469 bool X86Mir2Lir::GenLongImm(RegLocation rl_dest, RegLocation rl_src, Instruction::Code op) { in GenLongImm() argument
2470 DCHECK(rl_src.is_const); in GenLongImm()
2471 int64_t val = mir_graph_->ConstantValueWide(rl_src); in GenLongImm()
2626 RegLocation rl_dest, RegLocation rl_src) { in GenInstanceofFinal() argument
2627 RegLocation object = LoadValue(rl_src, kRefReg); in GenInstanceofFinal()
2947 void X86Mir2Lir::GenIntToLong(RegLocation rl_dest, RegLocation rl_src) { in GenIntToLong() argument
2949 Mir2Lir::GenIntToLong(rl_dest, rl_src); in GenIntToLong()
2952 rl_src = UpdateLocTyped(rl_src, kCoreReg); in GenIntToLong()
2954 if (rl_src.location == kLocPhysReg) { in GenIntToLong()
2955 NewLIR2(kX86MovsxdRR, rl_result.reg.GetReg(), rl_src.reg.GetReg()); in GenIntToLong()
2957 int displacement = SRegOffset(rl_src.s_reg_low); in GenIntToLong()