Revision: 22479
Author:   [email protected]
Date:     Fri Jul 18 13:06:03 2014 UTC
Log:      Version 3.28.28.2 (merged r22456)

MIPS: StubCallInterfaceDescriptor and CallInterfaceDescriptor are unified under a base class InterfaceDescriptor.

[email protected], [email protected]
BUG=

Review URL: https://codereview.chromium.org/404773002
http://code.google.com/p/v8/source/detail?r=22479

Modified:
 /trunk/src/mips/code-stubs-mips.cc
 /trunk/src/mips/lithium-mips.cc
 /trunk/src/mips/lithium-mips.h
 /trunk/src/mips64/code-stubs-mips64.cc
 /trunk/src/mips64/lithium-mips64.cc
 /trunk/src/mips64/lithium-mips64.h
 /trunk/src/version.cc

=======================================
--- /trunk/src/mips/code-stubs-mips.cc  Wed Jul 16 00:04:33 2014 UTC
+++ /trunk/src/mips/code-stubs-mips.cc  Fri Jul 18 13:06:03 2014 UTC
@@ -18,7 +18,7 @@

 void FastNewClosureStub::InitializeInterfaceDescriptor(
     CodeStubInterfaceDescriptor* descriptor) {
-  Register registers[] = { a2 };
+  Register registers[] = { cp, a2 };
   descriptor->Initialize(
       ARRAY_SIZE(registers), registers,
       Runtime::FunctionForId(Runtime::kNewClosureFromStubFailure)->entry);
@@ -27,21 +27,21 @@

 void FastNewContextStub::InitializeInterfaceDescriptor(
     CodeStubInterfaceDescriptor* descriptor) {
-  Register registers[] = { a1 };
+  Register registers[] = { cp, a1 };
   descriptor->Initialize(ARRAY_SIZE(registers), registers);
 }


 void ToNumberStub::InitializeInterfaceDescriptor(
     CodeStubInterfaceDescriptor* descriptor) {
-  Register registers[] = { a0 };
+  Register registers[] = { cp, a0 };
   descriptor->Initialize(ARRAY_SIZE(registers), registers);
 }


 void NumberToStringStub::InitializeInterfaceDescriptor(
     CodeStubInterfaceDescriptor* descriptor) {
-  Register registers[] = { a0 };
+  Register registers[] = { cp, a0 };
   descriptor->Initialize(
       ARRAY_SIZE(registers), registers,
       Runtime::FunctionForId(Runtime::kNumberToStringRT)->entry);
@@ -50,9 +50,10 @@

 void FastCloneShallowArrayStub::InitializeInterfaceDescriptor(
     CodeStubInterfaceDescriptor* descriptor) {
-  Register registers[] = { a3, a2, a1 };
+  Register registers[] = { cp, a3, a2, a1 };
   Representation representations[] = {
     Representation::Tagged(),
+    Representation::Tagged(),
     Representation::Smi(),
     Representation::Tagged() };
   descriptor->Initialize(
@@ -64,7 +65,7 @@

 void FastCloneShallowObjectStub::InitializeInterfaceDescriptor(
     CodeStubInterfaceDescriptor* descriptor) {
-  Register registers[] = { a3, a2, a1, a0 };
+  Register registers[] = { cp, a3, a2, a1, a0 };
   descriptor->Initialize(
       ARRAY_SIZE(registers), registers,
       Runtime::FunctionForId(Runtime::kCreateObjectLiteral)->entry);
@@ -73,14 +74,14 @@

 void CreateAllocationSiteStub::InitializeInterfaceDescriptor(
     CodeStubInterfaceDescriptor* descriptor) {
-  Register registers[] = { a2, a3 };
+  Register registers[] = { cp, a2, a3 };
   descriptor->Initialize(ARRAY_SIZE(registers), registers);
 }


 void RegExpConstructResultStub::InitializeInterfaceDescriptor(
     CodeStubInterfaceDescriptor* descriptor) {
-  Register registers[] = { a2, a1, a0 };
+  Register registers[] = { cp, a2, a1, a0 };
   descriptor->Initialize(
       ARRAY_SIZE(registers), registers,
       Runtime::FunctionForId(Runtime::kRegExpConstructResult)->entry);
@@ -89,7 +90,7 @@

 void TransitionElementsKindStub::InitializeInterfaceDescriptor(
     CodeStubInterfaceDescriptor* descriptor) {
-  Register registers[] = { a0, a1 };
+  Register registers[] = { cp, a0, a1 };
   Address entry =
       Runtime::FunctionForId(Runtime::kTransitionElementsKind)->entry;
   descriptor->Initialize(ARRAY_SIZE(registers), registers,
@@ -99,18 +100,22 @@

 void CompareNilICStub::InitializeInterfaceDescriptor(
     CodeStubInterfaceDescriptor* descriptor) {
-  Register registers[] = { a0 };
+  Register registers[] = { cp, a0 };
   descriptor->Initialize(ARRAY_SIZE(registers), registers,
                          FUNCTION_ADDR(CompareNilIC_Miss));
   descriptor->SetMissHandler(
       ExternalReference(IC_Utility(IC::kCompareNilIC_Miss), isolate()));
 }
+
+
+const Register InterfaceDescriptor::ContextRegister() { return cp; }


 static void InitializeArrayConstructorDescriptor(
     CodeStubInterfaceDescriptor* descriptor,
     int constant_stack_parameter_count) {
   // register state
+  // cp -- context
   // a0 -- number of arguments
   // a1 -- function
   // a2 -- allocation site with elements kind
@@ -118,7 +123,7 @@
       Runtime::kArrayConstructor)->entry;

   if (constant_stack_parameter_count == 0) {
-    Register registers[] = { a1, a2 };
+    Register registers[] = { cp, a1, a2 };
     descriptor->Initialize(ARRAY_SIZE(registers), registers,
                            deopt_handler,
                            NULL,
@@ -126,10 +131,11 @@
                            JS_FUNCTION_STUB_MODE);
   } else {
     // stack param count needs (constructor pointer, and single argument)
-    Register registers[] = { a1, a2, a0 };
+    Register registers[] = { cp, a1, a2, a0 };
     Representation representations[] = {
         Representation::Tagged(),
         Representation::Tagged(),
+        Representation::Tagged(),
         Representation::Integer32() };
     descriptor->Initialize(ARRAY_SIZE(registers), registers,
                            a0,
@@ -146,13 +152,14 @@
     CodeStubInterfaceDescriptor* descriptor,
     int constant_stack_parameter_count) {
   // register state
+  // cp -- context
   // a0 -- number of arguments
   // a1 -- constructor function
   Address deopt_handler = Runtime::FunctionForId(
       Runtime::kInternalArrayConstructor)->entry;

   if (constant_stack_parameter_count == 0) {
-    Register registers[] = { a1 };
+    Register registers[] = { cp, a1 };
     descriptor->Initialize(ARRAY_SIZE(registers), registers,
                            deopt_handler,
                            NULL,
@@ -160,9 +167,10 @@
                            JS_FUNCTION_STUB_MODE);
   } else {
     // stack param count needs (constructor pointer, and single argument)
-    Register registers[] = { a1, a0 };
+    Register registers[] = { cp, a1, a0 };
     Representation representations[] = {
         Representation::Tagged(),
+        Representation::Tagged(),
         Representation::Integer32() };
     descriptor->Initialize(ARRAY_SIZE(registers), registers,
                            a0,
@@ -195,7 +203,7 @@

 void ToBooleanStub::InitializeInterfaceDescriptor(
     CodeStubInterfaceDescriptor* descriptor) {
-  Register registers[] = { a0 };
+  Register registers[] = { cp, a0 };
   descriptor->Initialize(ARRAY_SIZE(registers), registers,
                          FUNCTION_ADDR(ToBooleanIC_Miss));
   descriptor->SetMissHandler(
@@ -223,7 +231,7 @@

 void BinaryOpICStub::InitializeInterfaceDescriptor(
     CodeStubInterfaceDescriptor* descriptor) {
-  Register registers[] = { a1, a0 };
+  Register registers[] = { cp, a1, a0 };
   descriptor->Initialize(ARRAY_SIZE(registers), registers,
                          FUNCTION_ADDR(BinaryOpIC_Miss));
   descriptor->SetMissHandler(
@@ -233,7 +241,7 @@

 void BinaryOpWithAllocationSiteStub::InitializeInterfaceDescriptor(
     CodeStubInterfaceDescriptor* descriptor) {
-  Register registers[] = { a2, a1, a0 };
+  Register registers[] = { cp, a2, a1, a0 };
   descriptor->Initialize(ARRAY_SIZE(registers), registers,
                          FUNCTION_ADDR(BinaryOpIC_MissWithAllocationSite));
 }
@@ -241,7 +249,7 @@

 void StringAddStub::InitializeInterfaceDescriptor(
     CodeStubInterfaceDescriptor* descriptor) {
-  Register registers[] = { a1, a0 };
+  Register registers[] = { cp, a1, a0 };
   descriptor->Initialize(
       ARRAY_SIZE(registers), registers,
       Runtime::FunctionForId(Runtime::kStringAdd)->entry);
@@ -252,14 +260,14 @@
   {
     CallInterfaceDescriptor* descriptor =
         isolate->call_descriptor(Isolate::ArgumentAdaptorCall);
-    Register registers[] = { a1,  // JSFunction
-                             cp,  // context
+    Register registers[] = { cp,  // context,
+                             a1,  // JSFunction
                              a0,  // actual number of arguments
                              a2,  // expected number of arguments
     };
     Representation representations[] = {
+        Representation::Tagged(),     // context
         Representation::Tagged(),     // JSFunction
-        Representation::Tagged(),     // context
         Representation::Integer32(),  // actual number of arguments
         Representation::Integer32(),  // expected number of arguments
     };
@@ -304,18 +312,18 @@
   {
     CallInterfaceDescriptor* descriptor =
         isolate->call_descriptor(Isolate::ApiFunctionCall);
-    Register registers[] = { a0,  // callee
+    Register registers[] = { cp,  // context
+                             a0,  // callee
                              t0,  // call_data
                              a2,  // holder
                              a1,  // api_function_address
-                             cp,  // context
     };
     Representation representations[] = {
+        Representation::Tagged(),    // context
         Representation::Tagged(),    // callee
         Representation::Tagged(),    // call_data
         Representation::Tagged(),    // holder
         Representation::External(),  // api_function_address
-        Representation::Tagged(),    // context
     };
descriptor->Initialize(ARRAY_SIZE(registers), registers, representations);
   }
@@ -344,21 +352,22 @@
   isolate()->counters()->code_stubs()->Increment();

   CodeStubInterfaceDescriptor* descriptor = GetInterfaceDescriptor();
-  int param_count = descriptor->register_param_count();
+  int param_count = descriptor->GetEnvironmentParameterCount();
   {
     // Call the runtime system in a fresh internal frame.
     FrameScope scope(masm, StackFrame::INTERNAL);
-    ASSERT(descriptor->register_param_count() == 0 ||
-           a0.is(descriptor->GetParameterRegister(param_count - 1)));
+    ASSERT(param_count == 0 ||
+           a0.is(descriptor->GetEnvironmentParameterRegister(
+               param_count - 1)));
     // Push arguments, adjust sp.
     __ Subu(sp, sp, Operand(param_count * kPointerSize));
     for (int i = 0; i < param_count; ++i) {
       // Store argument to stack.
-      __ sw(descriptor->GetParameterRegister(i),
+      __ sw(descriptor->GetEnvironmentParameterRegister(i),
             MemOperand(sp, (param_count-1-i) * kPointerSize));
     }
     ExternalReference miss = descriptor->miss_handler();
-    __ CallExternalReference(miss, descriptor->register_param_count());
+    __ CallExternalReference(miss, param_count);
   }

   __ Ret();
=======================================
--- /trunk/src/mips/lithium-mips.cc     Fri Jul 11 07:33:43 2014 UTC
+++ /trunk/src/mips/lithium-mips.cc     Fri Jul 18 13:06:03 2014 UTC
@@ -1086,7 +1086,7 @@

 LInstruction* LChunkBuilder::DoCallWithDescriptor(
     HCallWithDescriptor* instr) {
-  const CallInterfaceDescriptor* descriptor = instr->descriptor();
+  const InterfaceDescriptor* descriptor = instr->descriptor();

   LOperand* target = UseRegisterOrConstantAtStart(instr->target());
   ZoneList<LOperand*> ops(instr->OperandCount(), zone());
@@ -2357,7 +2357,7 @@
     CodeStubInterfaceDescriptor* descriptor =
         info()->code_stub()->GetInterfaceDescriptor();
     int index = static_cast<int>(instr->index());
-    Register reg = descriptor->GetParameterRegister(index);
+    Register reg = descriptor->GetEnvironmentParameterRegister(index);
     return DefineFixed(result, reg);
   }
 }
=======================================
--- /trunk/src/mips/lithium-mips.h      Mon Jun 23 08:21:41 2014 UTC
+++ /trunk/src/mips/lithium-mips.h      Fri Jul 18 13:06:03 2014 UTC
@@ -1811,18 +1811,18 @@

 class LCallWithDescriptor V8_FINAL : public LTemplateResultInstruction<1> {
  public:
-  LCallWithDescriptor(const CallInterfaceDescriptor* descriptor,
+  LCallWithDescriptor(const InterfaceDescriptor* descriptor,
                       const ZoneList<LOperand*>& operands,
                       Zone* zone)
     : descriptor_(descriptor),
-      inputs_(descriptor->environment_length() + 1, zone) {
-    ASSERT(descriptor->environment_length() + 1 == operands.length());
+      inputs_(descriptor->GetRegisterParameterCount() + 1, zone) {
+ ASSERT(descriptor->GetRegisterParameterCount() + 1 == operands.length());
     inputs_.AddAll(operands, zone);
   }

   LOperand* target() const { return inputs_[0]; }

-  const CallInterfaceDescriptor* descriptor() { return descriptor_; }
+  const InterfaceDescriptor* descriptor() { return descriptor_; }

  private:
   DECLARE_CONCRETE_INSTRUCTION(CallWithDescriptor, "call-with-descriptor")
@@ -1832,7 +1832,7 @@

   int arity() const { return hydrogen()->argument_count() - 1; }

-  const CallInterfaceDescriptor* descriptor_;
+  const InterfaceDescriptor* descriptor_;
   ZoneList<LOperand*> inputs_;

   // Iterator support.
=======================================
--- /trunk/src/mips64/code-stubs-mips64.cc      Wed Jul 16 00:04:33 2014 UTC
+++ /trunk/src/mips64/code-stubs-mips64.cc      Fri Jul 18 13:06:03 2014 UTC
@@ -18,7 +18,7 @@

 void FastNewClosureStub::InitializeInterfaceDescriptor(
     CodeStubInterfaceDescriptor* descriptor) {
-  Register registers[] = { a2 };
+  Register registers[] = { cp, a2 };
   descriptor->Initialize(
       ARRAY_SIZE(registers), registers,
       Runtime::FunctionForId(Runtime::kNewClosureFromStubFailure)->entry);
@@ -27,21 +27,21 @@

 void FastNewContextStub::InitializeInterfaceDescriptor(
     CodeStubInterfaceDescriptor* descriptor) {
-  Register registers[] = { a1 };
+  Register registers[] = { cp, a1 };
   descriptor->Initialize(ARRAY_SIZE(registers), registers);
 }


 void ToNumberStub::InitializeInterfaceDescriptor(
     CodeStubInterfaceDescriptor* descriptor) {
-  Register registers[] = { a0 };
+  Register registers[] = { cp, a0 };
   descriptor->Initialize(ARRAY_SIZE(registers), registers);
 }


 void NumberToStringStub::InitializeInterfaceDescriptor(
     CodeStubInterfaceDescriptor* descriptor) {
-  Register registers[] = { a0 };
+  Register registers[] = { cp, a0 };
   descriptor->Initialize(
       ARRAY_SIZE(registers), registers,
       Runtime::FunctionForId(Runtime::kNumberToStringRT)->entry);
@@ -50,9 +50,10 @@

 void FastCloneShallowArrayStub::InitializeInterfaceDescriptor(
     CodeStubInterfaceDescriptor* descriptor) {
-  Register registers[] = { a3, a2, a1 };
+  Register registers[] = { cp, a3, a2, a1 };
   Representation representations[] = {
     Representation::Tagged(),
+    Representation::Tagged(),
     Representation::Smi(),
     Representation::Tagged() };
   descriptor->Initialize(
@@ -64,7 +65,7 @@

 void FastCloneShallowObjectStub::InitializeInterfaceDescriptor(
     CodeStubInterfaceDescriptor* descriptor) {
-  Register registers[] = { a3, a2, a1, a0 };
+  Register registers[] = { cp, a3, a2, a1, a0 };
   descriptor->Initialize(
       ARRAY_SIZE(registers), registers,
       Runtime::FunctionForId(Runtime::kCreateObjectLiteral)->entry);
@@ -73,14 +74,14 @@

 void CreateAllocationSiteStub::InitializeInterfaceDescriptor(
     CodeStubInterfaceDescriptor* descriptor) {
-  Register registers[] = { a2, a3 };
+  Register registers[] = { cp, a2, a3 };
   descriptor->Initialize(ARRAY_SIZE(registers), registers);
 }


 void RegExpConstructResultStub::InitializeInterfaceDescriptor(
     CodeStubInterfaceDescriptor* descriptor) {
-  Register registers[] = { a2, a1, a0 };
+  Register registers[] = { cp, a2, a1, a0 };
   descriptor->Initialize(
       ARRAY_SIZE(registers), registers,
       Runtime::FunctionForId(Runtime::kRegExpConstructResult)->entry);
@@ -89,7 +90,7 @@

 void TransitionElementsKindStub::InitializeInterfaceDescriptor(
     CodeStubInterfaceDescriptor* descriptor) {
-  Register registers[] = { a0, a1 };
+  Register registers[] = { cp, a0, a1 };
   Address entry =
       Runtime::FunctionForId(Runtime::kTransitionElementsKind)->entry;
   descriptor->Initialize(ARRAY_SIZE(registers), registers,
@@ -99,18 +100,22 @@

 void CompareNilICStub::InitializeInterfaceDescriptor(
     CodeStubInterfaceDescriptor* descriptor) {
-  Register registers[] = { a0 };
+  Register registers[] = { cp, a0 };
   descriptor->Initialize(ARRAY_SIZE(registers), registers,
                          FUNCTION_ADDR(CompareNilIC_Miss));
   descriptor->SetMissHandler(
       ExternalReference(IC_Utility(IC::kCompareNilIC_Miss), isolate()));
 }
+
+
+const Register InterfaceDescriptor::ContextRegister() { return cp; }


 static void InitializeArrayConstructorDescriptor(
     CodeStubInterfaceDescriptor* descriptor,
     int constant_stack_parameter_count) {
   // register state
+  // cp -- context
   // a0 -- number of arguments
   // a1 -- function
   // a2 -- allocation site with elements kind
@@ -118,7 +123,7 @@
       Runtime::kArrayConstructor)->entry;

   if (constant_stack_parameter_count == 0) {
-    Register registers[] = { a1, a2 };
+    Register registers[] = { cp, a1, a2 };
     descriptor->Initialize(ARRAY_SIZE(registers), registers,
                            deopt_handler,
                            NULL,
@@ -126,10 +131,11 @@
                            JS_FUNCTION_STUB_MODE);
   } else {
     // stack param count needs (constructor pointer, and single argument)
-    Register registers[] = { a1, a2, a0 };
+    Register registers[] = { cp, a1, a2, a0 };
     Representation representations[] = {
         Representation::Tagged(),
         Representation::Tagged(),
+        Representation::Tagged(),
         Representation::Integer32() };
     descriptor->Initialize(ARRAY_SIZE(registers), registers,
                            a0,
@@ -146,13 +152,14 @@
     CodeStubInterfaceDescriptor* descriptor,
     int constant_stack_parameter_count) {
   // register state
+  // cp -- context
   // a0 -- number of arguments
   // a1 -- constructor function
   Address deopt_handler = Runtime::FunctionForId(
       Runtime::kInternalArrayConstructor)->entry;

   if (constant_stack_parameter_count == 0) {
-    Register registers[] = { a1 };
+    Register registers[] = { cp, a1 };
     descriptor->Initialize(ARRAY_SIZE(registers), registers,
                            deopt_handler,
                            NULL,
@@ -160,9 +167,10 @@
                            JS_FUNCTION_STUB_MODE);
   } else {
     // stack param count needs (constructor pointer, and single argument)
-    Register registers[] = { a1, a0 };
+    Register registers[] = { cp, a1, a0 };
     Representation representations[] = {
         Representation::Tagged(),
+        Representation::Tagged(),
         Representation::Integer32() };
     descriptor->Initialize(ARRAY_SIZE(registers), registers,
                            a0,
@@ -195,7 +203,7 @@

 void ToBooleanStub::InitializeInterfaceDescriptor(
     CodeStubInterfaceDescriptor* descriptor) {
-  Register registers[] = { a0 };
+  Register registers[] = { cp, a0 };
   descriptor->Initialize(ARRAY_SIZE(registers), registers,
                          FUNCTION_ADDR(ToBooleanIC_Miss));
   descriptor->SetMissHandler(
@@ -223,7 +231,7 @@

 void BinaryOpICStub::InitializeInterfaceDescriptor(
     CodeStubInterfaceDescriptor* descriptor) {
-  Register registers[] = { a1, a0 };
+  Register registers[] = { cp, a1, a0 };
   descriptor->Initialize(ARRAY_SIZE(registers), registers,
                          FUNCTION_ADDR(BinaryOpIC_Miss));
   descriptor->SetMissHandler(
@@ -233,7 +241,7 @@

 void BinaryOpWithAllocationSiteStub::InitializeInterfaceDescriptor(
     CodeStubInterfaceDescriptor* descriptor) {
-  Register registers[] = { a2, a1, a0 };
+  Register registers[] = { cp, a2, a1, a0 };
   descriptor->Initialize(ARRAY_SIZE(registers), registers,
                          FUNCTION_ADDR(BinaryOpIC_MissWithAllocationSite));
 }
@@ -241,7 +249,7 @@

 void StringAddStub::InitializeInterfaceDescriptor(
     CodeStubInterfaceDescriptor* descriptor) {
-  Register registers[] = { a1, a0 };
+  Register registers[] = { cp, a1, a0 };
   descriptor->Initialize(
       ARRAY_SIZE(registers), registers,
       Runtime::FunctionForId(Runtime::kStringAdd)->entry);
@@ -252,14 +260,14 @@
   {
     CallInterfaceDescriptor* descriptor =
         isolate->call_descriptor(Isolate::ArgumentAdaptorCall);
-    Register registers[] = { a1,  // JSFunction
-                             cp,  // context
+    Register registers[] = { cp,  // context
+                             a1,  // JSFunction
                              a0,  // actual number of arguments
                              a2,  // expected number of arguments
     };
     Representation representations[] = {
+        Representation::Tagged(),     // context
         Representation::Tagged(),     // JSFunction
-        Representation::Tagged(),     // context
         Representation::Integer32(),  // actual number of arguments
         Representation::Integer32(),  // expected number of arguments
     };
@@ -304,18 +312,18 @@
   {
     CallInterfaceDescriptor* descriptor =
         isolate->call_descriptor(Isolate::ApiFunctionCall);
-    Register registers[] = { a0,  // callee
+    Register registers[] = { cp,  // context
+                             a0,  // callee
                              a4,  // call_data
                              a2,  // holder
                              a1,  // api_function_address
-                             cp,  // context
     };
     Representation representations[] = {
+        Representation::Tagged(),    // context
         Representation::Tagged(),    // callee
         Representation::Tagged(),    // call_data
         Representation::Tagged(),    // holder
         Representation::External(),  // api_function_address
-        Representation::Tagged(),    // context
     };
descriptor->Initialize(ARRAY_SIZE(registers), registers, representations);
   }
@@ -344,21 +352,21 @@
   isolate()->counters()->code_stubs()->Increment();

   CodeStubInterfaceDescriptor* descriptor = GetInterfaceDescriptor();
-  int param_count = descriptor->register_param_count();
+  int param_count = descriptor->GetEnvironmentParameterCount();
   {
     // Call the runtime system in a fresh internal frame.
     FrameScope scope(masm, StackFrame::INTERNAL);
-    ASSERT(descriptor->register_param_count() == 0 ||
-           a0.is(descriptor->GetParameterRegister(param_count - 1)));
+    ASSERT((param_count == 0) ||
+ a0.is(descriptor->GetEnvironmentParameterRegister(param_count - 1)));
     // Push arguments, adjust sp.
     __ Dsubu(sp, sp, Operand(param_count * kPointerSize));
     for (int i = 0; i < param_count; ++i) {
       // Store argument to stack.
-      __ sd(descriptor->GetParameterRegister(i),
+      __ sd(descriptor->GetEnvironmentParameterRegister(i),
             MemOperand(sp, (param_count-1-i) * kPointerSize));
     }
     ExternalReference miss = descriptor->miss_handler();
-    __ CallExternalReference(miss, descriptor->register_param_count());
+    __ CallExternalReference(miss, param_count);
   }

   __ Ret();
=======================================
--- /trunk/src/mips64/lithium-mips64.cc Fri Jul 11 07:33:43 2014 UTC
+++ /trunk/src/mips64/lithium-mips64.cc Fri Jul 18 13:06:03 2014 UTC
@@ -1086,7 +1086,7 @@

 LInstruction* LChunkBuilder::DoCallWithDescriptor(
     HCallWithDescriptor* instr) {
-  const CallInterfaceDescriptor* descriptor = instr->descriptor();
+  const InterfaceDescriptor* descriptor = instr->descriptor();

   LOperand* target = UseRegisterOrConstantAtStart(instr->target());
   ZoneList<LOperand*> ops(instr->OperandCount(), zone());
@@ -2356,7 +2356,7 @@
     CodeStubInterfaceDescriptor* descriptor =
         info()->code_stub()->GetInterfaceDescriptor();
     int index = static_cast<int>(instr->index());
-    Register reg = descriptor->GetParameterRegister(index);
+    Register reg = descriptor->GetEnvironmentParameterRegister(index);
     return DefineFixed(result, reg);
   }
 }
=======================================
--- /trunk/src/mips64/lithium-mips64.h  Thu Jul 10 00:04:42 2014 UTC
+++ /trunk/src/mips64/lithium-mips64.h  Fri Jul 18 13:06:03 2014 UTC
@@ -1810,18 +1810,18 @@

 class LCallWithDescriptor V8_FINAL : public LTemplateResultInstruction<1> {
  public:
-  LCallWithDescriptor(const CallInterfaceDescriptor* descriptor,
+  LCallWithDescriptor(const InterfaceDescriptor* descriptor,
                       const ZoneList<LOperand*>& operands,
                       Zone* zone)
     : descriptor_(descriptor),
-      inputs_(descriptor->environment_length() + 1, zone) {
-    ASSERT(descriptor->environment_length() + 1 == operands.length());
+      inputs_(descriptor->GetRegisterParameterCount() + 1, zone) {
+ ASSERT(descriptor->GetRegisterParameterCount() + 1 == operands.length());
     inputs_.AddAll(operands, zone);
   }

   LOperand* target() const { return inputs_[0]; }

-  const CallInterfaceDescriptor* descriptor() { return descriptor_; }
+  const InterfaceDescriptor* descriptor() { return descriptor_; }

  private:
   DECLARE_CONCRETE_INSTRUCTION(CallWithDescriptor, "call-with-descriptor")
@@ -1831,7 +1831,7 @@

   int arity() const { return hydrogen()->argument_count() - 1; }

-  const CallInterfaceDescriptor* descriptor_;
+  const InterfaceDescriptor* descriptor_;
   ZoneList<LOperand*> inputs_;

   // Iterator support.
=======================================
--- /trunk/src/version.cc       Fri Jul 18 10:23:17 2014 UTC
+++ /trunk/src/version.cc       Fri Jul 18 13:06:03 2014 UTC
@@ -35,7 +35,7 @@
 #define MAJOR_VERSION     3
 #define MINOR_VERSION     28
 #define BUILD_NUMBER      28
-#define PATCH_LEVEL       1
+#define PATCH_LEVEL       2
 // Use 1 for candidates and 0 otherwise.
 // (Boolean macro values are not supported by all preprocessors.)
 #define IS_CANDIDATE_VERSION 0

--
--
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