• Home
  • Raw
  • Download

Lines Matching refs:__

144 #define __ down_cast<CodeGeneratorMIPS*>(codegen)->GetAssembler()->  macro
154 __ Bind(GetEntryLabel()); in EmitNativeCode()
190 __ Bind(GetEntryLabel()); in EmitNativeCode()
225 __ Bind(GetEntryLabel()); in EmitNativeCode()
229 __ LoadConst32(calling_convention.GetRegisterAt(0), cls_->GetTypeIndex()); in EmitNativeCode()
252 __ B(GetExitLabel()); in EmitNativeCode()
283 __ Bind(GetEntryLabel()); in EmitNativeCode()
288 __ LoadConst32(calling_convention.GetRegisterAt(0), string_index); in EmitNativeCode()
301 __ B(GetExitLabel()); in EmitNativeCode()
316 __ Bind(GetEntryLabel()); in EmitNativeCode()
344 __ Bind(GetEntryLabel()); in EmitNativeCode()
354 __ B(GetReturnLabel()); in EmitNativeCode()
356 __ B(mips_codegen->GetLabelOf(successor_)); in EmitNativeCode()
389 __ Bind(GetEntryLabel()); in EmitNativeCode()
424 __ B(GetExitLabel()); in EmitNativeCode()
440 __ Bind(GetEntryLabel()); in EmitNativeCode()
480 #undef __
481 #define __ down_cast<MipsAssembler*>(GetAssembler())-> macro
486 __ FinalizeCode(); in Finalize()
491 uint32_t new_position = __ GetAdjustedPosition(old_position); in Finalize()
499 frame_entry_interval->start = __ GetAdjustedPosition(frame_entry_interval->start); in Finalize()
500 frame_entry_interval->end = __ GetAdjustedPosition(frame_entry_interval->end); in Finalize()
502 it.second.start = __ GetAdjustedPosition(it.second.start); in Finalize()
503 it.second.end = __ GetAdjustedPosition(it.second.end); in Finalize()
506 it.code_interval.start = __ GetAdjustedPosition(it.code_interval.start); in Finalize()
507 it.code_interval.end = __ GetAdjustedPosition(it.code_interval.end); in Finalize()
542 __ Move(TMP, r2); in EmitSwap()
543 __ Move(r2, r1); in EmitSwap()
544 __ Move(r1, TMP); in EmitSwap()
549 __ MovS(FTMP, f2); in EmitSwap()
550 __ MovS(f2, f1); in EmitSwap()
551 __ MovS(f1, FTMP); in EmitSwap()
554 __ MovD(FTMP, f2); in EmitSwap()
555 __ MovD(f2, f1); in EmitSwap()
556 __ MovD(f1, FTMP); in EmitSwap()
566 __ Move(TMP, r2); in EmitSwap()
567 __ Mfc1(r2, f1); in EmitSwap()
568 __ Mtc1(TMP, f1); in EmitSwap()
573 __ Move(TMP, r2); in EmitSwap()
574 __ Move(r2, r1); in EmitSwap()
575 __ Move(r1, TMP); in EmitSwap()
578 __ Move(TMP, r2); in EmitSwap()
579 __ Move(r2, r1); in EmitSwap()
580 __ Move(r1, TMP); in EmitSwap()
594 __ Mfc1(TMP, f1); in EmitSwap()
595 __ MoveFromFpuHigh(AT, f1); in EmitSwap()
596 __ Mtc1(r2_l, f1); in EmitSwap()
597 __ MoveToFpuHigh(r2_h, f1); in EmitSwap()
598 __ Move(r2_l, TMP); in EmitSwap()
599 __ Move(r2_h, AT); in EmitSwap()
610 __ Move(TMP, reg); in EmitSwap()
611 __ LoadFromOffset(kLoadWord, reg, SP, offset); in EmitSwap()
612 __ StoreToOffset(kStoreWord, TMP, SP, offset); in EmitSwap()
623 __ Move(TMP, reg_l); in EmitSwap()
624 __ LoadFromOffset(kLoadWord, reg_l, SP, offset_l); in EmitSwap()
625 __ StoreToOffset(kStoreWord, TMP, SP, offset_l); in EmitSwap()
626 __ Move(TMP, reg_h); in EmitSwap()
627 __ LoadFromOffset(kLoadWord, reg_h, SP, offset_h); in EmitSwap()
628 __ StoreToOffset(kStoreWord, TMP, SP, offset_h); in EmitSwap()
635 __ Pop(static_cast<Register>(reg)); in RestoreScratch()
639 __ Push(static_cast<Register>(reg)); in SpillScratch()
650 __ LoadFromOffset(kLoadWord, in Exchange()
654 __ LoadFromOffset(kLoadWord, in Exchange()
658 __ StoreToOffset(kStoreWord, in Exchange()
662 __ StoreToOffset(kStoreWord, TMP, SP, index1 + stack_offset); in Exchange()
673 __ Bind(&frame_entry_label_); in GenerateFrameEntry()
678 __ LoadFromOffset(kLoadWord, in GenerateFrameEntry()
703 __ IncreaseFrameSize(ofs); in GenerateFrameEntry()
709 __ Sw(reg, SP, ofs); in GenerateFrameEntry()
710 __ cfi().RelOffset(DWARFReg(reg), ofs); in GenerateFrameEntry()
721 __ Swc1(reg, SP, ofs); in GenerateFrameEntry()
722 __ Swc1(static_cast<FRegister>(reg + 1), SP, ofs + 4); in GenerateFrameEntry()
724 __ Mfhc1(TMP, reg); in GenerateFrameEntry()
725 __ Swc1(reg, SP, ofs); in GenerateFrameEntry()
726 __ Sw(TMP, SP, ofs + 4); in GenerateFrameEntry()
729 __ Sdc1(reg, SP, ofs); in GenerateFrameEntry()
738 __ IncreaseFrameSize(GetFrameSize() - FrameEntrySpillSize()); in GenerateFrameEntry()
742 __ Sw(kMethodRegisterArgument, SP, kCurrentMethodStackOffset); in GenerateFrameEntry()
746 __ cfi().RememberState(); in GenerateFrameExit()
751 __ DecreaseFrameSize(GetFrameSize() - FrameEntrySpillSize()); in GenerateFrameExit()
768 __ Lwc1(reg, SP, ofs); in GenerateFrameExit()
769 __ Lwc1(static_cast<FRegister>(reg + 1), SP, ofs + 4); in GenerateFrameExit()
771 __ Lwc1(reg, SP, ofs); in GenerateFrameExit()
772 __ Lw(TMP, SP, ofs + 4); in GenerateFrameExit()
773 __ Mthc1(TMP, reg); in GenerateFrameExit()
776 __ Ldc1(reg, SP, ofs); in GenerateFrameExit()
786 __ Lw(reg, SP, ofs); in GenerateFrameExit()
788 __ cfi().Restore(DWARFReg(reg)); in GenerateFrameExit()
793 __ DecreaseFrameSize(ofs); in GenerateFrameExit()
796 __ Jr(RA); in GenerateFrameExit()
797 __ Nop(); in GenerateFrameExit()
799 __ cfi().RestoreState(); in GenerateFrameExit()
800 __ cfi().DefCFAOffset(GetFrameSize()); in GenerateFrameExit()
804 __ Bind(GetLabelOf(block)); in Bind()
830 __ Move(destination.AsRegister<Register>(), source.AsRegister<Register>()); in Move32()
832 __ Mfc1(destination.AsRegister<Register>(), source.AsFpuRegister<FRegister>()); in Move32()
835 __ LoadFromOffset(kLoadWord, destination.AsRegister<Register>(), SP, source.GetStackIndex()); in Move32()
839 __ Mtc1(source.AsRegister<Register>(), destination.AsFpuRegister<FRegister>()); in Move32()
841 __ MovS(destination.AsFpuRegister<FRegister>(), source.AsFpuRegister<FRegister>()); in Move32()
844 __ LoadSFromOffset(destination.AsFpuRegister<FRegister>(), SP, source.GetStackIndex()); in Move32()
849 __ StoreToOffset(kStoreWord, source.AsRegister<Register>(), SP, destination.GetStackIndex()); in Move32()
851 __ StoreSToOffset(source.AsFpuRegister<FRegister>(), SP, destination.GetStackIndex()); in Move32()
854 __ LoadFromOffset(kLoadWord, TMP, SP, source.GetStackIndex()); in Move32()
855 __ StoreToOffset(kStoreWord, TMP, SP, destination.GetStackIndex()); in Move32()
867 __ Move(destination.AsRegisterPairHigh<Register>(), source.AsRegisterPairHigh<Register>()); in Move64()
868 __ Move(destination.AsRegisterPairLow<Register>(), source.AsRegisterPairLow<Register>()); in Move64()
873 __ Mfc1(dst_low, src); in Move64()
874 __ MoveFromFpuHigh(dst_high, src); in Move64()
879 __ LoadFromOffset(kLoadDoubleword, r, SP, off); in Move64()
886 __ Mtc1(src_low, dst); in Move64()
887 __ MoveToFpuHigh(src_high, dst); in Move64()
889 __ MovD(destination.AsFpuRegister<FRegister>(), source.AsFpuRegister<FRegister>()); in Move64()
892 __ LoadDFromOffset(destination.AsFpuRegister<FRegister>(), SP, source.GetStackIndex()); in Move64()
898 __ StoreToOffset(kStoreDoubleword, source.AsRegisterPairLow<Register>(), SP, off); in Move64()
900 __ StoreDToOffset(source.AsFpuRegister<FRegister>(), SP, off); in Move64()
903 __ LoadFromOffset(kLoadWord, TMP, SP, source.GetStackIndex()); in Move64()
904 __ StoreToOffset(kStoreWord, TMP, SP, off); in Move64()
905 __ LoadFromOffset(kLoadWord, TMP, SP, source.GetStackIndex() + 4); in Move64()
906 __ StoreToOffset(kStoreWord, TMP, SP, off + 4); in Move64()
917 __ LoadConst32(dst, value); in MoveConstant()
921 __ StoreConst32ToOffset(value, SP, destination.GetStackIndex(), TMP); in MoveConstant()
929 __ LoadConst64(r_h, r_l, value); in MoveConstant()
933 __ StoreConst64ToOffset(value, SP, destination.GetStackIndex(), TMP); in MoveConstant()
939 __ LoadSConst32(destination.AsFpuRegister<FRegister>(), value, TMP); in MoveConstant()
943 __ StoreConst32ToOffset(value, SP, destination.GetStackIndex(), TMP); in MoveConstant()
951 __ LoadDConst64(fd, value, TMP); in MoveConstant()
955 __ StoreConst64ToOffset(value, SP, destination.GetStackIndex(), TMP); in MoveConstant()
963 __ LoadConst32(dst, value); in MoveConstant()
981 __ Beqz(value, &done); in MarkGCCard()
982 __ LoadFromOffset(kLoadWord, in MarkGCCard()
986 __ Srl(temp, object, gc::accounting::CardTable::kCardShift); in MarkGCCard()
987 __ Addu(temp, card, temp); in MarkGCCard()
988 __ Sb(card, temp, 0); in MarkGCCard()
989 __ Bind(&done); in MarkGCCard()
1037 __ StoreToOffset(kStoreWord, Register(reg_id), SP, stack_index); in SaveCoreRegister()
1042 __ LoadFromOffset(kLoadWord, Register(reg_id), SP, stack_index); in RestoreCoreRegister()
1047 __ StoreDToOffset(FRegister(reg_id), SP, stack_index); in SaveFloatingPointRegister()
1052 __ LoadDFromOffset(FRegister(reg_id), SP, stack_index); in RestoreFloatingPointRegister()
1082 __ LoadFromOffset(kLoadWord, T9, TR, entry_point_offset); in InvokeRuntime()
1083 __ Jalr(T9); in InvokeRuntime()
1088 __ IncreaseFrameSize(kMipsDirectEntrypointRuntimeOffset); // Single instruction in delay slot. in InvokeRuntime()
1089 __ DecreaseFrameSize(kMipsDirectEntrypointRuntimeOffset); in InvokeRuntime()
1091 __ Nop(); // In delay slot. in InvokeRuntime()
1098 __ LoadFromOffset(kLoadWord, TMP, class_reg, mirror::Class::StatusOffset().Int32Value()); in GenerateClassInitializationCheck()
1099 __ LoadConst32(AT, mirror::Class::kStatusInitialized); in GenerateClassInitializationCheck()
1100 __ Blt(TMP, AT, slow_path->GetEntryLabel()); in GenerateClassInitializationCheck()
1102 __ Sync(0); in GenerateClassInitializationCheck()
1103 __ Bind(slow_path->GetExitLabel()); in GenerateClassInitializationCheck()
1107 __ Sync(0); // Only stype 0 is supported. in GenerateMemoryBarrier()
1116 __ LoadFromOffset(kLoadUnsignedHalfword, in GenerateSuspendCheck()
1121 __ Bnez(TMP, slow_path->GetEntryLabel()); in GenerateSuspendCheck()
1122 __ Bind(slow_path->GetReturnLabel()); in GenerateSuspendCheck()
1124 __ Beqz(TMP, codegen_->GetLabelOf(successor)); in GenerateSuspendCheck()
1125 __ B(slow_path->GetEntryLabel()); in GenerateSuspendCheck()
1205 __ Andi(dst, lhs, rhs_imm); in HandleBinaryOp()
1207 __ And(dst, lhs, rhs_reg); in HandleBinaryOp()
1210 __ Ori(dst, lhs, rhs_imm); in HandleBinaryOp()
1212 __ Or(dst, lhs, rhs_reg); in HandleBinaryOp()
1215 __ Xori(dst, lhs, rhs_imm); in HandleBinaryOp()
1217 __ Xor(dst, lhs, rhs_reg); in HandleBinaryOp()
1220 __ Addiu(dst, lhs, rhs_imm); in HandleBinaryOp()
1222 __ Addu(dst, lhs, rhs_reg); in HandleBinaryOp()
1226 __ Addiu(dst, lhs, -rhs_imm); in HandleBinaryOp()
1228 __ Subu(dst, lhs, rhs_reg); in HandleBinaryOp()
1244 __ And(dst_low, lhs_low, rhs_low); in HandleBinaryOp()
1245 __ And(dst_high, lhs_high, rhs_high); in HandleBinaryOp()
1247 __ Or(dst_low, lhs_low, rhs_low); in HandleBinaryOp()
1248 __ Or(dst_high, lhs_high, rhs_high); in HandleBinaryOp()
1250 __ Xor(dst_low, lhs_low, rhs_low); in HandleBinaryOp()
1251 __ Xor(dst_high, lhs_high, rhs_high); in HandleBinaryOp()
1255 __ Slt(TMP, lhs_low, ZERO); in HandleBinaryOp()
1256 __ Addu(dst_low, lhs_low, rhs_low); in HandleBinaryOp()
1258 __ Addu(dst_low, lhs_low, rhs_low); in HandleBinaryOp()
1260 __ Sltu(TMP, dst_low, (dst_low == rhs_low) ? lhs_low : rhs_low); in HandleBinaryOp()
1262 __ Addu(dst_high, lhs_high, rhs_high); in HandleBinaryOp()
1263 __ Addu(dst_high, dst_high, TMP); in HandleBinaryOp()
1266 __ Sltu(TMP, lhs_low, rhs_low); in HandleBinaryOp()
1267 __ Subu(dst_low, lhs_low, rhs_low); in HandleBinaryOp()
1268 __ Subu(dst_high, lhs_high, rhs_high); in HandleBinaryOp()
1269 __ Subu(dst_high, dst_high, TMP); in HandleBinaryOp()
1278 __ Ori(dst_low, lhs_low, low); in HandleBinaryOp()
1281 __ LoadConst32(TMP, low); in HandleBinaryOp()
1282 __ Or(dst_low, lhs_low, TMP); in HandleBinaryOp()
1286 __ Ori(dst_high, lhs_high, high); in HandleBinaryOp()
1290 __ LoadConst32(TMP, high); in HandleBinaryOp()
1292 __ Or(dst_high, lhs_high, TMP); in HandleBinaryOp()
1299 __ Xori(dst_low, lhs_low, low); in HandleBinaryOp()
1302 __ LoadConst32(TMP, low); in HandleBinaryOp()
1303 __ Xor(dst_low, lhs_low, TMP); in HandleBinaryOp()
1307 __ Xori(dst_high, lhs_high, high); in HandleBinaryOp()
1311 __ LoadConst32(TMP, high); in HandleBinaryOp()
1313 __ Xor(dst_high, lhs_high, TMP); in HandleBinaryOp()
1319 __ Andi(dst_low, lhs_low, low); in HandleBinaryOp()
1321 __ LoadConst32(TMP, low); in HandleBinaryOp()
1322 __ And(dst_low, lhs_low, TMP); in HandleBinaryOp()
1324 __ Move(dst_low, lhs_low); in HandleBinaryOp()
1327 __ Andi(dst_high, lhs_high, high); in HandleBinaryOp()
1330 __ LoadConst32(TMP, high); in HandleBinaryOp()
1332 __ And(dst_high, lhs_high, TMP); in HandleBinaryOp()
1334 __ Move(dst_high, lhs_high); in HandleBinaryOp()
1346 __ Addiu(dst_low, lhs_low, low); in HandleBinaryOp()
1349 __ Sltiu(AT, dst_low, low); in HandleBinaryOp()
1352 __ LoadConst32(TMP, low); in HandleBinaryOp()
1353 __ Addu(dst_low, lhs_low, TMP); in HandleBinaryOp()
1354 __ Sltu(AT, dst_low, TMP); in HandleBinaryOp()
1358 __ Addiu(dst_high, lhs_high, high); in HandleBinaryOp()
1362 __ LoadConst32(TMP, high); in HandleBinaryOp()
1364 __ Addu(dst_high, lhs_high, TMP); in HandleBinaryOp()
1367 __ Addu(dst_high, dst_high, AT); in HandleBinaryOp()
1381 __ AddS(dst, lhs, rhs); in HandleBinaryOp()
1383 __ AddD(dst, lhs, rhs); in HandleBinaryOp()
1388 __ SubS(dst, lhs, rhs); in HandleBinaryOp()
1390 __ SubD(dst, lhs, rhs); in HandleBinaryOp()
1446 __ Move(dst, lhs); in HandleShift()
1449 __ Sll(dst, lhs, shift_value); in HandleShift()
1451 __ Sra(dst, lhs, shift_value); in HandleShift()
1453 __ Srl(dst, lhs, shift_value); in HandleShift()
1456 __ Rotr(dst, lhs, shift_value); in HandleShift()
1458 __ Sll(TMP, lhs, (kMipsBitsPerWord - shift_value) & shift_mask); in HandleShift()
1459 __ Srl(dst, lhs, shift_value); in HandleShift()
1460 __ Or(dst, dst, TMP); in HandleShift()
1465 __ Sllv(dst, lhs, rhs_reg); in HandleShift()
1467 __ Srav(dst, lhs, rhs_reg); in HandleShift()
1469 __ Srlv(dst, lhs, rhs_reg); in HandleShift()
1472 __ Rotrv(dst, lhs, rhs_reg); in HandleShift()
1474 __ Subu(TMP, ZERO, rhs_reg); in HandleShift()
1480 __ Sllv(TMP, lhs, TMP); in HandleShift()
1481 __ Srlv(dst, lhs, rhs_reg); in HandleShift()
1482 __ Or(dst, dst, TMP); in HandleShift()
1500 __ Srl(dst_high, lhs_low, kMipsBitsPerWord - shift_value); in HandleShift()
1501 __ Ins(dst_high, lhs_high, shift_value, kMipsBitsPerWord - shift_value); in HandleShift()
1502 __ Sll(dst_low, lhs_low, shift_value); in HandleShift()
1504 __ Srl(dst_low, lhs_low, shift_value); in HandleShift()
1505 __ Ins(dst_low, lhs_high, kMipsBitsPerWord - shift_value, shift_value); in HandleShift()
1506 __ Sra(dst_high, lhs_high, shift_value); in HandleShift()
1508 __ Srl(dst_low, lhs_low, shift_value); in HandleShift()
1509 __ Ins(dst_low, lhs_high, kMipsBitsPerWord - shift_value, shift_value); in HandleShift()
1510 __ Srl(dst_high, lhs_high, shift_value); in HandleShift()
1512 __ Srl(dst_low, lhs_low, shift_value); in HandleShift()
1513 __ Ins(dst_low, lhs_high, kMipsBitsPerWord - shift_value, shift_value); in HandleShift()
1514 __ Srl(dst_high, lhs_high, shift_value); in HandleShift()
1515 __ Ins(dst_high, lhs_low, kMipsBitsPerWord - shift_value, shift_value); in HandleShift()
1519 __ Sll(dst_low, lhs_low, shift_value); in HandleShift()
1520 __ Srl(TMP, lhs_low, kMipsBitsPerWord - shift_value); in HandleShift()
1521 __ Sll(dst_high, lhs_high, shift_value); in HandleShift()
1522 __ Or(dst_high, dst_high, TMP); in HandleShift()
1524 __ Sra(dst_high, lhs_high, shift_value); in HandleShift()
1525 __ Sll(TMP, lhs_high, kMipsBitsPerWord - shift_value); in HandleShift()
1526 __ Srl(dst_low, lhs_low, shift_value); in HandleShift()
1527 __ Or(dst_low, dst_low, TMP); in HandleShift()
1529 __ Srl(dst_high, lhs_high, shift_value); in HandleShift()
1530 __ Sll(TMP, lhs_high, kMipsBitsPerWord - shift_value); in HandleShift()
1531 __ Srl(dst_low, lhs_low, shift_value); in HandleShift()
1532 __ Or(dst_low, dst_low, TMP); in HandleShift()
1534 __ Srl(TMP, lhs_low, shift_value); in HandleShift()
1535 __ Sll(dst_low, lhs_high, kMipsBitsPerWord - shift_value); in HandleShift()
1536 __ Or(dst_low, dst_low, TMP); in HandleShift()
1537 __ Srl(TMP, lhs_high, shift_value); in HandleShift()
1538 __ Sll(dst_high, lhs_low, kMipsBitsPerWord - shift_value); in HandleShift()
1539 __ Or(dst_high, dst_high, TMP); in HandleShift()
1545 __ Sll(dst_high, lhs_low, shift_value_high); in HandleShift()
1546 __ Move(dst_low, ZERO); in HandleShift()
1548 __ Sra(dst_low, lhs_high, shift_value_high); in HandleShift()
1549 __ Sra(dst_high, dst_low, kMipsBitsPerWord - 1); in HandleShift()
1551 __ Srl(dst_low, lhs_high, shift_value_high); in HandleShift()
1552 __ Move(dst_high, ZERO); in HandleShift()
1556 __ Move(dst_low, lhs_high); in HandleShift()
1557 __ Move(dst_high, lhs_low); in HandleShift()
1560 __ Srl(dst_low, lhs_high, shift_value_high); in HandleShift()
1561 __ Ins(dst_low, lhs_low, kMipsBitsPerWord - shift_value_high, shift_value_high); in HandleShift()
1562 __ Srl(dst_high, lhs_low, shift_value_high); in HandleShift()
1563 __ Ins(dst_high, lhs_high, kMipsBitsPerWord - shift_value_high, shift_value_high); in HandleShift()
1565 __ Sll(TMP, lhs_low, kMipsBitsPerWord - shift_value_high); in HandleShift()
1566 __ Srl(dst_low, lhs_high, shift_value_high); in HandleShift()
1567 __ Or(dst_low, dst_low, TMP); in HandleShift()
1568 __ Sll(TMP, lhs_high, kMipsBitsPerWord - shift_value_high); in HandleShift()
1569 __ Srl(dst_high, lhs_low, shift_value_high); in HandleShift()
1570 __ Or(dst_high, dst_high, TMP); in HandleShift()
1578 __ Sllv(dst_low, lhs_low, rhs_reg); in HandleShift()
1579 __ Nor(AT, ZERO, rhs_reg); in HandleShift()
1580 __ Srl(TMP, lhs_low, 1); in HandleShift()
1581 __ Srlv(TMP, TMP, AT); in HandleShift()
1582 __ Sllv(dst_high, lhs_high, rhs_reg); in HandleShift()
1583 __ Or(dst_high, dst_high, TMP); in HandleShift()
1584 __ Andi(TMP, rhs_reg, kMipsBitsPerWord); in HandleShift()
1585 __ Beqz(TMP, &done); in HandleShift()
1586 __ Move(dst_high, dst_low); in HandleShift()
1587 __ Move(dst_low, ZERO); in HandleShift()
1589 __ Srav(dst_high, lhs_high, rhs_reg); in HandleShift()
1590 __ Nor(AT, ZERO, rhs_reg); in HandleShift()
1591 __ Sll(TMP, lhs_high, 1); in HandleShift()
1592 __ Sllv(TMP, TMP, AT); in HandleShift()
1593 __ Srlv(dst_low, lhs_low, rhs_reg); in HandleShift()
1594 __ Or(dst_low, dst_low, TMP); in HandleShift()
1595 __ Andi(TMP, rhs_reg, kMipsBitsPerWord); in HandleShift()
1596 __ Beqz(TMP, &done); in HandleShift()
1597 __ Move(dst_low, dst_high); in HandleShift()
1598 __ Sra(dst_high, dst_high, 31); in HandleShift()
1600 __ Srlv(dst_high, lhs_high, rhs_reg); in HandleShift()
1601 __ Nor(AT, ZERO, rhs_reg); in HandleShift()
1602 __ Sll(TMP, lhs_high, 1); in HandleShift()
1603 __ Sllv(TMP, TMP, AT); in HandleShift()
1604 __ Srlv(dst_low, lhs_low, rhs_reg); in HandleShift()
1605 __ Or(dst_low, dst_low, TMP); in HandleShift()
1606 __ Andi(TMP, rhs_reg, kMipsBitsPerWord); in HandleShift()
1607 __ Beqz(TMP, &done); in HandleShift()
1608 __ Move(dst_low, dst_high); in HandleShift()
1609 __ Move(dst_high, ZERO); in HandleShift()
1611 __ Nor(AT, ZERO, rhs_reg); in HandleShift()
1612 __ Srlv(TMP, lhs_low, rhs_reg); in HandleShift()
1613 __ Sll(dst_low, lhs_high, 1); in HandleShift()
1614 __ Sllv(dst_low, dst_low, AT); in HandleShift()
1615 __ Or(dst_low, dst_low, TMP); in HandleShift()
1616 __ Srlv(TMP, lhs_high, rhs_reg); in HandleShift()
1617 __ Sll(dst_high, lhs_low, 1); in HandleShift()
1618 __ Sllv(dst_high, dst_high, AT); in HandleShift()
1619 __ Or(dst_high, dst_high, TMP); in HandleShift()
1620 __ Andi(TMP, rhs_reg, kMipsBitsPerWord); in HandleShift()
1621 __ Beqz(TMP, &done); in HandleShift()
1622 __ Move(TMP, dst_high); in HandleShift()
1623 __ Move(dst_high, dst_low); in HandleShift()
1624 __ Move(dst_low, TMP); in HandleShift()
1626 __ Bind(&done); in HandleShift()
1677 __ LoadFromOffset(kLoadUnsignedByte, out, obj, offset); in VisitArrayGet()
1679 __ Addu(TMP, obj, index.AsRegister<Register>()); in VisitArrayGet()
1680 __ LoadFromOffset(kLoadUnsignedByte, out, TMP, data_offset); in VisitArrayGet()
1691 __ LoadFromOffset(kLoadSignedByte, out, obj, offset); in VisitArrayGet()
1693 __ Addu(TMP, obj, index.AsRegister<Register>()); in VisitArrayGet()
1694 __ LoadFromOffset(kLoadSignedByte, out, TMP, data_offset); in VisitArrayGet()
1705 __ LoadFromOffset(kLoadSignedHalfword, out, obj, offset); in VisitArrayGet()
1707 __ Sll(TMP, index.AsRegister<Register>(), TIMES_2); in VisitArrayGet()
1708 __ Addu(TMP, obj, TMP); in VisitArrayGet()
1709 __ LoadFromOffset(kLoadSignedHalfword, out, TMP, data_offset); in VisitArrayGet()
1720 __ LoadFromOffset(kLoadUnsignedHalfword, out, obj, offset); in VisitArrayGet()
1722 __ Sll(TMP, index.AsRegister<Register>(), TIMES_2); in VisitArrayGet()
1723 __ Addu(TMP, obj, TMP); in VisitArrayGet()
1724 __ LoadFromOffset(kLoadUnsignedHalfword, out, TMP, data_offset); in VisitArrayGet()
1737 __ LoadFromOffset(kLoadWord, out, obj, offset); in VisitArrayGet()
1739 __ Sll(TMP, index.AsRegister<Register>(), TIMES_4); in VisitArrayGet()
1740 __ Addu(TMP, obj, TMP); in VisitArrayGet()
1741 __ LoadFromOffset(kLoadWord, out, TMP, data_offset); in VisitArrayGet()
1752 __ LoadFromOffset(kLoadDoubleword, out, obj, offset); in VisitArrayGet()
1754 __ Sll(TMP, index.AsRegister<Register>(), TIMES_8); in VisitArrayGet()
1755 __ Addu(TMP, obj, TMP); in VisitArrayGet()
1756 __ LoadFromOffset(kLoadDoubleword, out, TMP, data_offset); in VisitArrayGet()
1767 __ LoadSFromOffset(out, obj, offset); in VisitArrayGet()
1769 __ Sll(TMP, index.AsRegister<Register>(), TIMES_4); in VisitArrayGet()
1770 __ Addu(TMP, obj, TMP); in VisitArrayGet()
1771 __ LoadSFromOffset(out, TMP, data_offset); in VisitArrayGet()
1782 __ LoadDFromOffset(out, obj, offset); in VisitArrayGet()
1784 __ Sll(TMP, index.AsRegister<Register>(), TIMES_8); in VisitArrayGet()
1785 __ Addu(TMP, obj, TMP); in VisitArrayGet()
1786 __ LoadDFromOffset(out, TMP, data_offset); in VisitArrayGet()
1809 __ LoadFromOffset(kLoadWord, out, obj, offset); in VisitArrayLength()
1851 __ StoreToOffset(kStoreByte, value, obj, offset); in VisitArraySet()
1853 __ Addu(TMP, obj, index.AsRegister<Register>()); in VisitArraySet()
1854 __ StoreToOffset(kStoreByte, value, TMP, data_offset); in VisitArraySet()
1866 __ StoreToOffset(kStoreHalfword, value, obj, offset); in VisitArraySet()
1868 __ Sll(TMP, index.AsRegister<Register>(), TIMES_2); in VisitArraySet()
1869 __ Addu(TMP, obj, TMP); in VisitArraySet()
1870 __ StoreToOffset(kStoreHalfword, value, TMP, data_offset); in VisitArraySet()
1883 __ StoreToOffset(kStoreWord, value, obj, offset); in VisitArraySet()
1886 __ Sll(TMP, index.AsRegister<Register>(), TIMES_4); in VisitArraySet()
1887 __ Addu(TMP, obj, TMP); in VisitArraySet()
1888 __ StoreToOffset(kStoreWord, value, TMP, data_offset); in VisitArraySet()
1913 __ StoreToOffset(kStoreDoubleword, value, obj, offset); in VisitArraySet()
1915 __ Sll(TMP, index.AsRegister<Register>(), TIMES_8); in VisitArraySet()
1916 __ Addu(TMP, obj, TMP); in VisitArraySet()
1917 __ StoreToOffset(kStoreDoubleword, value, TMP, data_offset); in VisitArraySet()
1929 __ StoreSToOffset(value, obj, offset); in VisitArraySet()
1931 __ Sll(TMP, index.AsRegister<Register>(), TIMES_4); in VisitArraySet()
1932 __ Addu(TMP, obj, TMP); in VisitArraySet()
1933 __ StoreSToOffset(value, TMP, data_offset); in VisitArraySet()
1945 __ StoreDToOffset(value, obj, offset); in VisitArraySet()
1947 __ Sll(TMP, index.AsRegister<Register>(), TIMES_8); in VisitArraySet()
1948 __ Addu(TMP, obj, TMP); in VisitArraySet()
1949 __ StoreDToOffset(value, TMP, data_offset); in VisitArraySet()
1989 __ Bgeu(index, length, slow_path->GetEntryLabel()); in VisitBoundsCheck()
2012 __ Beqz(obj, slow_path->GetExitLabel()); in VisitCheckCast()
2014 __ LoadFromOffset(kLoadWord, obj_cls, obj, mirror::Object::ClassOffset().Int32Value()); in VisitCheckCast()
2015 __ Bne(obj_cls, cls, slow_path->GetEntryLabel()); in VisitCheckCast()
2016 __ Bind(slow_path->GetExitLabel()); in VisitCheckCast()
2088 __ Slt(TMP, lhs, rhs); in VisitCompare()
2089 __ Slt(res, rhs, lhs); in VisitCompare()
2090 __ Subu(res, res, TMP); in VisitCompare()
2100 __ Slt(TMP, lhs_high, rhs_high); in VisitCompare()
2101 __ Slt(AT, rhs_high, lhs_high); // Inverted: is actually gt. in VisitCompare()
2102 __ Subu(res, AT, TMP); // Result -1:1:0 for [ <, >, == ]. in VisitCompare()
2103 __ Bnez(res, &done); // If we compared ==, check if lower bits are also equal. in VisitCompare()
2104 __ Sltu(TMP, lhs_low, rhs_low); in VisitCompare()
2105 __ Sltu(AT, rhs_low, lhs_low); // Inverted: is actually gt. in VisitCompare()
2106 __ Subu(res, AT, TMP); // Result -1:1:0 for [ <, >, == ]. in VisitCompare()
2107 __ Bind(&done); in VisitCompare()
2117 __ CmpEqS(FTMP, lhs, rhs); in VisitCompare()
2118 __ LoadConst32(res, 0); in VisitCompare()
2119 __ Bc1nez(FTMP, &done); in VisitCompare()
2121 __ CmpLtS(FTMP, lhs, rhs); in VisitCompare()
2122 __ LoadConst32(res, -1); in VisitCompare()
2123 __ Bc1nez(FTMP, &done); in VisitCompare()
2124 __ LoadConst32(res, 1); in VisitCompare()
2126 __ CmpLtS(FTMP, rhs, lhs); in VisitCompare()
2127 __ LoadConst32(res, 1); in VisitCompare()
2128 __ Bc1nez(FTMP, &done); in VisitCompare()
2129 __ LoadConst32(res, -1); in VisitCompare()
2133 __ ColtS(0, lhs, rhs); in VisitCompare()
2134 __ LoadConst32(res, -1); in VisitCompare()
2135 __ Bc1t(0, &done); in VisitCompare()
2136 __ CeqS(0, lhs, rhs); in VisitCompare()
2137 __ LoadConst32(res, 1); in VisitCompare()
2138 __ Movt(res, ZERO, 0); in VisitCompare()
2140 __ ColtS(0, rhs, lhs); in VisitCompare()
2141 __ LoadConst32(res, 1); in VisitCompare()
2142 __ Bc1t(0, &done); in VisitCompare()
2143 __ CeqS(0, lhs, rhs); in VisitCompare()
2144 __ LoadConst32(res, -1); in VisitCompare()
2145 __ Movt(res, ZERO, 0); in VisitCompare()
2148 __ Bind(&done); in VisitCompare()
2157 __ CmpEqD(FTMP, lhs, rhs); in VisitCompare()
2158 __ LoadConst32(res, 0); in VisitCompare()
2159 __ Bc1nez(FTMP, &done); in VisitCompare()
2161 __ CmpLtD(FTMP, lhs, rhs); in VisitCompare()
2162 __ LoadConst32(res, -1); in VisitCompare()
2163 __ Bc1nez(FTMP, &done); in VisitCompare()
2164 __ LoadConst32(res, 1); in VisitCompare()
2166 __ CmpLtD(FTMP, rhs, lhs); in VisitCompare()
2167 __ LoadConst32(res, 1); in VisitCompare()
2168 __ Bc1nez(FTMP, &done); in VisitCompare()
2169 __ LoadConst32(res, -1); in VisitCompare()
2173 __ ColtD(0, lhs, rhs); in VisitCompare()
2174 __ LoadConst32(res, -1); in VisitCompare()
2175 __ Bc1t(0, &done); in VisitCompare()
2176 __ CeqD(0, lhs, rhs); in VisitCompare()
2177 __ LoadConst32(res, 1); in VisitCompare()
2178 __ Movt(res, ZERO, 0); in VisitCompare()
2180 __ ColtD(0, rhs, lhs); in VisitCompare()
2181 __ LoadConst32(res, 1); in VisitCompare()
2182 __ Bc1t(0, &done); in VisitCompare()
2183 __ CeqD(0, lhs, rhs); in VisitCompare()
2184 __ LoadConst32(res, -1); in VisitCompare()
2185 __ Movt(res, ZERO, 0); in VisitCompare()
2188 __ Bind(&done); in VisitCompare()
2253 __ LoadConst32(dst, 0); in HandleCondition()
2254 __ B(&done); in HandleCondition()
2257 __ Bind(&true_label); in HandleCondition()
2258 __ LoadConst32(dst, 1); in HandleCondition()
2259 __ Bind(&done); in HandleCondition()
2276 __ Move(out, ZERO); in DivRemOneOrMinusOne()
2279 __ Subu(out, ZERO, dividend); in DivRemOneOrMinusOne()
2281 __ Move(out, dividend); in DivRemOneOrMinusOne()
2303 __ Srl(TMP, dividend, 31); in DivRemByPowerOfTwo()
2305 __ Sra(TMP, dividend, 31); in DivRemByPowerOfTwo()
2306 __ Srl(TMP, TMP, 32 - ctz_imm); in DivRemByPowerOfTwo()
2308 __ Addu(out, dividend, TMP); in DivRemByPowerOfTwo()
2309 __ Sra(out, out, ctz_imm); in DivRemByPowerOfTwo()
2311 __ Subu(out, ZERO, out); in DivRemByPowerOfTwo()
2316 __ Sra(TMP, dividend, 31); in DivRemByPowerOfTwo()
2317 __ Subu(out, dividend, TMP); in DivRemByPowerOfTwo()
2318 __ Andi(out, out, 1); in DivRemByPowerOfTwo()
2319 __ Addu(out, out, TMP); in DivRemByPowerOfTwo()
2321 __ Sra(TMP, dividend, 31); in DivRemByPowerOfTwo()
2322 __ Srl(TMP, TMP, 32 - ctz_imm); in DivRemByPowerOfTwo()
2323 __ Addu(out, dividend, TMP); in DivRemByPowerOfTwo()
2325 __ Andi(out, out, abs_imm - 1); in DivRemByPowerOfTwo()
2327 __ Sll(out, out, 32 - ctz_imm); in DivRemByPowerOfTwo()
2328 __ Srl(out, out, 32 - ctz_imm); in DivRemByPowerOfTwo()
2330 __ Subu(out, out, TMP); in DivRemByPowerOfTwo()
2353 __ LoadConst32(TMP, magic); in GenerateDivRemWithAnyConstant()
2355 __ MuhR6(TMP, dividend, TMP); in GenerateDivRemWithAnyConstant()
2357 __ MultR2(dividend, TMP); in GenerateDivRemWithAnyConstant()
2358 __ Mfhi(TMP); in GenerateDivRemWithAnyConstant()
2361 __ Addu(TMP, TMP, dividend); in GenerateDivRemWithAnyConstant()
2363 __ Subu(TMP, TMP, dividend); in GenerateDivRemWithAnyConstant()
2367 __ Sra(TMP, TMP, shift); in GenerateDivRemWithAnyConstant()
2371 __ Sra(out, TMP, 31); in GenerateDivRemWithAnyConstant()
2372 __ Subu(out, TMP, out); in GenerateDivRemWithAnyConstant()
2374 __ Sra(AT, TMP, 31); in GenerateDivRemWithAnyConstant()
2375 __ Subu(AT, TMP, AT); in GenerateDivRemWithAnyConstant()
2376 __ LoadConst32(TMP, imm); in GenerateDivRemWithAnyConstant()
2378 __ MulR6(TMP, AT, TMP); in GenerateDivRemWithAnyConstant()
2380 __ MulR2(TMP, AT, TMP); in GenerateDivRemWithAnyConstant()
2382 __ Subu(out, dividend, TMP); in GenerateDivRemWithAnyConstant()
2412 __ DivR6(out, dividend, divisor); in GenerateDivRemIntegral()
2414 __ DivR2(out, dividend, divisor); in GenerateDivRemIntegral()
2418 __ ModR6(out, dividend, divisor); in GenerateDivRemIntegral()
2420 __ ModR2(out, dividend, divisor); in GenerateDivRemIntegral()
2486 __ DivS(dst, lhs, rhs); in VisitDiv()
2488 __ DivD(dst, lhs, rhs); in VisitDiv()
2522 __ B(slow_path->GetEntryLabel()); in VisitDivZeroCheck()
2529 __ Beqz(value.AsRegister<Register>(), slow_path->GetEntryLabel()); in VisitDivZeroCheck()
2536 __ B(slow_path->GetEntryLabel()); in VisitDivZeroCheck()
2543 __ Or(TMP, value.AsRegisterPairHigh<Register>(), value.AsRegisterPairLow<Register>()); in VisitDivZeroCheck()
2544 __ Beqz(TMP, slow_path->GetEntryLabel()); in VisitDivZeroCheck()
2599 __ B(codegen_->GetLabelOf(successor)); in HandleGoto()
2636 __ Xori(dst, lhs, rhs_imm); in GenerateIntCompare()
2640 __ LoadConst32(rhs_reg, rhs_imm); in GenerateIntCompare()
2642 __ Xor(dst, lhs, rhs_reg); in GenerateIntCompare()
2645 __ Sltiu(dst, dst, 1); in GenerateIntCompare()
2647 __ Sltu(dst, ZERO, dst); in GenerateIntCompare()
2654 __ Slti(dst, lhs, rhs_imm); in GenerateIntCompare()
2658 __ LoadConst32(rhs_reg, rhs_imm); in GenerateIntCompare()
2660 __ Slt(dst, lhs, rhs_reg); in GenerateIntCompare()
2665 __ Xori(dst, dst, 1); in GenerateIntCompare()
2673 __ Slti(dst, lhs, rhs_imm + 1); in GenerateIntCompare()
2677 __ Xori(dst, dst, 1); in GenerateIntCompare()
2682 __ LoadConst32(rhs_reg, rhs_imm); in GenerateIntCompare()
2684 __ Slt(dst, rhs_reg, lhs); in GenerateIntCompare()
2688 __ Xori(dst, dst, 1); in GenerateIntCompare()
2700 __ Sltiu(dst, lhs, rhs_imm); in GenerateIntCompare()
2704 __ LoadConst32(rhs_reg, rhs_imm); in GenerateIntCompare()
2706 __ Sltu(dst, lhs, rhs_reg); in GenerateIntCompare()
2711 __ Xori(dst, dst, 1); in GenerateIntCompare()
2725 __ Sltiu(dst, lhs, rhs_imm + 1); in GenerateIntCompare()
2729 __ Xori(dst, dst, 1); in GenerateIntCompare()
2734 __ LoadConst32(rhs_reg, rhs_imm); in GenerateIntCompare()
2736 __ Sltu(dst, rhs_reg, lhs); in GenerateIntCompare()
2740 __ Xori(dst, dst, 1); in GenerateIntCompare()
2765 __ Beqz(lhs, label); in GenerateIntCompareAndBranch()
2769 __ Bnez(lhs, label); in GenerateIntCompareAndBranch()
2772 __ Bltz(lhs, label); in GenerateIntCompareAndBranch()
2775 __ Bgez(lhs, label); in GenerateIntCompareAndBranch()
2778 __ Blez(lhs, label); in GenerateIntCompareAndBranch()
2781 __ Bgtz(lhs, label); in GenerateIntCompareAndBranch()
2786 __ B(label); in GenerateIntCompareAndBranch()
2793 __ LoadConst32(rhs_reg, rhs_imm); in GenerateIntCompareAndBranch()
2797 __ Beq(lhs, rhs_reg, label); in GenerateIntCompareAndBranch()
2800 __ Bne(lhs, rhs_reg, label); in GenerateIntCompareAndBranch()
2803 __ Blt(lhs, rhs_reg, label); in GenerateIntCompareAndBranch()
2806 __ Bge(lhs, rhs_reg, label); in GenerateIntCompareAndBranch()
2809 __ Bge(rhs_reg, lhs, label); in GenerateIntCompareAndBranch()
2812 __ Blt(rhs_reg, lhs, label); in GenerateIntCompareAndBranch()
2815 __ Bltu(lhs, rhs_reg, label); in GenerateIntCompareAndBranch()
2818 __ Bgeu(lhs, rhs_reg, label); in GenerateIntCompareAndBranch()
2821 __ Bgeu(rhs_reg, lhs, label); in GenerateIntCompareAndBranch()
2824 __ Bltu(rhs_reg, lhs, label); in GenerateIntCompareAndBranch()
2855 __ Or(TMP, lhs_high, lhs_low); in GenerateLongCompareAndBranch()
2856 __ Beqz(TMP, label); in GenerateLongCompareAndBranch()
2860 __ Or(TMP, lhs_high, lhs_low); in GenerateLongCompareAndBranch()
2861 __ Bnez(TMP, label); in GenerateLongCompareAndBranch()
2864 __ Bltz(lhs_high, label); in GenerateLongCompareAndBranch()
2867 __ Bgez(lhs_high, label); in GenerateLongCompareAndBranch()
2870 __ Or(TMP, lhs_high, lhs_low); in GenerateLongCompareAndBranch()
2871 __ Sra(AT, lhs_high, 31); in GenerateLongCompareAndBranch()
2872 __ Bgeu(AT, TMP, label); in GenerateLongCompareAndBranch()
2875 __ Or(TMP, lhs_high, lhs_low); in GenerateLongCompareAndBranch()
2876 __ Sra(AT, lhs_high, 31); in GenerateLongCompareAndBranch()
2877 __ Bltu(AT, TMP, label); in GenerateLongCompareAndBranch()
2882 __ B(label); in GenerateLongCompareAndBranch()
2889 __ LoadConst32(TMP, imm_high); in GenerateLongCompareAndBranch()
2890 __ Xor(TMP, TMP, lhs_high); in GenerateLongCompareAndBranch()
2891 __ LoadConst32(AT, imm_low); in GenerateLongCompareAndBranch()
2892 __ Xor(AT, AT, lhs_low); in GenerateLongCompareAndBranch()
2893 __ Or(TMP, TMP, AT); in GenerateLongCompareAndBranch()
2894 __ Beqz(TMP, label); in GenerateLongCompareAndBranch()
2897 __ LoadConst32(TMP, imm_high); in GenerateLongCompareAndBranch()
2898 __ Xor(TMP, TMP, lhs_high); in GenerateLongCompareAndBranch()
2899 __ LoadConst32(AT, imm_low); in GenerateLongCompareAndBranch()
2900 __ Xor(AT, AT, lhs_low); in GenerateLongCompareAndBranch()
2901 __ Or(TMP, TMP, AT); in GenerateLongCompareAndBranch()
2902 __ Bnez(TMP, label); in GenerateLongCompareAndBranch()
2905 __ LoadConst32(TMP, imm_high); in GenerateLongCompareAndBranch()
2906 __ Blt(lhs_high, TMP, label); in GenerateLongCompareAndBranch()
2907 __ Slt(TMP, TMP, lhs_high); in GenerateLongCompareAndBranch()
2908 __ LoadConst32(AT, imm_low); in GenerateLongCompareAndBranch()
2909 __ Sltu(AT, lhs_low, AT); in GenerateLongCompareAndBranch()
2910 __ Blt(TMP, AT, label); in GenerateLongCompareAndBranch()
2913 __ LoadConst32(TMP, imm_high); in GenerateLongCompareAndBranch()
2914 __ Blt(TMP, lhs_high, label); in GenerateLongCompareAndBranch()
2915 __ Slt(TMP, lhs_high, TMP); in GenerateLongCompareAndBranch()
2916 __ LoadConst32(AT, imm_low); in GenerateLongCompareAndBranch()
2917 __ Sltu(AT, lhs_low, AT); in GenerateLongCompareAndBranch()
2918 __ Or(TMP, TMP, AT); in GenerateLongCompareAndBranch()
2919 __ Beqz(TMP, label); in GenerateLongCompareAndBranch()
2922 __ LoadConst32(TMP, imm_high); in GenerateLongCompareAndBranch()
2923 __ Blt(lhs_high, TMP, label); in GenerateLongCompareAndBranch()
2924 __ Slt(TMP, TMP, lhs_high); in GenerateLongCompareAndBranch()
2925 __ LoadConst32(AT, imm_low); in GenerateLongCompareAndBranch()
2926 __ Sltu(AT, AT, lhs_low); in GenerateLongCompareAndBranch()
2927 __ Or(TMP, TMP, AT); in GenerateLongCompareAndBranch()
2928 __ Beqz(TMP, label); in GenerateLongCompareAndBranch()
2931 __ LoadConst32(TMP, imm_high); in GenerateLongCompareAndBranch()
2932 __ Blt(TMP, lhs_high, label); in GenerateLongCompareAndBranch()
2933 __ Slt(TMP, lhs_high, TMP); in GenerateLongCompareAndBranch()
2934 __ LoadConst32(AT, imm_low); in GenerateLongCompareAndBranch()
2935 __ Sltu(AT, AT, lhs_low); in GenerateLongCompareAndBranch()
2936 __ Blt(TMP, AT, label); in GenerateLongCompareAndBranch()
2939 __ LoadConst32(TMP, imm_high); in GenerateLongCompareAndBranch()
2940 __ Bltu(lhs_high, TMP, label); in GenerateLongCompareAndBranch()
2941 __ Sltu(TMP, TMP, lhs_high); in GenerateLongCompareAndBranch()
2942 __ LoadConst32(AT, imm_low); in GenerateLongCompareAndBranch()
2943 __ Sltu(AT, lhs_low, AT); in GenerateLongCompareAndBranch()
2944 __ Blt(TMP, AT, label); in GenerateLongCompareAndBranch()
2947 __ LoadConst32(TMP, imm_high); in GenerateLongCompareAndBranch()
2948 __ Bltu(TMP, lhs_high, label); in GenerateLongCompareAndBranch()
2949 __ Sltu(TMP, lhs_high, TMP); in GenerateLongCompareAndBranch()
2950 __ LoadConst32(AT, imm_low); in GenerateLongCompareAndBranch()
2951 __ Sltu(AT, lhs_low, AT); in GenerateLongCompareAndBranch()
2952 __ Or(TMP, TMP, AT); in GenerateLongCompareAndBranch()
2953 __ Beqz(TMP, label); in GenerateLongCompareAndBranch()
2956 __ LoadConst32(TMP, imm_high); in GenerateLongCompareAndBranch()
2957 __ Bltu(lhs_high, TMP, label); in GenerateLongCompareAndBranch()
2958 __ Sltu(TMP, TMP, lhs_high); in GenerateLongCompareAndBranch()
2959 __ LoadConst32(AT, imm_low); in GenerateLongCompareAndBranch()
2960 __ Sltu(AT, AT, lhs_low); in GenerateLongCompareAndBranch()
2961 __ Or(TMP, TMP, AT); in GenerateLongCompareAndBranch()
2962 __ Beqz(TMP, label); in GenerateLongCompareAndBranch()
2965 __ LoadConst32(TMP, imm_high); in GenerateLongCompareAndBranch()
2966 __ Bltu(TMP, lhs_high, label); in GenerateLongCompareAndBranch()
2967 __ Sltu(TMP, lhs_high, TMP); in GenerateLongCompareAndBranch()
2968 __ LoadConst32(AT, imm_low); in GenerateLongCompareAndBranch()
2969 __ Sltu(AT, AT, lhs_low); in GenerateLongCompareAndBranch()
2970 __ Blt(TMP, AT, label); in GenerateLongCompareAndBranch()
2976 __ Xor(TMP, lhs_high, rhs_high); in GenerateLongCompareAndBranch()
2977 __ Xor(AT, lhs_low, rhs_low); in GenerateLongCompareAndBranch()
2978 __ Or(TMP, TMP, AT); in GenerateLongCompareAndBranch()
2979 __ Beqz(TMP, label); in GenerateLongCompareAndBranch()
2982 __ Xor(TMP, lhs_high, rhs_high); in GenerateLongCompareAndBranch()
2983 __ Xor(AT, lhs_low, rhs_low); in GenerateLongCompareAndBranch()
2984 __ Or(TMP, TMP, AT); in GenerateLongCompareAndBranch()
2985 __ Bnez(TMP, label); in GenerateLongCompareAndBranch()
2988 __ Blt(lhs_high, rhs_high, label); in GenerateLongCompareAndBranch()
2989 __ Slt(TMP, rhs_high, lhs_high); in GenerateLongCompareAndBranch()
2990 __ Sltu(AT, lhs_low, rhs_low); in GenerateLongCompareAndBranch()
2991 __ Blt(TMP, AT, label); in GenerateLongCompareAndBranch()
2994 __ Blt(rhs_high, lhs_high, label); in GenerateLongCompareAndBranch()
2995 __ Slt(TMP, lhs_high, rhs_high); in GenerateLongCompareAndBranch()
2996 __ Sltu(AT, lhs_low, rhs_low); in GenerateLongCompareAndBranch()
2997 __ Or(TMP, TMP, AT); in GenerateLongCompareAndBranch()
2998 __ Beqz(TMP, label); in GenerateLongCompareAndBranch()
3001 __ Blt(lhs_high, rhs_high, label); in GenerateLongCompareAndBranch()
3002 __ Slt(TMP, rhs_high, lhs_high); in GenerateLongCompareAndBranch()
3003 __ Sltu(AT, rhs_low, lhs_low); in GenerateLongCompareAndBranch()
3004 __ Or(TMP, TMP, AT); in GenerateLongCompareAndBranch()
3005 __ Beqz(TMP, label); in GenerateLongCompareAndBranch()
3008 __ Blt(rhs_high, lhs_high, label); in GenerateLongCompareAndBranch()
3009 __ Slt(TMP, lhs_high, rhs_high); in GenerateLongCompareAndBranch()
3010 __ Sltu(AT, rhs_low, lhs_low); in GenerateLongCompareAndBranch()
3011 __ Blt(TMP, AT, label); in GenerateLongCompareAndBranch()
3014 __ Bltu(lhs_high, rhs_high, label); in GenerateLongCompareAndBranch()
3015 __ Sltu(TMP, rhs_high, lhs_high); in GenerateLongCompareAndBranch()
3016 __ Sltu(AT, lhs_low, rhs_low); in GenerateLongCompareAndBranch()
3017 __ Blt(TMP, AT, label); in GenerateLongCompareAndBranch()
3020 __ Bltu(rhs_high, lhs_high, label); in GenerateLongCompareAndBranch()
3021 __ Sltu(TMP, lhs_high, rhs_high); in GenerateLongCompareAndBranch()
3022 __ Sltu(AT, lhs_low, rhs_low); in GenerateLongCompareAndBranch()
3023 __ Or(TMP, TMP, AT); in GenerateLongCompareAndBranch()
3024 __ Beqz(TMP, label); in GenerateLongCompareAndBranch()
3027 __ Bltu(lhs_high, rhs_high, label); in GenerateLongCompareAndBranch()
3028 __ Sltu(TMP, rhs_high, lhs_high); in GenerateLongCompareAndBranch()
3029 __ Sltu(AT, rhs_low, lhs_low); in GenerateLongCompareAndBranch()
3030 __ Or(TMP, TMP, AT); in GenerateLongCompareAndBranch()
3031 __ Beqz(TMP, label); in GenerateLongCompareAndBranch()
3034 __ Bltu(rhs_high, lhs_high, label); in GenerateLongCompareAndBranch()
3035 __ Sltu(TMP, lhs_high, rhs_high); in GenerateLongCompareAndBranch()
3036 __ Sltu(AT, rhs_low, lhs_low); in GenerateLongCompareAndBranch()
3037 __ Blt(TMP, AT, label); in GenerateLongCompareAndBranch()
3055 __ CmpEqS(FTMP, lhs, rhs); in GenerateFpCompareAndBranch()
3056 __ Bc1nez(FTMP, label); in GenerateFpCompareAndBranch()
3059 __ CmpEqS(FTMP, lhs, rhs); in GenerateFpCompareAndBranch()
3060 __ Bc1eqz(FTMP, label); in GenerateFpCompareAndBranch()
3064 __ CmpLtS(FTMP, lhs, rhs); in GenerateFpCompareAndBranch()
3066 __ CmpUltS(FTMP, lhs, rhs); in GenerateFpCompareAndBranch()
3068 __ Bc1nez(FTMP, label); in GenerateFpCompareAndBranch()
3072 __ CmpLeS(FTMP, lhs, rhs); in GenerateFpCompareAndBranch()
3074 __ CmpUleS(FTMP, lhs, rhs); in GenerateFpCompareAndBranch()
3076 __ Bc1nez(FTMP, label); in GenerateFpCompareAndBranch()
3080 __ CmpUltS(FTMP, rhs, lhs); in GenerateFpCompareAndBranch()
3082 __ CmpLtS(FTMP, rhs, lhs); in GenerateFpCompareAndBranch()
3084 __ Bc1nez(FTMP, label); in GenerateFpCompareAndBranch()
3088 __ CmpUleS(FTMP, rhs, lhs); in GenerateFpCompareAndBranch()
3090 __ CmpLeS(FTMP, rhs, lhs); in GenerateFpCompareAndBranch()
3092 __ Bc1nez(FTMP, label); in GenerateFpCompareAndBranch()
3100 __ CeqS(0, lhs, rhs); in GenerateFpCompareAndBranch()
3101 __ Bc1t(0, label); in GenerateFpCompareAndBranch()
3104 __ CeqS(0, lhs, rhs); in GenerateFpCompareAndBranch()
3105 __ Bc1f(0, label); in GenerateFpCompareAndBranch()
3109 __ ColtS(0, lhs, rhs); in GenerateFpCompareAndBranch()
3111 __ CultS(0, lhs, rhs); in GenerateFpCompareAndBranch()
3113 __ Bc1t(0, label); in GenerateFpCompareAndBranch()
3117 __ ColeS(0, lhs, rhs); in GenerateFpCompareAndBranch()
3119 __ CuleS(0, lhs, rhs); in GenerateFpCompareAndBranch()
3121 __ Bc1t(0, label); in GenerateFpCompareAndBranch()
3125 __ CultS(0, rhs, lhs); in GenerateFpCompareAndBranch()
3127 __ ColtS(0, rhs, lhs); in GenerateFpCompareAndBranch()
3129 __ Bc1t(0, label); in GenerateFpCompareAndBranch()
3133 __ CuleS(0, rhs, lhs); in GenerateFpCompareAndBranch()
3135 __ ColeS(0, rhs, lhs); in GenerateFpCompareAndBranch()
3137 __ Bc1t(0, label); in GenerateFpCompareAndBranch()
3148 __ CmpEqD(FTMP, lhs, rhs); in GenerateFpCompareAndBranch()
3149 __ Bc1nez(FTMP, label); in GenerateFpCompareAndBranch()
3152 __ CmpEqD(FTMP, lhs, rhs); in GenerateFpCompareAndBranch()
3153 __ Bc1eqz(FTMP, label); in GenerateFpCompareAndBranch()
3157 __ CmpLtD(FTMP, lhs, rhs); in GenerateFpCompareAndBranch()
3159 __ CmpUltD(FTMP, lhs, rhs); in GenerateFpCompareAndBranch()
3161 __ Bc1nez(FTMP, label); in GenerateFpCompareAndBranch()
3165 __ CmpLeD(FTMP, lhs, rhs); in GenerateFpCompareAndBranch()
3167 __ CmpUleD(FTMP, lhs, rhs); in GenerateFpCompareAndBranch()
3169 __ Bc1nez(FTMP, label); in GenerateFpCompareAndBranch()
3173 __ CmpUltD(FTMP, rhs, lhs); in GenerateFpCompareAndBranch()
3175 __ CmpLtD(FTMP, rhs, lhs); in GenerateFpCompareAndBranch()
3177 __ Bc1nez(FTMP, label); in GenerateFpCompareAndBranch()
3181 __ CmpUleD(FTMP, rhs, lhs); in GenerateFpCompareAndBranch()
3183 __ CmpLeD(FTMP, rhs, lhs); in GenerateFpCompareAndBranch()
3185 __ Bc1nez(FTMP, label); in GenerateFpCompareAndBranch()
3193 __ CeqD(0, lhs, rhs); in GenerateFpCompareAndBranch()
3194 __ Bc1t(0, label); in GenerateFpCompareAndBranch()
3197 __ CeqD(0, lhs, rhs); in GenerateFpCompareAndBranch()
3198 __ Bc1f(0, label); in GenerateFpCompareAndBranch()
3202 __ ColtD(0, lhs, rhs); in GenerateFpCompareAndBranch()
3204 __ CultD(0, lhs, rhs); in GenerateFpCompareAndBranch()
3206 __ Bc1t(0, label); in GenerateFpCompareAndBranch()
3210 __ ColeD(0, lhs, rhs); in GenerateFpCompareAndBranch()
3212 __ CuleD(0, lhs, rhs); in GenerateFpCompareAndBranch()
3214 __ Bc1t(0, label); in GenerateFpCompareAndBranch()
3218 __ CultD(0, rhs, lhs); in GenerateFpCompareAndBranch()
3220 __ ColtD(0, rhs, lhs); in GenerateFpCompareAndBranch()
3222 __ Bc1t(0, label); in GenerateFpCompareAndBranch()
3226 __ CuleD(0, rhs, lhs); in GenerateFpCompareAndBranch()
3228 __ ColeD(0, rhs, lhs); in GenerateFpCompareAndBranch()
3230 __ Bc1t(0, label); in GenerateFpCompareAndBranch()
3252 __ B(true_target); in GenerateTestAndBranch()
3257 __ B(false_target); in GenerateTestAndBranch()
3276 __ Beqz(cond_val.AsRegister<Register>(), false_target); in GenerateTestAndBranch()
3278 __ Bnez(cond_val.AsRegister<Register>(), true_target); in GenerateTestAndBranch()
3311 __ B(false_target); in GenerateTestAndBranch()
3372 __ Bind(&false_target); in VisitSelect()
3384 __ Nop(); in GenerateNop()
3456 __ Addiu32(locations->GetTemp(0).AsRegister<Register>(), obj, offset); in HandleFieldGet()
3458 __ Lw(ZERO, locations->GetTemp(0).AsRegister<Register>(), 0); in HandleFieldGet()
3468 __ Mtc1(locations->GetTemp(1).AsRegister<Register>(), in HandleFieldGet()
3470 __ MoveToFpuHigh(locations->GetTemp(2).AsRegister<Register>(), in HandleFieldGet()
3481 __ LoadFromOffset(kLoadWord, dst_high, obj, offset + kMipsWordSize); in HandleFieldGet()
3483 __ LoadFromOffset(kLoadWord, dst, obj, offset); in HandleFieldGet()
3485 __ LoadFromOffset(kLoadWord, dst, obj, offset); in HandleFieldGet()
3487 __ LoadFromOffset(kLoadWord, dst_high, obj, offset + kMipsWordSize); in HandleFieldGet()
3492 __ LoadFromOffset(load_type, dst, obj, offset); in HandleFieldGet()
3498 __ LoadSFromOffset(dst, obj, offset); in HandleFieldGet()
3500 __ LoadDFromOffset(dst, obj, offset); in HandleFieldGet()
3583 __ Addiu32(locations->GetTemp(0).AsRegister<Register>(), obj, offset); in HandleFieldSet()
3585 __ Lw(ZERO, locations->GetTemp(0).AsRegister<Register>(), 0); in HandleFieldSet()
3589 __ Mfc1(locations->GetTemp(1).AsRegister<Register>(), in HandleFieldSet()
3591 __ MoveFromFpuHigh(locations->GetTemp(2).AsRegister<Register>(), in HandleFieldSet()
3607 __ StoreToOffset(kStoreWord, src, obj, offset); in HandleFieldSet()
3609 __ StoreToOffset(kStoreWord, src_high, obj, offset + kMipsWordSize); in HandleFieldSet()
3613 __ StoreToOffset(store_type, src, obj, offset); in HandleFieldSet()
3619 __ StoreSToOffset(src, obj, offset); in HandleFieldSet()
3621 __ StoreDToOffset(src, obj, offset); in HandleFieldSet()
3679 __ Move(out, ZERO); in VisitInstanceOf()
3680 __ Beqz(obj, &done); in VisitInstanceOf()
3683 __ LoadFromOffset(kLoadWord, out, obj, mirror::Object::ClassOffset().Int32Value()); in VisitInstanceOf()
3686 __ Xor(out, out, cls); in VisitInstanceOf()
3687 __ Sltiu(out, out, 1); in VisitInstanceOf()
3693 __ Bne(out, cls, slow_path->GetEntryLabel()); in VisitInstanceOf()
3694 __ LoadConst32(out, 1); in VisitInstanceOf()
3695 __ Bind(slow_path->GetExitLabel()); in VisitInstanceOf()
3698 __ Bind(&done); in VisitInstanceOf()
3741 __ LoadConst32(invoke->GetLocations()->GetTemp(1).AsRegister<Register>(), in VisitInvokeInterface()
3746 __ LoadFromOffset(kLoadWord, temp, SP, receiver.GetStackIndex()); in VisitInvokeInterface()
3747 __ LoadFromOffset(kLoadWord, temp, temp, class_offset); in VisitInvokeInterface()
3749 __ LoadFromOffset(kLoadWord, temp, receiver.AsRegister<Register>(), class_offset); in VisitInvokeInterface()
3753 __ LoadFromOffset(kLoadWord, temp, temp, method_offset); in VisitInvokeInterface()
3755 __ LoadFromOffset(kLoadWord, T9, temp, entry_point.Int32Value()); in VisitInvokeInterface()
3757 __ Jalr(T9); in VisitInvokeInterface()
3758 __ Nop(); in VisitInvokeInterface()
3838 __ LoadFromOffset(kLoadWord, in GenerateStaticOrDirectCall()
3847 __ LoadConst32(temp.AsRegister<Register>(), invoke->GetMethodAddress()); in GenerateStaticOrDirectCall()
3866 __ Lw(reg, SP, kCurrentMethodStackOffset); in GenerateStaticOrDirectCall()
3870 __ LoadFromOffset(kLoadWord, in GenerateStaticOrDirectCall()
3877 __ LoadFromOffset(kLoadWord, in GenerateStaticOrDirectCall()
3887 __ Jalr(&frame_entry_label_, T9); in GenerateStaticOrDirectCall()
3891 __ LoadConst32(T9, invoke->GetDirectCodePtr()); in GenerateStaticOrDirectCall()
3893 __ Jalr(T9); in GenerateStaticOrDirectCall()
3894 __ Nop(); in GenerateStaticOrDirectCall()
3904 __ LoadFromOffset(kLoadWord, in GenerateStaticOrDirectCall()
3910 __ Jalr(T9); in GenerateStaticOrDirectCall()
3911 __ Nop(); in GenerateStaticOrDirectCall()
3945 __ LoadFromOffset(kLoadWord, temp, receiver.AsRegister<Register>(), class_offset); in GenerateVirtualCall()
3948 __ LoadFromOffset(kLoadWord, temp, temp, method_offset); in GenerateVirtualCall()
3950 __ LoadFromOffset(kLoadWord, T9, temp, entry_point.Int32Value()); in GenerateVirtualCall()
3952 __ Jalr(T9); in GenerateVirtualCall()
3953 __ Nop(); in GenerateVirtualCall()
3992 __ LoadFromOffset(kLoadWord, out, current_method, in VisitLoadClass()
3995 __ LoadFromOffset(kLoadWord, out, current_method, in VisitLoadClass()
3997 __ LoadFromOffset(kLoadWord, out, out, CodeGenerator::GetCacheOffset(cls->GetTypeIndex())); in VisitLoadClass()
4008 __ Beqz(out, slow_path->GetEntryLabel()); in VisitLoadClass()
4013 __ Bind(slow_path->GetExitLabel()); in VisitLoadClass()
4031 __ LoadFromOffset(kLoadWord, out, TR, GetExceptionTlsOffset()); in VisitLoadException()
4039 __ StoreToOffset(kStoreWord, ZERO, TR, GetExceptionTlsOffset()); in VisitClearException()
4055 __ LoadFromOffset(kLoadWord, out, current_method, ArtMethod::DeclaringClassOffset().Int32Value()); in VisitLoadString()
4056 __ LoadFromOffset(kLoadWord, out, out, mirror::Class::DexCacheStringsOffset().Int32Value()); in VisitLoadString()
4057 __ LoadFromOffset(kLoadWord, out, out, CodeGenerator::GetCacheOffset(load->GetStringIndex())); in VisitLoadString()
4062 __ Beqz(out, slow_path->GetEntryLabel()); in VisitLoadString()
4063 __ Bind(slow_path->GetExitLabel()); in VisitLoadString()
4136 __ MulR6(dst, lhs, rhs); in VisitMul()
4138 __ MulR2(dst, lhs, rhs); in VisitMul()
4162 __ MulR6(TMP, lhs_high, rhs_low); in VisitMul()
4163 __ MulR6(dst_high, lhs_low, rhs_high); in VisitMul()
4164 __ Addu(dst_high, dst_high, TMP); in VisitMul()
4165 __ MuhuR6(TMP, lhs_low, rhs_low); in VisitMul()
4166 __ Addu(dst_high, dst_high, TMP); in VisitMul()
4167 __ MulR6(dst_low, lhs_low, rhs_low); in VisitMul()
4169 __ MulR2(TMP, lhs_high, rhs_low); in VisitMul()
4170 __ MulR2(dst_high, lhs_low, rhs_high); in VisitMul()
4171 __ Addu(dst_high, dst_high, TMP); in VisitMul()
4172 __ MultuR2(lhs_low, rhs_low); in VisitMul()
4173 __ Mfhi(TMP); in VisitMul()
4174 __ Addu(dst_high, dst_high, TMP); in VisitMul()
4175 __ Mflo(dst_low); in VisitMul()
4185 __ MulS(dst, lhs, rhs); in VisitMul()
4187 __ MulD(dst, lhs, rhs); in VisitMul()
4225 __ Subu(dst, ZERO, src); in VisitNeg()
4233 __ Subu(dst_low, ZERO, src_low); in VisitNeg()
4234 __ Sltu(TMP, ZERO, dst_low); in VisitNeg()
4235 __ Subu(dst_high, ZERO, src_high); in VisitNeg()
4236 __ Subu(dst_high, dst_high, TMP); in VisitNeg()
4244 __ NegS(dst, src); in VisitNeg()
4246 __ NegD(dst, src); in VisitNeg()
4268 __ Lw(current_method_register, SP, kCurrentMethodStackOffset); in VisitNewArray()
4270 __ LoadConst32(calling_convention.GetRegisterAt(0), instruction->GetTypeIndex()); in VisitNewArray()
4299 __ LoadFromOffset(kLoadWord, temp, TR, QUICK_ENTRY_POINT(pNewEmptyString)); in VisitNewInstance()
4300 __ LoadFromOffset(kLoadWord, T9, temp, code_offset.Int32Value()); in VisitNewInstance()
4301 __ Jalr(T9); in VisitNewInstance()
4302 __ Nop(); in VisitNewInstance()
4329 __ Nor(dst, src, ZERO); in VisitNot()
4338 __ Nor(dst_high, src_high, ZERO); in VisitNot()
4339 __ Nor(dst_low, src_low, ZERO); in VisitNot()
4356 __ Xori(locations->Out().AsRegister<Register>(), in VisitBooleanNot()
4378 __ Lw(ZERO, obj.AsRegister<Register>(), 0); in GenerateImplicitNullCheck()
4388 __ Beqz(obj.AsRegister<Register>(), slow_path->GetEntryLabel()); in GenerateExplicitNullCheck()
4766 __ Move(dst_low, src); in VisitTypeConversion()
4767 __ Sra(dst_high, src, 31); in VisitTypeConversion()
4776 __ Andi(dst, src, 0xFFFF); in VisitTypeConversion()
4780 __ Seb(dst, src); in VisitTypeConversion()
4782 __ Sll(dst, src, 24); in VisitTypeConversion()
4783 __ Sra(dst, dst, 24); in VisitTypeConversion()
4788 __ Seh(dst, src); in VisitTypeConversion()
4790 __ Sll(dst, src, 16); in VisitTypeConversion()
4791 __ Sra(dst, dst, 16); in VisitTypeConversion()
4795 __ Move(dst, src); in VisitTypeConversion()
4810 __ Mtc1(src_low, FTMP); in VisitTypeConversion()
4811 __ Mthc1(src_high, FTMP); in VisitTypeConversion()
4813 __ Cvtsl(dst, FTMP); in VisitTypeConversion()
4815 __ Cvtdl(dst, FTMP); in VisitTypeConversion()
4836 __ Mtc1(src, FTMP); in VisitTypeConversion()
4838 __ Cvtsw(dst, FTMP); in VisitTypeConversion()
4840 __ Cvtdw(dst, FTMP); in VisitTypeConversion()
4882 __ LoadConst32(TMP, min_val); in VisitTypeConversion()
4883 __ Mtc1(TMP, FTMP); in VisitTypeConversion()
4884 __ CmpLeS(FTMP, FTMP, src); in VisitTypeConversion()
4887 __ LoadConst32(TMP, High32Bits(min_val)); in VisitTypeConversion()
4888 __ Mtc1(ZERO, FTMP); in VisitTypeConversion()
4889 __ Mthc1(TMP, FTMP); in VisitTypeConversion()
4890 __ CmpLeD(FTMP, FTMP, src); in VisitTypeConversion()
4893 __ Bc1nez(FTMP, &truncate); in VisitTypeConversion()
4896 __ CmpEqS(FTMP, src, src); in VisitTypeConversion()
4898 __ CmpEqD(FTMP, src, src); in VisitTypeConversion()
4900 __ Move(dst_low, ZERO); in VisitTypeConversion()
4901 __ LoadConst32(dst_high, std::numeric_limits<int32_t>::min()); in VisitTypeConversion()
4902 __ Mfc1(TMP, FTMP); in VisitTypeConversion()
4903 __ And(dst_high, dst_high, TMP); in VisitTypeConversion()
4905 __ B(&done); in VisitTypeConversion()
4907 __ Bind(&truncate); in VisitTypeConversion()
4910 __ TruncLS(FTMP, src); in VisitTypeConversion()
4912 __ TruncLD(FTMP, src); in VisitTypeConversion()
4914 __ Mfc1(dst_low, FTMP); in VisitTypeConversion()
4915 __ Mfhc1(dst_high, FTMP); in VisitTypeConversion()
4917 __ Bind(&done); in VisitTypeConversion()
4946 __ LoadConst32(TMP, min_val); in VisitTypeConversion()
4947 __ Mtc1(TMP, FTMP); in VisitTypeConversion()
4950 __ LoadConst32(TMP, High32Bits(min_val)); in VisitTypeConversion()
4951 __ Mtc1(ZERO, FTMP); in VisitTypeConversion()
4953 __ Mtc1(TMP, static_cast<FRegister>(FTMP + 1)); in VisitTypeConversion()
4955 __ Mthc1(TMP, FTMP); in VisitTypeConversion()
4961 __ CmpLeS(FTMP, FTMP, src); in VisitTypeConversion()
4963 __ CmpLeD(FTMP, FTMP, src); in VisitTypeConversion()
4965 __ Bc1nez(FTMP, &truncate); in VisitTypeConversion()
4968 __ CmpEqS(FTMP, src, src); in VisitTypeConversion()
4970 __ CmpEqD(FTMP, src, src); in VisitTypeConversion()
4972 __ LoadConst32(dst, std::numeric_limits<int32_t>::min()); in VisitTypeConversion()
4973 __ Mfc1(TMP, FTMP); in VisitTypeConversion()
4974 __ And(dst, dst, TMP); in VisitTypeConversion()
4977 __ ColeS(0, FTMP, src); in VisitTypeConversion()
4979 __ ColeD(0, FTMP, src); in VisitTypeConversion()
4981 __ Bc1t(0, &truncate); in VisitTypeConversion()
4984 __ CeqS(0, src, src); in VisitTypeConversion()
4986 __ CeqD(0, src, src); in VisitTypeConversion()
4988 __ LoadConst32(dst, std::numeric_limits<int32_t>::min()); in VisitTypeConversion()
4989 __ Movf(dst, ZERO, 0); in VisitTypeConversion()
4992 __ B(&done); in VisitTypeConversion()
4994 __ Bind(&truncate); in VisitTypeConversion()
4997 __ TruncWS(FTMP, src); in VisitTypeConversion()
4999 __ TruncWD(FTMP, src); in VisitTypeConversion()
5001 __ Mfc1(dst, FTMP); in VisitTypeConversion()
5003 __ Bind(&done); in VisitTypeConversion()
5010 __ Cvtsd(dst, src); in VisitTypeConversion()
5012 __ Cvtds(dst, src); in VisitTypeConversion()
5141 __ Addiu32(temp_reg, value_reg, -lower_bound); in VisitPackedSwitch()
5145 __ Bltz(temp_reg, codegen_->GetLabelOf(default_block)); in VisitPackedSwitch()
5149 __ Beqz(temp_reg, codegen_->GetLabelOf(successors[0])); in VisitPackedSwitch()
5152 __ Addiu(temp_reg, temp_reg, -2); in VisitPackedSwitch()
5154 __ Bltz(temp_reg, codegen_->GetLabelOf(successors[last_index + 1])); in VisitPackedSwitch()
5156 __ Beqz(temp_reg, codegen_->GetLabelOf(successors[last_index + 2])); in VisitPackedSwitch()
5160 __ Addiu(temp_reg, temp_reg, -1); in VisitPackedSwitch()
5161 __ Beqz(temp_reg, codegen_->GetLabelOf(successors[last_index + 1])); in VisitPackedSwitch()
5166 __ B(codegen_->GetLabelOf(default_block)); in VisitPackedSwitch()
5198 __ LoadFromOffset(kLoadWord, in VisitClassTableGet()
5204 #undef __