| Index: src/x64/interface-descriptors-x64.cc
|
| diff --git a/src/x64/interface-descriptors-x64.cc b/src/x64/interface-descriptors-x64.cc
|
| index 04ecff5fbbc6315656dfb299ac95c337dd1ea8ff..b6ab7ca1af4dd3fa262ea147647e883a62dabe96 100644
|
| --- a/src/x64/interface-descriptors-x64.cc
|
| +++ b/src/x64/interface-descriptors-x64.cc
|
| @@ -155,9 +155,20 @@ void CallTrampolineDescriptor::InitializePlatformSpecific(
|
|
|
| void CallForwardVarargsDescriptor::InitializePlatformSpecific(
|
| CallInterfaceDescriptorData* data) {
|
| + // rax : number of arguments
|
| + // rcx : start index (to support rest parameters)
|
| + // rdi : the target to call
|
| + Register registers[] = {rdi, rax, rcx};
|
| + data->InitializePlatformSpecific(arraysize(registers), registers);
|
| +}
|
| +
|
| +void ConstructForwardVarargsDescriptor::InitializePlatformSpecific(
|
| + CallInterfaceDescriptorData* data) {
|
| + // rax : number of arguments
|
| + // rdx : the new target
|
| // rcx : start index (to support rest parameters)
|
| // rdi : the target to call
|
| - Register registers[] = {rdi, rcx};
|
| + Register registers[] = {rdi, rdx, rax, rcx};
|
| data->InitializePlatformSpecific(arraysize(registers), registers);
|
| }
|
|
|
|
|