Changeset 136069 in webkit for trunk/Source/JavaScriptCore/dfg/DFGDisassembler.cpp
- Timestamp:
- Nov 28, 2012, 3:37:24 PM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/dfg/DFGDisassembler.cpp
r135923 r136069 40 40 } 41 41 42 void Disassembler::dump( LinkBuffer& linkBuffer)42 void Disassembler::dump(PrintStream& out, LinkBuffer& linkBuffer) 43 43 { 44 44 m_graph.m_dominators.computeIfNecessary(m_graph); 45 45 46 dataLogF("Generated JIT code for DFG CodeBlock %p, instruction count = %u:\n", m_graph.m_codeBlock, m_graph.m_codeBlock->instructionCount());47 dataLogF(" Code at [%p, %p):\n", linkBuffer.debugAddress(), static_cast<char*>(linkBuffer.debugAddress()) + linkBuffer.debugSize());46 out.print("Generated JIT code for DFG CodeBlock ", RawPointer(m_graph.m_codeBlock), ", instruction count = ", m_graph.m_codeBlock->instructionCount(), ":\n"); 47 out.print(" Code at [", RawPointer(linkBuffer.debugAddress()), ", ", RawPointer(static_cast<char*>(linkBuffer.debugAddress()) + linkBuffer.debugSize()), "):\n"); 48 48 49 49 const char* prefix = " "; … … 56 56 if (!block) 57 57 continue; 58 dumpDisassembly( disassemblyPrefix, linkBuffer, previousLabel, m_labelForBlockIndex[blockIndex], lastNodeIndex);59 m_graph.dumpBlockHeader( prefix, blockIndex, Graph::DumpLivePhisOnly);58 dumpDisassembly(out, disassemblyPrefix, linkBuffer, previousLabel, m_labelForBlockIndex[blockIndex], lastNodeIndex); 59 m_graph.dumpBlockHeader(out, prefix, blockIndex, Graph::DumpLivePhisOnly); 60 60 NodeIndex lastNodeIndexForDisassembly = block->at(0); 61 61 for (size_t i = 0; i < block->size(); ++i) { … … 75 75 currentLabel = m_endOfMainPath; 76 76 } 77 dumpDisassembly( disassemblyPrefix, linkBuffer, previousLabel, currentLabel, lastNodeIndexForDisassembly);78 m_graph.dumpCodeOrigin( prefix, lastNodeIndex, block->at(i));79 m_graph.dump( prefix, block->at(i));77 dumpDisassembly(out, disassemblyPrefix, linkBuffer, previousLabel, currentLabel, lastNodeIndexForDisassembly); 78 m_graph.dumpCodeOrigin(out, prefix, lastNodeIndex, block->at(i)); 79 m_graph.dump(out, prefix, block->at(i)); 80 80 lastNodeIndex = block->at(i); 81 81 lastNodeIndexForDisassembly = block->at(i); 82 82 } 83 83 } 84 dumpDisassembly( disassemblyPrefix, linkBuffer, previousLabel, m_endOfMainPath, lastNodeIndex);85 dataLogF("%s(End Of Main Path)\n", prefix);86 dumpDisassembly( disassemblyPrefix, linkBuffer, previousLabel, m_endOfCode, NoNode);84 dumpDisassembly(out, disassemblyPrefix, linkBuffer, previousLabel, m_endOfMainPath, lastNodeIndex); 85 out.print(prefix, "(End Of Main Path)\n"); 86 dumpDisassembly(out, disassemblyPrefix, linkBuffer, previousLabel, m_endOfCode, NoNode); 87 87 } 88 88 89 void Disassembler::dumpDisassembly(const char* prefix, LinkBuffer& linkBuffer, MacroAssembler::Label& previousLabel, MacroAssembler::Label currentLabel, NodeIndex context) 89 void Disassembler::dump(LinkBuffer& linkBuffer) 90 { 91 dump(WTF::dataFile(), linkBuffer); 92 } 93 94 void Disassembler::dumpDisassembly(PrintStream& out, const char* prefix, LinkBuffer& linkBuffer, MacroAssembler::Label& previousLabel, MacroAssembler::Label currentLabel, NodeIndex context) 90 95 { 91 96 size_t prefixLength = strlen(prefix); … … 105 110 previousLabel = currentLabel; 106 111 ASSERT(bitwise_cast<uintptr_t>(end.executableAddress()) >= bitwise_cast<uintptr_t>(start.executableAddress())); 107 disassemble(start, bitwise_cast<uintptr_t>(end.executableAddress()) - bitwise_cast<uintptr_t>(start.executableAddress()), prefixBuffer.get(), WTF::dataFile());112 disassemble(start, bitwise_cast<uintptr_t>(end.executableAddress()) - bitwise_cast<uintptr_t>(start.executableAddress()), prefixBuffer.get(), out); 108 113 } 109 114
Note:
See TracChangeset
for help on using the changeset viewer.