Title: [91825] trunk/Source/_javascript_Core
Revision
91825
Author
[email protected]
Date
2011-07-27 00:12:38 -0700 (Wed, 27 Jul 2011)

Log Message

DFG JIT speculation failure code performs incorrect conversions in
the case where two registers need to be swapped.
https://bugs.webkit.org/show_bug.cgi?id=65233

Patch by Filip Pizlo <[email protected]> on 2011-07-27
Reviewed by Gavin Barraclough.

* dfg/DFGJITCompiler.cpp:
(JSC::DFG::GeneralizedRegister::swapWith):

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (91824 => 91825)


--- trunk/Source/_javascript_Core/ChangeLog	2011-07-27 06:02:54 UTC (rev 91824)
+++ trunk/Source/_javascript_Core/ChangeLog	2011-07-27 07:12:38 UTC (rev 91825)
@@ -1,3 +1,14 @@
+2011-07-27  Filip Pizlo  <[email protected]>
+
+        DFG JIT speculation failure code performs incorrect conversions in
+        the case where two registers need to be swapped.
+        https://bugs.webkit.org/show_bug.cgi?id=65233
+
+        Reviewed by Gavin Barraclough.
+        
+        * dfg/DFGJITCompiler.cpp:
+        (JSC::DFG::GeneralizedRegister::swapWith):
+
 2011-07-26  Mark Hahnenberg  <[email protected]>
 
         reduce and reduceRight bind callback's this to null rather than undefined

Modified: trunk/Source/_javascript_Core/dfg/DFGJITCompiler.cpp (91824 => 91825)


--- trunk/Source/_javascript_Core/dfg/DFGJITCompiler.cpp	2011-07-27 06:02:54 UTC (rev 91824)
+++ trunk/Source/_javascript_Core/dfg/DFGJITCompiler.cpp	2011-07-27 07:12:38 UTC (rev 91825)
@@ -244,15 +244,15 @@
         
         jit.swap(gpr(), other.gpr());
         
-        if (UNLIKELY(needDataFormatConversion(myDataFormat, myNewDataFormat))) {
-            if (myDataFormat == DataFormatInteger)
+        if (UNLIKELY(needDataFormatConversion(otherDataFormat, myNewDataFormat))) {
+            if (otherDataFormat == DataFormatInteger)
                 jit.orPtr(GPRInfo::tagTypeNumberRegister, gpr());
             else if (myNewDataFormat == DataFormatInteger)
                 jit.zeroExtend32ToPtr(gpr(), gpr());
         }
         
-        if (UNLIKELY(needDataFormatConversion(otherDataFormat, myNewDataFormat))) {
-            if (otherDataFormat == DataFormatInteger)
+        if (UNLIKELY(needDataFormatConversion(myDataFormat, otherNewDataFormat))) {
+            if (myDataFormat == DataFormatInteger)
                 jit.orPtr(GPRInfo::tagTypeNumberRegister, other.gpr());
             else if (otherNewDataFormat == DataFormatInteger)
                 jit.zeroExtend32ToPtr(other.gpr(), other.gpr());
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to