MIPS: Re-land r25392 Use a stub in crankshaft for grow store arrays.
authorBalazs Kilvady <balazs.kilvady@imgtec.com>
Tue, 18 Nov 2014 18:22:11 +0000 (10:22 -0800)
committerPaul Lind <paul.lind@imgtec.com>
Tue, 18 Nov 2014 18:22:25 +0000 (18:22 +0000)
Port 47f55baeaff0d59366772db95b6c0328a216f611

Original commit message:
Code was vulnerable to different evaluation order in Clang.

BUG=
R=paul.lind@imgtec.com

Review URL: https://codereview.chromium.org/735783002

Patch from Balazs Kilvady <balazs.kilvady@imgtec.com>.

Cr-Commit-Position: refs/heads/master@{#25404}

src/mips/interface-descriptors-mips.cc
src/mips64/interface-descriptors-mips64.cc

index ecdaecf..ec19abd 100644 (file)
@@ -54,6 +54,12 @@ const Register MathPowIntegerDescriptor::exponent() {
 }
 
 
+// IC register specifications
+const Register GrowArrayElementsDescriptor::ObjectRegister() { return a0; }
+const Register GrowArrayElementsDescriptor::KeyRegister() { return a1; }
+const Register GrowArrayElementsDescriptor::CapacityRegister() { return a2; }
+
+
 void FastNewClosureDescriptor::Initialize(CallInterfaceDescriptorData* data) {
   Register registers[] = {cp, a2};
   data->Initialize(arraysize(registers), registers, NULL);
index 44c8dff..acf8915 100644 (file)
@@ -60,6 +60,12 @@ void FastNewClosureDescriptor::Initialize(CallInterfaceDescriptorData* data) {
 }
 
 
+// IC register specifications
+const Register GrowArrayElementsDescriptor::ObjectRegister() { return a0; }
+const Register GrowArrayElementsDescriptor::KeyRegister() { return a1; }
+const Register GrowArrayElementsDescriptor::CapacityRegister() { return a2; }
+
+
 void FastNewContextDescriptor::Initialize(CallInterfaceDescriptorData* data) {
   Register registers[] = {cp, a1};
   data->Initialize(arraysize(registers), registers, NULL);