OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #if V8_TARGET_ARCH_X87 | 5 #if V8_TARGET_ARCH_X87 |
6 | 6 |
7 #include "src/interface-descriptors.h" | 7 #include "src/interface-descriptors.h" |
8 | 8 |
9 namespace v8 { | 9 namespace v8 { |
10 namespace internal { | 10 namespace internal { |
(...skipping 239 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
250 void ArrayNoArgumentConstructorDescriptor::InitializePlatformSpecific( | 250 void ArrayNoArgumentConstructorDescriptor::InitializePlatformSpecific( |
251 CallInterfaceDescriptorData* data) { | 251 CallInterfaceDescriptorData* data) { |
252 // register state | 252 // register state |
253 // eax -- number of arguments | 253 // eax -- number of arguments |
254 // edi -- function | 254 // edi -- function |
255 // ebx -- allocation site with elements kind | 255 // ebx -- allocation site with elements kind |
256 Register registers[] = {edi, ebx, eax}; | 256 Register registers[] = {edi, ebx, eax}; |
257 data->InitializePlatformSpecific(arraysize(registers), registers, NULL); | 257 data->InitializePlatformSpecific(arraysize(registers), registers, NULL); |
258 } | 258 } |
259 | 259 |
260 void ArrayConstructorConstantArgCountDescriptor::InitializePlatformSpecific( | 260 void ArraySingleArgumentConstructorDescriptor::InitializePlatformSpecific( |
261 CallInterfaceDescriptorData* data) { | 261 CallInterfaceDescriptorData* data) { |
262 // register state | 262 // register state |
263 // eax -- number of arguments | 263 // eax -- number of arguments |
264 // edi -- function | 264 // edi -- function |
265 // ebx -- allocation site with elements kind | 265 // ebx -- allocation site with elements kind |
266 Register registers[] = {edi, ebx}; | 266 Register registers[] = {edi, ebx, eax}; |
267 data->InitializePlatformSpecific(arraysize(registers), registers, NULL); | 267 data->InitializePlatformSpecific(arraysize(registers), registers, NULL); |
268 } | 268 } |
269 | 269 |
270 | |
271 void ArrayConstructorDescriptor::InitializePlatformSpecific( | 270 void ArrayConstructorDescriptor::InitializePlatformSpecific( |
272 CallInterfaceDescriptorData* data) { | 271 CallInterfaceDescriptorData* data) { |
273 // stack param count needs (constructor pointer, and single argument) | 272 // stack param count needs (constructor pointer, and single argument) |
274 Register registers[] = {edi, ebx, eax}; | 273 Register registers[] = {edi, ebx, eax}; |
275 data->InitializePlatformSpecific(arraysize(registers), registers); | 274 data->InitializePlatformSpecific(arraysize(registers), registers); |
276 } | 275 } |
277 | 276 |
278 | 277 |
279 void InternalArrayConstructorConstantArgCountDescriptor:: | |
280 InitializePlatformSpecific(CallInterfaceDescriptorData* data) { | |
281 // register state | |
282 // eax -- number of arguments | |
283 // edi -- function | |
284 Register registers[] = {edi}; | |
285 data->InitializePlatformSpecific(arraysize(registers), registers, NULL); | |
286 } | |
287 | |
288 | |
289 void InternalArrayConstructorDescriptor::InitializePlatformSpecific( | 278 void InternalArrayConstructorDescriptor::InitializePlatformSpecific( |
290 CallInterfaceDescriptorData* data) { | 279 CallInterfaceDescriptorData* data) { |
291 // stack param count needs (constructor pointer, and single argument) | 280 // stack param count needs (constructor pointer, and single argument) |
292 Register registers[] = {edi, eax}; | 281 Register registers[] = {edi, eax}; |
293 data->InitializePlatformSpecific(arraysize(registers), registers); | 282 data->InitializePlatformSpecific(arraysize(registers), registers); |
294 } | 283 } |
295 | 284 |
296 void FastArrayPushDescriptor::InitializePlatformSpecific( | 285 void FastArrayPushDescriptor::InitializePlatformSpecific( |
297 CallInterfaceDescriptorData* data) { | 286 CallInterfaceDescriptorData* data) { |
298 // stack param count needs (arg count) | 287 // stack param count needs (arg count) |
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
428 ebx, // the JSGeneratorObject to resume | 417 ebx, // the JSGeneratorObject to resume |
429 edx // the resume mode (tagged) | 418 edx // the resume mode (tagged) |
430 }; | 419 }; |
431 data->InitializePlatformSpecific(arraysize(registers), registers); | 420 data->InitializePlatformSpecific(arraysize(registers), registers); |
432 } | 421 } |
433 | 422 |
434 } // namespace internal | 423 } // namespace internal |
435 } // namespace v8 | 424 } // namespace v8 |
436 | 425 |
437 #endif // V8_TARGET_ARCH_X87 | 426 #endif // V8_TARGET_ARCH_X87 |
OLD | NEW |