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.

Reply via email to