Title: [114695] trunk/Source/_javascript_Core
Revision
114695
Author
fpi...@apple.com
Date
2012-04-19 16:52:46 -0700 (Thu, 19 Apr 2012)

Log Message

MacroAssemblerARMv7::branchTruncateDoubleToUint32 should obey the overflow signal
https://bugs.webkit.org/show_bug.cgi?id=84401

Reviewed by Gavin Barraclough.

* assembler/MacroAssemblerARMv7.h:
(JSC::MacroAssemblerARMv7::branchTruncateDoubleToUint32):

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (114694 => 114695)


--- trunk/Source/_javascript_Core/ChangeLog	2012-04-19 23:50:39 UTC (rev 114694)
+++ trunk/Source/_javascript_Core/ChangeLog	2012-04-19 23:52:46 UTC (rev 114695)
@@ -1,3 +1,13 @@
+2012-04-19  Filip Pizlo  <fpi...@apple.com>
+
+        MacroAssemblerARMv7::branchTruncateDoubleToUint32 should obey the overflow signal
+        https://bugs.webkit.org/show_bug.cgi?id=84401
+
+        Reviewed by Gavin Barraclough.
+
+        * assembler/MacroAssemblerARMv7.h:
+        (JSC::MacroAssemblerARMv7::branchTruncateDoubleToUint32):
+
 2012-04-19  Don Olmstead  <don.olmst...@am.sony.com>
 
         KeywordLookupGenerator.py should take an output file as an argument

Modified: trunk/Source/_javascript_Core/assembler/MacroAssemblerARMv7.h (114694 => 114695)


--- trunk/Source/_javascript_Core/assembler/MacroAssemblerARMv7.h	2012-04-19 23:50:39 UTC (rev 114694)
+++ trunk/Source/_javascript_Core/assembler/MacroAssemblerARMv7.h	2012-04-19 23:52:46 UTC (rev 114695)
@@ -995,8 +995,17 @@
     {
         m_assembler.vcvt_floatingPointToSigned(fpTempRegisterAsSingle(), src);
         m_assembler.vmov(dest, fpTempRegisterAsSingle());
+        
+        Jump overflow = branch32(Equal, dest, TrustedImm32(0x7fffffff));
+        Jump success = branch32(GreaterThanOrEqual, dest, TrustedImm32(0));
+        overflow.link(this);
 
-        return branch32(branchType ? GreaterThanOrEqual : LessThan, dest, TrustedImm32(0));
+        if (branchType == BranchIfTruncateSuccessful)
+            return success;
+        
+        Jump failure = jump();
+        success.link(this);
+        return failure;
     }
 
     // Result is undefined if the value is outside of the integer range.
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to