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