diff options
Diffstat (limited to 'deps/v8/src/interface-descriptors.h')
-rw-r--r-- | deps/v8/src/interface-descriptors.h | 84 |
1 files changed, 78 insertions, 6 deletions
diff --git a/deps/v8/src/interface-descriptors.h b/deps/v8/src/interface-descriptors.h index a016797623..534313f7d3 100644 --- a/deps/v8/src/interface-descriptors.h +++ b/deps/v8/src/interface-descriptors.h @@ -17,13 +17,15 @@ class PlatformInterfaceDescriptor; V(Load) \ V(Store) \ V(StoreTransition) \ + V(VectorStoreTransition) \ V(VectorStoreICTrampoline) \ V(VectorStoreIC) \ - V(Instanceof) \ + V(InstanceOf) \ V(LoadWithVector) \ V(FastNewClosure) \ V(FastNewContext) \ V(ToNumber) \ + V(ToString) \ V(ToObject) \ V(NumberToString) \ V(Typeof) \ @@ -35,6 +37,8 @@ class PlatformInterfaceDescriptor; V(CallFunctionWithFeedback) \ V(CallFunctionWithFeedbackAndVector) \ V(CallConstruct) \ + V(CallTrampoline) \ + V(PushArgsAndCall) \ V(RegExpConstructResult) \ V(TransitionElementsKind) \ V(AllocateHeapNumber) \ @@ -48,6 +52,7 @@ class PlatformInterfaceDescriptor; V(BinaryOp) \ V(BinaryOpWithAllocationSite) \ V(StringAdd) \ + V(StringCompare) \ V(Keyed) \ V(Named) \ V(CallHandler) \ @@ -56,6 +61,7 @@ class PlatformInterfaceDescriptor; V(ApiAccessor) \ V(ApiGetter) \ V(ArgumentsAccessRead) \ + V(ArgumentsAccessNew) \ V(StoreArrayLiteralElement) \ V(LoadGlobalViaContext) \ V(StoreGlobalViaContext) \ @@ -263,18 +269,40 @@ class StoreTransitionDescriptor : public StoreDescriptor { kParameterCount }; - // MapRegister() is no_reg on ia32, instead it's on the stack. static const Register MapRegister(); }; -class InstanceofDescriptor : public CallInterfaceDescriptor { +class VectorStoreTransitionDescriptor : public StoreDescriptor { public: - DECLARE_DESCRIPTOR(InstanceofDescriptor, CallInterfaceDescriptor) + DECLARE_DESCRIPTOR_WITH_CUSTOM_FUNCTION_TYPE(VectorStoreTransitionDescriptor, + StoreDescriptor) + + // Extends StoreDescriptor with Map parameter. + enum ParameterIndices { + kReceiverIndex, + kNameIndex, + kValueIndex, + kSlotIndex, + kVectorIndex, + kMapIndex, + kParameterCount + }; + + // These registers are no_reg for ia32, using the stack instead. + static const Register SlotRegister(); + static const Register VectorRegister(); + static const Register MapRegister(); +}; + + +class InstanceOfDescriptor final : public CallInterfaceDescriptor { + public: + DECLARE_DESCRIPTOR(InstanceOfDescriptor, CallInterfaceDescriptor) enum ParameterIndices { kLeftIndex, kRightIndex, kParameterCount }; - static const Register left(); - static const Register right(); + static const Register LeftRegister(); + static const Register RightRegister(); }; @@ -340,6 +368,16 @@ class ToNumberDescriptor : public CallInterfaceDescriptor { }; +class ToStringDescriptor : public CallInterfaceDescriptor { + public: + enum ParameterIndices { kReceiverIndex }; + + DECLARE_DESCRIPTOR(ToStringDescriptor, CallInterfaceDescriptor) + + static const Register ReceiverRegister(); +}; + + class ToObjectDescriptor : public CallInterfaceDescriptor { public: enum ParameterIndices { kReceiverIndex }; @@ -396,6 +434,13 @@ class CreateWeakCellDescriptor : public CallInterfaceDescriptor { }; +class CallTrampolineDescriptor : public CallInterfaceDescriptor { + public: + DECLARE_DESCRIPTOR_WITH_CUSTOM_FUNCTION_TYPE(CallTrampolineDescriptor, + CallInterfaceDescriptor) +}; + + class CallFunctionDescriptor : public CallInterfaceDescriptor { public: DECLARE_DESCRIPTOR(CallFunctionDescriptor, CallInterfaceDescriptor) @@ -527,6 +572,16 @@ class StringAddDescriptor : public CallInterfaceDescriptor { }; +class StringCompareDescriptor : public CallInterfaceDescriptor { + public: + DECLARE_DESCRIPTOR(StringCompareDescriptor, CallInterfaceDescriptor) + + enum ParameterIndices { kLeftIndex, kRightIndex, kParameterCount }; + static const Register LeftRegister(); + static const Register RightRegister(); +}; + + class KeyedDescriptor : public CallInterfaceDescriptor { public: DECLARE_DESCRIPTOR(KeyedDescriptor, CallInterfaceDescriptor) @@ -584,6 +639,17 @@ class ArgumentsAccessReadDescriptor : public CallInterfaceDescriptor { }; +class ArgumentsAccessNewDescriptor : public CallInterfaceDescriptor { + public: + DECLARE_DESCRIPTOR_WITH_CUSTOM_FUNCTION_TYPE(ArgumentsAccessNewDescriptor, + CallInterfaceDescriptor) + + static const Register function(); + static const Register parameter_count(); + static const Register parameter_pointer(); +}; + + class StoreArrayLiteralElementDescriptor : public CallInterfaceDescriptor { public: DECLARE_DESCRIPTOR(StoreArrayLiteralElementDescriptor, @@ -639,6 +705,12 @@ class GrowArrayElementsDescriptor : public CallInterfaceDescriptor { static const Register KeyRegister(); }; + +class PushArgsAndCallDescriptor : public CallInterfaceDescriptor { + public: + DECLARE_DESCRIPTOR(PushArgsAndCallDescriptor, CallInterfaceDescriptor) +}; + #undef DECLARE_DESCRIPTOR |