| Index: src/ia32/interface-descriptors-ia32.cc
|
| diff --git a/src/ia32/interface-descriptors-ia32.cc b/src/ia32/interface-descriptors-ia32.cc
|
| index ac2b1402ab723cf473bf036253e4a2858ff4ac06..d58e5c859f42293d78b7b4aa3d82517968a99ca0 100644
|
| --- a/src/ia32/interface-descriptors-ia32.cc
|
| +++ b/src/ia32/interface-descriptors-ia32.cc
|
| @@ -156,6 +156,16 @@ void CallTrampolineDescriptor::InitializePlatformSpecific(
|
| data->InitializePlatformSpecific(arraysize(registers), registers);
|
| }
|
|
|
| +void CallVarargsDescriptor::InitializePlatformSpecific(
|
| + CallInterfaceDescriptorData* data) {
|
| + // eax : number of arguments (on the stack, not including receiver)
|
| + // edi : the target to call
|
| + // ebx : arguments list (FixedArray)
|
| + // ecx : arguments list length (untagged)
|
| + Register registers[] = {edi, eax, ebx, ecx};
|
| + data->InitializePlatformSpecific(arraysize(registers), registers);
|
| +}
|
| +
|
| void CallForwardVarargsDescriptor::InitializePlatformSpecific(
|
| CallInterfaceDescriptorData* data) {
|
| // eax : number of arguments
|
| @@ -165,6 +175,25 @@ void CallForwardVarargsDescriptor::InitializePlatformSpecific(
|
| data->InitializePlatformSpecific(arraysize(registers), registers);
|
| }
|
|
|
| +void CallWithArrayLikeDescriptor::InitializePlatformSpecific(
|
| + CallInterfaceDescriptorData* data) {
|
| + // edi : the target to call
|
| + // ebx : the arguments list
|
| + Register registers[] = {edi, ebx};
|
| + data->InitializePlatformSpecific(arraysize(registers), registers);
|
| +}
|
| +
|
| +void ConstructVarargsDescriptor::InitializePlatformSpecific(
|
| + CallInterfaceDescriptorData* data) {
|
| + // eax : number of arguments (on the stack, not including receiver)
|
| + // edi : the target to call
|
| + // edx : the new target
|
| + // ebx : arguments list (FixedArray)
|
| + // ecx : arguments list length (untagged)
|
| + Register registers[] = {edi, edx, eax, ebx, ecx};
|
| + data->InitializePlatformSpecific(arraysize(registers), registers);
|
| +}
|
| +
|
| void ConstructForwardVarargsDescriptor::InitializePlatformSpecific(
|
| CallInterfaceDescriptorData* data) {
|
| // eax : number of arguments
|
| @@ -175,6 +204,15 @@ void ConstructForwardVarargsDescriptor::InitializePlatformSpecific(
|
| data->InitializePlatformSpecific(arraysize(registers), registers);
|
| }
|
|
|
| +void ConstructWithArrayLikeDescriptor::InitializePlatformSpecific(
|
| + CallInterfaceDescriptorData* data) {
|
| + // edi : the target to call
|
| + // edx : the new target
|
| + // ebx : the arguments list
|
| + Register registers[] = {edi, edx, ebx};
|
| + data->InitializePlatformSpecific(arraysize(registers), registers);
|
| +}
|
| +
|
| void ConstructStubDescriptor::InitializePlatformSpecific(
|
| CallInterfaceDescriptorData* data) {
|
| // eax : number of arguments
|
|
|