OLD | NEW |
(Empty) | |
| 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 ASSERT(!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 __ Mov(rd, operand, discard_mode); |
| 28 if (IsScratchRegister(rd)) { |
| 29 ASSERT(scratch_register_acquired_); |
| 30 if (operand.IsImmediate()) { |
| 31 saved_value_ = operand.immediate(); |
| 32 } else { |
| 33 ResetSavedValue(); |
| 34 } |
| 35 } |
| 36 } |
| 37 |
| 38 |
| 39 void DelayedMasm::Fmov(FPRegister fd, FPRegister fn) { |
| 40 EmitPending(); |
| 41 __ Fmov(fd, fn); |
| 42 } |
| 43 |
| 44 |
| 45 void DelayedMasm::Fmov(FPRegister fd, double imm) { |
| 46 EmitPending(); |
| 47 __ Fmov(fd, imm); |
| 48 } |
| 49 |
| 50 |
| 51 void DelayedMasm::LoadObject(Register result, Handle<Object> object) { |
| 52 EmitPending(); |
| 53 __ LoadObject(result, object); |
| 54 if (IsScratchRegister(result)) { |
| 55 ASSERT(scratch_register_acquired_); |
| 56 ResetSavedValue(); |
| 57 } |
| 58 } |
| 59 |
| 60 |
| 61 #undef __ |
| 62 |
| 63 } } // namespace v8::internal |
| 64 |
| 65 #endif // V8_ARM64_DELAYED_MASM_ARM64_INL_H_ |
OLD | NEW |