Chromium Code Reviews| Index: src/interface-descriptors.h |
| diff --git a/src/interface-descriptors.h b/src/interface-descriptors.h |
| index 4a42862afa0b678969684db02a849b7683271abf..461782e75fde46ee1b232cdc3982aaee81aed812 100644 |
| --- a/src/interface-descriptors.h |
| +++ b/src/interface-descriptors.h |
| @@ -226,15 +226,25 @@ class V8_EXPORT_PRIVATE CallInterfaceDescriptor { |
| } \ |
| static inline CallDescriptors::Key key(); |
| -#define DECLARE_DEFAULT_DESCRIPTOR(name, base, parameter_count) \ |
| - DECLARE_DESCRIPTOR_WITH_BASE(name, base) \ |
| - protected: \ |
| - void InitializePlatformSpecific(CallInterfaceDescriptorData* data) \ |
| - override { \ |
| - DefaultInitializePlatformSpecific(data, parameter_count); \ |
| - } \ |
| - name(Isolate* isolate, CallDescriptors::Key key) : base(isolate, key) {} \ |
| - \ |
| +static const int kMaxBuiltinRegisterParams = 5; |
| + |
| +#define DECLARE_DEFAULT_DESCRIPTOR(name, base, parameter_count) \ |
| + DECLARE_DESCRIPTOR_WITH_BASE(name, base) \ |
| + protected: \ |
| + static const int kRegisterParams = \ |
| + parameter_count > kMaxBuiltinRegisterParams ? kMaxBuiltinRegisterParams \ |
| + : parameter_count; \ |
| + static const int kStackParams = parameter_count - kRegisterParams; \ |
| + void InitializePlatformSpecific(CallInterfaceDescriptorData* data) \ |
| + override { \ |
| + DefaultInitializePlatformSpecific(data, kRegisterParams); \ |
| + } \ |
| + void InitializePlatformIndependent(CallInterfaceDescriptorData* data) \ |
| + override { \ |
| + data->InitializePlatformIndependent(kRegisterParams, kStackParams, NULL); \ |
| + } \ |
| + name(Isolate* isolate, CallDescriptors::Key key) : base(isolate, key) {} \ |
| + \ |
| public: |
| #define DECLARE_DESCRIPTOR(name, base) \ |
| @@ -643,11 +653,12 @@ class IteratingArrayBuiltinDescriptor : public BuiltinDescriptor { |
| }; |
| class IteratingArrayBuiltinLoopContinuationDescriptor |
| - : public BuiltinDescriptor { |
| + : public CallInterfaceDescriptor { |
| public: |
| - DEFINE_BUILTIN_PARAMETERS(kCallback, kThisArg, kArray, kObject, kInitialK, |
| - kLength, kTo) |
| - DECLARE_BUILTIN_DESCRIPTOR(IteratingArrayBuiltinLoopContinuationDescriptor) |
| + DEFINE_PARAMETERS(kReceiver, kCallback, kThisArg, kArray, kObject, kInitialK, |
|
Igor Sheludko
2017/04/27 10:38:05
While you are here, please fix all the builtins th
danno
2017/04/28 06:58:10
Done.
|
| + kLength, kTo) |
| + DECLARE_DEFAULT_DESCRIPTOR(IteratingArrayBuiltinLoopContinuationDescriptor, |
| + CallInterfaceDescriptor, kParameterCount) |
| }; |
| class ArrayConstructorDescriptor : public CallInterfaceDescriptor { |