summaryrefslogtreecommitdiff
path: root/deps/v8/src/interface-descriptors.h
diff options
context:
space:
mode:
authorMichaël Zasso <targos@protonmail.com>2017-05-02 10:50:00 +0200
committerMichaël Zasso <targos@protonmail.com>2017-05-06 20:02:35 +0200
commit60d1aac8d225e844e68ae48e8f3d58802e635fbe (patch)
tree922f347dd054db18d88666fad7181e5a777f4022 /deps/v8/src/interface-descriptors.h
parent73d9c0f903ae371cd5011af64c3a6f69a1bda978 (diff)
downloadandroid-node-v8-60d1aac8d225e844e68ae48e8f3d58802e635fbe.tar.gz
android-node-v8-60d1aac8d225e844e68ae48e8f3d58802e635fbe.tar.bz2
android-node-v8-60d1aac8d225e844e68ae48e8f3d58802e635fbe.zip
deps: update V8 to 5.8.283.38
PR-URL: https://github.com/nodejs/node/pull/12784 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com>
Diffstat (limited to 'deps/v8/src/interface-descriptors.h')
-rw-r--r--deps/v8/src/interface-descriptors.h176
1 files changed, 126 insertions, 50 deletions
diff --git a/deps/v8/src/interface-descriptors.h b/deps/v8/src/interface-descriptors.h
index 1d1b48af93..4cf5c29d6c 100644
--- a/deps/v8/src/interface-descriptors.h
+++ b/deps/v8/src/interface-descriptors.h
@@ -33,9 +33,7 @@ class PlatformInterfaceDescriptor;
V(FastNewClosure) \
V(FastNewFunctionContext) \
V(FastNewObject) \
- V(FastNewRestParameter) \
- V(FastNewSloppyArguments) \
- V(FastNewStrictArguments) \
+ V(FastNewArguments) \
V(TypeConversion) \
V(Typeof) \
V(FastCloneRegExp) \
@@ -44,27 +42,22 @@ class PlatformInterfaceDescriptor;
V(CreateAllocationSite) \
V(CreateWeakCell) \
V(CallFunction) \
- V(CallFunctionWithFeedback) \
- V(CallFunctionWithFeedbackAndVector) \
+ V(CallIC) \
+ V(CallICTrampoline) \
+ V(CallForwardVarargs) \
V(CallConstruct) \
V(CallTrampoline) \
V(ConstructStub) \
V(ConstructTrampoline) \
V(RegExpExec) \
+ V(RegExpReplace) \
+ V(RegExpSplit) \
V(CopyFastSmiOrObjectElements) \
V(TransitionElementsKind) \
V(AllocateHeapNumber) \
- V(AllocateFloat32x4) \
- V(AllocateInt32x4) \
- V(AllocateUint32x4) \
- V(AllocateBool32x4) \
- V(AllocateInt16x8) \
- V(AllocateUint16x8) \
- V(AllocateBool16x8) \
- V(AllocateInt8x16) \
- V(AllocateUint8x16) \
- V(AllocateBool8x16) \
V(Builtin) \
+ V(ArrayConstructor) \
+ V(ForEach) \
V(ArrayNoArgumentConstructor) \
V(ArraySingleArgumentConstructor) \
V(ArrayNArgumentsConstructor) \
@@ -77,12 +70,15 @@ class PlatformInterfaceDescriptor;
V(StringCharAt) \
V(StringCharCodeAt) \
V(StringCompare) \
+ V(StringIndexOf) \
V(SubString) \
V(Keyed) \
V(Named) \
V(CreateIterResultObject) \
V(HasProperty) \
V(ForInFilter) \
+ V(ForInNext) \
+ V(ForInPrepare) \
V(GetProperty) \
V(CallHandler) \
V(ArgumentAdaptor) \
@@ -98,7 +94,9 @@ class PlatformInterfaceDescriptor;
V(InterpreterPushArgsAndConstructArray) \
V(InterpreterCEntry) \
V(ResumeGenerator) \
- V(PromiseHandleReject)
+ V(FrameDropperTrampoline) \
+ V(PromiseHandleReject) \
+ V(WasmRuntimeCall)
class V8_EXPORT_PRIVATE CallInterfaceDescriptorData {
public:
@@ -288,6 +286,41 @@ class V8_EXPORT_PRIVATE CallInterfaceDescriptor {
kContext = kParameterCount /* implicit parameter */ \
};
+#define DECLARE_BUILTIN_DESCRIPTOR(name) \
+ DECLARE_DESCRIPTOR_WITH_BASE(name, BuiltinDescriptor) \
+ protected: \
+ void InitializePlatformIndependent(CallInterfaceDescriptorData* data) \
+ override { \
+ MachineType machine_types[] = {MachineType::AnyTagged(), \
+ MachineType::AnyTagged(), \
+ MachineType::Int32()}; \
+ int argc = kStackParameterCount + 1 - arraysize(machine_types); \
+ data->InitializePlatformIndependent(arraysize(machine_types), argc, \
+ machine_types); \
+ } \
+ void InitializePlatformSpecific(CallInterfaceDescriptorData* data) \
+ override { \
+ Register registers[] = {TargetRegister(), NewTargetRegister(), \
+ ArgumentsCountRegister()}; \
+ data->InitializePlatformSpecific(arraysize(registers), registers); \
+ } \
+ \
+ public:
+
+#define DEFINE_BUILTIN_PARAMETERS(...) \
+ enum ParameterIndices { \
+ kReceiver, \
+ kBeforeFirstStackParameter = kReceiver, \
+ __VA_ARGS__, \
+ kAfterLastStackParameter, \
+ kNewTarget = kAfterLastStackParameter, \
+ kArgumentsCount, \
+ kContext, /* implicit parameter */ \
+ kParameterCount = kContext, \
+ kStackParameterCount = \
+ kAfterLastStackParameter - kBeforeFirstStackParameter - 1, \
+ };
+
class VoidDescriptor : public CallInterfaceDescriptor {
public:
DECLARE_DESCRIPTOR(VoidDescriptor, CallInterfaceDescriptor)
@@ -455,21 +488,11 @@ class FastNewObjectDescriptor : public CallInterfaceDescriptor {
static const Register NewTargetRegister();
};
-class FastNewRestParameterDescriptor : public CallInterfaceDescriptor {
- public:
- DECLARE_DESCRIPTOR(FastNewRestParameterDescriptor, CallInterfaceDescriptor)
-};
-
-class FastNewSloppyArgumentsDescriptor : public CallInterfaceDescriptor {
- public:
- DECLARE_DESCRIPTOR(FastNewSloppyArgumentsDescriptor,
- CallInterfaceDescriptor)
-};
-
-class FastNewStrictArgumentsDescriptor : public CallInterfaceDescriptor {
+class FastNewArgumentsDescriptor : public CallInterfaceDescriptor {
public:
- DECLARE_DESCRIPTOR(FastNewStrictArgumentsDescriptor,
- CallInterfaceDescriptor)
+ DEFINE_PARAMETERS(kFunction)
+ DECLARE_DESCRIPTOR(FastNewArgumentsDescriptor, CallInterfaceDescriptor)
+ static const Register TargetRegister();
};
class TypeConversionDescriptor final : public CallInterfaceDescriptor {
@@ -501,6 +524,20 @@ class ForInFilterDescriptor final : public CallInterfaceDescriptor {
kParameterCount)
};
+class ForInNextDescriptor final : public CallInterfaceDescriptor {
+ public:
+ DEFINE_PARAMETERS(kObject, kCacheArray, kCacheType, kIndex)
+ DECLARE_DEFAULT_DESCRIPTOR(ForInNextDescriptor, CallInterfaceDescriptor,
+ kParameterCount)
+};
+
+class ForInPrepareDescriptor final : public CallInterfaceDescriptor {
+ public:
+ DEFINE_PARAMETERS(kObject)
+ DECLARE_DEFAULT_DESCRIPTOR(ForInPrepareDescriptor, CallInterfaceDescriptor,
+ kParameterCount)
+};
+
class GetPropertyDescriptor final : public CallInterfaceDescriptor {
public:
DEFINE_PARAMETERS(kObject, kKey)
@@ -560,6 +597,12 @@ class CallTrampolineDescriptor : public CallInterfaceDescriptor {
CallInterfaceDescriptor)
};
+class CallForwardVarargsDescriptor : public CallInterfaceDescriptor {
+ public:
+ DEFINE_PARAMETERS(kTarget, kStartIndex)
+ DECLARE_DESCRIPTOR_WITH_CUSTOM_FUNCTION_TYPE(CallForwardVarargsDescriptor,
+ CallInterfaceDescriptor)
+};
class ConstructStubDescriptor : public CallInterfaceDescriptor {
public:
@@ -583,24 +626,20 @@ class CallFunctionDescriptor : public CallInterfaceDescriptor {
DECLARE_DESCRIPTOR(CallFunctionDescriptor, CallInterfaceDescriptor)
};
-
-class CallFunctionWithFeedbackDescriptor : public CallInterfaceDescriptor {
+class CallICDescriptor : public CallInterfaceDescriptor {
public:
- DEFINE_PARAMETERS(kFunction, kSlot)
- DECLARE_DESCRIPTOR_WITH_CUSTOM_FUNCTION_TYPE(
- CallFunctionWithFeedbackDescriptor, CallInterfaceDescriptor)
+ DEFINE_PARAMETERS(kTarget, kActualArgumentsCount, kSlot, kVector)
+ DECLARE_DESCRIPTOR_WITH_CUSTOM_FUNCTION_TYPE(CallICDescriptor,
+ CallInterfaceDescriptor)
};
-
-class CallFunctionWithFeedbackAndVectorDescriptor
- : public CallInterfaceDescriptor {
+class CallICTrampolineDescriptor : public CallInterfaceDescriptor {
public:
- DEFINE_PARAMETERS(kFunction, kActualArgumentsCount, kSlot, kVector)
- DECLARE_DESCRIPTOR_WITH_CUSTOM_FUNCTION_TYPE(
- CallFunctionWithFeedbackAndVectorDescriptor, CallInterfaceDescriptor)
+ DEFINE_PARAMETERS(kTarget, kActualArgumentsCount, kSlot)
+ DECLARE_DESCRIPTOR_WITH_CUSTOM_FUNCTION_TYPE(CallICTrampolineDescriptor,
+ CallInterfaceDescriptor)
};
-
class CallConstructDescriptor : public CallInterfaceDescriptor {
public:
DECLARE_DESCRIPTOR(CallConstructDescriptor, CallInterfaceDescriptor)
@@ -613,6 +652,20 @@ class RegExpExecDescriptor : public CallInterfaceDescriptor {
CallInterfaceDescriptor)
};
+class RegExpReplaceDescriptor : public CallInterfaceDescriptor {
+ public:
+ DEFINE_PARAMETERS(kReceiver, kString, kReplaceValue)
+ DECLARE_DEFAULT_DESCRIPTOR(RegExpReplaceDescriptor, CallInterfaceDescriptor,
+ kParameterCount)
+};
+
+class RegExpSplitDescriptor : public CallInterfaceDescriptor {
+ public:
+ DEFINE_PARAMETERS(kReceiver, kString, kLimit)
+ DECLARE_DEFAULT_DESCRIPTOR(RegExpSplitDescriptor, CallInterfaceDescriptor,
+ kParameterCount)
+};
+
class CopyFastSmiOrObjectElementsDescriptor : public CallInterfaceDescriptor {
public:
DEFINE_PARAMETERS(kObject)
@@ -632,14 +685,6 @@ class AllocateHeapNumberDescriptor : public CallInterfaceDescriptor {
DECLARE_DESCRIPTOR(AllocateHeapNumberDescriptor, CallInterfaceDescriptor)
};
-#define SIMD128_ALLOC_DESC(TYPE, Type, type, lane_count, lane_type) \
- class Allocate##Type##Descriptor : public CallInterfaceDescriptor { \
- public: \
- DECLARE_DESCRIPTOR(Allocate##Type##Descriptor, CallInterfaceDescriptor) \
- };
-SIMD128_TYPES(SIMD128_ALLOC_DESC)
-#undef SIMD128_ALLOC_DESC
-
class BuiltinDescriptor : public CallInterfaceDescriptor {
public:
// TODO(ishell): Where is kFunction??
@@ -651,6 +696,19 @@ class BuiltinDescriptor : public CallInterfaceDescriptor {
static const Register TargetRegister();
};
+class ForEachDescriptor : public BuiltinDescriptor {
+ public:
+ DEFINE_BUILTIN_PARAMETERS(kCallback, kThisArg)
+ DECLARE_BUILTIN_DESCRIPTOR(ForEachDescriptor)
+};
+
+class ArrayConstructorDescriptor : public CallInterfaceDescriptor {
+ public:
+ DEFINE_PARAMETERS(kTarget, kNewTarget, kActualArgumentsCount, kAllocationSite)
+ DECLARE_DESCRIPTOR_WITH_CUSTOM_FUNCTION_TYPE(ArrayConstructorDescriptor,
+ CallInterfaceDescriptor)
+};
+
class ArrayNoArgumentConstructorDescriptor : public CallInterfaceDescriptor {
public:
DEFINE_PARAMETERS(kFunction, kAllocationSite, kActualArgumentsCount,
@@ -745,6 +803,13 @@ class SubStringDescriptor : public CallInterfaceDescriptor {
CallInterfaceDescriptor)
};
+class StringIndexOfDescriptor final : public CallInterfaceDescriptor {
+ public:
+ DEFINE_PARAMETERS(kReceiver, kSearchString, kPosition)
+ DECLARE_DEFAULT_DESCRIPTOR(StringIndexOfDescriptor, CallInterfaceDescriptor,
+ kParameterCount)
+};
+
// TODO(ishell): not used, remove.
class KeyedDescriptor : public CallInterfaceDescriptor {
public:
@@ -876,6 +941,11 @@ class ResumeGeneratorDescriptor final : public CallInterfaceDescriptor {
DECLARE_DESCRIPTOR(ResumeGeneratorDescriptor, CallInterfaceDescriptor)
};
+class FrameDropperTrampolineDescriptor final : public CallInterfaceDescriptor {
+ DECLARE_DESCRIPTOR_WITH_CUSTOM_FUNCTION_TYPE(FrameDropperTrampolineDescriptor,
+ CallInterfaceDescriptor)
+};
+
class PromiseHandleRejectDescriptor final : public CallInterfaceDescriptor {
public:
DEFINE_PARAMETERS(kPromise, kOnReject, kException)
@@ -883,6 +953,12 @@ class PromiseHandleRejectDescriptor final : public CallInterfaceDescriptor {
CallInterfaceDescriptor, kParameterCount)
};
+class WasmRuntimeCallDescriptor final : public CallInterfaceDescriptor {
+ public:
+ DECLARE_DEFAULT_DESCRIPTOR(WasmRuntimeCallDescriptor, CallInterfaceDescriptor,
+ 0)
+};
+
#undef DECLARE_DESCRIPTOR_WITH_BASE
#undef DECLARE_DESCRIPTOR
#undef DECLARE_DESCRIPTOR_WITH_CUSTOM_FUNCTION_TYPE