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
10namespace v8 {
11namespace internal {
12
13#define __ ACCESS_MASM(masm_)
14
15
16void DelayedMasm::EndDelayedUse() {
17  EmitPending();
18  DCHECK(!scratch_register_acquired_);
19  ResetSavedValue();
20}
21
22
23void 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
32void DelayedMasm::Fmov(FPRegister fd, FPRegister fn) {
33  EmitPending();
34  __ Fmov(fd, fn);
35}
36
37
38void DelayedMasm::Fmov(FPRegister fd, double imm) {
39  EmitPending();
40  __ Fmov(fd, imm);
41}
42
43
44void 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