| OLD | NEW |
| 1 // Copyright 2013 the V8 project authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef V8_ARM64_LITHIUM_ARM64_H_ | 5 #ifndef V8_ARM64_LITHIUM_ARM64_H_ |
| 6 #define V8_ARM64_LITHIUM_ARM64_H_ | 6 #define V8_ARM64_LITHIUM_ARM64_H_ |
| 7 | 7 |
| 8 #include "hydrogen.h" | 8 #include "hydrogen.h" |
| 9 #include "lithium-allocator.h" | 9 #include "lithium-allocator.h" |
| 10 #include "lithium.h" | 10 #include "lithium.h" |
| (...skipping 229 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 240 HValue* hydrogen_value() const { return hydrogen_value_; } | 240 HValue* hydrogen_value() const { return hydrogen_value_; } |
| 241 | 241 |
| 242 virtual void SetDeferredLazyDeoptimizationEnvironment(LEnvironment* env) { } | 242 virtual void SetDeferredLazyDeoptimizationEnvironment(LEnvironment* env) { } |
| 243 | 243 |
| 244 void MarkAsCall() { bit_field_ = IsCallBits::update(bit_field_, true); } | 244 void MarkAsCall() { bit_field_ = IsCallBits::update(bit_field_, true); } |
| 245 bool IsCall() const { return IsCallBits::decode(bit_field_); } | 245 bool IsCall() const { return IsCallBits::decode(bit_field_); } |
| 246 | 246 |
| 247 // Interface to the register allocator and iterators. | 247 // Interface to the register allocator and iterators. |
| 248 bool ClobbersTemps() const { return IsCall(); } | 248 bool ClobbersTemps() const { return IsCall(); } |
| 249 bool ClobbersRegisters() const { return IsCall(); } | 249 bool ClobbersRegisters() const { return IsCall(); } |
| 250 virtual bool ClobbersDoubleRegisters() const { return IsCall(); } | 250 virtual bool ClobbersDoubleRegisters(Isolate* isolate) const V8_OVERRIDE { |
| 251 return IsCall(); |
| 252 } |
| 251 bool IsMarkedAsCall() const { return IsCall(); } | 253 bool IsMarkedAsCall() const { return IsCall(); } |
| 252 | 254 |
| 253 virtual bool HasResult() const = 0; | 255 virtual bool HasResult() const = 0; |
| 254 virtual LOperand* result() const = 0; | 256 virtual LOperand* result() const = 0; |
| 255 | 257 |
| 256 virtual int InputCount() = 0; | 258 virtual int InputCount() = 0; |
| 257 virtual LOperand* InputAt(int i) = 0; | 259 virtual LOperand* InputAt(int i) = 0; |
| 258 virtual int TempCount() = 0; | 260 virtual int TempCount() = 0; |
| 259 virtual LOperand* TempAt(int i) = 0; | 261 virtual LOperand* TempAt(int i) = 0; |
| 260 | 262 |
| (...skipping 596 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 857 public: | 859 public: |
| 858 explicit LCallRuntime(LOperand* context) { | 860 explicit LCallRuntime(LOperand* context) { |
| 859 inputs_[0] = context; | 861 inputs_[0] = context; |
| 860 } | 862 } |
| 861 | 863 |
| 862 LOperand* context() { return inputs_[0]; } | 864 LOperand* context() { return inputs_[0]; } |
| 863 | 865 |
| 864 DECLARE_CONCRETE_INSTRUCTION(CallRuntime, "call-runtime") | 866 DECLARE_CONCRETE_INSTRUCTION(CallRuntime, "call-runtime") |
| 865 DECLARE_HYDROGEN_ACCESSOR(CallRuntime) | 867 DECLARE_HYDROGEN_ACCESSOR(CallRuntime) |
| 866 | 868 |
| 867 virtual bool ClobbersDoubleRegisters() const V8_OVERRIDE { | 869 virtual bool ClobbersDoubleRegisters(Isolate* isolate) const V8_OVERRIDE { |
| 868 return save_doubles() == kDontSaveFPRegs; | 870 return save_doubles() == kDontSaveFPRegs; |
| 869 } | 871 } |
| 870 | 872 |
| 871 const Runtime::Function* function() const { return hydrogen()->function(); } | 873 const Runtime::Function* function() const { return hydrogen()->function(); } |
| 872 int arity() const { return hydrogen()->argument_count(); } | 874 int arity() const { return hydrogen()->argument_count(); } |
| 873 SaveFPRegsMode save_doubles() const { return hydrogen()->save_doubles(); } | 875 SaveFPRegsMode save_doubles() const { return hydrogen()->save_doubles(); } |
| 874 }; | 876 }; |
| 875 | 877 |
| 876 | 878 |
| 877 class LCallStub V8_FINAL : public LTemplateInstruction<1, 1, 0> { | 879 class LCallStub V8_FINAL : public LTemplateInstruction<1, 1, 0> { |
| (...skipping 2190 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3068 | 3070 |
| 3069 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); | 3071 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); |
| 3070 }; | 3072 }; |
| 3071 | 3073 |
| 3072 #undef DECLARE_HYDROGEN_ACCESSOR | 3074 #undef DECLARE_HYDROGEN_ACCESSOR |
| 3073 #undef DECLARE_CONCRETE_INSTRUCTION | 3075 #undef DECLARE_CONCRETE_INSTRUCTION |
| 3074 | 3076 |
| 3075 } } // namespace v8::internal | 3077 } } // namespace v8::internal |
| 3076 | 3078 |
| 3077 #endif // V8_ARM64_LITHIUM_ARM64_H_ | 3079 #endif // V8_ARM64_LITHIUM_ARM64_H_ |
| OLD | NEW |