diff options
Diffstat (limited to 'deps/v8/src/codegen/interface-descriptors.h')
-rw-r--r-- | deps/v8/src/codegen/interface-descriptors.h | 124 |
1 files changed, 121 insertions, 3 deletions
diff --git a/deps/v8/src/codegen/interface-descriptors.h b/deps/v8/src/codegen/interface-descriptors.h index 1915499830..0322b43369 100644 --- a/deps/v8/src/codegen/interface-descriptors.h +++ b/deps/v8/src/codegen/interface-descriptors.h @@ -55,6 +55,8 @@ namespace internal { V(CloneObjectBaseline) \ V(CloneObjectWithVector) \ V(Compare) \ + V(CompareNoContext) \ + V(StringEqual) \ V(Compare_Baseline) \ V(Compare_WithFeedback) \ V(Construct_Baseline) \ @@ -71,6 +73,9 @@ namespace internal { V(CopyDataPropertiesWithExcludedProperties) \ V(CopyDataPropertiesWithExcludedPropertiesOnStack) \ V(CppBuiltinAdaptor) \ + V(DefineKeyedOwn) \ + V(DefineKeyedOwnBaseline) \ + V(DefineKeyedOwnWithVector) \ V(FastNewObject) \ V(FindNonDefaultConstructorOrConstruct) \ V(ForInPrepare) \ @@ -100,6 +105,7 @@ namespace internal { V(LoadWithReceiverAndVector) \ V(LoadWithReceiverBaseline) \ V(LoadWithVector) \ + V(LookupWithVector) \ V(LookupTrampoline) \ V(LookupBaseline) \ V(NewHeapNumber) \ @@ -845,6 +851,17 @@ class LoadGlobalBaselineDescriptor static constexpr auto registers(); }; +class LookupWithVectorDescriptor + : public StaticCallInterfaceDescriptor<LookupWithVectorDescriptor> { + public: + DEFINE_PARAMETERS(kName, kDepth, kSlot, kVector) + DEFINE_PARAMETER_TYPES(MachineType::AnyTagged(), // kName + MachineType::AnyTagged(), // kDepth + MachineType::AnyTagged(), // kSlot + MachineType::AnyTagged()) // kVector + DECLARE_DESCRIPTOR(LookupWithVectorDescriptor) +}; + class LookupTrampolineDescriptor : public StaticCallInterfaceDescriptor<LookupTrampolineDescriptor> { public: @@ -965,6 +982,54 @@ class StoreGlobalWithVectorDescriptor static constexpr auto registers(); }; +class DefineKeyedOwnDescriptor + : public StaticCallInterfaceDescriptor<DefineKeyedOwnDescriptor> { + public: + DEFINE_PARAMETERS(kReceiver, kName, kValue, kFlags, kSlot) + DEFINE_PARAMETER_TYPES(MachineType::AnyTagged(), // kReceiver + MachineType::AnyTagged(), // kName + MachineType::AnyTagged(), // kValue + MachineType::TaggedSigned(), // kFlags + MachineType::TaggedSigned()) // kSlot + DECLARE_DESCRIPTOR(DefineKeyedOwnDescriptor) + + static constexpr inline Register FlagsRegister(); + + static constexpr auto registers(); +}; + +class DefineKeyedOwnBaselineDescriptor + : public StaticCallInterfaceDescriptor<DefineKeyedOwnBaselineDescriptor> { + public: + DEFINE_PARAMETERS_NO_CONTEXT(kReceiver, kName, kValue, kFlags, kSlot) + DEFINE_PARAMETER_TYPES(MachineType::AnyTagged(), // kReceiver + MachineType::AnyTagged(), // kName + MachineType::AnyTagged(), // kValue + MachineType::TaggedSigned(), // kFlags + MachineType::TaggedSigned()) // kSlot + DECLARE_DESCRIPTOR(DefineKeyedOwnBaselineDescriptor) + + static constexpr auto registers(); +}; + +class DefineKeyedOwnWithVectorDescriptor + : public StaticCallInterfaceDescriptor<DefineKeyedOwnWithVectorDescriptor> { + public: + DEFINE_PARAMETERS(kReceiver, kName, kValue, kFlags, + kSlot, // register argument + kVector // stack argument + ) + DEFINE_PARAMETER_TYPES(MachineType::AnyTagged(), // kReceiver + MachineType::AnyTagged(), // kName + MachineType::AnyTagged(), // kValue + MachineType::TaggedSigned(), // kFlags + MachineType::TaggedSigned(), // kSlot + MachineType::AnyTagged()) // kVector + DECLARE_DESCRIPTOR(DefineKeyedOwnWithVectorDescriptor) + + static constexpr auto registers(); +}; + class LoadWithVectorDescriptor : public StaticCallInterfaceDescriptor<LoadWithVectorDescriptor> { public: @@ -1563,6 +1628,25 @@ class CompareDescriptor static constexpr inline auto registers(); }; +class CompareNoContextDescriptor + : public StaticCallInterfaceDescriptor<CompareNoContextDescriptor> { + public: + DEFINE_PARAMETERS_NO_CONTEXT(kLeft, kRight) + DECLARE_DESCRIPTOR(CompareNoContextDescriptor) + + static constexpr inline auto registers(); +}; + +class StringEqualDescriptor + : public StaticCallInterfaceDescriptor<StringEqualDescriptor> { + public: + DEFINE_PARAMETERS_NO_CONTEXT(kLeft, kRight, kLength) + DEFINE_PARAMETER_TYPES(MachineType::AnyTagged(), // kLeft + MachineType::AnyTagged(), // kRight + MachineType::IntPtr()) // kLength + DECLARE_DEFAULT_DESCRIPTOR(StringEqualDescriptor) +}; + class BinaryOpDescriptor : public StaticCallInterfaceDescriptor<BinaryOpDescriptor> { public: @@ -1599,7 +1683,7 @@ class BinarySmiOp_BaselineDescriptor class StringAtAsStringDescriptor final : public StaticCallInterfaceDescriptor<StringAtAsStringDescriptor> { public: - DEFINE_PARAMETERS(kReceiver, kPosition) + DEFINE_PARAMETERS_NO_CONTEXT(kReceiver, kPosition) // TODO(turbofan): Return untagged value here. DEFINE_RESULT_AND_PARAMETER_TYPES( MachineType::TaggedPointer(), // result string @@ -1611,7 +1695,7 @@ class StringAtAsStringDescriptor final class StringSubstringDescriptor final : public StaticCallInterfaceDescriptor<StringSubstringDescriptor> { public: - DEFINE_PARAMETERS(kString, kFrom, kTo) + DEFINE_PARAMETERS_NO_CONTEXT(kString, kFrom, kTo) DEFINE_PARAMETER_TYPES(MachineType::AnyTagged(), // kString MachineType::IntPtr(), // kFrom MachineType::IntPtr()) // kTo @@ -1656,7 +1740,7 @@ class ApiCallbackDescriptor // receiver is implicit stack argument 1 // argv are implicit stack arguments [2, 2 + kArgc[ DEFINE_PARAMETER_TYPES(MachineType::Pointer(), // kApiFunctionAddress - MachineType::IntPtr(), // kActualArgumentsCount + MachineType::Int32(), // kActualArgumentsCount MachineType::AnyTagged(), // kCallData MachineType::AnyTagged()) // kHolder DECLARE_DESCRIPTOR(ApiCallbackDescriptor) @@ -2120,6 +2204,40 @@ class UnaryOp_BaselineDescriptor DECLARE_DESCRIPTOR(UnaryOp_BaselineDescriptor) }; +class CheckTurboshaftFloat32TypeDescriptor + : public StaticCallInterfaceDescriptor< + CheckTurboshaftFloat32TypeDescriptor> { + public: + DEFINE_RESULT_AND_PARAMETERS(1, kValue, kExpectedType, kNodeId) + DEFINE_RESULT_AND_PARAMETER_TYPES(MachineType::TaggedPointer(), + MachineTypeOf<Float32T>::value, + MachineType::TaggedPointer(), + MachineType::TaggedSigned()) + DECLARE_DEFAULT_DESCRIPTOR(CheckTurboshaftFloat32TypeDescriptor) + +#if V8_TARGET_ARCH_IA32 + // We need a custom descriptor on ia32 to avoid using xmm0. + static constexpr inline auto registers(); +#endif +}; + +class CheckTurboshaftFloat64TypeDescriptor + : public StaticCallInterfaceDescriptor< + CheckTurboshaftFloat64TypeDescriptor> { + public: + DEFINE_RESULT_AND_PARAMETERS(1, kValue, kExpectedType, kNodeId) + DEFINE_RESULT_AND_PARAMETER_TYPES(MachineType::TaggedPointer(), + MachineTypeOf<Float64T>::value, + MachineType::TaggedPointer(), + MachineType::TaggedSigned()) + DECLARE_DEFAULT_DESCRIPTOR(CheckTurboshaftFloat64TypeDescriptor) + +#if V8_TARGET_ARCH_IA32 + // We need a custom descriptor on ia32 to avoid using xmm0. + static constexpr inline auto registers(); +#endif +}; + #define DEFINE_TFS_BUILTIN_DESCRIPTOR(Name, ...) \ class Name##Descriptor \ : public StaticCallInterfaceDescriptor<Name##Descriptor> { \ |