Revert "Revert "Upgrade to 5.0.71.48"" DO NOT MERGE
This reverts commit f2e3994fa5148cc3d9946666f0b0596290192b0e,
and updates the x64 makefile properly so it doesn't break that
build.
FPIIM-449
Change-Id: Ib83e35bfbae6af627451c926a9650ec57c045605
(cherry picked from commit 109988c7ccb6f3fd1a58574fa3dfb88beaef6632)
diff --git a/src/interface-descriptors.h b/src/interface-descriptors.h
index 2814dae..fb1969d 100644
--- a/src/interface-descriptors.h
+++ b/src/interface-descriptors.h
@@ -25,9 +25,14 @@
V(LoadWithVector) \
V(FastNewClosure) \
V(FastNewContext) \
+ V(FastNewObject) \
+ V(FastNewRestParameter) \
+ V(FastNewSloppyArguments) \
+ V(FastNewStrictArguments) \
V(ToNumber) \
V(ToLength) \
V(ToString) \
+ V(ToName) \
V(ToObject) \
V(NumberToString) \
V(Typeof) \
@@ -66,21 +71,17 @@
V(ApiFunction) \
V(ApiAccessor) \
V(ApiGetter) \
- V(ArgumentsAccessRead) \
- V(ArgumentsAccessNew) \
- V(RestParamAccess) \
- V(StoreArrayLiteralElement) \
V(LoadGlobalViaContext) \
V(StoreGlobalViaContext) \
V(MathPowTagged) \
V(MathPowInteger) \
V(ContextOnly) \
V(GrowArrayElements) \
+ V(InterpreterDispatch) \
V(InterpreterPushArgsAndCall) \
V(InterpreterPushArgsAndConstruct) \
V(InterpreterCEntry)
-
class CallInterfaceDescriptorData {
public:
CallInterfaceDescriptorData()
@@ -89,7 +90,7 @@
// A copy of the passed in registers and param_representations is made
// and owned by the CallInterfaceDescriptorData.
- void InitializePlatformIndependent(Type::FunctionType* function_type) {
+ void InitializePlatformIndependent(FunctionType* function_type) {
function_type_ = function_type;
}
@@ -112,7 +113,7 @@
return platform_specific_descriptor_;
}
- Type::FunctionType* function_type() const { return function_type_; }
+ FunctionType* function_type() const { return function_type_; }
private:
int register_param_count_;
@@ -124,7 +125,7 @@
base::SmartArrayPointer<Register> register_params_;
// Specifies types for parameters and return
- Type::FunctionType* function_type_;
+ FunctionType* function_type_;
PlatformInterfaceDescriptor* platform_specific_descriptor_;
@@ -175,21 +176,19 @@
return data()->platform_specific_descriptor();
}
- Type::FunctionType* GetFunctionType() const {
- return data()->function_type();
- }
+ FunctionType* GetFunctionType() const { return data()->function_type(); }
static const Register ContextRegister();
const char* DebugName(Isolate* isolate) const;
- static Type::FunctionType* BuildDefaultFunctionType(Isolate* isolate,
- int paramater_count);
+ static FunctionType* BuildDefaultFunctionType(Isolate* isolate,
+ int paramater_count);
protected:
const CallInterfaceDescriptorData* data() const { return data_; }
- virtual Type::FunctionType* BuildCallInterfaceDescriptorFunctionType(
+ virtual FunctionType* BuildCallInterfaceDescriptorFunctionType(
Isolate* isolate, int register_param_count) {
return BuildDefaultFunctionType(isolate, register_param_count);
}
@@ -202,9 +201,8 @@
if (!data()->IsInitialized()) {
CallInterfaceDescriptorData* d = isolate->call_descriptor_data(key);
InitializePlatformSpecific(d);
- Type::FunctionType* function_type =
- BuildCallInterfaceDescriptorFunctionType(isolate,
- d->register_param_count());
+ FunctionType* function_type = BuildCallInterfaceDescriptorFunctionType(
+ isolate, d->register_param_count());
d->InitializePlatformIndependent(function_type);
}
}
@@ -226,16 +224,14 @@
public: \
static inline CallDescriptors::Key key();
-
#define DECLARE_DESCRIPTOR_WITH_CUSTOM_FUNCTION_TYPE(name, base) \
DECLARE_DESCRIPTOR(name, base) \
protected: \
- Type::FunctionType* BuildCallInterfaceDescriptorFunctionType( \
+ FunctionType* BuildCallInterfaceDescriptorFunctionType( \
Isolate* isolate, int register_param_count) override; \
\
public:
-
class VoidDescriptor : public CallInterfaceDescriptor {
public:
DECLARE_DESCRIPTOR(VoidDescriptor, CallInterfaceDescriptor)
@@ -379,6 +375,28 @@
DECLARE_DESCRIPTOR(FastNewContextDescriptor, CallInterfaceDescriptor)
};
+class FastNewObjectDescriptor : public CallInterfaceDescriptor {
+ public:
+ DECLARE_DESCRIPTOR(FastNewObjectDescriptor, CallInterfaceDescriptor)
+};
+
+class FastNewRestParameterDescriptor : public CallInterfaceDescriptor {
+ public:
+ DECLARE_DESCRIPTOR(FastNewRestParameterDescriptor, CallInterfaceDescriptor)
+};
+
+class FastNewSloppyArgumentsDescriptor : public CallInterfaceDescriptor {
+ public:
+ DECLARE_DESCRIPTOR(FastNewSloppyArgumentsDescriptor,
+ CallInterfaceDescriptor)
+};
+
+class FastNewStrictArgumentsDescriptor : public CallInterfaceDescriptor {
+ public:
+ DECLARE_DESCRIPTOR(FastNewStrictArgumentsDescriptor,
+ CallInterfaceDescriptor)
+};
+
class ToNumberDescriptor : public CallInterfaceDescriptor {
public:
@@ -406,6 +424,16 @@
};
+class ToNameDescriptor : public CallInterfaceDescriptor {
+ public:
+ enum ParameterIndices { kReceiverIndex };
+
+ DECLARE_DESCRIPTOR(ToNameDescriptor, CallInterfaceDescriptor)
+
+ static const Register ReceiverRegister();
+};
+
+
class ToObjectDescriptor : public CallInterfaceDescriptor {
public:
enum ParameterIndices { kReceiverIndex };
@@ -692,43 +720,6 @@
};
-class ArgumentsAccessReadDescriptor : public CallInterfaceDescriptor {
- public:
- DECLARE_DESCRIPTOR(ArgumentsAccessReadDescriptor, CallInterfaceDescriptor)
-
- static const Register index();
- static const Register parameter_count();
-};
-
-
-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 RestParamAccessDescriptor : public CallInterfaceDescriptor {
- public:
- DECLARE_DESCRIPTOR_WITH_CUSTOM_FUNCTION_TYPE(RestParamAccessDescriptor,
- CallInterfaceDescriptor)
- static const Register parameter_count();
- static const Register parameter_pointer();
- static const Register rest_parameter_index();
-};
-
-
-class StoreArrayLiteralElementDescriptor : public CallInterfaceDescriptor {
- public:
- DECLARE_DESCRIPTOR(StoreArrayLiteralElementDescriptor,
- CallInterfaceDescriptor)
-};
-
-
class MathPowTaggedDescriptor : public CallInterfaceDescriptor {
public:
DECLARE_DESCRIPTOR(MathPowTaggedDescriptor, CallInterfaceDescriptor)
@@ -760,6 +751,18 @@
static const Register KeyRegister();
};
+class InterpreterDispatchDescriptor : public CallInterfaceDescriptor {
+ public:
+ DECLARE_DESCRIPTOR_WITH_CUSTOM_FUNCTION_TYPE(InterpreterDispatchDescriptor,
+ CallInterfaceDescriptor)
+
+ static const int kAccumulatorParameter = 0;
+ static const int kRegisterFileParameter = 1;
+ static const int kBytecodeOffsetParameter = 2;
+ static const int kBytecodeArrayParameter = 3;
+ static const int kDispatchTableParameter = 4;
+ static const int kContextParameter = 5;
+};
class InterpreterPushArgsAndCallDescriptor : public CallInterfaceDescriptor {
public:
@@ -781,7 +784,6 @@
DECLARE_DESCRIPTOR(InterpreterCEntryDescriptor, CallInterfaceDescriptor)
};
-
#undef DECLARE_DESCRIPTOR