Title: [184192] releases/WebKitGTK/webkit-2.8/Source/_javascript_Core
Revision
184192
Author
[email protected]
Date
2015-05-12 02:36:13 -0700 (Tue, 12 May 2015)

Log Message

Merge r184170 - Workaround for Cortex-A53 erratum 843419
https://bugs.webkit.org/show_bug.cgi?id=144680

Reviewed by Michael Saboff.

This patch is about to give simple workaround for Cortex-A53 erratum 843419.
It inserts nops after ADRP instruction to avoid wrong address accesses.

* assembler/ARM64Assembler.h:
(JSC::ARM64Assembler::adrp):
(JSC::ARM64Assembler::nopCortexA53Fix843419):

Modified Paths

Diff

Modified: releases/WebKitGTK/webkit-2.8/Source/_javascript_Core/ChangeLog (184191 => 184192)


--- releases/WebKitGTK/webkit-2.8/Source/_javascript_Core/ChangeLog	2015-05-12 09:35:22 UTC (rev 184191)
+++ releases/WebKitGTK/webkit-2.8/Source/_javascript_Core/ChangeLog	2015-05-12 09:36:13 UTC (rev 184192)
@@ -1,3 +1,17 @@
+2015-05-12  Gabor Loki  <[email protected]>
+
+        Workaround for Cortex-A53 erratum 843419
+        https://bugs.webkit.org/show_bug.cgi?id=144680
+
+        Reviewed by Michael Saboff.
+
+        This patch is about to give simple workaround for Cortex-A53 erratum 843419.
+        It inserts nops after ADRP instruction to avoid wrong address accesses.
+
+        * assembler/ARM64Assembler.h:
+        (JSC::ARM64Assembler::adrp):
+        (JSC::ARM64Assembler::nopCortexA53Fix843419):
+
 2015-04-29  Mark Lam  <[email protected]>
 
         Safari WebKit crash when loading Google Spreadsheet.

Modified: releases/WebKitGTK/webkit-2.8/Source/_javascript_Core/assembler/ARM64Assembler.h (184191 => 184192)


--- releases/WebKitGTK/webkit-2.8/Source/_javascript_Core/assembler/ARM64Assembler.h	2015-05-12 09:35:22 UTC (rev 184191)
+++ releases/WebKitGTK/webkit-2.8/Source/_javascript_Core/assembler/ARM64Assembler.h	2015-05-12 09:36:13 UTC (rev 184192)
@@ -947,6 +947,7 @@
     {
         ASSERT(!(offset & 0xfff));
         insn(pcRelative(true, offset >> 12, rd));
+        nopCortexA53Fix843419();
     }
 
     template<int datasize, SetFlags setFlags = DontSetFlags>
@@ -3655,6 +3656,17 @@
 #endif
     }
 
+    // Workaround for Cortex-A53 erratum (843419). Emit extra nops to avoid
+    // wrong address access after ADRP instruction.
+    ALWAYS_INLINE void nopCortexA53Fix843419()
+    {
+#if CPU(ARM64_CORTEXA53)
+        nop();
+        nop();
+        nop();
+#endif
+    }
+
     AssemblerBuffer m_buffer;
     Vector<LinkRecord, 0, UnsafeVectorOverflow> m_jumpsToLink;
     int m_indexOfLastWatchpoint;
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to