aboutsummaryrefslogtreecommitdiff
path: root/deps/v8/src/interface-descriptors.h
diff options
context:
space:
mode:
authorAli Ijaz Sheikh <ofrobots@google.com>2016-01-20 09:45:45 -0800
committerAli Ijaz Sheikh <ofrobots@google.com>2016-01-21 16:53:58 -0800
commitef4170ea03a80b21b2d8a65ce432efaa370fe2fa (patch)
treee382b1b38b729cd8155b56b441c3a563914854a3 /deps/v8/src/interface-descriptors.h
parent5f6dfab832979999d2f806fc1a2f1c11a25b0f35 (diff)
downloadandroid-node-v8-ef4170ea03a80b21b2d8a65ce432efaa370fe2fa.tar.gz
android-node-v8-ef4170ea03a80b21b2d8a65ce432efaa370fe2fa.tar.bz2
android-node-v8-ef4170ea03a80b21b2d8a65ce432efaa370fe2fa.zip
deps: upgrade to V8 4.8.271.17
Pick up V8 4.8 branch-head. This branch brings in @@isConcatSpreadable, @@toPrimitive and ToLength ES6 changes. For full details see: http://v8project.blogspot.de/2015/11/v8-release-48.html https://github.com/v8/v8/commit/fa163e2 Ref: https://github.com/nodejs/node/pull/4399 PR-URL: https://github.com/nodejs/node/pull/4785 Reviewed-By: bnoordhuis - Ben Noordhuis <info@bnoordhuis.nl>
Diffstat (limited to 'deps/v8/src/interface-descriptors.h')
-rw-r--r--deps/v8/src/interface-descriptors.h88
1 files changed, 67 insertions, 21 deletions
diff --git a/deps/v8/src/interface-descriptors.h b/deps/v8/src/interface-descriptors.h
index 534313f7d3..2c5ac4b052 100644
--- a/deps/v8/src/interface-descriptors.h
+++ b/deps/v8/src/interface-descriptors.h
@@ -25,6 +25,7 @@ class PlatformInterfaceDescriptor;
V(FastNewClosure) \
V(FastNewContext) \
V(ToNumber) \
+ V(ToLength) \
V(ToString) \
V(ToObject) \
V(NumberToString) \
@@ -38,10 +39,11 @@ class PlatformInterfaceDescriptor;
V(CallFunctionWithFeedbackAndVector) \
V(CallConstruct) \
V(CallTrampoline) \
- V(PushArgsAndCall) \
V(RegExpConstructResult) \
V(TransitionElementsKind) \
V(AllocateHeapNumber) \
+ V(AllocateMutableHeapNumber) \
+ V(AllocateInNewSpace) \
V(ArrayConstructorConstantArgCount) \
V(ArrayConstructor) \
V(InternalArrayConstructorConstantArgCount) \
@@ -70,7 +72,10 @@ class PlatformInterfaceDescriptor;
V(ContextOnly) \
V(GrowArrayElements) \
V(MathRoundVariantCallFromUnoptimizedCode) \
- V(MathRoundVariantCallFromOptimizedCode)
+ V(MathRoundVariantCallFromOptimizedCode) \
+ V(InterpreterPushArgsAndCall) \
+ V(InterpreterPushArgsAndConstruct) \
+ V(InterpreterCEntry)
class CallInterfaceDescriptorData {
@@ -219,12 +224,12 @@ class CallInterfaceDescriptor {
static inline CallDescriptors::Key key();
-#define DECLARE_DESCRIPTOR_WITH_CUSTOM_FUNCTION_TYPE(name, base) \
- DECLARE_DESCRIPTOR(name, base) \
- protected: \
- virtual Type::FunctionType* BuildCallInterfaceDescriptorFunctionType( \
- Isolate* isolate, int register_param_count) override; \
- \
+#define DECLARE_DESCRIPTOR_WITH_CUSTOM_FUNCTION_TYPE(name, base) \
+ DECLARE_DESCRIPTOR(name, base) \
+ protected: \
+ Type::FunctionType* BuildCallInterfaceDescriptorFunctionType( \
+ Isolate* isolate, int register_param_count) override; \
+ \
public:
// LoadDescriptor is used by all stubs that implement Load/KeyedLoad ICs.
class LoadDescriptor : public CallInterfaceDescriptor {
@@ -280,19 +285,21 @@ class VectorStoreTransitionDescriptor : public StoreDescriptor {
// Extends StoreDescriptor with Map parameter.
enum ParameterIndices {
- kReceiverIndex,
- kNameIndex,
- kValueIndex,
- kSlotIndex,
- kVectorIndex,
- kMapIndex,
- kParameterCount
+ kReceiverIndex = 0,
+ kNameIndex = 1,
+ kValueIndex = 2,
+
+ kMapIndex = 3,
+
+ kSlotIndex = 4, // not present on ia32.
+ kVirtualSlotVectorIndex = 4,
+
+ kVectorIndex = 5
};
- // These registers are no_reg for ia32, using the stack instead.
+ static const Register MapRegister();
static const Register SlotRegister();
static const Register VectorRegister();
- static const Register MapRegister();
};
@@ -368,6 +375,16 @@ class ToNumberDescriptor : public CallInterfaceDescriptor {
};
+class ToLengthDescriptor : public CallInterfaceDescriptor {
+ public:
+ enum ParameterIndices { kReceiverIndex };
+
+ DECLARE_DESCRIPTOR(ToLengthDescriptor, CallInterfaceDescriptor)
+
+ static const Register ReceiverRegister();
+};
+
+
class ToStringDescriptor : public CallInterfaceDescriptor {
public:
enum ParameterIndices { kReceiverIndex };
@@ -505,6 +522,19 @@ class AllocateHeapNumberDescriptor : public CallInterfaceDescriptor {
};
+class AllocateMutableHeapNumberDescriptor : public CallInterfaceDescriptor {
+ public:
+ DECLARE_DESCRIPTOR(AllocateMutableHeapNumberDescriptor,
+ CallInterfaceDescriptor)
+};
+
+
+class AllocateInNewSpaceDescriptor : public CallInterfaceDescriptor {
+ public:
+ DECLARE_DESCRIPTOR(AllocateInNewSpaceDescriptor, CallInterfaceDescriptor)
+};
+
+
class ArrayConstructorConstantArgCountDescriptor
: public CallInterfaceDescriptor {
public:
@@ -706,11 +736,27 @@ class GrowArrayElementsDescriptor : public CallInterfaceDescriptor {
};
-class PushArgsAndCallDescriptor : public CallInterfaceDescriptor {
+class InterpreterPushArgsAndCallDescriptor : public CallInterfaceDescriptor {
+ public:
+ DECLARE_DESCRIPTOR(InterpreterPushArgsAndCallDescriptor,
+ CallInterfaceDescriptor)
+};
+
+
+class InterpreterPushArgsAndConstructDescriptor
+ : public CallInterfaceDescriptor {
+ public:
+ DECLARE_DESCRIPTOR(InterpreterPushArgsAndConstructDescriptor,
+ CallInterfaceDescriptor)
+};
+
+
+class InterpreterCEntryDescriptor : public CallInterfaceDescriptor {
public:
- DECLARE_DESCRIPTOR(PushArgsAndCallDescriptor, CallInterfaceDescriptor)
+ DECLARE_DESCRIPTOR(InterpreterCEntryDescriptor, CallInterfaceDescriptor)
};
+
#undef DECLARE_DESCRIPTOR
@@ -720,8 +766,8 @@ class PushArgsAndCallDescriptor : public CallInterfaceDescriptor {
CallDescriptors::Key name##Descriptor::key() { return CallDescriptors::name; }
INTERFACE_DESCRIPTOR_LIST(DEF_KEY)
#undef DEF_KEY
-}
-} // namespace v8::internal
+} // namespace internal
+} // namespace v8
#if V8_TARGET_ARCH_ARM64