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 #include "src/arm/interface-descriptors-arm.h" | 5 #include "src/arm/interface-descriptors-arm.h" |
6 | 6 |
7 #if V8_TARGET_ARCH_ARM | 7 #if V8_TARGET_ARCH_ARM |
8 | 8 |
9 #include "src/interface-descriptors.h" | 9 #include "src/interface-descriptors.h" |
10 | 10 |
(...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
182 data->InitializePlatformSpecific(arraysize(registers), registers); | 182 data->InitializePlatformSpecific(arraysize(registers), registers); |
183 } | 183 } |
184 | 184 |
185 | 185 |
186 void CallConstructDescriptor::InitializePlatformSpecific( | 186 void CallConstructDescriptor::InitializePlatformSpecific( |
187 CallInterfaceDescriptorData* data) { | 187 CallInterfaceDescriptorData* data) { |
188 // r0 : number of arguments | 188 // r0 : number of arguments |
189 // r1 : the function to call | 189 // r1 : the function to call |
190 // r2 : feedback vector | 190 // r2 : feedback vector |
191 // r3 : slot in feedback vector (Smi, for RecordCallTarget) | 191 // r3 : slot in feedback vector (Smi, for RecordCallTarget) |
192 // r4 : original constructor (for IsSuperConstructorCall) | 192 // r4 : new target (for IsSuperConstructorCall) |
193 // TODO(turbofan): So far we don't gather type feedback and hence skip the | 193 // TODO(turbofan): So far we don't gather type feedback and hence skip the |
194 // slot parameter, but ArrayConstructStub needs the vector to be undefined. | 194 // slot parameter, but ArrayConstructStub needs the vector to be undefined. |
195 Register registers[] = {r0, r1, r4, r2}; | 195 Register registers[] = {r0, r1, r4, r2}; |
196 data->InitializePlatformSpecific(arraysize(registers), registers); | 196 data->InitializePlatformSpecific(arraysize(registers), registers); |
197 } | 197 } |
198 | 198 |
199 | 199 |
200 void CallTrampolineDescriptor::InitializePlatformSpecific( | 200 void CallTrampolineDescriptor::InitializePlatformSpecific( |
201 CallInterfaceDescriptorData* data) { | 201 CallInterfaceDescriptorData* data) { |
202 // r0 : number of arguments | 202 // r0 : number of arguments |
(...skipping 225 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
428 r1 // the target callable to be call | 428 r1 // the target callable to be call |
429 }; | 429 }; |
430 data->InitializePlatformSpecific(arraysize(registers), registers); | 430 data->InitializePlatformSpecific(arraysize(registers), registers); |
431 } | 431 } |
432 | 432 |
433 | 433 |
434 void InterpreterPushArgsAndConstructDescriptor::InitializePlatformSpecific( | 434 void InterpreterPushArgsAndConstructDescriptor::InitializePlatformSpecific( |
435 CallInterfaceDescriptorData* data) { | 435 CallInterfaceDescriptorData* data) { |
436 Register registers[] = { | 436 Register registers[] = { |
437 r0, // argument count (not including receiver) | 437 r0, // argument count (not including receiver) |
438 r3, // original constructor | 438 r3, // new target |
439 r1, // constructor to call | 439 r1, // constructor to call |
440 r2 // address of the first argument | 440 r2 // address of the first argument |
441 }; | 441 }; |
442 data->InitializePlatformSpecific(arraysize(registers), registers); | 442 data->InitializePlatformSpecific(arraysize(registers), registers); |
443 } | 443 } |
444 | 444 |
445 | 445 |
446 void InterpreterCEntryDescriptor::InitializePlatformSpecific( | 446 void InterpreterCEntryDescriptor::InitializePlatformSpecific( |
447 CallInterfaceDescriptorData* data) { | 447 CallInterfaceDescriptorData* data) { |
448 Register registers[] = { | 448 Register registers[] = { |
449 r0, // argument count (argc) | 449 r0, // argument count (argc) |
450 r2, // address of first argument (argv) | 450 r2, // address of first argument (argv) |
451 r1 // the runtime function to call | 451 r1 // the runtime function to call |
452 }; | 452 }; |
453 data->InitializePlatformSpecific(arraysize(registers), registers); | 453 data->InitializePlatformSpecific(arraysize(registers), registers); |
454 } | 454 } |
455 | 455 |
456 } // namespace internal | 456 } // namespace internal |
457 } // namespace v8 | 457 } // namespace v8 |
458 | 458 |
459 #endif // V8_TARGET_ARCH_ARM | 459 #endif // V8_TARGET_ARCH_ARM |
OLD | NEW |