diff options
Diffstat (limited to 'deps/v8/src/interface-descriptors.cc')
-rw-r--r-- | deps/v8/src/interface-descriptors.cc | 62 |
1 files changed, 49 insertions, 13 deletions
diff --git a/deps/v8/src/interface-descriptors.cc b/deps/v8/src/interface-descriptors.cc index 26b6422f6b..d77b137615 100644 --- a/deps/v8/src/interface-descriptors.cc +++ b/deps/v8/src/interface-descriptors.cc @@ -88,6 +88,16 @@ const Register FastNewObjectDescriptor::NewTargetRegister() { return kJavaScriptCallNewTargetRegister; } +void FastNewArgumentsDescriptor::InitializePlatformSpecific( + CallInterfaceDescriptorData* data) { + Register registers[] = {TargetRegister()}; + data->InitializePlatformSpecific(arraysize(registers), registers); +} + +const Register FastNewArgumentsDescriptor::TargetRegister() { + return kJSFunctionRegister; +} + void LoadDescriptor::InitializePlatformIndependent( CallInterfaceDescriptorData* data) { // kReceiver, kName, kSlot @@ -433,6 +443,15 @@ void CallTrampolineDescriptor::InitializePlatformIndependent( machine_types); } +void CallForwardVarargsDescriptor::InitializePlatformIndependent( + CallInterfaceDescriptorData* data) { + // kTarget, kStartIndex + MachineType machine_types[] = {MachineType::AnyTagged(), + MachineType::Int32()}; + data->InitializePlatformIndependent(arraysize(machine_types), 0, + machine_types); +} + void ConstructStubDescriptor::InitializePlatformIndependent( CallInterfaceDescriptorData* data) { // kFunction, kNewTarget, kActualArgumentsCount, kAllocationSite @@ -452,21 +471,21 @@ void ConstructTrampolineDescriptor::InitializePlatformIndependent( machine_types); } -void CallFunctionWithFeedbackDescriptor::InitializePlatformIndependent( +void CallICDescriptor::InitializePlatformIndependent( CallInterfaceDescriptorData* data) { - // kFunction, kSlot - MachineType machine_types[] = {MachineType::AnyTagged(), - MachineType::TaggedSigned()}; + // kTarget, kActualArgumentsCount, kSlot, kVector + MachineType machine_types[] = {MachineType::AnyTagged(), MachineType::Int32(), + MachineType::Int32(), + MachineType::AnyTagged()}; data->InitializePlatformIndependent(arraysize(machine_types), 0, machine_types); } -void CallFunctionWithFeedbackAndVectorDescriptor::InitializePlatformIndependent( +void CallICTrampolineDescriptor::InitializePlatformIndependent( CallInterfaceDescriptorData* data) { - // kFunction, kActualArgumentsCount, kSlot, kVector - MachineType machine_types[] = { - MachineType::TaggedPointer(), MachineType::Int32(), - MachineType::TaggedSigned(), MachineType::AnyTagged()}; + // kTarget, kActualArgumentsCount, kSlot + MachineType machine_types[] = {MachineType::AnyTagged(), MachineType::Int32(), + MachineType::Int32()}; data->InitializePlatformIndependent(arraysize(machine_types), 0, machine_types); } @@ -498,6 +517,16 @@ const Register BuiltinDescriptor::TargetRegister() { return kJSFunctionRegister; } +void ArrayConstructorDescriptor::InitializePlatformIndependent( + CallInterfaceDescriptorData* data) { + // kTarget, kNewTarget, kActualArgumentsCount, kAllocationSite + MachineType machine_types[] = {MachineType::AnyTagged(), + MachineType::AnyTagged(), MachineType::Int32(), + MachineType::AnyTagged()}; + data->InitializePlatformIndependent(arraysize(machine_types), 0, + machine_types); +} + void ArrayNoArgumentConstructorDescriptor::InitializePlatformIndependent( CallInterfaceDescriptorData* data) { // kFunction, kAllocationSite, kActualArgumentsCount, kFunctionParameter @@ -522,9 +551,8 @@ void ArraySingleArgumentConstructorDescriptor::InitializePlatformIndependent( void ArrayNArgumentsConstructorDescriptor::InitializePlatformIndependent( CallInterfaceDescriptorData* data) { // kFunction, kAllocationSite, kActualArgumentsCount - MachineType machine_types[] = {MachineType::TaggedPointer(), - MachineType::AnyTagged(), - MachineType::Int32()}; + MachineType machine_types[] = { + MachineType::AnyTagged(), MachineType::AnyTagged(), MachineType::Int32()}; data->InitializePlatformIndependent(arraysize(machine_types), 0, machine_types); } @@ -554,7 +582,7 @@ void InterpreterDispatchDescriptor::InitializePlatformIndependent( // kAccumulator, kBytecodeOffset, kBytecodeArray, kDispatchTable MachineType machine_types[] = { MachineType::AnyTagged(), MachineType::IntPtr(), MachineType::AnyTagged(), - MachineType::AnyTagged()}; + MachineType::IntPtr()}; data->InitializePlatformIndependent(arraysize(machine_types), 0, machine_types); } @@ -598,5 +626,13 @@ void InterpreterCEntryDescriptor::InitializePlatformIndependent( machine_types); } +void FrameDropperTrampolineDescriptor::InitializePlatformIndependent( + CallInterfaceDescriptorData* data) { + // New FP value. + MachineType machine_types[] = {MachineType::Pointer()}; + data->InitializePlatformIndependent(arraysize(machine_types), 0, + machine_types); +} + } // namespace internal } // namespace v8 |