summaryrefslogtreecommitdiff
path: root/deps/v8/src/codegen/interface-descriptors.h
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/src/codegen/interface-descriptors.h')
-rw-r--r--deps/v8/src/codegen/interface-descriptors.h124
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> { \