Lines Matching defs:scratch
549 // can use a Q as a scratch if NEON is supported.
553 // cannot use it as a scratch.
1200 // Re-use the destination register as a scratch if possible.
1253 // scratch register. In this case, we cannot re-use rn and the assembler
1254 // does not have any scratch registers to spare.
1272 // it first to a scratch register and change the original instruction to
1275 Register scratch = (rd.is_valid() && rd != rn && rd != pc && rd != sp)
1278 mov(scratch, x, LeaveCC, cond);
1279 AddrMode1(instr, rd, rn, Operand(scratch));
1337 // Immediate offset cannot be encoded, load it first to a scratch
1342 Register scratch = (is_load && rd != x.rn_ && rd != pc && rd != sp)
1345 mov(scratch, Operand(x.offset_), LeaveCC,
1347 AddrMode2(instr, rd, MemOperand(x.rn_, scratch, x.am_));
1379 // Immediate offset cannot be encoded, load it first to a scratch
1383 Register scratch = (is_load && rd != x.rn_ && rd != pc && rd != sp)
1386 mov(scratch, Operand(x.offset_), LeaveCC,
1388 AddrMode3(instr, rd, MemOperand(x.rn_, scratch, x.am_));
1395 // to a scratch register.
1398 Register scratch =
1400 mov(scratch, Operand(x.rm_, x.shift_op_, x.shift_imm_), LeaveCC,
1402 AddrMode3(instr, rd, MemOperand(x.rn_, scratch, x.am_));
2074 Register scratch = temps.Acquire();
2075 // Immediate operand cannot be encoded, load it first to a scratch
2077 Move32BitImmediate(scratch, src);
2078 msr(fields, Operand(scratch), cond);
2447 Register scratch = temps.Acquire();
2449 // scratch register.
2450 DCHECK(base != scratch);
2452 add(scratch, base, Operand(offset));
2454 sub(scratch, base, Operand(offset));
2456 emit(cond | 0xD * B24 | d * B22 | B20 | scratch.code() * B16 | vd * B12 |
2467 Register scratch = temps.Acquire();
2468 add(scratch, operand.rn(),
2470 vldr(dst, scratch, 0, cond);
2496 // scratch register.
2498 Register scratch = temps.Acquire();
2499 DCHECK(base != scratch);
2501 add(scratch, base, Operand(offset));
2503 sub(scratch, base, Operand(offset));
2505 emit(cond | d * B22 | 0xD1 * B20 | scratch.code() * B16 | sd * B12 |
2515 Register scratch = temps.Acquire();
2516 add(scratch, operand.rn(),
2518 vldr(dst, scratch, 0, cond);
2546 // scratch register.
2548 Register scratch = temps.Acquire();
2549 DCHECK(base != scratch);
2551 add(scratch, base, Operand(offset));
2553 sub(scratch, base, Operand(offset));
2555 emit(cond | 0xD * B24 | d * B22 | scratch.code() * B16 | vd * B12 |
2566 Register scratch = temps.Acquire();
2567 add(scratch, operand.rn(),
2569 vstr(src, scratch, 0, cond);
2595 // scratch register.
2597 Register scratch = temps.Acquire();
2598 DCHECK(base != scratch);
2600 add(scratch, base, Operand(offset));
2602 sub(scratch, base, Operand(offset));
2604 emit(cond | d * B22 | 0xD0 * B20 | scratch.code() * B16 | sd * B12 |
2614 Register scratch = temps.Acquire();
2615 add(scratch, operand.rn(),
2617 vstr(src, scratch, 0, cond);
2826 Register scratch = temps.Acquire();
2827 mov(scratch, Operand(imm.get_bits()));
2828 vmov(dst, scratch);
2853 Register scratch = temps.Acquire();
2858 mov(scratch, Operand(lo));
2859 vmov(dst, scratch, scratch);
2861 // We only have one spare scratch register.
2862 mov(scratch, Operand(lo));
2863 vmov(NeonS32, dst, 0, scratch);
2866 movt(scratch, hi >> 16);
2868 mov(scratch, Operand(hi));
2870 vmov(NeonS32, dst, 1, scratch);
2874 mov(scratch, Operand(lo));
2876 vmov(dst, scratch, extra_scratch);