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); |
} |