Lines Matching refs:scratch
286 Register scratch = temps.Acquire();
287 DCHECK(!AreAliased(object, value, scratch));
288 lw(scratch, MemOperand(address));
289 Assert(eq, AbortReason::kWrongAddressOrValuePassedToRecordWrite, scratch,
309 value, // Used as scratch.
312 value, // Used as scratch.
352 Register scratch = temps.Acquire();
353 DCHECK(rs != scratch);
354 li(scratch, rt);
355 addu(rd, rs, scratch);
370 Register scratch = temps.Acquire();
371 DCHECK(rs != scratch);
372 li(scratch, -rt.immediate());
373 addu(rd, rs, scratch);
377 Register scratch = temps.Acquire();
378 DCHECK(rs != scratch);
379 li(scratch, rt);
380 subu(rd, rs, scratch);
396 Register scratch = temps.Acquire();
397 DCHECK(rs != scratch);
398 li(scratch, rt);
400 mult(rs, scratch);
403 mul(rd, rs, scratch);
430 Register scratch = temps.Acquire();
431 DCHECK(rs != scratch);
432 li(scratch, rt);
434 mult(rs, scratch);
440 DCHECK(rd_hi != scratch && rd_lo != scratch);
441 muh(rd_hi, rs, scratch);
442 mul(rd_lo, rs, scratch);
444 DCHECK(rd_hi != scratch && rd_lo != scratch);
445 mul(rd_lo, rs, scratch);
446 muh(rd_hi, rs, scratch);
456 Register scratch = temps.Acquire();
460 DCHECK(rs != scratch);
461 reg = scratch;
494 Register scratch = temps.Acquire();
495 DCHECK(rs != scratch);
496 li(scratch, rt);
498 mult(rs, scratch);
501 muh(rd, rs, scratch);
512 Register scratch = temps.Acquire();
513 DCHECK(rs != scratch);
514 li(scratch, rt);
515 mult(rs, scratch);
530 Register scratch = temps.Acquire();
531 DCHECK(rs != scratch);
532 li(scratch, rt);
534 multu(rs, scratch);
537 muhu(rd, rs, scratch);
548 Register scratch = temps.Acquire();
549 DCHECK(rs != scratch);
550 li(scratch, rt);
551 multu(rs, scratch);
561 Register scratch = temps.Acquire();
562 DCHECK(rs != scratch);
563 li(scratch, rt);
564 div(rs, scratch);
582 Register scratch = temps.Acquire();
583 DCHECK(rs != scratch);
584 li(scratch, rt);
586 div(rs, scratch);
590 div(res, rs, scratch);
591 mod(rem, rs, scratch);
607 Register scratch = temps.Acquire();
608 DCHECK(rs != scratch);
609 li(scratch, rt);
611 div(rs, scratch);
614 div(res, rs, scratch);
630 Register scratch = temps.Acquire();
631 DCHECK(rs != scratch);
632 li(scratch, rt);
634 div(rs, scratch);
637 mod(rd, rs, scratch);
653 Register scratch = temps.Acquire();
654 DCHECK(rs != scratch);
655 li(scratch, rt);
657 divu(rs, scratch);
660 modu(rd, rs, scratch);
671 Register scratch = temps.Acquire();
672 DCHECK(rs != scratch);
673 li(scratch, rt);
674 divu(rs, scratch);
689 Register scratch = temps.Acquire();
690 DCHECK(rs != scratch);
691 li(scratch, rt);
693 divu(rs, scratch);
696 divu(res, rs, scratch);
710 Register scratch = temps.Acquire();
711 DCHECK(rs != scratch);
712 li(scratch, rt);
713 and_(rd, rs, scratch);
727 Register scratch = temps.Acquire();
728 DCHECK(rs != scratch);
729 li(scratch, rt);
730 or_(rd, rs, scratch);
744 Register scratch = temps.Acquire();
745 DCHECK(rs != scratch);
746 li(scratch, rt);
747 xor_(rd, rs, scratch);
758 Register scratch = temps.Acquire();
759 DCHECK(rs != scratch);
760 li(scratch, rt);
761 nor(rd, rs, scratch);
779 Register scratch = rd == at ? t8 : temps.Acquire();
780 DCHECK(rs != scratch);
781 li(scratch, rt);
782 slt(rd, rs, scratch);
803 Register scratch = rd == at ? t8 : temps.Acquire();
804 DCHECK(rs != scratch);
805 li(scratch, rt);
806 sltu(rd, rs, scratch);
818 Register scratch = temps.hasAvailable() ? temps.Acquire() : t8;
819 DCHECK(rs != scratch);
820 li(scratch, rt);
821 slt(rd, scratch, rs);
833 Register scratch = temps.hasAvailable() ? temps.Acquire() : t8;
834 DCHECK(rs != scratch);
835 li(scratch, rt);
836 sltu(rd, scratch, rs);
858 Register scratch = temps.hasAvailable() ? temps.Acquire() : t8;
859 DCHECK(rs != scratch);
860 li(scratch, rt);
861 slt(rd, scratch, rs);
872 Register scratch = temps.hasAvailable() ? temps.Acquire() : t8;
873 DCHECK(rs != scratch);
874 li(scratch, rt);
875 sltu(rd, scratch, rs);
890 Register scratch = temps.hasAvailable() ? temps.Acquire() : t8;
891 subu(scratch, zero_reg, rt.rm());
892 sllv(scratch, rs, scratch);
894 or_(rd, rd, scratch);
900 Register scratch = temps.Acquire();
901 srl(scratch, rs, rt.immediate() & 0x1F);
903 or_(rd, rd, scratch);
918 Register scratch) {
923 Register tmp = rd == rt ? scratch : rd;
1038 Register scratch = temps.Acquire();
1039 lwr(scratch, MemOperand(rs.rm(), rs.offset() + kMipsLwrOffset));
1040 lwl(scratch, MemOperand(rs.rm(), rs.offset() + kMipsLwlOffset));
1041 mov(rd, scratch);
1076 Register scratch = temps.Acquire();
1077 if (source.rm() == scratch) {
1080 lbu(scratch, source);
1083 lbu(scratch, MemOperand(source.rm(), source.offset() + 1));
1087 lbu(scratch, source);
1090 lbu(scratch, MemOperand(source.rm(), source.offset() + 1));
1095 or_(rd, rd, scratch);
1111 Register scratch = temps.Acquire();
1112 if (source.rm() == scratch) {
1115 lbu(scratch, source);
1118 lbu(scratch, MemOperand(source.rm(), source.offset() + 1));
1122 lbu(scratch, source);
1125 lbu(scratch, MemOperand(source.rm(), source.offset() + 1));
1130 or_(rd, rd, scratch);
1134 void TurboAssembler::Ush(Register rd, const MemOperand& rs, Register scratch) {
1137 DCHECK(rs.rm() != scratch);
1138 DCHECK(scratch != at);
1148 if (scratch != rd) {
1149 mov(scratch, rd);
1153 sb(scratch, source);
1154 srl(scratch, scratch, 8);
1155 sb(scratch, MemOperand(source.rm(), source.offset() + 1));
1157 sb(scratch, MemOperand(source.rm(), source.offset() + 1));
1158 srl(scratch, scratch, 8);
1159 sb(scratch, source);
1165 Register scratch) {
1171 Ulw(scratch, rs);
1172 mtc1(scratch, fd);
1177 Register scratch) {
1183 mfc1(scratch, fd);
1184 Usw(scratch, rs);
1189 Register scratch) {
1190 DCHECK(scratch != at);
1196 Ulw(scratch, MemOperand(rs.rm(), rs.offset() + Register::kMantissaOffset));
1197 mtc1(scratch, fd);
1198 Ulw(scratch, MemOperand(rs.rm(), rs.offset() + Register::kExponentOffset));
1199 Mthc1(scratch, fd);
1204 Register scratch) {
1205 DCHECK(scratch != at);
1211 mfc1(scratch, fd);
1212 Usw(scratch, MemOperand(rs.rm(), rs.offset() + Register::kMantissaOffset));
1213 Mfhc1(scratch, fd);
1214 Usw(scratch, MemOperand(rs.rm(), rs.offset() + Register::kExponentOffset));
1236 Register scratch = temps.Acquire();
1237 DCHECK(src.rm() != scratch);
1238 lw(scratch,
1240 Mthc1(scratch, fd);
1292 Register scratch = temps.Acquire();
1293 li(scratch, rs.offset());
1294 addu(scratch, scratch, rs.rm());
1295 ll(rd, MemOperand(scratch, 0));
1307 Register scratch = temps.Acquire();
1308 li(scratch, rs.offset());
1309 addu(scratch, scratch, rs.rm());
1310 sc(rd, MemOperand(scratch, 0));
1528 uint32_t shift, Register scratch) {
1544 srl(scratch, src_low, 32 - shift);
1545 Or(dst_high, dst_high, scratch);
1585 uint32_t shift, Register scratch) {
1601 sll(scratch, src_high, shift);
1602 Or(dst_low, dst_low, scratch);
1637 uint32_t shift, Register scratch) {
1653 sll(scratch, src_high, shift);
1654 Or(dst_low, dst_low, scratch);
1698 Register scratch = temps.Acquire();
1699 Subu(scratch, zero_reg, Operand(1));
1700 srl(scratch, scratch, 32 - size);
1701 and_(t8, rs, scratch);
1703 sll(scratch, scratch, pos);
1704 nor(scratch, scratch, zero_reg);
1705 and_(scratch, rt, scratch);
1706 or_(rt, t8, scratch);
1733 Register scratch = temps.Acquire();
1734 Subu(scratch, zero_reg, pos);
1735 Ror(dest, dest, scratch);
1813 FPURegister scratch) {
1816 mtc1(rs, scratch);
1817 Mthc1(zero_reg, scratch);
1818 cvt_d_l(fd, scratch);
1821 DCHECK(fd != scratch);
1835 mtc1(zero_reg, scratch);
1836 Mthc1(scratch1, scratch);
1842 add_d(fd, fd, scratch);
1852 FPURegister scratch) {
1854 Trunc_uw_d(t8, fs, scratch);
1859 FPURegister scratch) {
1861 Trunc_uw_s(t8, fs, scratch);
1910 FPURegister scratch) {
1911 DCHECK(fs != scratch);
1915 // Load 2^31 into scratch as its float representation.
1919 mtc1(zero_reg, scratch);
1920 Mthc1(scratch1, scratch);
1922 // Test if scratch > fs.
1925 CompareF64(OLT, fs, scratch);
1930 sub_d(scratch, fs, scratch);
1931 trunc_w_d(scratch, scratch);
1932 mfc1(rd, scratch);
1939 trunc_w_d(scratch, fs);
1940 mfc1(rd, scratch);
1946 FPURegister scratch) {
1947 DCHECK(fs != scratch);
1951 // Load 2^31 into scratch as its float representation.
1955 mtc1(scratch1, scratch);
1957 // Test if scratch > fs.
1960 CompareF32(OLT, fs, scratch);
1965 sub_s(scratch, fs, scratch);
1966 trunc_w_s(scratch, scratch);
1967 mfc1(rd, scratch);
1974 trunc_w_s(scratch, fs);
1975 mfc1(rd, scratch);
1984 Register scratch = t8;
1987 cfc1(scratch, FCSR);
1991 ctc1(scratch, FCSR);
1994 Mfhc1(scratch, src);
1995 Ext(at, scratch, HeapNumber::kExponentShift, HeapNumber::kExponentBits);
2004 srl(at, scratch, 31);
2043 Register scratch = t8;
2045 cfc1(scratch, FCSR);
2049 ctc1(scratch, FCSR);
2058 mfc1(scratch, src);
2059 Ext(at, scratch, kFloat32MantissaBits, kFloat32ExponentBits);
2068 srl(at, scratch, 31);
2124 FPURegister ft, FPURegister scratch) {
2128 DCHECK(fr != scratch && fs != scratch && ft != scratch);
2129 mul_s(scratch, fs, ft);
2130 add_s(fd, fr, scratch);
2135 FPURegister ft, FPURegister scratch) {
2139 DCHECK(fr != scratch && fs != scratch && ft != scratch);
2140 mul_d(scratch, fs, ft);
2141 add_d(fd, fr, scratch);
2146 FPURegister ft, FPURegister scratch) {
2150 DCHECK(fr != scratch && fs != scratch && ft != scratch);
2151 mul_s(scratch, fs, ft);
2152 sub_s(fd, scratch, fr);
2157 FPURegister ft, FPURegister scratch) {
2161 DCHECK(fr != scratch && fs != scratch && ft != scratch);
2162 mul_d(scratch, fs, ft);
2163 sub_d(fd, scratch, fr);
2315 Register scratch = temps.Acquire();
2316 DCHECK(src_low != scratch);
2317 mfhc1(scratch, dst);
2319 mthc1(scratch, dst);
2325 Register scratch = temps.Acquire();
2326 li(scratch, Operand(static_cast<int32_t>(src)));
2327 mtc1(scratch, dst);
2343 Register scratch = temps.Acquire();
2344 li(scratch, Operand(lo));
2345 mtc1(scratch, dst);
2353 Register scratch = temps.Acquire();
2354 li(scratch, Operand(hi));
2355 Mthc1(scratch, dst);
2521 Register scratch = t8;
2525 cfc1(scratch, FCSR);
2526 // For the MIPS I, II and III architectures, the contents of scratch is
2529 srl(scratch, scratch, 16);
2530 andi(scratch, scratch, 0x0080);
2531 Branch(&done, eq, scratch, Operand(zero_reg));
2547 Register scratch = t8;
2551 cfc1(scratch, FCSR);
2552 // For the MIPS I, II and III architectures, the contents of scratch is
2555 srl(scratch, scratch, 16);
2556 andi(scratch, scratch, 0x0080);
2557 Branch(&done, ne, scratch, Operand(zero_reg));
2570 Register scratch = t9;
2579 and_(scratch, scratch1, mask);
2581 Branch(&end, ne, scratch, Operand(zero_reg));
2604 Register scratch = temps.Acquire();
2605 Addu(scratch, rs, -1);
2606 Xor(rd, scratch, rs);
2607 And(rd, rd, scratch);
2612 li(scratch, 32);
2613 Subu(rd, scratch, rd);
2647 Register scratch = temps.Acquire();
2649 srl(scratch, rs, 1);
2651 And(scratch, scratch, scratch2);
2652 Subu(scratch, rs, scratch);
2654 And(rd, scratch, scratch2);
2655 srl(scratch, scratch, 2);
2656 And(scratch, scratch, scratch2);
2657 Addu(scratch, rd, scratch);
2658 srl(rd, scratch, 4);
2659 Addu(rd, rd, scratch);
2662 li(scratch, value);
2663 Mul(rd, rd, scratch);
2672 Register scratch = t9;
2678 cfc1(scratch, FCSR);
2680 And(scratch, scratch,
2684 Branch(done, eq, scratch, Operand(zero_reg));
2787 Register scratch = temps.Acquire();
2788 LoadRoot(scratch, index);
2789 Branch(L, cond, rs, Operand(scratch), bdslot);
2836 Register scratch) {
2841 r2 = scratch;
2856 Register* scratch, const Operand& rt) {
2858 *scratch = GetRtAsRegisterHelper(rt, *scratch);
2868 Register scratch = temps.hasAvailable() ? temps.Acquire() : t8;
2884 if (!CalculateOffset(L, &offset, OffsetSize::kOffset16, &scratch, rt))
2886 beq(rs, scratch, offset);
2892 // We don't want any other register but scratch clobbered.
2893 if (!CalculateOffset(L, &offset, OffsetSize::kOffset16, &scratch, rt))
2895 beqc(rs, scratch, offset);
2902 if (!CalculateOffset(L, &offset, OffsetSize::kOffset16, &scratch, rt))
2904 bne(rs, scratch, offset);
2910 // We don't want any other register but scratch clobbered.
2911 if (!CalculateOffset(L, &offset, OffsetSize::kOffset16, &scratch, rt))
2913 bnec(rs, scratch, offset);
2923 if (!CalculateOffset(L, &offset, OffsetSize::kOffset16, &scratch, rt))
2925 bltzc(scratch, offset);
2930 if (!CalculateOffset(L, &offset, OffsetSize::kOffset16, &scratch, rt))
2932 DCHECK(rs != scratch);
2933 bltc(scratch, rs, offset);
2942 if (!CalculateOffset(L, &offset, OffsetSize::kOffset16, &scratch, rt))
2944 blezc(scratch, offset);
2949 if (!CalculateOffset(L, &offset, OffsetSize::kOffset16, &scratch, rt))
2951 DCHECK(rs != scratch);
2952 bgec(rs, scratch, offset);
2960 if (!CalculateOffset(L, &offset, OffsetSize::kOffset16, &scratch, rt))
2962 bgtzc(scratch, offset);
2967 if (!CalculateOffset(L, &offset, OffsetSize::kOffset16, &scratch, rt))
2969 DCHECK(rs != scratch);
2970 bltc(rs, scratch, offset);
2979 if (!CalculateOffset(L, &offset, OffsetSize::kOffset16, &scratch, rt))
2981 bgezc(scratch, offset);
2986 if (!CalculateOffset(L, &offset, OffsetSize::kOffset16, &scratch, rt))
2988 DCHECK(rs != scratch);
2989 bgec(scratch, rs, offset);
2999 if (!CalculateOffset(L, &offset, OffsetSize::kOffset21, &scratch, rt))
3001 bnezc(scratch, offset);
3006 if (!CalculateOffset(L, &offset, OffsetSize::kOffset16, &scratch, rt))
3008 DCHECK(rs != scratch);
3009 bltuc(scratch, rs, offset);
3018 if (!CalculateOffset(L, &offset, OffsetSize::kOffset21, &scratch, rt))
3020 beqzc(scratch, offset);
3025 if (!CalculateOffset(L, &offset, OffsetSize::kOffset16, &scratch, rt))
3027 DCHECK(rs != scratch);
3028 bgeuc(rs, scratch, offset);
3036 if (!CalculateOffset(L, &offset, OffsetSize::kOffset21, &scratch, rt))
3038 bnezc(scratch, offset);
3042 if (!CalculateOffset(L, &offset, OffsetSize::kOffset16, &scratch, rt))
3044 DCHECK(rs != scratch);
3045 bltuc(rs, scratch, offset);
3054 if (!CalculateOffset(L, &offset, OffsetSize::kOffset26, &scratch, rt))
3061 if (!CalculateOffset(L, &offset, OffsetSize::kOffset16, &scratch, rt))
3063 DCHECK(rs != scratch);
3064 bgeuc(scratch, rs, offset);
3082 Register scratch = temps.hasAvailable() ? temps.Acquire() : t8;
3100 // We don't want any other register but scratch clobbered.
3101 scratch = GetRtAsRegisterHelper(rt, scratch);
3103 beq(rs, scratch, offset32);
3111 // We don't want any other register but scratch clobbered.
3112 scratch = GetRtAsRegisterHelper(rt, scratch);
3114 bne(rs, scratch, offset32);
3124 Slt(scratch, GetRtAsRegisterHelper(rt, scratch), rs);
3126 bne(scratch, zero_reg, offset32);
3134 Slt(scratch, rs, rt);
3136 beq(scratch, zero_reg, offset32);
3144 Slt(scratch, rs, rt);
3146 bne(scratch, zero_reg, offset32);
3154 Slt(scratch, GetRtAsRegisterHelper(rt, scratch), rs);
3156 beq(scratch, zero_reg, offset32);
3166 Sltu(scratch, GetRtAsRegisterHelper(rt, scratch), rs);
3168 bne(scratch, zero_reg, offset32);
3176 Sltu(scratch, rs, rt);
3178 beq(scratch, zero_reg, offset32);
3185 Sltu(scratch, rs, rt);
3187 bne(scratch, zero_reg, offset32);
3195 Sltu(scratch, GetRtAsRegisterHelper(rt, scratch), rs);
3197 beq(scratch, zero_reg, offset32);
3332 Register scratch = temps.hasAvailable() ? temps.Acquire() : t8;
3344 Subu(scratch, rs, rt);
3346 beqzalc(scratch, offset);
3350 Subu(scratch, rs, rt);
3352 bnezalc(scratch, offset);
3361 if (!CalculateOffset(L, &offset, OffsetSize::kOffset16, &scratch, rt))
3363 bltzalc(scratch, offset);
3369 Slt(scratch, GetRtAsRegisterHelper(rt, scratch), rs);
3371 bnezalc(scratch, offset);
3380 if (!CalculateOffset(L, &offset, OffsetSize::kOffset16, &scratch, rt))
3382 blezalc(scratch, offset);
3388 Slt(scratch, rs, rt);
3390 beqzalc(scratch, offset);
3398 if (!CalculateOffset(L, &offset, OffsetSize::kOffset16, &scratch, rt))
3400 bgtzalc(scratch, offset);
3406 Slt(scratch, rs, rt);
3408 bnezalc(scratch, offset);
3417 if (!CalculateOffset(L, &offset, OffsetSize::kOffset16, &scratch, rt))
3419 bgezalc(scratch, offset);
3425 Slt(scratch, GetRtAsRegisterHelper(rt, scratch), rs);
3427 beqzalc(scratch, offset);
3435 Sltu(scratch, GetRtAsRegisterHelper(rt, scratch), rs);
3437 bnezalc(scratch, offset);
3442 Sltu(scratch, rs, rt);
3444 beqzalc(scratch, offset);
3449 Sltu(scratch, rs, rt);
3451 bnezalc(scratch, offset);
3456 Sltu(scratch, GetRtAsRegisterHelper(rt, scratch), rs);
3458 beqzalc(scratch, offset);
3476 Register scratch = t8;
3485 bne(rs, GetRtAsRegisterHelper(rt, scratch), 2);
3491 beq(rs, GetRtAsRegisterHelper(rt, scratch), 2);
3499 Slt(scratch, GetRtAsRegisterHelper(rt, scratch), rs);
3500 addiu(scratch, scratch, -1);
3502 bgezal(scratch, offset);
3505 Slt(scratch, rs, rt);
3506 addiu(scratch, scratch, -1);
3508 bltzal(scratch, offset);
3511 Slt(scratch, rs, rt);
3512 addiu(scratch, scratch, -1);
3514 bgezal(scratch, offset);
3517 Slt(scratch, GetRtAsRegisterHelper(rt, scratch), rs);
3518 addiu(scratch, scratch, -1);
3520 bltzal(scratch, offset);
3525 Sltu(scratch, GetRtAsRegisterHelper(rt, scratch), rs);
3526 addiu(scratch, scratch, -1);
3528 bgezal(scratch, offset);
3531 Sltu(scratch, rs, rt);
3532 addiu(scratch, scratch, -1);
3534 bltzal(scratch, offset);
3537 Sltu(scratch, rs, rt);
3538 addiu(scratch, scratch, -1);
3540 bgezal(scratch, offset);
3543 Sltu(scratch, GetRtAsRegisterHelper(rt, scratch), rs);
3544 addiu(scratch, scratch, -1);
3546 bltzal(scratch, offset);
3782 Register scratch = temps.Acquire();
3783 Subu(scratch, value, Operand(lower_limit));
3784 Branch(on_in_range, ls, scratch, Operand(higher_limit - lower_limit));
3950 Register scratch = temps.Acquire();
3951 mov(scratch, ra);
3956 mov(ra, scratch); // in delay slot
4091 Register scratch = temps.Acquire();
4092 li(scratch, drop_size);
4094 addu(sp, sp, scratch);
4133 void MacroAssembler::Swap(Register reg1, Register reg2, Register scratch) {
4134 if (scratch == no_reg) {
4139 mov(scratch, reg1);
4141 mov(reg2, scratch);
4154 Register scratch = temps.Acquire();
4155 li(scratch, Operand(handle));
4156 push(scratch);
4161 Register scratch = temps.Acquire();
4162 li(scratch, Operand(smi));
4163 push(scratch);
4166 void TurboAssembler::PushArray(Register array, Register size, Register scratch,
4168 DCHECK(!AreAliased(array, size, scratch, scratch2));
4171 mov(scratch, zero_reg);
4174 Lsa(scratch2, array, scratch, kPointerSizeLog2);
4177 Addu(scratch, scratch, Operand(1));
4179 Branch(&loop, less, scratch, Operand(size));
4181 mov(scratch, size);
4184 Lsa(scratch2, array, scratch, kPointerSizeLog2);
4188 Addu(scratch, scratch, Operand(-1));
4189 Branch(&loop, greater_equal, scratch, Operand(zero_reg));
4218 Register scratch = temps.Acquire();
4219 li(scratch,
4221 sw(a1, MemOperand(scratch));
4554 Register scratch = t8;
4562 DCHECK(left != scratch && right_reg != scratch && dst != scratch &&
4563 overflow != scratch);
4567 addu(scratch, left, right_reg);
4568 xor_(overflow, scratch, left);
4569 xor_(at, scratch, right_reg);
4571 mov(dst, scratch);
4585 Register scratch = t8;
4593 DCHECK(left != scratch && right_reg != scratch && dst != scratch &&
4594 overflow != scratch);
4598 subu(scratch, left, right_reg);
4599 xor_(overflow, left, scratch);
4602 mov(dst, scratch);
4616 Register scratch = t8;
4625 DCHECK(left != scratch && right_reg != scratch && dst != scratch &&
4626 overflow != scratch);
4631 sra(scratch, scratch2, 31);
4632 xor_(overflow, overflow, scratch);
4636 sra(scratch, dst, 31);
4637 xor_(overflow, overflow, scratch);
4803 Register scratch = temps.Acquire();
4804 li(scratch, Operand(StackFrame::TypeToMarker(type)));
4805 PushCommonFrame(scratch);
4858 Register scratch = temps.Acquire();
4859 li(scratch, Operand(StackFrame::TypeToMarker(frame_type)));
4860 sw(scratch, MemOperand(sp, 1 * kPointerSize));
4907 Register scratch = temps.Acquire();
4908 addiu(scratch, sp, kPointerSize);
4909 sw(scratch, MemOperand(fp, ExitFrameConstants::kSPOffset));
4989 Register scratch = temps.Acquire();
4990 andi(scratch, sp, frame_alignment_mask);
4991 Branch(&alignment_as_expected, eq, scratch, Operand(zero_reg));
5003 Register scratch = temps.Acquire();
5004 andi(scratch, value, kSmiTagMask);
5005 Branch(bd, smi_label, eq, scratch, Operand(zero_reg));
5012 Register scratch = temps.Acquire();
5013 andi(scratch, value, kSmiTagMask);
5014 Branch(bd, not_smi_label, ne, scratch, Operand(zero_reg));
5022 Register scratch = temps.Acquire();
5023 andi(scratch, object, kSmiTagMask);
5024 Check(ne, AbortReason::kOperandIsASmi, scratch, Operand(zero_reg));
5033 Register scratch = temps.Acquire();
5034 andi(scratch, object, kSmiTagMask);
5035 Check(eq, AbortReason::kOperandIsASmi, scratch, Operand(zero_reg));
5132 Register scratch) {
5137 LoadRoot(scratch, RootIndex::kUndefinedValue);
5138 Branch(&done_checking, eq, object, Operand(scratch));
5139 GetObjectType(object, scratch, scratch);
5140 Assert(eq, AbortReason::kExpectedUndefinedOrCell, scratch,
5365 Register scratch) {
5379 mov(scratch, sp);
5383 sw(scratch, MemOperand(sp, stack_passed_arguments * kPointerSize));
5390 Register scratch) {
5391 PrepareCallCFunction(num_reg_arguments, 0, scratch);
5441 Register scratch = temps.Acquire();
5442 And(scratch, sp, Operand(frame_alignment_mask));
5443 Branch(&alignment_as_expected, eq, scratch, Operand(zero_reg));
5470 // 't' registers are caller-saved so this is safe as a scratch register.
5472 Register scratch = t5;
5473 DCHECK(!AreAliased(pc_scratch, scratch, function_base));
5475 mov(scratch, ra);
5478 mov(ra, scratch);
5488 li(scratch, ExternalReference::fast_c_call_caller_pc_address(isolate()));
5489 sw(pc_scratch, MemOperand(scratch));
5490 li(scratch, ExternalReference::fast_c_call_caller_fp_address(isolate()));
5491 sw(fp, MemOperand(scratch));
5502 li(scratch, ExternalReference::fast_c_call_caller_fp_address(isolate()));
5503 sw(zero_reg, MemOperand(scratch));
5521 void TurboAssembler::CheckPageFlag(Register object, Register scratch, int mask,
5524 And(scratch, object, Operand(~kPageAlignmentMask));
5525 lw(scratch, MemOperand(scratch, BasicMemoryChunk::kFlagsOffset));
5526 And(scratch, scratch, Operand(mask));
5527 Branch(condition_met, cc, scratch, Operand(zero_reg));
5593 Register scratch = kScratchReg;
5594 DCHECK(!AreAliased(destination, scratch));
5595 DCHECK(!AreAliased(code_object, scratch));
5600 Lw(scratch, FieldMemOperand(code_object, Code::kFlagsOffset));
5601 And(scratch, scratch, Operand(Code::IsOffHeapTrampoline::kMask));
5602 Branch(&if_code_is_off_heap, ne, scratch, Operand(zero_reg));
5612 Lw(scratch, FieldMemOperand(code_object, Code::kBuiltinIndexOffset));
5613 Lsa(destination, kRootRegister, scratch, kSystemPointerSizeLog2);