Lines Matching refs:rl_src1
122 void ArmMir2Lir::GenCmpLong(RegLocation rl_dest, RegLocation rl_src1, RegLocation rl_src2) {
125 rl_src1 = LoadValueWide(rl_src1, kCoreReg);
129 OpRegReg(kOpCmp, rl_src1.reg.GetHigh(), rl_src2.reg.GetHigh());
132 OpRegRegReg(kOpSub, t_reg, rl_src1.reg.GetLow(), rl_src2.reg.GetLow());
155 void ArmMir2Lir::GenFusedLongCmpImmBranch(BasicBlock* bb, RegLocation rl_src1,
163 rl_src1 = LoadValueWide(rl_src1, kCoreReg);
164 RegStorage low_reg = rl_src1.reg.GetLow();
165 RegStorage high_reg = rl_src1.reg.GetHigh();
306 RegLocation rl_src1 = mir_graph_->GetSrcWide(mir, 0);
310 if (rl_src1.is_const) {
311 std::swap(rl_src1, rl_src2);
320 GenFusedLongCmpImmBranch(bb, rl_src1, val, ccode);
326 rl_src1 = LoadValueWide(rl_src1, kCoreReg);
328 OpRegReg(kOpCmp, rl_src1.reg.GetHigh(), rl_src2.reg.GetHigh());
359 OpRegReg(kOpCmp, rl_src1.reg.GetLow(), rl_src2.reg.GetLow());
676 RegLocation ArmMir2Lir::GenDivRem(RegLocation rl_dest, RegLocation rl_src1,
682 RegLocation ArmMir2Lir::GenDivRemLit(RegLocation rl_dest, RegLocation rl_src1, int lit, bool is_div) {
728 RegLocation rl_src1 = info->args[0];
730 rl_src1 = LoadValue(rl_src1, kCoreReg);
734 OpRegReg(kOpCmp, rl_src1.reg, rl_src2.reg);
737 OpRegReg(kOpMov, rl_result.reg, rl_src1.reg);
1157 RegLocation rl_src1, RegLocation rl_src2) {
1173 if (BadOverlap(rl_src1, rl_dest) || (BadOverlap(rl_src2, rl_dest))) {
1175 CallRuntimeHelperRegLocationRegLocation(kQuickLmul, rl_src1, rl_src2, false);
1181 rl_src1 = LoadValueWide(rl_src1, kCoreReg);
1189 bool src1_promoted = !IsTemp(rl_src1.reg.GetLow()) && !IsTemp(rl_src1.reg.GetHigh());
1192 if ((rl_dest.s_reg_low != rl_src1.s_reg_low && rl_dest.s_reg_low != rl_src2.s_reg_low) &&
1200 if ((rl_src1.s_reg_low == rl_src2.s_reg_low) || src1_promoted || src2_promoted) {
1217 if (rl_src1.reg == rl_src2.reg) {
1220 NewLIR3(kThumb2MulRRR, tmp1.GetReg(), rl_src1.reg.GetLowReg(), rl_src1.reg.GetHighReg());
1221 NewLIR4(kThumb2Umull, res_lo.GetReg(), res_hi.GetReg(), rl_src1.reg.GetLowReg(),
1222 rl_src1.reg.GetLowReg());
1225 NewLIR3(kThumb2MulRRR, tmp1.GetReg(), rl_src2.reg.GetLowReg(), rl_src1.reg.GetHighReg());
1228 DCHECK_NE(rl_src1.reg.GetLowReg(), rl_src2.reg.GetLowReg());
1229 DCHECK_NE(rl_src1.reg.GetHighReg(), rl_src2.reg.GetHighReg());
1231 Clobber(rl_src1.reg);
1232 FreeTemp(rl_src1.reg.GetHigh());
1238 rl_src1.reg.GetLowReg());
1239 NewLIR4(kThumb2Mla, tmp1.GetReg(), rl_src1.reg.GetLowReg(), rl_src2.reg.GetHighReg(),
1243 FreeTemp(rl_src1.reg.GetLow());
1262 void ArmMir2Lir::GenArithOpLong(Instruction::Code opcode, RegLocation rl_dest, RegLocation rl_src1,
1267 GenMulLong(opcode, rl_dest, rl_src1, rl_src2);
1278 Mir2Lir::GenArithOpLong(opcode, rl_dest, rl_src1, rl_src2);
1536 RegLocation rl_dest, RegLocation rl_src1, RegLocation rl_src2) {
1540 GenArithOpLong(opcode, rl_dest, rl_src1, rl_src2);
1546 DCHECK(rl_src1.is_const);
1547 std::swap(rl_src1, rl_src2);
1550 if (BadOverlap(rl_src1, rl_dest)) {
1551 GenArithOpLong(opcode, rl_dest, rl_src1, rl_src2);
1568 GenArithOpLong(opcode, rl_dest, rl_src1, rl_src2);
1575 rl_src1 = LoadValueWide(rl_src1, kCoreReg);
1581 NewLIR3(kThumb2AddRRI8M, rl_result.reg.GetLowReg(), rl_src1.reg.GetLowReg(), mod_imm_lo);
1582 NewLIR3(kThumb2AdcRRI8M, rl_result.reg.GetHighReg(), rl_src1.reg.GetHighReg(), mod_imm_hi);
1586 if ((val_lo != 0) || (rl_result.reg.GetLowReg() != rl_src1.reg.GetLowReg())) {
1587 OpRegRegImm(kOpOr, rl_result.reg.GetLow(), rl_src1.reg.GetLow(), val_lo);
1589 if ((val_hi != 0) || (rl_result.reg.GetHighReg() != rl_src1.reg.GetHighReg())) {
1590 OpRegRegImm(kOpOr, rl_result.reg.GetHigh(), rl_src1.reg.GetHigh(), val_hi);
1595 OpRegRegImm(kOpXor, rl_result.reg.GetLow(), rl_src1.reg.GetLow(), val_lo);
1596 OpRegRegImm(kOpXor, rl_result.reg.GetHigh(), rl_src1.reg.GetHigh(), val_hi);
1600 if ((val_lo != 0xffffffff) || (rl_result.reg.GetLowReg() != rl_src1.reg.GetLowReg())) {
1601 OpRegRegImm(kOpAnd, rl_result.reg.GetLow(), rl_src1.reg.GetLow(), val_lo);
1603 if ((val_hi != 0xffffffff) || (rl_result.reg.GetHighReg() != rl_src1.reg.GetHighReg())) {
1604 OpRegRegImm(kOpAnd, rl_result.reg.GetHigh(), rl_src1.reg.GetHigh(), val_hi);
1609 NewLIR3(kThumb2SubRRI8M, rl_result.reg.GetLowReg(), rl_src1.reg.GetLowReg(), mod_imm_lo);
1610 NewLIR3(kThumb2SbcRRI8M, rl_result.reg.GetHighReg(), rl_src1.reg.GetHighReg(), mod_imm_hi);