Home | History | Annotate | Download | only in arm64

Lines Matching refs:rl_dest

57 void Arm64Mir2Lir::GenCmpLong(RegLocation rl_dest, RegLocation rl_src1,
62 rl_result = EvalLoc(rl_dest, kCoreReg, true);
68 StoreValue(rl_dest, rl_result);
71 void Arm64Mir2Lir::GenShiftOpLong(Instruction::Code opcode, RegLocation rl_dest,
92 RegLocation rl_result = EvalLocWide(rl_dest, kCoreReg, true);
94 StoreValueWide(rl_dest, rl_result);
195 // rl_src may be aliased with rl_result/rl_dest, so do compare early.
198 RegLocation rl_dest = mir_graph_->GetDest(mir);
202 RegLocation rl_result = EvalLoc(rl_dest, rl_dest.ref ? kRefReg : kCoreReg, true);
204 rl_dest.ref ? kRefReg : kCoreReg);
205 StoreValue(rl_dest, rl_result);
210 RegisterClass result_reg_class = rl_dest.ref ? kRefReg : kCoreReg;
213 RegLocation rl_result = EvalLoc(rl_dest, result_reg_class, true);
215 bool is_wide = rl_dest.ref || rl_dest.wide;
219 StoreValue(rl_dest, rl_result);
417 RegLocation rl_src, RegLocation rl_dest, int lit) {
434 RegLocation rl_result = EvalLoc(rl_dest, kCoreReg, true);
456 StoreValue(rl_dest, rl_result);
461 RegLocation rl_src, RegLocation rl_dest, int64_t lit) {
477 RegLocation rl_result = EvalLocWide(rl_dest, kCoreReg, true);
523 StoreValueWide(rl_dest, rl_result);
528 // and store the result in 'rl_dest'.
530 RegLocation rl_src, RegLocation rl_dest, int lit) {
531 return HandleEasyDivRem64(dalvik_opcode, is_div, rl_src, rl_dest, static_cast<int>(lit));
535 // and store the result in 'rl_dest'.
537 RegLocation rl_src, RegLocation rl_dest, int64_t lit) {
538 const bool is_64bit = rl_dest.wide;
546 return SmallLiteralDivRem64(dalvik_opcode, is_div, rl_src, rl_dest, lit);
548 return SmallLiteralDivRem(dalvik_opcode, is_div, rl_src, rl_dest, static_cast<int32_t>(lit));
561 rl_result = EvalLocWide(rl_dest, kCoreReg, true);
565 rl_result = EvalLoc(rl_dest, kCoreReg, true);
595 StoreValueWide(rl_dest, rl_result);
597 StoreValue(rl_dest, rl_result);
602 bool Arm64Mir2Lir::EasyMultiply(RegLocation rl_src, RegLocation rl_dest, int lit) {
603 UNUSED(rl_src, rl_dest, lit);
608 RegLocation Arm64Mir2Lir::GenDivRemLit(RegLocation rl_dest, RegLocation rl_src1, int lit,
610 UNUSED(rl_dest, rl_src1, lit, is_div);
615 RegLocation Arm64Mir2Lir::GenDivRemLit(RegLocation rl_dest, RegStorage reg1, int lit, bool is_div) {
616 RegLocation rl_result = EvalLoc(rl_dest, kCoreReg, true);
629 RegLocation Arm64Mir2Lir::GenDivRem(RegLocation rl_dest, RegLocation rl_src1,
631 UNUSED(rl_dest, rl_src1, rl_src2, is_div, flags);
636 RegLocation Arm64Mir2Lir::GenDivRem(RegLocation rl_dest, RegStorage r_src1, RegStorage r_src2,
640 RegLocation rl_result = EvalLoc(rl_dest, kCoreReg, true);
666 RegLocation rl_dest = InlineTarget(info);
667 RegLocation rl_result = EvalLoc(rl_dest, kCoreReg, true);
674 StoreValue(rl_dest, rl_result);
681 RegLocation rl_dest = InlineTargetWide(info);
682 RegLocation rl_result = EvalLoc(rl_dest, kCoreReg, true);
689 StoreValueWide(rl_dest, rl_result);
699 RegLocation rl_dest = (is_long) ? InlineTargetWide(info) : InlineTarget(info);
700 RegLocation rl_result = EvalLoc(rl_dest, kCoreReg, true);
704 (is_long) ? StoreValueWide(rl_dest, rl_result) :StoreValue(rl_dest, rl_result);
710 RegLocation rl_dest = (size == k64) ? InlineTargetWide(info) : InlineTarget(info);
712 RegLocation rl_result = EvalLoc(rl_dest, kCoreReg, true);
716 StoreValueWide(rl_dest, rl_result);
719 StoreValue(rl_dest, rl_result);
749 RegLocation rl_dest = InlineTarget(info); // boolean place for result
815 RegLocation rl_result = EvalLoc(rl_dest, kCoreReg, true);
821 StoreValue(rl_dest, rl_result);
978 void Arm64Mir2Lir::GenMaddMsubInt(RegLocation rl_dest, RegLocation rl_src1, RegLocation rl_src2,
983 RegLocation rl_result = EvalLoc(rl_dest, kCoreReg, true);
986 StoreValue(rl_dest, rl_result);
989 void Arm64Mir2Lir::GenMaddMsubLong(RegLocation rl_dest, RegLocation rl_src1, RegLocation rl_src2,
994 RegLocation rl_result = EvalLocWide(rl_dest, kCoreReg, true);
997 StoreValueWide(rl_dest, rl_result);
1076 void Arm64Mir2Lir::GenIntToLong(RegLocation rl_dest, RegLocation rl_src) {
1080 rl_result = EvalLocWide(rl_dest, kCoreReg, true);
1082 StoreValueWide(rl_dest, rl_result);
1085 void Arm64Mir2Lir::GenDivRemLong(Instruction::Code opcode, RegLocation rl_dest,
1090 if (HandleEasyDivRem64(opcode, is_div, rl_src1, rl_dest, lit)) {
1101 rl_result = GenDivRem(rl_dest, rl_src1.reg, rl_src2.reg, is_div);
1102 StoreValueWide(rl_dest, rl_result);
1105 void Arm64Mir2Lir::GenLongOp(OpKind op, RegLocation rl_dest, RegLocation rl_src1,
1111 rl_result = EvalLocWide(rl_dest, kCoreReg, true);
1113 StoreValueWide(rl_dest, rl_result);
1116 void Arm64Mir2Lir::GenNegLong(RegLocation rl_dest, RegLocation rl_src) {
1120 rl_result = EvalLocWide(rl_dest, kCoreReg, true);
1122 StoreValueWide(rl_dest, rl_result);
1125 void Arm64Mir2Lir::GenNotLong(RegLocation rl_dest, RegLocation rl_src) {
1129 rl_result = EvalLocWide(rl_dest, kCoreReg, true);
1131 StoreValueWide(rl_dest, rl_result);
1134 void Arm64Mir2Lir::GenArithOpLong(Instruction::Code opcode, RegLocation rl_dest,
1138 GenNotLong(rl_dest, rl_src2);
1142 GenLongOp(kOpAdd, rl_dest, rl_src1, rl_src2);
1146 GenLongOp(kOpSub, rl_dest, rl_src1, rl_src2);
1150 GenLongOp(kOpMul, rl_dest, rl_src1, rl_src2);
1154 GenDivRemLong(opcode, rl_dest, rl_src1, rl_src2, /*is_div*/ true, flags);
1158 GenDivRemLong(opcode, rl_dest, rl_src1, rl_src2, /*is_div*/ false, flags);
1162 GenLongOp(kOpAnd, rl_dest, rl_src1, rl_src2);
1166 GenLongOp(kOpOr, rl_dest, rl_src1, rl_src2);
1170 GenLongOp(kOpXor, rl_dest, rl_src1, rl_src2);
1173 GenNegLong(rl_dest, rl_src2);
1186 RegLocation rl_index, RegLocation rl_dest, int scale) {
1197 if (rl_dest.wide) {
1217 rl_result = EvalLoc(rl_dest, reg_class, true);
1235 rl_result = EvalLoc(rl_dest, reg_class, true);
1248 if (rl_dest.wide) {
1249 StoreValueWide(rl_dest, rl_result);
1251 StoreValue(rl_dest, rl_result);
1343 RegLocation rl_dest, RegLocation rl_src, RegLocation rl_shift,
1350 StoreValueWide(rl_dest, rl_src);
1354 RegLocation rl_result = EvalLocWide(rl_dest, kCoreReg, true);
1372 StoreValueWide(rl_dest, rl_result);
1375 void Arm64Mir2Lir::GenArithImmOpLong(Instruction::Code opcode, RegLocation rl_dest,
1405 return GenArithOpLong(opcode, rl_dest, rl_src1, rl_src2, flags);
1418 RegLocation rl_result = EvalLocWide(rl_dest, kCoreReg, true);
1420 StoreValueWide(rl_dest, rl_result);
1786 RegLocation rl_dest = IsWide(size) ? InlineTargetWide(info) : InlineTarget(info); // result reg
1787 RegLocation rl_result = EvalLoc(rl_dest, kCoreReg, true);
1791 IsWide(size) ? StoreValueWide(rl_dest, rl_result) : StoreValue(rl_dest, rl_result);