Index: src/interface-descriptors.h |
diff --git a/src/interface-descriptors.h b/src/interface-descriptors.h |
index 4a42862afa0b678969684db02a849b7683271abf..87f0d82db660132a901482d982aecdaffdfe7288 100644 |
--- a/src/interface-descriptors.h |
+++ b/src/interface-descriptors.h |
@@ -54,7 +54,6 @@ class PlatformInterfaceDescriptor; |
V(Builtin) \ |
V(ArrayConstructor) \ |
V(IteratingArrayBuiltin) \ |
- V(IteratingArrayBuiltinLoopContinuation) \ |
V(ArrayNoArgumentConstructor) \ |
V(ArraySingleArgumentConstructor) \ |
V(ArrayNArgumentsConstructor) \ |
@@ -226,15 +225,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) \ |
@@ -642,14 +651,6 @@ class IteratingArrayBuiltinDescriptor : public BuiltinDescriptor { |
DECLARE_BUILTIN_DESCRIPTOR(IteratingArrayBuiltinDescriptor) |
}; |
-class IteratingArrayBuiltinLoopContinuationDescriptor |
- : public BuiltinDescriptor { |
- public: |
- DEFINE_BUILTIN_PARAMETERS(kCallback, kThisArg, kArray, kObject, kInitialK, |
- kLength, kTo) |
- DECLARE_BUILTIN_DESCRIPTOR(IteratingArrayBuiltinLoopContinuationDescriptor) |
-}; |
- |
class ArrayConstructorDescriptor : public CallInterfaceDescriptor { |
public: |
DEFINE_PARAMETERS(kTarget, kNewTarget, kActualArgumentsCount, kAllocationSite) |