Title: [151228] trunk/Source/_javascript_Core
Revision
151228
Author
[email protected]
Date
2013-06-05 10:16:27 -0700 (Wed, 05 Jun 2013)

Log Message

JSC Assertion tests failures on MIPS.
https://bugs.webkit.org/show_bug.cgi?id=116552

Patch by Balazs Kilvady <[email protected]> on 2013-06-05
Reviewed by Geoffrey Garen.

Fix condition handlig in branchAdd32 implemetations.

* assembler/MacroAssemblerMIPS.h:
(JSC::MacroAssemblerMIPS::branchAdd32):

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (151227 => 151228)


--- trunk/Source/_javascript_Core/ChangeLog	2013-06-05 17:15:47 UTC (rev 151227)
+++ trunk/Source/_javascript_Core/ChangeLog	2013-06-05 17:16:27 UTC (rev 151228)
@@ -1,3 +1,15 @@
+2013-06-05  Balazs Kilvady  <[email protected]>
+
+        JSC Assertion tests failures on MIPS.
+        https://bugs.webkit.org/show_bug.cgi?id=116552
+
+        Reviewed by Geoffrey Garen.
+
+        Fix condition handlig in branchAdd32 implemetations.
+
+        * assembler/MacroAssemblerMIPS.h:
+        (JSC::MacroAssemblerMIPS::branchAdd32):
+
 2013-06-04  Julien Brianceau  <[email protected]>
 
         [sh4] Add floating point absolute function support in baseline JIT.

Modified: trunk/Source/_javascript_Core/assembler/MacroAssemblerMIPS.h (151227 => 151228)


--- trunk/Source/_javascript_Core/assembler/MacroAssemblerMIPS.h	2013-06-05 17:15:47 UTC (rev 151227)
+++ trunk/Source/_javascript_Core/assembler/MacroAssemblerMIPS.h	2013-06-05 17:16:27 UTC (rev 151228)
@@ -1545,9 +1545,9 @@
         }
         if (cond == PositiveOrZero) {
             add32(src, dest);
-            // Check if dest is negative.
-            m_assembler.slt(cmpTempRegister, MIPSRegisters::zero, dest);
-            return branchNotEqual(cmpTempRegister, MIPSRegisters::zero);
+            // Check if dest is not negative.
+            m_assembler.slt(cmpTempRegister, dest, MIPSRegisters::zero);
+            return branchEqual(cmpTempRegister, MIPSRegisters::zero);
         }
         if (cond == Zero) {
             add32(src, dest);
@@ -1563,7 +1563,7 @@
 
     Jump branchAdd32(ResultCondition cond, RegisterID op1, RegisterID op2, RegisterID dest)
     {
-        ASSERT((cond == Overflow) || (cond == Signed) || (cond == Zero) || (cond == NonZero));
+        ASSERT((cond == Overflow) || (cond == Signed) || (cond == PositiveOrZero) || (cond == Zero) || (cond == NonZero));
         if (cond == Overflow) {
             /*
                 move    dataTemp, op1
@@ -1596,6 +1596,12 @@
             m_assembler.slt(cmpTempRegister, dest, MIPSRegisters::zero);
             return branchNotEqual(cmpTempRegister, MIPSRegisters::zero);
         }
+        if (cond == PositiveOrZero) {
+            add32(op1, op2, dest);
+            // Check if dest is not negative.
+            m_assembler.slt(cmpTempRegister, dest, MIPSRegisters::zero);
+            return branchEqual(cmpTempRegister, MIPSRegisters::zero);
+        }
         if (cond == Zero) {
             add32(op1, op2, dest);
             return branchEqual(dest, MIPSRegisters::zero);
@@ -1623,7 +1629,7 @@
 
     Jump branchAdd32(ResultCondition cond, TrustedImm32 imm, AbsoluteAddress dest)
     {
-        ASSERT((cond == Overflow) || (cond == Signed) || (cond == Zero) || (cond == NonZero));
+        ASSERT((cond == Overflow) || (cond == Signed) || (cond == PositiveOrZero) || (cond == Zero) || (cond == NonZero));
         if (cond == Overflow) {
             /*
                 move    dataTemp, dest
@@ -1673,6 +1679,11 @@
             m_assembler.slt(cmpTempRegister, dataTempRegister, MIPSRegisters::zero);
             return branchNotEqual(cmpTempRegister, MIPSRegisters::zero);
         }
+        if (cond == PositiveOrZero) {
+            // Check if dest is not negative.
+            m_assembler.slt(cmpTempRegister, dataTempRegister, MIPSRegisters::zero);
+            return branchEqual(cmpTempRegister, MIPSRegisters::zero);
+        }
         if (cond == Zero)
             return branchEqual(dataTempRegister, MIPSRegisters::zero);
         if (cond == NonZero)
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to