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