| Index: src/ia32/interface-descriptors-ia32.cc
|
| diff --git a/src/ia32/interface-descriptors-ia32.cc b/src/ia32/interface-descriptors-ia32.cc
|
| index c49a6fd4855db0b3ccfa63740d7c8bdab76129d4..b8547d0194543da0b6d3d786fbc601367aaddea6 100644
|
| --- a/src/ia32/interface-descriptors-ia32.cc
|
| +++ b/src/ia32/interface-descriptors-ia32.cc
|
| @@ -156,9 +156,20 @@ void CallTrampolineDescriptor::InitializePlatformSpecific(
|
|
|
| void CallForwardVarargsDescriptor::InitializePlatformSpecific(
|
| CallInterfaceDescriptorData* data) {
|
| + // eax : number of arguments
|
| + // ecx : start index (to support rest parameters)
|
| + // edi : the target to call
|
| + Register registers[] = {edi, eax, ecx};
|
| + data->InitializePlatformSpecific(arraysize(registers), registers);
|
| +}
|
| +
|
| +void ConstructForwardVarargsDescriptor::InitializePlatformSpecific(
|
| + CallInterfaceDescriptorData* data) {
|
| + // eax : number of arguments
|
| + // edx : the new target
|
| // ecx : start index (to support rest parameters)
|
| // edi : the target to call
|
| - Register registers[] = {edi, ecx};
|
| + Register registers[] = {edi, edx, eax, ecx};
|
| data->InitializePlatformSpecific(arraysize(registers), registers);
|
| }
|
|
|
|
|