Title: [101615] trunk/Source/_javascript_Core
Revision
101615
Author
[email protected]
Date
2011-11-30 23:11:19 -0800 (Wed, 30 Nov 2011)

Log Message

DFG should make it easier to notice node boundaries in disassembly
https://bugs.webkit.org/show_bug.cgi?id=73509

Rubber-stamped by Gavin Barraclough

If you set XOR_DEBUG_AID to 1 in DFGCommon.h, a pair of xor's will
be emitted at node boundaries, where the immediate being xor'd is the
node index.

* dfg/DFGCommon.h:
* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compile):

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (101614 => 101615)


--- trunk/Source/_javascript_Core/ChangeLog	2011-12-01 07:01:47 UTC (rev 101614)
+++ trunk/Source/_javascript_Core/ChangeLog	2011-12-01 07:11:19 UTC (rev 101615)
@@ -1,3 +1,18 @@
+2011-11-30  Filip Pizlo  <[email protected]>
+
+        DFG should make it easier to notice node boundaries in disassembly
+        https://bugs.webkit.org/show_bug.cgi?id=73509
+
+        Rubber-stamped by Gavin Barraclough
+        
+        If you set XOR_DEBUG_AID to 1 in DFGCommon.h, a pair of xor's will
+        be emitted at node boundaries, where the immediate being xor'd is the
+        node index.
+
+        * dfg/DFGCommon.h:
+        * dfg/DFGSpeculativeJIT.cpp:
+        (JSC::DFG::SpeculativeJIT::compile):
+
 2011-11-30  Geoffrey Garen  <[email protected]>
 
         Removed ArgList iterators.

Modified: trunk/Source/_javascript_Core/dfg/DFGCommon.h (101614 => 101615)


--- trunk/Source/_javascript_Core/dfg/DFGCommon.h	2011-12-01 07:01:47 UTC (rev 101614)
+++ trunk/Source/_javascript_Core/dfg/DFGCommon.h	2011-12-01 07:11:19 UTC (rev 101615)
@@ -57,6 +57,8 @@
 #define DFG_ENABLE_JIT_BREAK_ON_EVERY_BLOCK 0
 // Emit a breakpoint into the head of every generated node, to aid debugging in GDB.
 #define DFG_ENABLE_JIT_BREAK_ON_EVERY_NODE 0
+// Emit a pair of xorPtr()'s on regT0 with the node index to make it easy to spot node boundaries in disassembled code.
+#define DFG_ENABLE_XOR_DEBUG_AID 0
 // Emit a breakpoint into the speculation failure code.
 #define DFG_ENABLE_JIT_BREAK_ON_SPECULATION_FAILURE 0
 // Log every speculation failure.

Modified: trunk/Source/_javascript_Core/dfg/DFGSpeculativeJIT.cpp (101614 => 101615)


--- trunk/Source/_javascript_Core/dfg/DFGSpeculativeJIT.cpp	2011-12-01 07:01:47 UTC (rev 101614)
+++ trunk/Source/_javascript_Core/dfg/DFGSpeculativeJIT.cpp	2011-12-01 07:11:19 UTC (rev 101615)
@@ -986,6 +986,10 @@
 #if DFG_ENABLE(JIT_BREAK_ON_EVERY_NODE)
             m_jit.breakpoint();
 #endif
+#if DFG_ENABLE(XOR_DEBUG_AID)
+            m_jit.xorPtr(JITCompiler::TrustedImm32(m_compileIndex), GPRInfo::regT0);
+            m_jit.xorPtr(JITCompiler::TrustedImm32(m_compileIndex), GPRInfo::regT0);
+#endif
             checkConsistency();
             compile(node);
             if (!m_compileOkay) {
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to