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_CODE_STUBS_H_ | 5 #ifndef V8_CODE_STUBS_H_ |
6 #define V8_CODE_STUBS_H_ | 6 #define V8_CODE_STUBS_H_ |
7 | 7 |
8 #include "src/allocation.h" | 8 #include "src/allocation.h" |
9 #include "src/assembler.h" | 9 #include "src/assembler.h" |
10 #include "src/codegen.h" | 10 #include "src/codegen.h" |
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
87 V(TransitionElementsKind) \ | 87 V(TransitionElementsKind) \ |
88 V(VectorKeyedLoad) \ | 88 V(VectorKeyedLoad) \ |
89 V(VectorLoad) \ | 89 V(VectorLoad) \ |
90 /* IC Handler stubs */ \ | 90 /* IC Handler stubs */ \ |
91 V(LoadConstant) \ | 91 V(LoadConstant) \ |
92 V(LoadField) \ | 92 V(LoadField) \ |
93 V(KeyedLoadSloppyArguments) \ | 93 V(KeyedLoadSloppyArguments) \ |
94 V(StoreField) \ | 94 V(StoreField) \ |
95 V(StoreGlobal) \ | 95 V(StoreGlobal) \ |
96 V(StoreTransition) \ | 96 V(StoreTransition) \ |
97 V(StringLength) | 97 V(StringLength) \ |
| 98 V(RestParamAccess) |
98 | 99 |
99 // List of code stubs only used on ARM 32 bits platforms. | 100 // List of code stubs only used on ARM 32 bits platforms. |
100 #if V8_TARGET_ARCH_ARM | 101 #if V8_TARGET_ARCH_ARM |
101 #define CODE_STUB_LIST_ARM(V) V(DirectCEntry) | 102 #define CODE_STUB_LIST_ARM(V) V(DirectCEntry) |
102 | 103 |
103 #else | 104 #else |
104 #define CODE_STUB_LIST_ARM(V) | 105 #define CODE_STUB_LIST_ARM(V) |
105 #endif | 106 #endif |
106 | 107 |
107 // List of code stubs only used on ARM 64 bits platforms. | 108 // List of code stubs only used on ARM 64 bits platforms. |
(...skipping 1504 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1612 void GenerateNewSloppySlow(MacroAssembler* masm); | 1613 void GenerateNewSloppySlow(MacroAssembler* masm); |
1613 | 1614 |
1614 void PrintName(std::ostream& os) const OVERRIDE; // NOLINT | 1615 void PrintName(std::ostream& os) const OVERRIDE; // NOLINT |
1615 | 1616 |
1616 class TypeBits : public BitField<Type, 0, 2> {}; | 1617 class TypeBits : public BitField<Type, 0, 2> {}; |
1617 | 1618 |
1618 DEFINE_PLATFORM_CODE_STUB(ArgumentsAccess, PlatformCodeStub); | 1619 DEFINE_PLATFORM_CODE_STUB(ArgumentsAccess, PlatformCodeStub); |
1619 }; | 1620 }; |
1620 | 1621 |
1621 | 1622 |
| 1623 class RestParamAccessStub: public PlatformCodeStub { |
| 1624 public: |
| 1625 explicit RestParamAccessStub(Isolate* isolate) : PlatformCodeStub(isolate) { } |
| 1626 |
| 1627 CallInterfaceDescriptor GetCallInterfaceDescriptor() OVERRIDE { |
| 1628 return ContextOnlyDescriptor(isolate()); |
| 1629 } |
| 1630 |
| 1631 private: |
| 1632 void GenerateNew(MacroAssembler* masm); |
| 1633 |
| 1634 virtual void PrintName(std::ostream& os) const OVERRIDE; // NOLINT |
| 1635 |
| 1636 DEFINE_PLATFORM_CODE_STUB(RestParamAccess, PlatformCodeStub); |
| 1637 }; |
| 1638 |
| 1639 |
1622 class RegExpExecStub: public PlatformCodeStub { | 1640 class RegExpExecStub: public PlatformCodeStub { |
1623 public: | 1641 public: |
1624 explicit RegExpExecStub(Isolate* isolate) : PlatformCodeStub(isolate) { } | 1642 explicit RegExpExecStub(Isolate* isolate) : PlatformCodeStub(isolate) { } |
1625 | 1643 |
1626 DEFINE_CALL_INTERFACE_DESCRIPTOR(ContextOnly); | 1644 DEFINE_CALL_INTERFACE_DESCRIPTOR(ContextOnly); |
1627 DEFINE_PLATFORM_CODE_STUB(RegExpExec, PlatformCodeStub); | 1645 DEFINE_PLATFORM_CODE_STUB(RegExpExec, PlatformCodeStub); |
1628 }; | 1646 }; |
1629 | 1647 |
1630 | 1648 |
1631 class RegExpConstructResultStub FINAL : public HydrogenCodeStub { | 1649 class RegExpConstructResultStub FINAL : public HydrogenCodeStub { |
(...skipping 1047 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2679 | 2697 |
2680 #undef DEFINE_CALL_INTERFACE_DESCRIPTOR | 2698 #undef DEFINE_CALL_INTERFACE_DESCRIPTOR |
2681 #undef DEFINE_PLATFORM_CODE_STUB | 2699 #undef DEFINE_PLATFORM_CODE_STUB |
2682 #undef DEFINE_HANDLER_CODE_STUB | 2700 #undef DEFINE_HANDLER_CODE_STUB |
2683 #undef DEFINE_HYDROGEN_CODE_STUB | 2701 #undef DEFINE_HYDROGEN_CODE_STUB |
2684 #undef DEFINE_CODE_STUB | 2702 #undef DEFINE_CODE_STUB |
2685 #undef DEFINE_CODE_STUB_BASE | 2703 #undef DEFINE_CODE_STUB_BASE |
2686 } } // namespace v8::internal | 2704 } } // namespace v8::internal |
2687 | 2705 |
2688 #endif // V8_CODE_STUBS_H_ | 2706 #endif // V8_CODE_STUBS_H_ |
OLD | NEW |