Title: [214393] trunk/Source/_javascript_Core
- Revision
- 214393
- Author
- [email protected]
- Date
- 2017-03-24 22:34:02 -0700 (Fri, 24 Mar 2017)
Log Message
Add some instrumentation in Heap::resumeThePeriphery() to help debug an issue.
https://bugs.webkit.org/show_bug.cgi?id=170086
<rdar://problem/31253673>
Reviewed by Saam Barati.
Adding some instrumentation in Heap::resumeThePeriphery() to dump some Heap state
just before we RELEASE_ASSERT_NOT_REACHED.
* heap/Heap.cpp:
(JSC::Heap::resumeThePeriphery):
Modified Paths
Diff
Modified: trunk/Source/_javascript_Core/ChangeLog (214392 => 214393)
--- trunk/Source/_javascript_Core/ChangeLog 2017-03-25 01:13:23 UTC (rev 214392)
+++ trunk/Source/_javascript_Core/ChangeLog 2017-03-25 05:34:02 UTC (rev 214393)
@@ -1,3 +1,17 @@
+2017-03-24 Mark Lam <[email protected]>
+
+ Add some instrumentation in Heap::resumeThePeriphery() to help debug an issue.
+ https://bugs.webkit.org/show_bug.cgi?id=170086
+ <rdar://problem/31253673>
+
+ Reviewed by Saam Barati.
+
+ Adding some instrumentation in Heap::resumeThePeriphery() to dump some Heap state
+ just before we RELEASE_ASSERT_NOT_REACHED.
+
+ * heap/Heap.cpp:
+ (JSC::Heap::resumeThePeriphery):
+
2017-03-24 JF Bastien <[email protected]>
WebAssembly: store state in TLS instead of on VM
Modified: trunk/Source/_javascript_Core/heap/Heap.cpp (214392 => 214393)
--- trunk/Source/_javascript_Core/heap/Heap.cpp 2017-03-25 01:13:23 UTC (rev 214392)
+++ trunk/Source/_javascript_Core/heap/Heap.cpp 2017-03-25 05:34:02 UTC (rev 214393)
@@ -1499,6 +1499,30 @@
if (!m_collectorBelievesThatTheWorldIsStopped) {
dataLog("Fatal: collector does not believe that the world is stopped.\n");
+#if OS(DARWIN)
+ // FIXME: Remove this when no longer needed.
+ // https://bugs.webkit.org/show_bug.cgi?id=170094
+#if CPU(X86_64)
+ unsigned worldState = m_worldState.load();
+ asm volatile(
+ "int3"
+ :
+ : "a"(m_currentPhase), "b"(m_nextPhase), "c"(worldState), "S"(m_lastServedTicket), "D"(m_lastGrantedTicket)
+ : "memory");
+#elif CPU(ARM64)
+ unsigned worldState = m_worldState.load();
+ asm volatile(
+ "ldrb w0, %0\n"
+ "ldrb w1, %1\n"
+ "ldr w2, %2\n"
+ "ldr x3, %3\n"
+ "ldr x4, %4\n"
+ "brk #0"
+ :
+ : "m"(m_currentPhase), "m"(m_nextPhase), "m"(worldState), "m"(m_lastServedTicket), "m"(m_lastGrantedTicket)
+ : "memory");
+#endif
+#endif // OS(DARWIN)
RELEASE_ASSERT_NOT_REACHED();
}
m_collectorBelievesThatTheWorldIsStopped = false;
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes