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 1535 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1643 | 1644 |
1644 void PrintName(std::ostream& os) const OVERRIDE; // NOLINT | 1645 void PrintName(std::ostream& os) const OVERRIDE; // NOLINT |
1645 | 1646 |
1646 class TypeBits : public BitField<Type, 0, 2> {}; | 1647 class TypeBits : public BitField<Type, 0, 2> {}; |
1647 class HasNewTargetBits : public BitField<HasNewTarget, 2, 1> {}; | 1648 class HasNewTargetBits : public BitField<HasNewTarget, 2, 1> {}; |
1648 | 1649 |
1649 DEFINE_PLATFORM_CODE_STUB(ArgumentsAccess, PlatformCodeStub); | 1650 DEFINE_PLATFORM_CODE_STUB(ArgumentsAccess, PlatformCodeStub); |
1650 }; | 1651 }; |
1651 | 1652 |
1652 | 1653 |
| 1654 class RestParamAccessStub: public PlatformCodeStub { |
| 1655 public: |
| 1656 explicit RestParamAccessStub(Isolate* isolate) : PlatformCodeStub(isolate) { } |
| 1657 |
| 1658 CallInterfaceDescriptor GetCallInterfaceDescriptor() OVERRIDE { |
| 1659 return ContextOnlyDescriptor(isolate()); |
| 1660 } |
| 1661 |
| 1662 private: |
| 1663 void GenerateNew(MacroAssembler* masm); |
| 1664 |
| 1665 virtual void PrintName(std::ostream& os) const OVERRIDE; // NOLINT |
| 1666 |
| 1667 DEFINE_PLATFORM_CODE_STUB(RestParamAccess, PlatformCodeStub); |
| 1668 }; |
| 1669 |
| 1670 |
1653 class RegExpExecStub: public PlatformCodeStub { | 1671 class RegExpExecStub: public PlatformCodeStub { |
1654 public: | 1672 public: |
1655 explicit RegExpExecStub(Isolate* isolate) : PlatformCodeStub(isolate) { } | 1673 explicit RegExpExecStub(Isolate* isolate) : PlatformCodeStub(isolate) { } |
1656 | 1674 |
1657 DEFINE_CALL_INTERFACE_DESCRIPTOR(ContextOnly); | 1675 DEFINE_CALL_INTERFACE_DESCRIPTOR(ContextOnly); |
1658 DEFINE_PLATFORM_CODE_STUB(RegExpExec, PlatformCodeStub); | 1676 DEFINE_PLATFORM_CODE_STUB(RegExpExec, PlatformCodeStub); |
1659 }; | 1677 }; |
1660 | 1678 |
1661 | 1679 |
1662 class RegExpConstructResultStub FINAL : public HydrogenCodeStub { | 1680 class RegExpConstructResultStub FINAL : public HydrogenCodeStub { |
(...skipping 1051 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2714 | 2732 |
2715 #undef DEFINE_CALL_INTERFACE_DESCRIPTOR | 2733 #undef DEFINE_CALL_INTERFACE_DESCRIPTOR |
2716 #undef DEFINE_PLATFORM_CODE_STUB | 2734 #undef DEFINE_PLATFORM_CODE_STUB |
2717 #undef DEFINE_HANDLER_CODE_STUB | 2735 #undef DEFINE_HANDLER_CODE_STUB |
2718 #undef DEFINE_HYDROGEN_CODE_STUB | 2736 #undef DEFINE_HYDROGEN_CODE_STUB |
2719 #undef DEFINE_CODE_STUB | 2737 #undef DEFINE_CODE_STUB |
2720 #undef DEFINE_CODE_STUB_BASE | 2738 #undef DEFINE_CODE_STUB_BASE |
2721 } } // namespace v8::internal | 2739 } } // namespace v8::internal |
2722 | 2740 |
2723 #endif // V8_CODE_STUBS_H_ | 2741 #endif // V8_CODE_STUBS_H_ |
OLD | NEW |