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 |