[mips] Make regTx registers match between JSInterfaceJIT and GPRInfo.
authorcommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 5 Nov 2013 18:05:56 +0000 (18:05 +0000)
committercommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 5 Nov 2013 18:05:56 +0000 (18:05 +0000)
https://bugs.webkit.org/show_bug.cgi?id=123807

Patch by Julien Brianceau <jbriance@cisco.com> on 2013-11-05
Reviewed by Mark Lam.

* jit/GPRInfo.h:
(JSC::GPRInfo::toIndex):
* jit/JSInterfaceJIT.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@158677 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/JavaScriptCore/ChangeLog
Source/JavaScriptCore/jit/GPRInfo.h
Source/JavaScriptCore/jit/JSInterfaceJIT.h

index 46e1d6e..d06972e 100644 (file)
@@ -1,5 +1,16 @@
 2013-11-05  Julien Brianceau  <jbriance@cisco.com>
 
+        [mips] Make regTx registers match between JSInterfaceJIT and GPRInfo.
+        https://bugs.webkit.org/show_bug.cgi?id=123807
+
+        Reviewed by Mark Lam.
+
+        * jit/GPRInfo.h:
+        (JSC::GPRInfo::toIndex):
+        * jit/JSInterfaceJIT.h:
+
+2013-11-05  Julien Brianceau  <jbriance@cisco.com>
+
         REGRESSION(r158315): Fix register mixup in JIT::compileOpCall.
         https://bugs.webkit.org/show_bug.cgi?id=123799
 
index b2f3aef..82c34c2 100644 (file)
@@ -599,9 +599,9 @@ public:
     static const GPRReg regT0 = MIPSRegisters::v0;
     static const GPRReg regT1 = MIPSRegisters::v1;
     static const GPRReg regT2 = MIPSRegisters::t4;
-    static const GPRReg regT3 = MIPSRegisters::t5;
-    static const GPRReg regT4 = MIPSRegisters::t6;
-    static const GPRReg regT5 = MIPSRegisters::t7;
+    static const GPRReg regT3 = MIPSRegisters::s2;
+    static const GPRReg regT4 = MIPSRegisters::t5;
+    static const GPRReg regT5 = MIPSRegisters::t6;
     // These registers match the baseline JIT.
     static const GPRReg cachedResultRegister = regT0;
     static const GPRReg cachedResultRegister2 = regT1;
@@ -628,8 +628,12 @@ public:
     static unsigned toIndex(GPRReg reg)
     {
         ASSERT(reg != InvalidGPRReg);
-        ASSERT(reg < 16);
-        static const unsigned indexForRegister[16] = { InvalidIndex, InvalidIndex, 0, 1, InvalidIndex, InvalidIndex, InvalidIndex, InvalidIndex, InvalidIndex, InvalidIndex, InvalidIndex, InvalidIndex, 2, 3, 4, 5 };
+        ASSERT(reg < 24);
+        static const unsigned indexForRegister[24] = {
+            InvalidIndex, InvalidIndex, 0, 1, InvalidIndex, InvalidIndex, InvalidIndex, InvalidIndex,
+            InvalidIndex, InvalidIndex, InvalidIndex, InvalidIndex, 2, 4, 5, InvalidIndex,
+            InvalidIndex, InvalidIndex, 3, InvalidIndex, InvalidIndex, InvalidIndex, InvalidIndex, InvalidIndex
+        };
         unsigned result = indexForRegister[reg];
         ASSERT(result != InvalidIndex);
         return result;
index f39f344..8180196 100644 (file)
@@ -176,8 +176,8 @@ namespace JSC {
         // regT3 must be saved in the callee, so use an S register.
         static const RegisterID regT3 = MIPSRegisters::s2;
         
-        static const RegisterID regT4 = MIPSRegisters::s3;
-        static const RegisterID regT5 = MIPSRegisters::s4;
+        static const RegisterID regT4 = MIPSRegisters::t5;
+        static const RegisterID regT5 = MIPSRegisters::t6;
 
         static const RegisterID callFrameRegister = MIPSRegisters::s0;