diff options
Diffstat (limited to 'deps/v8/src/x64/interface-descriptors-x64.cc')
-rw-r--r-- | deps/v8/src/x64/interface-descriptors-x64.cc | 46 |
1 files changed, 36 insertions, 10 deletions
diff --git a/deps/v8/src/x64/interface-descriptors-x64.cc b/deps/v8/src/x64/interface-descriptors-x64.cc index a062df590f..e69d38d1f3 100644 --- a/deps/v8/src/x64/interface-descriptors-x64.cc +++ b/deps/v8/src/x64/interface-descriptors-x64.cc @@ -78,14 +78,6 @@ const Register GrowArrayElementsDescriptor::ObjectRegister() { return rax; } const Register GrowArrayElementsDescriptor::KeyRegister() { return rbx; } -void VectorStoreTransitionDescriptor::InitializePlatformSpecific( - CallInterfaceDescriptorData* data) { - Register registers[] = {ReceiverRegister(), NameRegister(), ValueRegister(), - SlotRegister(), VectorRegister(), MapRegister()}; - data->InitializePlatformSpecific(arraysize(registers), registers); -} - - void FastNewClosureDescriptor::InitializePlatformSpecific( CallInterfaceDescriptorData* data) { Register registers[] = {rbx}; @@ -116,6 +108,10 @@ void ToNumberDescriptor::InitializePlatformSpecific( // static +const Register ToLengthDescriptor::ReceiverRegister() { return rax; } + + +// static const Register ToStringDescriptor::ReceiverRegister() { return rax; } @@ -229,6 +225,13 @@ void AllocateHeapNumberDescriptor::InitializePlatformSpecific( } +void AllocateInNewSpaceDescriptor::InitializePlatformSpecific( + CallInterfaceDescriptorData* data) { + Register registers[] = {rax}; + data->InitializePlatformSpecific(arraysize(registers), registers); +} + + void ArrayConstructorConstantArgCountDescriptor::InitializePlatformSpecific( CallInterfaceDescriptorData* data) { // register state @@ -392,16 +395,39 @@ void MathRoundVariantCallFromOptimizedCodeDescriptor:: } -void PushArgsAndCallDescriptor::InitializePlatformSpecific( +void InterpreterPushArgsAndCallDescriptor::InitializePlatformSpecific( CallInterfaceDescriptorData* data) { Register registers[] = { - rax, // argument count (including receiver) + rax, // argument count (not including receiver) rbx, // address of first argument rdi // the target callable to be call }; data->InitializePlatformSpecific(arraysize(registers), registers); } + +void InterpreterPushArgsAndConstructDescriptor::InitializePlatformSpecific( + CallInterfaceDescriptorData* data) { + Register registers[] = { + rax, // argument count (not including receiver) + rdx, // original constructor + rdi, // constructor + rbx, // address of first argument + }; + data->InitializePlatformSpecific(arraysize(registers), registers); +} + + +void InterpreterCEntryDescriptor::InitializePlatformSpecific( + CallInterfaceDescriptorData* data) { + Register registers[] = { + rax, // argument count (argc) + r15, // address of first argument (argv) + rbx // the runtime function to call + }; + data->InitializePlatformSpecific(arraysize(registers), registers); +} + } // namespace internal } // namespace v8 |