| Index: src/interface-descriptors.cc
|
| diff --git a/src/interface-descriptors.cc b/src/interface-descriptors.cc
|
| index ef2e817a4347bf8cbc2e709993f1164eb1fc10bf..8e0809f685fcd40e051627eaf410019f7776b95d 100644
|
| --- a/src/interface-descriptors.cc
|
| +++ b/src/interface-descriptors.cc
|
| @@ -214,7 +214,6 @@ void MathPowTaggedDescriptor::InitializePlatformSpecific(
|
| data->InitializePlatformSpecific(arraysize(registers), registers);
|
| }
|
|
|
| -
|
| void MathPowIntegerDescriptor::InitializePlatformSpecific(
|
| CallInterfaceDescriptorData* data) {
|
| Register registers[] = {exponent()};
|
| @@ -321,6 +320,48 @@ void ContextOnlyDescriptor::InitializePlatformSpecific(
|
| data->InitializePlatformSpecific(0, nullptr);
|
| }
|
|
|
| +CallInterfaceDescriptor OnStackArgsDescriptorBase::ForArgs(
|
| + Isolate* isolate, int parameter_count) {
|
| + switch (parameter_count) {
|
| + case 1:
|
| + return OnStackWith1ArgsDescriptor(isolate);
|
| + case 2:
|
| + return OnStackWith2ArgsDescriptor(isolate);
|
| + case 3:
|
| + return OnStackWith3ArgsDescriptor(isolate);
|
| + case 4:
|
| + return OnStackWith4ArgsDescriptor(isolate);
|
| + case 5:
|
| + return OnStackWith5ArgsDescriptor(isolate);
|
| + case 6:
|
| + return OnStackWith6ArgsDescriptor(isolate);
|
| + case 7:
|
| + return OnStackWith7ArgsDescriptor(isolate);
|
| + default:
|
| + UNREACHABLE();
|
| + return VoidDescriptor(isolate);
|
| + }
|
| +}
|
| +
|
| +FunctionType*
|
| +OnStackArgsDescriptorBase::BuildCallInterfaceDescriptorFunctionTypeWithArg(
|
| + Isolate* isolate, int register_parameter_count, int parameter_count) {
|
| + DCHECK_EQ(0, register_parameter_count);
|
| + DCHECK_GT(parameter_count, 0);
|
| + Zone* zone = isolate->interface_descriptor_zone();
|
| + FunctionType* function =
|
| + Type::Function(AnyTagged(zone), AnyTagged(zone), parameter_count, zone)
|
| + ->AsFunction();
|
| + for (int i = 0; i < parameter_count; i++) {
|
| + function->InitParameter(i, AnyTagged(zone));
|
| + }
|
| + return function;
|
| +}
|
| +
|
| +void OnStackArgsDescriptorBase::InitializePlatformSpecific(
|
| + CallInterfaceDescriptorData* data) {
|
| + data->InitializePlatformSpecific(0, nullptr);
|
| +}
|
|
|
| void GrowArrayElementsDescriptor::InitializePlatformSpecific(
|
| CallInterfaceDescriptorData* data) {
|
|
|