Lines Matching refs:scratch
154 Register scratch = temps.Acquire();
156 ldr(scratch, MemOperand(kRootRegister, offset));
157 Jump(scratch, cond);
163 // preserve scratch registers across calls.
175 Register scratch = temps.Acquire();
176 Move(scratch, reference);
177 Jump(scratch);
200 // preserve scratch registers across calls.
295 // preserve scratch registers across calls.
318 Register scratch = temps.Acquire();
320 DCHECK(!AreAliased(destination, scratch));
321 DCHECK(!AreAliased(code_object, scratch));
326 ldr(scratch, FieldMemOperand(code_object, Code::kFlagsOffset));
327 tst(scratch, Operand(Code::IsOffHeapTrampoline::kMask));
339 ldr(scratch, FieldMemOperand(code_object, Code::kBuiltinIndexOffset));
340 lsl(destination, scratch, Operand(kSystemPointerSizeLog2));
404 Register scratch = temps.Acquire();
405 mov(scratch, Operand(handle));
406 push(scratch);
411 Register scratch = temps.Acquire();
412 mov(scratch, Operand(smi));
413 push(scratch);
416 void TurboAssembler::PushArray(Register array, Register size, Register scratch,
420 Register counter = scratch;
515 Register scratch = temps.Acquire();
516 mov(scratch, srcdst0);
518 mov(srcdst1, scratch);
530 DwVfpRegister scratch = temps.AcquireD();
531 vmov(scratch, srcdst0);
533 vmov(srcdst1, scratch);
549 Register scratch = temps.Acquire();
550 DCHECK(srcA != scratch);
551 mul(scratch, src1, src2, LeaveCC, cond);
552 sub(dst, srcA, scratch, LeaveCC, cond);
653 Register scratch = temps.Acquire();
654 DCHECK(!AreAliased(object, value, scratch));
655 add(scratch, object, Operand(offset - kHeapObjectTag));
656 tst(scratch, Operand(kPointerSize - 1));
771 // scratch register.
777 // shifted away. A scratch register also needs to be available.
787 Register scratch = temps.Acquire();
788 DCHECK(!AreAliased(object, value, scratch));
789 add(scratch, object, offset);
790 ldr(scratch, MemOperand(scratch));
791 cmp(scratch, value);
1005 DwVfpRegister scratch = temps.AcquireD();
1009 vdup(Neon32, scratch, src_d_reg, src_offset);
1010 // Here we are extending the lifetime of scratch.
1011 src_d_reg = scratch;
1030 // Without Neon, use the scratch registers to move src and/or dst into
1049 // Neither src or dst are s-registers. Both scratch double registers are
1064 LowDwVfpRegister scratch = temps.AcquireLowD();
1066 int dst_s_code = scratch.low().code() + (dst_code & 1);
1067 vmov(scratch, DwVfpRegister::from_code(dst_code / 2));
1069 vmov(DwVfpRegister::from_code(dst_code / 2), scratch);
1079 LowDwVfpRegister scratch = temps.AcquireLowD();
1080 int src_s_code = scratch.low().code() + (src_code & 1);
1081 vmov(scratch, DwVfpRegister::from_code(src_code / 2));
1172 Register scratch = temps.Acquire();
1176 rsb(scratch, shift, Operand(32), SetCC);
1179 and_(scratch, shift, Operand(0x1F));
1180 lsl(dst_high, src_low, Operand(scratch));
1186 orr(dst_high, dst_high, Operand(src_low, LSR, scratch));
1220 Register scratch = temps.Acquire();
1224 rsb(scratch, shift, Operand(32), SetCC);
1227 and_(scratch, shift, Operand(0x1F));
1228 lsr(dst_low, src_high, Operand(scratch));
1235 orr(dst_low, dst_low, Operand(src_high, LSL, scratch));
1269 Register scratch = temps.Acquire();
1273 rsb(scratch, shift, Operand(32), SetCC);
1276 and_(scratch, shift, Operand(0x1F));
1277 asr(dst_low, src_high, Operand(scratch));
1283 orr(dst_low, dst_low, Operand(src_high, LSL, scratch));
1314 Register scratch = temps.Acquire();
1315 mov(scratch, Operand(StackFrame::TypeToMarker(type)));
1316 PushCommonFrame(scratch);
1364 Register scratch = no_reg;
1366 scratch = temps.Acquire();
1367 mov(scratch, Operand(StackFrame::TypeToMarker(type)));
1369 PushCommonFrame(scratch);
1396 DwVfpRegister scratch = temps.AcquireD();
1403 vldr(scratch, MemOperand(sp));
1417 DwVfpRegister scratch = no_dreg;
1419 if (scratch == no_dreg) {
1420 scratch = temps.AcquireD();
1423 vldr(scratch, MemOperand(sp));
1437 Register scratch = temps.Acquire();
1443 mov(scratch, Operand(StackFrame::TypeToMarker(frame_type)));
1444 PushCommonFrame(scratch);
1448 mov(scratch, Operand::Zero());
1449 str(scratch, MemOperand(fp, ExitFrameConstants::kSPOffset));
1453 Move(scratch, ExternalReference::Create(IsolateAddressId::kCEntryFPAddress,
1455 str(fp, MemOperand(scratch));
1456 Move(scratch,
1458 str(cp, MemOperand(scratch));
1462 SaveFPRegs(sp, scratch);
1480 add(scratch, sp, Operand(kPointerSize));
1481 str(scratch, MemOperand(fp, ExitFrameConstants::kSPOffset));
1505 Register scratch = temps.Acquire();
1512 RestoreFPRegs(r3, scratch);
1517 Move(scratch, ExternalReference::Create(IsolateAddressId::kCEntryFPAddress,
1519 str(r3, MemOperand(scratch));
1522 Move(scratch,
1524 ldr(cp, MemOperand(scratch));
1527 Move(scratch,
1529 str(r3, MemOperand(scratch));
1573 void MacroAssembler::StackOverflowCheck(Register num_args, Register scratch,
1579 LoadStackLimit(scratch, StackLimitKind::kRealStackLimit);
1580 // Make scratch the space we have left. The stack might already be overflowed
1581 // here which will cause scratch to become negative.
1582 sub(scratch, sp, scratch);
1584 cmp(scratch, Operand(num_args, LSL, kPointerSizeLog2));
1613 Register scratch = r4;
1614 StackOverflowCheck(expected_parameter_count, scratch, &stack_overflow);
1623 lsl(scratch, expected_parameter_count, Operand(kSystemPointerSizeLog2));
1624 AllocateStackSpace(scratch);
1629 ldr(scratch, MemOperand(src, kSystemPointerSize, PostIndex));
1630 str(scratch, MemOperand(dest, kSystemPointerSize, PostIndex));
1637 LoadRoot(scratch, RootIndex::kUndefinedValue);
1641 str(scratch, MemOperand(r9, kSystemPointerSize, PostIndex));
1807 Register scratch = temps.Acquire();
1810 Move(scratch,
1812 str(r1, MemOperand(scratch));
1838 Register scratch = temps.Acquire();
1839 sub(scratch, value, Operand(lower_limit));
1840 cmp(scratch, Operand(higher_limit - lower_limit));
1856 Register scratch = temps.Acquire();
1857 DCHECK(obj != scratch);
1858 LoadRoot(scratch, index);
1859 cmp(obj, scratch);
1879 // Re-use the input as a scratch register. However, we can only do this if
1889 Register scratch = temps.Acquire();
1891 sub(scratch, result, Operand(1));
1892 cmp(scratch, Operand(0x7FFFFFFE));
2230 Register scratch) {
2237 LoadMap(scratch, object);
2238 CompareInstanceType(scratch, scratch, ALLOCATION_SITE_TYPE);
2243 void TurboAssembler::CheckFor32DRegs(Register scratch) {
2245 Move(scratch, ExternalReference::cpu_features());
2246 ldr(scratch, MemOperand(scratch));
2247 tst(scratch, Operand(1u << VFP32DREGS));
2250 void TurboAssembler::SaveFPRegs(Register location, Register scratch) {
2253 CheckFor32DRegs(scratch);
2259 void TurboAssembler::RestoreFPRegs(Register location, Register scratch) {
2262 CheckFor32DRegs(scratch);
2268 void TurboAssembler::SaveFPRegsToHeap(Register location, Register scratch) {
2271 CheckFor32DRegs(scratch);
2278 Register scratch) {
2281 CheckFor32DRegs(scratch);
2454 Register scratch) {
2461 if (!scratch.is_valid()) scratch = temps.Acquire();
2464 mov(scratch, sp);
2468 str(scratch, MemOperand(sp, stack_passed_arguments * kPointerSize));
2500 Register scratch = temps.Acquire();
2501 Move(scratch, function);
2502 CallCFunctionHelper(scratch, num_reg_arguments, num_double_arguments);
2606 Register scratch = temps.Acquire();
2607 DCHECK(!AreAliased(object, scratch));
2609 Bfc(scratch, object, 0, kPageSizeBits);
2610 ldr(scratch, MemOperand(scratch, BasicMemoryChunk::kFlagsOffset));
2611 tst(scratch, Operand(mask));
2675 Simd128Register scratch = temps.AcquireQ();
2677 vrev64(Neon32, scratch, dst);
2678 vand(dst, dst, scratch);