5 #ifndef V8_ARM64_DELAYED_MASM_ARM64_H_
6 #define V8_ARM64_DELAYED_MASM_ARM64_H_
26 : cgen_(owner), masm_(masm), scratch_register_(scratch_register),
27 scratch_register_used_(
false), pending_(kNone), saved_value_(0) {
29 pending_register_ =
no_reg;
32 scratch_register_acquired_ =
false;
36 DCHECK(!scratch_register_acquired_);
37 DCHECK(!scratch_register_used_);
43 scratch_register_used_ =
true;
44 return scratch_register_;
47 return reg.
Is(scratch_register_);
56 DCHECK(!scratch_register_acquired_);
57 scratch_register_acquired_ =
true;
62 DCHECK(scratch_register_acquired_);
63 scratch_register_acquired_ =
false;
66 bool pending() {
return pending_ != kNone; }
88 pending_register_ =
no_reg;
90 pending_address_src_ = tmp;
91 pending_address_dst_ = tmp;
97 masm_->InitializeRootRegister();
104 if (saved_value_ != saved_value) {
105 masm_->Mov(ScratchRegister(), saved_value);
106 saved_value_ = saved_value;
158 bool scratch_register_acquired_;
void AcquireScratchRegister()
bool scratch_register_used_
void Store(const CPURegister &rd, const MemOperand &operand)
void Mov(const Register &rd, const Operand &operand, DiscardMoveMode discard_mode=kDontDiscardForSameWReg)
const Register & ScratchRegister()
void reset_scratch_register_used()
void StoreConstant(uint64_t value, const MemOperand &operand)
Register scratch_register_
MemOperand pending_address_src_
DelayedMasm(LCodeGen *owner, MacroAssembler *masm, const Register &scratch_register)
bool scratch_register_used() const
void InitializeRootRegister()
bool IsScratchRegister(const CPURegister ®)
CPURegister pending_register_
void LoadObject(Register result, Handle< Object > object)
MemOperand pending_address_dst_
void ReleaseScratchRegister()
void Load(const CPURegister &rd, const MemOperand &operand)
void Fmov(FPRegister fd, double imm)
void Fmov(FPRegister fd, FPRegister fn)
void StackSlotMove(LOperand *src, LOperand *dst)
void SetSavedValue(uint64_t saved_value)
#define DCHECK(condition)
@ kDontDiscardForSameWReg
Debugger support for the V8 JavaScript engine.
bool Is(const CPURegister &other) const