| OLD | NEW |
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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_ARM_LITHIUM_ARM_H_ | 5 #ifndef V8_ARM_LITHIUM_ARM_H_ |
| 6 #define V8_ARM_LITHIUM_ARM_H_ | 6 #define V8_ARM_LITHIUM_ARM_H_ |
| 7 | 7 |
| 8 #include "src/hydrogen.h" | 8 #include "src/hydrogen.h" |
| 9 #include "src/lithium.h" | 9 #include "src/lithium.h" |
| 10 #include "src/lithium-allocator.h" | 10 #include "src/lithium-allocator.h" |
| (...skipping 466 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 477 } | 477 } |
| 478 | 478 |
| 479 LOperand* context() { return inputs_[0]; } | 479 LOperand* context() { return inputs_[0]; } |
| 480 | 480 |
| 481 DECLARE_CONCRETE_INSTRUCTION(CallStub, "call-stub") | 481 DECLARE_CONCRETE_INSTRUCTION(CallStub, "call-stub") |
| 482 DECLARE_HYDROGEN_ACCESSOR(CallStub) | 482 DECLARE_HYDROGEN_ACCESSOR(CallStub) |
| 483 }; | 483 }; |
| 484 | 484 |
| 485 | 485 |
| 486 class LTailCallThroughMegamorphicCache FINAL | 486 class LTailCallThroughMegamorphicCache FINAL |
| 487 : public LTemplateInstruction<0, 3, 0> { | 487 : public LTemplateInstruction<0, 5, 0> { |
| 488 public: | 488 public: |
| 489 explicit LTailCallThroughMegamorphicCache(LOperand* context, | 489 LTailCallThroughMegamorphicCache(LOperand* context, LOperand* receiver, |
| 490 LOperand* receiver, | 490 LOperand* name, LOperand* slot, |
| 491 LOperand* name) { | 491 LOperand* vector) { |
| 492 inputs_[0] = context; | 492 inputs_[0] = context; |
| 493 inputs_[1] = receiver; | 493 inputs_[1] = receiver; |
| 494 inputs_[2] = name; | 494 inputs_[2] = name; |
| 495 inputs_[3] = slot; |
| 496 inputs_[4] = vector; |
| 495 } | 497 } |
| 496 | 498 |
| 497 LOperand* context() { return inputs_[0]; } | 499 LOperand* context() { return inputs_[0]; } |
| 498 LOperand* receiver() { return inputs_[1]; } | 500 LOperand* receiver() { return inputs_[1]; } |
| 499 LOperand* name() { return inputs_[2]; } | 501 LOperand* name() { return inputs_[2]; } |
| 502 LOperand* slot() { return inputs_[3]; } |
| 503 LOperand* vector() { return inputs_[4]; } |
| 500 | 504 |
| 501 DECLARE_CONCRETE_INSTRUCTION(TailCallThroughMegamorphicCache, | 505 DECLARE_CONCRETE_INSTRUCTION(TailCallThroughMegamorphicCache, |
| 502 "tail-call-through-megamorphic-cache") | 506 "tail-call-through-megamorphic-cache") |
| 503 DECLARE_HYDROGEN_ACCESSOR(TailCallThroughMegamorphicCache) | 507 DECLARE_HYDROGEN_ACCESSOR(TailCallThroughMegamorphicCache) |
| 504 }; | 508 }; |
| 505 | 509 |
| 510 |
| 506 class LUnknownOSRValue FINAL : public LTemplateInstruction<1, 0, 0> { | 511 class LUnknownOSRValue FINAL : public LTemplateInstruction<1, 0, 0> { |
| 507 public: | 512 public: |
| 508 virtual bool HasInterestingComment(LCodeGen* gen) const OVERRIDE { | 513 virtual bool HasInterestingComment(LCodeGen* gen) const OVERRIDE { |
| 509 return false; | 514 return false; |
| 510 } | 515 } |
| 511 DECLARE_CONCRETE_INSTRUCTION(UnknownOSRValue, "unknown-osr-value") | 516 DECLARE_CONCRETE_INSTRUCTION(UnknownOSRValue, "unknown-osr-value") |
| 512 }; | 517 }; |
| 513 | 518 |
| 514 | 519 |
| 515 template<int I, int T> | 520 template<int I, int T> |
| (...skipping 1384 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1900 : descriptor_(descriptor), | 1905 : descriptor_(descriptor), |
| 1901 inputs_(descriptor.GetRegisterParameterCount() + 1, zone) { | 1906 inputs_(descriptor.GetRegisterParameterCount() + 1, zone) { |
| 1902 DCHECK(descriptor.GetRegisterParameterCount() + 1 == operands.length()); | 1907 DCHECK(descriptor.GetRegisterParameterCount() + 1 == operands.length()); |
| 1903 inputs_.AddAll(operands, zone); | 1908 inputs_.AddAll(operands, zone); |
| 1904 } | 1909 } |
| 1905 | 1910 |
| 1906 LOperand* target() const { return inputs_[0]; } | 1911 LOperand* target() const { return inputs_[0]; } |
| 1907 | 1912 |
| 1908 const CallInterfaceDescriptor descriptor() { return descriptor_; } | 1913 const CallInterfaceDescriptor descriptor() { return descriptor_; } |
| 1909 | 1914 |
| 1915 DECLARE_HYDROGEN_ACCESSOR(CallWithDescriptor) |
| 1916 |
| 1910 private: | 1917 private: |
| 1911 DECLARE_CONCRETE_INSTRUCTION(CallWithDescriptor, "call-with-descriptor") | 1918 DECLARE_CONCRETE_INSTRUCTION(CallWithDescriptor, "call-with-descriptor") |
| 1912 DECLARE_HYDROGEN_ACCESSOR(CallWithDescriptor) | |
| 1913 | 1919 |
| 1914 virtual void PrintDataTo(StringStream* stream) OVERRIDE; | 1920 virtual void PrintDataTo(StringStream* stream) OVERRIDE; |
| 1915 | 1921 |
| 1916 int arity() const { return hydrogen()->argument_count() - 1; } | 1922 int arity() const { return hydrogen()->argument_count() - 1; } |
| 1917 | 1923 |
| 1918 CallInterfaceDescriptor descriptor_; | 1924 CallInterfaceDescriptor descriptor_; |
| 1919 ZoneList<LOperand*> inputs_; | 1925 ZoneList<LOperand*> inputs_; |
| 1920 | 1926 |
| 1921 // Iterator support. | 1927 // Iterator support. |
| 1922 virtual int InputCount() FINAL OVERRIDE { return inputs_.length(); } | 1928 virtual int InputCount() FINAL OVERRIDE { return inputs_.length(); } |
| (...skipping 966 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2889 | 2895 |
| 2890 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); | 2896 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); |
| 2891 }; | 2897 }; |
| 2892 | 2898 |
| 2893 #undef DECLARE_HYDROGEN_ACCESSOR | 2899 #undef DECLARE_HYDROGEN_ACCESSOR |
| 2894 #undef DECLARE_CONCRETE_INSTRUCTION | 2900 #undef DECLARE_CONCRETE_INSTRUCTION |
| 2895 | 2901 |
| 2896 } } // namespace v8::internal | 2902 } } // namespace v8::internal |
| 2897 | 2903 |
| 2898 #endif // V8_ARM_LITHIUM_ARM_H_ | 2904 #endif // V8_ARM_LITHIUM_ARM_H_ |
| OLD | NEW |