Revision: 23713
Author: [email protected]
Date: Fri Sep 5 07:25:00 2014 UTC
Log: X87: CallDescriptors::InitializeForIsolate() is no longer needed.
port r23652.
original commit message:
CallDescriptors::InitializeForIsolate() is no longer needed.
CallInterfaceDescriptors initialize themselves lazily. Soon we can also
tear
down the CodeStubInterfaceDescriptor explicit initialization step.
BUG=
[email protected]
Review URL: https://codereview.chromium.org/541353002
Patch from Jing Bao <[email protected]>.
https://code.google.com/p/v8/source/detail?r=23713
Modified:
/branches/bleeding_edge/src/x87/interface-descriptors-x87.cc
=======================================
--- /branches/bleeding_edge/src/x87/interface-descriptors-x87.cc Fri Sep 5
02:11:31 2014 UTC
+++ /branches/bleeding_edge/src/x87/interface-descriptors-x87.cc Fri Sep 5
07:25:00 2014 UTC
@@ -61,60 +61,62 @@
const Register InstanceofDescriptor::right() { return edx; }
-void FastNewClosureDescriptor::Initialize(Isolate* isolate) {
+void FastNewClosureDescriptor::Initialize(CallInterfaceDescriptorData*
data) {
Register registers[] = {esi, ebx};
- InitializeData(isolate, key(), arraysize(registers), registers, NULL);
+ data->Initialize(arraysize(registers), registers, NULL);
}
-void FastNewContextDescriptor::Initialize(Isolate* isolate) {
+void FastNewContextDescriptor::Initialize(CallInterfaceDescriptorData*
data) {
Register registers[] = {esi, edi};
- InitializeData(isolate, key(), arraysize(registers), registers, NULL);
+ data->Initialize(arraysize(registers), registers, NULL);
}
-void ToNumberDescriptor::Initialize(Isolate* isolate) {
+void ToNumberDescriptor::Initialize(CallInterfaceDescriptorData* data) {
// ToNumberStub invokes a function, and therefore needs a context.
Register registers[] = {esi, eax};
- InitializeData(isolate, key(), arraysize(registers), registers, NULL);
+ data->Initialize(arraysize(registers), registers, NULL);
}
-void NumberToStringDescriptor::Initialize(Isolate* isolate) {
+void NumberToStringDescriptor::Initialize(CallInterfaceDescriptorData*
data) {
Register registers[] = {esi, eax};
- InitializeData(isolate, key(), arraysize(registers), registers, NULL);
+ data->Initialize(arraysize(registers), registers, NULL);
}
-void FastCloneShallowArrayDescriptor::Initialize(Isolate* isolate) {
+void FastCloneShallowArrayDescriptor::Initialize(
+ CallInterfaceDescriptorData* data) {
Register registers[] = {esi, eax, ebx, ecx};
Representation representations[] = {
Representation::Tagged(), Representation::Tagged(),
Representation::Smi(),
Representation::Tagged()};
- InitializeData(isolate, key(), arraysize(registers), registers,
- representations);
+ data->Initialize(arraysize(registers), registers, representations);
}
-void FastCloneShallowObjectDescriptor::Initialize(Isolate* isolate) {
+void FastCloneShallowObjectDescriptor::Initialize(
+ CallInterfaceDescriptorData* data) {
Register registers[] = {esi, eax, ebx, ecx, edx};
- InitializeData(isolate, key(), arraysize(registers), registers, NULL);
+ data->Initialize(arraysize(registers), registers, NULL);
}
-void CreateAllocationSiteDescriptor::Initialize(Isolate* isolate) {
+void CreateAllocationSiteDescriptor::Initialize(
+ CallInterfaceDescriptorData* data) {
Register registers[] = {esi, ebx, edx};
- InitializeData(isolate, key(), arraysize(registers), registers, NULL);
+ data->Initialize(arraysize(registers), registers, NULL);
}
-void CallFunctionDescriptor::Initialize(Isolate* isolate) {
+void CallFunctionDescriptor::Initialize(CallInterfaceDescriptorData* data)
{
Register registers[] = {esi, edi};
- InitializeData(isolate, key(), arraysize(registers), registers, NULL);
+ data->Initialize(arraysize(registers), registers, NULL);
}
-void CallConstructDescriptor::Initialize(Isolate* isolate) {
+void CallConstructDescriptor::Initialize(CallInterfaceDescriptorData*
data) {
// eax : number of arguments
// ebx : feedback vector
// edx : (only if ebx is not the megamorphic symbol) slot in feedback
@@ -123,95 +125,98 @@
// TODO(turbofan): So far we don't gather type feedback and hence skip
the
// slot parameter, but ArrayConstructStub needs the vector to be
undefined.
Register registers[] = {esi, eax, edi, ebx};
- InitializeData(isolate, key(), arraysize(registers), registers, NULL);
+ data->Initialize(arraysize(registers), registers, NULL);
}
-void RegExpConstructResultDescriptor::Initialize(Isolate* isolate) {
+void RegExpConstructResultDescriptor::Initialize(
+ CallInterfaceDescriptorData* data) {
Register registers[] = {esi, ecx, ebx, eax};
- InitializeData(isolate, key(), arraysize(registers), registers, NULL);
+ data->Initialize(arraysize(registers), registers, NULL);
}
-void TransitionElementsKindDescriptor::Initialize(Isolate* isolate) {
+void TransitionElementsKindDescriptor::Initialize(
+ CallInterfaceDescriptorData* data) {
Register registers[] = {esi, eax, ebx};
- InitializeData(isolate, key(), arraysize(registers), registers, NULL);
+ data->Initialize(arraysize(registers), registers, NULL);
}
-void ArrayConstructorConstantArgCountDescriptor::Initialize(Isolate*
isolate) {
+void ArrayConstructorConstantArgCountDescriptor::Initialize(
+ CallInterfaceDescriptorData* data) {
// register state
// eax -- number of arguments
// edi -- function
// ebx -- allocation site with elements kind
Register registers[] = {esi, edi, ebx};
- InitializeData(isolate, key(), arraysize(registers), registers, NULL);
+ data->Initialize(arraysize(registers), registers, NULL);
}
-void ArrayConstructorDescriptor::Initialize(Isolate* isolate) {
+void ArrayConstructorDescriptor::Initialize(CallInterfaceDescriptorData*
data) {
// stack param count needs (constructor pointer, and single argument)
Register registers[] = {esi, edi, ebx, eax};
Representation representations[] = {
Representation::Tagged(), Representation::Tagged(),
Representation::Tagged(), Representation::Integer32()};
- InitializeData(isolate, key(), arraysize(registers), registers,
- representations);
+ data->Initialize(arraysize(registers), registers, representations);
}
void InternalArrayConstructorConstantArgCountDescriptor::Initialize(
- Isolate* isolate) {
+ CallInterfaceDescriptorData* data) {
// register state
// eax -- number of arguments
// edi -- function
Register registers[] = {esi, edi};
- InitializeData(isolate, key(), arraysize(registers), registers, NULL);
+ data->Initialize(arraysize(registers), registers, NULL);
}
-void InternalArrayConstructorDescriptor::Initialize(Isolate* isolate) {
+void InternalArrayConstructorDescriptor::Initialize(
+ CallInterfaceDescriptorData* data) {
// stack param count needs (constructor pointer, and single argument)
Register registers[] = {esi, edi, eax};
Representation representations[] = {Representation::Tagged(),
Representation::Tagged(),
Representation::Integer32()};
- InitializeData(isolate, key(), arraysize(registers), registers,
- representations);
+ data->Initialize(arraysize(registers), registers, representations);
}
-void CompareNilDescriptor::Initialize(Isolate* isolate) {
+void CompareNilDescriptor::Initialize(CallInterfaceDescriptorData* data) {
Register registers[] = {esi, eax};
- InitializeData(isolate, key(), arraysize(registers), registers, NULL);
+ data->Initialize(arraysize(registers), registers, NULL);
}
-void ToBooleanDescriptor::Initialize(Isolate* isolate) {
+void ToBooleanDescriptor::Initialize(CallInterfaceDescriptorData* data) {
Register registers[] = {esi, eax};
- InitializeData(isolate, key(), arraysize(registers), registers, NULL);
+ data->Initialize(arraysize(registers), registers, NULL);
}
-void BinaryOpDescriptor::Initialize(Isolate* isolate) {
+void BinaryOpDescriptor::Initialize(CallInterfaceDescriptorData* data) {
Register registers[] = {esi, edx, eax};
- InitializeData(isolate, key(), arraysize(registers), registers, NULL);
+ data->Initialize(arraysize(registers), registers, NULL);
}
-void BinaryOpWithAllocationSiteDescriptor::Initialize(Isolate* isolate) {
+void BinaryOpWithAllocationSiteDescriptor::Initialize(
+ CallInterfaceDescriptorData* data) {
Register registers[] = {esi, ecx, edx, eax};
- InitializeData(isolate, key(), arraysize(registers), registers, NULL);
+ data->Initialize(arraysize(registers), registers, NULL);
}
-void StringAddDescriptor::Initialize(Isolate* isolate) {
+void StringAddDescriptor::Initialize(CallInterfaceDescriptorData* data) {
Register registers[] = {esi, edx, eax};
- InitializeData(isolate, key(), arraysize(registers), registers, NULL);
+ data->Initialize(arraysize(registers), registers, NULL);
}
-void KeyedDescriptor::Initialize(Isolate* isolate) {
+void KeyedDescriptor::Initialize(CallInterfaceDescriptorData* data) {
Register registers[] = {
esi, // context
ecx, // key
@@ -220,12 +225,11 @@
Representation::Tagged(), // context
Representation::Tagged(), // key
};
- InitializeData(isolate, key(), arraysize(registers), registers,
- representations);
+ data->Initialize(arraysize(registers), registers, representations);
}
-void NamedDescriptor::Initialize(Isolate* isolate) {
+void NamedDescriptor::Initialize(CallInterfaceDescriptorData* data) {
Register registers[] = {
esi, // context
ecx, // name
@@ -234,12 +238,11 @@
Representation::Tagged(), // context
Representation::Tagged(), // name
};
- InitializeData(isolate, key(), arraysize(registers), registers,
- representations);
+ data->Initialize(arraysize(registers), registers, representations);
}
-void CallHandlerDescriptor::Initialize(Isolate* isolate) {
+void CallHandlerDescriptor::Initialize(CallInterfaceDescriptorData* data) {
Register registers[] = {
esi, // context
edx, // name
@@ -248,12 +251,11 @@
Representation::Tagged(), // context
Representation::Tagged(), // receiver
};
- InitializeData(isolate, key(), arraysize(registers), registers,
- representations);
+ data->Initialize(arraysize(registers), registers, representations);
}
-void ArgumentAdaptorDescriptor::Initialize(Isolate* isolate) {
+void ArgumentAdaptorDescriptor::Initialize(CallInterfaceDescriptorData*
data) {
Register registers[] = {
esi, // context
edi, // JSFunction
@@ -266,12 +268,11 @@
Representation::Integer32(), // actual number of arguments
Representation::Integer32(), // expected number of arguments
};
- InitializeData(isolate, key(), arraysize(registers), registers,
- representations);
+ data->Initialize(arraysize(registers), registers, representations);
}
-void ApiFunctionDescriptor::Initialize(Isolate* isolate) {
+void ApiFunctionDescriptor::Initialize(CallInterfaceDescriptorData* data) {
Register registers[] = {
esi, // context
eax, // callee
@@ -286,8 +287,7 @@
Representation::Tagged(), // holder
Representation::External(), // api_function_address
};
- InitializeData(isolate, key(), arraysize(registers), registers,
- representations);
+ data->Initialize(arraysize(registers), registers, representations);
}
}
} // namespace v8::internal
--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
---
You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.