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/code-stub-assembler.h" | 10 #include "src/code-stub-assembler.h" |
(...skipping 1073 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1084 | 1084 |
1085 enum AllocationSiteOverrideMode { | 1085 enum AllocationSiteOverrideMode { |
1086 DONT_OVERRIDE, | 1086 DONT_OVERRIDE, |
1087 DISABLE_ALLOCATION_SITES, | 1087 DISABLE_ALLOCATION_SITES, |
1088 LAST_ALLOCATION_SITE_OVERRIDE_MODE = DISABLE_ALLOCATION_SITES | 1088 LAST_ALLOCATION_SITE_OVERRIDE_MODE = DISABLE_ALLOCATION_SITES |
1089 }; | 1089 }; |
1090 | 1090 |
1091 | 1091 |
1092 class ArrayConstructorStub: public PlatformCodeStub { | 1092 class ArrayConstructorStub: public PlatformCodeStub { |
1093 public: | 1093 public: |
1094 enum ArgumentCountKey { ANY, NONE, ONE, MORE_THAN_ONE }; | |
1095 | |
1096 ArrayConstructorStub(Isolate* isolate, int argument_count); | |
1097 | |
1098 explicit ArrayConstructorStub(Isolate* isolate); | 1094 explicit ArrayConstructorStub(Isolate* isolate); |
1099 | 1095 |
1100 private: | 1096 private: |
1101 ArgumentCountKey argument_count() const { | |
1102 return ArgumentCountBits::decode(minor_key_); | |
1103 } | |
1104 | |
1105 void GenerateDispatchToArrayStub(MacroAssembler* masm, | 1097 void GenerateDispatchToArrayStub(MacroAssembler* masm, |
1106 AllocationSiteOverrideMode mode); | 1098 AllocationSiteOverrideMode mode); |
1107 | 1099 |
1108 void PrintName(std::ostream& os) const override; // NOLINT | |
1109 | |
1110 class ArgumentCountBits : public BitField<ArgumentCountKey, 0, 2> {}; | |
1111 | |
1112 DEFINE_CALL_INTERFACE_DESCRIPTOR(ArrayNArgumentsConstructor); | 1100 DEFINE_CALL_INTERFACE_DESCRIPTOR(ArrayNArgumentsConstructor); |
1113 DEFINE_PLATFORM_CODE_STUB(ArrayConstructor, PlatformCodeStub); | 1101 DEFINE_PLATFORM_CODE_STUB(ArrayConstructor, PlatformCodeStub); |
1114 }; | 1102 }; |
1115 | 1103 |
1116 | 1104 |
1117 class InternalArrayConstructorStub: public PlatformCodeStub { | 1105 class InternalArrayConstructorStub: public PlatformCodeStub { |
1118 public: | 1106 public: |
1119 explicit InternalArrayConstructorStub(Isolate* isolate); | 1107 explicit InternalArrayConstructorStub(Isolate* isolate); |
1120 | 1108 |
1121 private: | 1109 private: |
(...skipping 1770 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2892 #undef DEFINE_HYDROGEN_CODE_STUB | 2880 #undef DEFINE_HYDROGEN_CODE_STUB |
2893 #undef DEFINE_CODE_STUB | 2881 #undef DEFINE_CODE_STUB |
2894 #undef DEFINE_CODE_STUB_BASE | 2882 #undef DEFINE_CODE_STUB_BASE |
2895 | 2883 |
2896 extern Representation RepresentationFromMachineType(MachineType type); | 2884 extern Representation RepresentationFromMachineType(MachineType type); |
2897 | 2885 |
2898 } // namespace internal | 2886 } // namespace internal |
2899 } // namespace v8 | 2887 } // namespace v8 |
2900 | 2888 |
2901 #endif // V8_CODE_STUBS_H_ | 2889 #endif // V8_CODE_STUBS_H_ |
OLD | NEW |