1975b940441085887fc02bebf8877d5ec97e1e06cmachenbach@chromium.org// Copyright 2013 the V8 project authors. All rights reserved.
2975b940441085887fc02bebf8877d5ec97e1e06cmachenbach@chromium.org// Use of this source code is governed by a BSD-style license that can be
3975b940441085887fc02bebf8877d5ec97e1e06cmachenbach@chromium.org// found in the LICENSE file.
4975b940441085887fc02bebf8877d5ec97e1e06cmachenbach@chromium.org
5975b940441085887fc02bebf8877d5ec97e1e06cmachenbach@chromium.org#ifndef V8_ARM64_DELAYED_MASM_ARM64_INL_H_
6975b940441085887fc02bebf8877d5ec97e1e06cmachenbach@chromium.org#define V8_ARM64_DELAYED_MASM_ARM64_INL_H_
7975b940441085887fc02bebf8877d5ec97e1e06cmachenbach@chromium.org
8975b940441085887fc02bebf8877d5ec97e1e06cmachenbach@chromium.org#include "src/arm64/delayed-masm-arm64.h"
9975b940441085887fc02bebf8877d5ec97e1e06cmachenbach@chromium.org
10975b940441085887fc02bebf8877d5ec97e1e06cmachenbach@chromium.orgnamespace v8 {
11975b940441085887fc02bebf8877d5ec97e1e06cmachenbach@chromium.orgnamespace internal {
12975b940441085887fc02bebf8877d5ec97e1e06cmachenbach@chromium.org
13975b940441085887fc02bebf8877d5ec97e1e06cmachenbach@chromium.org#define __ ACCESS_MASM(masm_)
14975b940441085887fc02bebf8877d5ec97e1e06cmachenbach@chromium.org
15975b940441085887fc02bebf8877d5ec97e1e06cmachenbach@chromium.org
16975b940441085887fc02bebf8877d5ec97e1e06cmachenbach@chromium.orgvoid DelayedMasm::EndDelayedUse() {
17975b940441085887fc02bebf8877d5ec97e1e06cmachenbach@chromium.org  EmitPending();
18e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org  DCHECK(!scratch_register_acquired_);
19975b940441085887fc02bebf8877d5ec97e1e06cmachenbach@chromium.org  ResetSavedValue();
20975b940441085887fc02bebf8877d5ec97e1e06cmachenbach@chromium.org}
21975b940441085887fc02bebf8877d5ec97e1e06cmachenbach@chromium.org
22975b940441085887fc02bebf8877d5ec97e1e06cmachenbach@chromium.org
23975b940441085887fc02bebf8877d5ec97e1e06cmachenbach@chromium.orgvoid DelayedMasm::Mov(const Register& rd,
24975b940441085887fc02bebf8877d5ec97e1e06cmachenbach@chromium.org                      const Operand& operand,
25975b940441085887fc02bebf8877d5ec97e1e06cmachenbach@chromium.org                      DiscardMoveMode discard_mode) {
26975b940441085887fc02bebf8877d5ec97e1e06cmachenbach@chromium.org  EmitPending();
27e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org  DCHECK(!IsScratchRegister(rd) || scratch_register_acquired_);
28975b940441085887fc02bebf8877d5ec97e1e06cmachenbach@chromium.org  __ Mov(rd, operand, discard_mode);
29975b940441085887fc02bebf8877d5ec97e1e06cmachenbach@chromium.org}
30975b940441085887fc02bebf8877d5ec97e1e06cmachenbach@chromium.org
31975b940441085887fc02bebf8877d5ec97e1e06cmachenbach@chromium.org
32975b940441085887fc02bebf8877d5ec97e1e06cmachenbach@chromium.orgvoid DelayedMasm::Fmov(FPRegister fd, FPRegister fn) {
33975b940441085887fc02bebf8877d5ec97e1e06cmachenbach@chromium.org  EmitPending();
34975b940441085887fc02bebf8877d5ec97e1e06cmachenbach@chromium.org  __ Fmov(fd, fn);
35975b940441085887fc02bebf8877d5ec97e1e06cmachenbach@chromium.org}
36975b940441085887fc02bebf8877d5ec97e1e06cmachenbach@chromium.org
37975b940441085887fc02bebf8877d5ec97e1e06cmachenbach@chromium.org
38975b940441085887fc02bebf8877d5ec97e1e06cmachenbach@chromium.orgvoid DelayedMasm::Fmov(FPRegister fd, double imm) {
39975b940441085887fc02bebf8877d5ec97e1e06cmachenbach@chromium.org  EmitPending();
40975b940441085887fc02bebf8877d5ec97e1e06cmachenbach@chromium.org  __ Fmov(fd, imm);
41975b940441085887fc02bebf8877d5ec97e1e06cmachenbach@chromium.org}
42975b940441085887fc02bebf8877d5ec97e1e06cmachenbach@chromium.org
43975b940441085887fc02bebf8877d5ec97e1e06cmachenbach@chromium.org
44975b940441085887fc02bebf8877d5ec97e1e06cmachenbach@chromium.orgvoid DelayedMasm::LoadObject(Register result, Handle<Object> object) {
45975b940441085887fc02bebf8877d5ec97e1e06cmachenbach@chromium.org  EmitPending();
46e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org  DCHECK(!IsScratchRegister(result) || scratch_register_acquired_);
47975b940441085887fc02bebf8877d5ec97e1e06cmachenbach@chromium.org  __ LoadObject(result, object);
48975b940441085887fc02bebf8877d5ec97e1e06cmachenbach@chromium.org}
49975b940441085887fc02bebf8877d5ec97e1e06cmachenbach@chromium.org
50975b940441085887fc02bebf8877d5ec97e1e06cmachenbach@chromium.org
51975b940441085887fc02bebf8877d5ec97e1e06cmachenbach@chromium.org#undef __
52975b940441085887fc02bebf8877d5ec97e1e06cmachenbach@chromium.org
53975b940441085887fc02bebf8877d5ec97e1e06cmachenbach@chromium.org} }  // namespace v8::internal
54975b940441085887fc02bebf8877d5ec97e1e06cmachenbach@chromium.org
55975b940441085887fc02bebf8877d5ec97e1e06cmachenbach@chromium.org#endif  // V8_ARM64_DELAYED_MASM_ARM64_INL_H_
56