2c446303716ecd2a5d40834a4fb88e1e09f72db5
[platform/upstream/v8.git] / src / arm64 / delayed-masm-arm64-inl.h
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
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 v8::internal
54
55 #endif  // V8_ARM64_DELAYED_MASM_ARM64_INL_H_