diff options
Diffstat (limited to 'Source/JavaScriptCore/jit/JITDisassembler.h')
-rw-r--r-- | Source/JavaScriptCore/jit/JITDisassembler.h | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/Source/JavaScriptCore/jit/JITDisassembler.h b/Source/JavaScriptCore/jit/JITDisassembler.h index ca914748c..7edbb9cf7 100644 --- a/Source/JavaScriptCore/jit/JITDisassembler.h +++ b/Source/JavaScriptCore/jit/JITDisassembler.h @@ -32,6 +32,7 @@ #include "LinkBuffer.h" #include "MacroAssembler.h" +#include "ProfilerDatabase.h" #include <wtf/Vector.h> namespace JSC { @@ -58,9 +59,21 @@ public: void dump(LinkBuffer&); void dump(PrintStream&, LinkBuffer&); + void reportToProfiler(Profiler::Compilation*, LinkBuffer&); private: + void dumpHeader(PrintStream&, LinkBuffer&); + MacroAssembler::Label firstSlowLabel(); + + struct DumpedOp { + unsigned index; + CString disassembly; + }; + Vector<DumpedOp> dumpVectorForInstructions(LinkBuffer&, const char* prefix, Vector<MacroAssembler::Label>& labels, MacroAssembler::Label endLabel); + void dumpForInstructions(PrintStream&, LinkBuffer&, const char* prefix, Vector<MacroAssembler::Label>& labels, MacroAssembler::Label endLabel); + void reportInstructions(Profiler::Compilation*, LinkBuffer&, const char* prefix, Vector<MacroAssembler::Label>& labels, MacroAssembler::Label endLabel); + void dumpDisassembly(PrintStream&, LinkBuffer&, MacroAssembler::Label from, MacroAssembler::Label to); CodeBlock* m_codeBlock; |