Title: [90738] trunk/Source/_javascript_Core
Revision
90738
Author
[email protected]
Date
2011-07-11 05:32:18 -0700 (Mon, 11 Jul 2011)

Log Message

Fix the condition of the optimized code in doubleTransfer
https://bugs.webkit.org/show_bug.cgi?id=64261

Reviewed by Zoltan Herczeg.

The condition of the optimized code in doubleTransfer is wrong. The
data transfer should be executed with four bytes aligned address.
VFP cannot perform unaligned memory access.

Reported by Jacob Bramley.

* assembler/ARMAssembler.cpp:
(JSC::ARMAssembler::doubleTransfer):

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (90737 => 90738)


--- trunk/Source/_javascript_Core/ChangeLog	2011-07-11 12:29:38 UTC (rev 90737)
+++ trunk/Source/_javascript_Core/ChangeLog	2011-07-11 12:32:18 UTC (rev 90738)
@@ -1,5 +1,21 @@
 2011-07-11  Gabor Loki  <[email protected]>
 
+        Fix the condition of the optimized code in doubleTransfer
+        https://bugs.webkit.org/show_bug.cgi?id=64261
+
+        Reviewed by Zoltan Herczeg.
+
+        The condition of the optimized code in doubleTransfer is wrong. The
+        data transfer should be executed with four bytes aligned address.
+        VFP cannot perform unaligned memory access.
+
+        Reported by Jacob Bramley.
+
+        * assembler/ARMAssembler.cpp:
+        (JSC::ARMAssembler::doubleTransfer):
+
+2011-07-11  Gabor Loki  <[email protected]>
+
         Signed arithmetic bug in dataTransfer32.
         https://bugs.webkit.org/show_bug.cgi?id=64257
 

Modified: trunk/Source/_javascript_Core/assembler/ARMAssembler.cpp (90737 => 90738)


--- trunk/Source/_javascript_Core/assembler/ARMAssembler.cpp	2011-07-11 12:29:38 UTC (rev 90737)
+++ trunk/Source/_javascript_Core/assembler/ARMAssembler.cpp	2011-07-11 12:32:18 UTC (rev 90738)
@@ -313,7 +313,8 @@
 
 void ARMAssembler::doubleTransfer(bool isLoad, FPRegisterID srcDst, RegisterID base, int32_t offset)
 {
-    if (offset & 0x3) {
+    // VFP cannot directly access memory that is not four-byte-aligned
+    if (!(offset & 0x3)) {
         if (offset <= 0x3ff && offset >= 0) {
             fdtr_u(isLoad, srcDst, base, offset >> 2);
             return;
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to