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 |