1 // Copyright 2013 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #ifndef V8_ARM64_DELAYED_MASM_ARM64_INL_H_
6 #define V8_ARM64_DELAYED_MASM_ARM64_INL_H_
7
8 #include "src/arm64/delayed-masm-arm64.h"
9
10 namespace v8 {
11 namespace internal {
12
13 #define __ ACCESS_MASM(masm_)
14
15
EndDelayedUse()16 void DelayedMasm::EndDelayedUse() {
17 EmitPending();
18 DCHECK(!scratch_register_acquired_);
19 ResetSavedValue();
20 }
21
22
Mov(const Register & rd,const Operand & operand,DiscardMoveMode discard_mode)23 void DelayedMasm::Mov(const Register& rd,
24 const Operand& operand,
25 DiscardMoveMode discard_mode) {
26 EmitPending();
27 DCHECK(!IsScratchRegister(rd) || scratch_register_acquired_);
28 __ Mov(rd, operand, discard_mode);
29 }
30
31
Fmov(FPRegister fd,FPRegister fn)32 void DelayedMasm::Fmov(FPRegister fd, FPRegister fn) {
33 EmitPending();
34 __ Fmov(fd, fn);
35 }
36
37
Fmov(FPRegister fd,double imm)38 void DelayedMasm::Fmov(FPRegister fd, double imm) {
39 EmitPending();
40 __ Fmov(fd, imm);
41 }
42
43
LoadObject(Register result,Handle<Object> object)44 void DelayedMasm::LoadObject(Register result, Handle<Object> object) {
45 EmitPending();
46 DCHECK(!IsScratchRegister(result) || scratch_register_acquired_);
47 __ LoadObject(result, object);
48 }
49
50
51 #undef __
52
53 } } // namespace v8::internal
54
55 #endif // V8_ARM64_DELAYED_MASM_ARM64_INL_H_
56