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_X64 | 5 #if V8_TARGET_ARCH_X64 |
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 374 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
385 InitializePlatformSpecific(CallInterfaceDescriptorData* data) { | 385 InitializePlatformSpecific(CallInterfaceDescriptorData* data) { |
386 Register registers[] = { | 386 Register registers[] = { |
387 rdi, // math rounding function | 387 rdi, // math rounding function |
388 rdx, // vector slot id | 388 rdx, // vector slot id |
389 rbx // type vector | 389 rbx // type vector |
390 }; | 390 }; |
391 data->InitializePlatformSpecific(arraysize(registers), registers); | 391 data->InitializePlatformSpecific(arraysize(registers), registers); |
392 } | 392 } |
393 | 393 |
394 | 394 |
395 void PushArgsAndCallDescriptor::InitializePlatformSpecific( | 395 void InterpreterPushArgsAndCallDescriptor::InitializePlatformSpecific( |
396 CallInterfaceDescriptorData* data) { | 396 CallInterfaceDescriptorData* data) { |
397 Register registers[] = { | 397 Register registers[] = { |
398 rax, // argument count (including receiver) | 398 rax, // argument count (not including receiver) |
399 rbx, // address of first argument | 399 rbx, // address of first argument |
400 rdi // the target callable to be call | 400 rdi // the target callable to be call |
401 }; | 401 }; |
402 data->InitializePlatformSpecific(arraysize(registers), registers); | 402 data->InitializePlatformSpecific(arraysize(registers), registers); |
403 } | 403 } |
404 | 404 |
| 405 |
| 406 void InterpreterCEntryDescriptor::InitializePlatformSpecific( |
| 407 CallInterfaceDescriptorData* data) { |
| 408 Register registers[] = { |
| 409 rax, // argument count (argc) |
| 410 r15, // address of first argument (argv) |
| 411 rbx // the runtime function to call |
| 412 }; |
| 413 data->InitializePlatformSpecific(arraysize(registers), registers); |
| 414 } |
| 415 |
405 } // namespace internal | 416 } // namespace internal |
406 } // namespace v8 | 417 } // namespace v8 |
407 | 418 |
408 #endif // V8_TARGET_ARCH_X64 | 419 #endif // V8_TARGET_ARCH_X64 |
OLD | NEW |