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_CRANKSHAFT_ARM64_DELAYED_MASM_ARM64_INL_H_
6 #define V8_CRANKSHAFT_ARM64_DELAYED_MASM_ARM64_INL_H_
7 
8 #include "src/crankshaft/arm64/delayed-masm-arm64.h"
9 
10 namespace v8 {
11 namespace internal {
12 
13 #define __ ACCESS_MASM(masm_)
14 
15 
16 void DelayedMasm::EndDelayedUse() {
17   EmitPending();
18   DCHECK(!scratch_register_acquired_);
19   ResetSavedValue();
20 }
21 
22 
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 
32 void DelayedMasm::Fmov(FPRegister fd, FPRegister fn) {
33   EmitPending();
34   __ Fmov(fd, fn);
35 }
36 
37 
38 void DelayedMasm::Fmov(FPRegister fd, double imm) {
39   EmitPending();
40   __ Fmov(fd, imm);
41 }
42 
43 
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 internal
54 }  // namespace v8
55 
56 #endif  // V8_CRANKSHAFT_ARM64_DELAYED_MASM_ARM64_INL_H_
57