Title: [184170] trunk/Source/_javascript_Core
- Revision
- 184170
- Author
- [email protected]
- Date
- 2015-05-12 01:15:27 -0700 (Tue, 12 May 2015)
Log Message
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: trunk/Source/_javascript_Core/ChangeLog (184169 => 184170)
--- trunk/Source/_javascript_Core/ChangeLog 2015-05-12 08:06:53 UTC (rev 184169)
+++ trunk/Source/_javascript_Core/ChangeLog 2015-05-12 08:15:27 UTC (rev 184170)
@@ -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-05-11 Commit Queue <[email protected]>
Unreviewed, rolling out r184009.
Modified: trunk/Source/_javascript_Core/assembler/ARM64Assembler.h (184169 => 184170)
--- trunk/Source/_javascript_Core/assembler/ARM64Assembler.h 2015-05-12 08:06:53 UTC (rev 184169)
+++ trunk/Source/_javascript_Core/assembler/ARM64Assembler.h 2015-05-12 08:15:27 UTC (rev 184170)
@@ -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