| 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_IA32_LITHIUM_IA32_H_ | 5 #ifndef V8_IA32_LITHIUM_IA32_H_ |
| 6 #define V8_IA32_LITHIUM_IA32_H_ | 6 #define V8_IA32_LITHIUM_IA32_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 137 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 148 V(StoreKeyed) \ | 148 V(StoreKeyed) \ |
| 149 V(StoreKeyedGeneric) \ | 149 V(StoreKeyedGeneric) \ |
| 150 V(StoreNamedField) \ | 150 V(StoreNamedField) \ |
| 151 V(StoreNamedGeneric) \ | 151 V(StoreNamedGeneric) \ |
| 152 V(StringAdd) \ | 152 V(StringAdd) \ |
| 153 V(StringCharCodeAt) \ | 153 V(StringCharCodeAt) \ |
| 154 V(StringCharFromCode) \ | 154 V(StringCharFromCode) \ |
| 155 V(StringCompareAndBranch) \ | 155 V(StringCompareAndBranch) \ |
| 156 V(SubI) \ | 156 V(SubI) \ |
| 157 V(TaggedToI) \ | 157 V(TaggedToI) \ |
| 158 V(TailCallThroughMegamorphicCache) \ |
| 158 V(ThisFunction) \ | 159 V(ThisFunction) \ |
| 159 V(ToFastProperties) \ | 160 V(ToFastProperties) \ |
| 160 V(TransitionElementsKind) \ | 161 V(TransitionElementsKind) \ |
| 161 V(TrapAllocationMemento) \ | 162 V(TrapAllocationMemento) \ |
| 162 V(Typeof) \ | 163 V(Typeof) \ |
| 163 V(TypeofIsAndBranch) \ | 164 V(TypeofIsAndBranch) \ |
| 164 V(Uint32ToDouble) \ | 165 V(Uint32ToDouble) \ |
| 165 V(UnknownOSRValue) \ | 166 V(UnknownOSRValue) \ |
| 166 V(WrapReceiver) | 167 V(WrapReceiver) |
| 167 | 168 |
| (...skipping 304 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 472 inputs_[0] = context; | 473 inputs_[0] = context; |
| 473 } | 474 } |
| 474 | 475 |
| 475 LOperand* context() { return inputs_[0]; } | 476 LOperand* context() { return inputs_[0]; } |
| 476 | 477 |
| 477 DECLARE_CONCRETE_INSTRUCTION(CallStub, "call-stub") | 478 DECLARE_CONCRETE_INSTRUCTION(CallStub, "call-stub") |
| 478 DECLARE_HYDROGEN_ACCESSOR(CallStub) | 479 DECLARE_HYDROGEN_ACCESSOR(CallStub) |
| 479 }; | 480 }; |
| 480 | 481 |
| 481 | 482 |
| 483 class LTailCallThroughMegamorphicCache FINAL |
| 484 : public LTemplateInstruction<0, 3, 0> { |
| 485 public: |
| 486 explicit LTailCallThroughMegamorphicCache(LOperand* context, |
| 487 LOperand* receiver, |
| 488 LOperand* name) { |
| 489 inputs_[0] = context; |
| 490 inputs_[1] = receiver; |
| 491 inputs_[2] = name; |
| 492 } |
| 493 |
| 494 LOperand* context() { return inputs_[0]; } |
| 495 LOperand* receiver() { return inputs_[1]; } |
| 496 LOperand* name() { return inputs_[2]; } |
| 497 |
| 498 DECLARE_CONCRETE_INSTRUCTION(TailCallThroughMegamorphicCache, |
| 499 "tail-call-through-megamorphic-cache") |
| 500 DECLARE_HYDROGEN_ACCESSOR(TailCallThroughMegamorphicCache) |
| 501 }; |
| 502 |
| 503 |
| 482 class LUnknownOSRValue FINAL : public LTemplateInstruction<1, 0, 0> { | 504 class LUnknownOSRValue FINAL : public LTemplateInstruction<1, 0, 0> { |
| 483 public: | 505 public: |
| 484 virtual bool HasInterestingComment(LCodeGen* gen) const OVERRIDE { | 506 virtual bool HasInterestingComment(LCodeGen* gen) const OVERRIDE { |
| 485 return false; | 507 return false; |
| 486 } | 508 } |
| 487 DECLARE_CONCRETE_INSTRUCTION(UnknownOSRValue, "unknown-osr-value") | 509 DECLARE_CONCRETE_INSTRUCTION(UnknownOSRValue, "unknown-osr-value") |
| 488 }; | 510 }; |
| 489 | 511 |
| 490 | 512 |
| 491 template<int I, int T> | 513 template<int I, int T> |
| (...skipping 1401 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1893 public: | 1915 public: |
| 1894 LCallWithDescriptor(CallInterfaceDescriptor descriptor, | 1916 LCallWithDescriptor(CallInterfaceDescriptor descriptor, |
| 1895 const ZoneList<LOperand*>& operands, Zone* zone) | 1917 const ZoneList<LOperand*>& operands, Zone* zone) |
| 1896 : inputs_(descriptor.GetRegisterParameterCount() + 1, zone) { | 1918 : inputs_(descriptor.GetRegisterParameterCount() + 1, zone) { |
| 1897 DCHECK(descriptor.GetRegisterParameterCount() + 1 == operands.length()); | 1919 DCHECK(descriptor.GetRegisterParameterCount() + 1 == operands.length()); |
| 1898 inputs_.AddAll(operands, zone); | 1920 inputs_.AddAll(operands, zone); |
| 1899 } | 1921 } |
| 1900 | 1922 |
| 1901 LOperand* target() const { return inputs_[0]; } | 1923 LOperand* target() const { return inputs_[0]; } |
| 1902 | 1924 |
| 1925 DECLARE_HYDROGEN_ACCESSOR(CallWithDescriptor) |
| 1926 |
| 1903 private: | 1927 private: |
| 1904 DECLARE_CONCRETE_INSTRUCTION(CallWithDescriptor, "call-with-descriptor") | 1928 DECLARE_CONCRETE_INSTRUCTION(CallWithDescriptor, "call-with-descriptor") |
| 1905 DECLARE_HYDROGEN_ACCESSOR(CallWithDescriptor) | |
| 1906 | 1929 |
| 1907 virtual void PrintDataTo(StringStream* stream) OVERRIDE; | 1930 virtual void PrintDataTo(StringStream* stream) OVERRIDE; |
| 1908 | 1931 |
| 1909 int arity() const { return hydrogen()->argument_count() - 1; } | 1932 int arity() const { return hydrogen()->argument_count() - 1; } |
| 1910 | 1933 |
| 1911 ZoneList<LOperand*> inputs_; | 1934 ZoneList<LOperand*> inputs_; |
| 1912 | 1935 |
| 1913 // Iterator support. | 1936 // Iterator support. |
| 1914 virtual int InputCount() FINAL OVERRIDE { return inputs_.length(); } | 1937 virtual int InputCount() FINAL OVERRIDE { return inputs_.length(); } |
| 1915 virtual LOperand* InputAt(int i) FINAL OVERRIDE { return inputs_[i]; } | 1938 virtual LOperand* InputAt(int i) FINAL OVERRIDE { return inputs_[i]; } |
| (...skipping 975 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2891 | 2914 |
| 2892 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); | 2915 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); |
| 2893 }; | 2916 }; |
| 2894 | 2917 |
| 2895 #undef DECLARE_HYDROGEN_ACCESSOR | 2918 #undef DECLARE_HYDROGEN_ACCESSOR |
| 2896 #undef DECLARE_CONCRETE_INSTRUCTION | 2919 #undef DECLARE_CONCRETE_INSTRUCTION |
| 2897 | 2920 |
| 2898 } } // namespace v8::internal | 2921 } } // namespace v8::internal |
| 2899 | 2922 |
| 2900 #endif // V8_IA32_LITHIUM_IA32_H_ | 2923 #endif // V8_IA32_LITHIUM_IA32_H_ |
| OLD | NEW |