diff options
author | Allan Sandfeld Jensen <allan.jensen@digia.com> | 2013-09-13 12:51:20 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-09-19 20:50:05 +0200 |
commit | d441d6f39bb846989d95bcf5caf387b42414718d (patch) | |
tree | e367e64a75991c554930278175d403c072de6bb8 /Source/JavaScriptCore/dfg/DFGDisassembler.h | |
parent | 0060b2994c07842f4c59de64b5e3e430525c4b90 (diff) | |
download | qtwebkit-d441d6f39bb846989d95bcf5caf387b42414718d.tar.gz |
Import Qt5x2 branch of QtWebkit for Qt 5.2
Importing a new snapshot of webkit.
Change-Id: I2d01ad12cdc8af8cb015387641120a9d7ea5f10c
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
Diffstat (limited to 'Source/JavaScriptCore/dfg/DFGDisassembler.h')
-rw-r--r-- | Source/JavaScriptCore/dfg/DFGDisassembler.h | 29 |
1 files changed, 24 insertions, 5 deletions
diff --git a/Source/JavaScriptCore/dfg/DFGDisassembler.h b/Source/JavaScriptCore/dfg/DFGDisassembler.h index 8cc58c666..9f6c5b040 100644 --- a/Source/JavaScriptCore/dfg/DFGDisassembler.h +++ b/Source/JavaScriptCore/dfg/DFGDisassembler.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Apple Inc. All rights reserved. + * Copyright (C) 2012, 2013 Apple Inc. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -33,6 +33,8 @@ #include "DFGCommon.h" #include "LinkBuffer.h" #include "MacroAssembler.h" +#include <wtf/HashMap.h> +#include <wtf/StringPrintStream.h> #include <wtf/Vector.h> namespace JSC { namespace DFG { @@ -49,9 +51,10 @@ public: { m_labelForBlockIndex[blockIndex] = label; } - void setForNode(NodeIndex nodeIndex, MacroAssembler::Label label) + void setForNode(Node* node, MacroAssembler::Label label) { - m_labelForNodeIndex[nodeIndex] = label; + ASSERT(label.isSet()); + m_labelForNode.add(node, label); } void setEndOfMainPath(MacroAssembler::Label label) { @@ -64,14 +67,30 @@ public: void dump(PrintStream&, LinkBuffer&); void dump(LinkBuffer&); + void reportToProfiler(Profiler::Compilation*, LinkBuffer&); private: - void dumpDisassembly(PrintStream&, const char* prefix, LinkBuffer&, MacroAssembler::Label& previousLabel, MacroAssembler::Label currentLabel, NodeIndex context); + void dumpHeader(PrintStream&, LinkBuffer&); + + struct DumpedOp { + DumpedOp(CodeOrigin codeOrigin, CString text) + : codeOrigin(codeOrigin) + , text(text) + { + } + + CodeOrigin codeOrigin; + CString text; + }; + void append(Vector<DumpedOp>&, StringPrintStream&, CodeOrigin&); + Vector<DumpedOp> createDumpList(LinkBuffer&); + + void dumpDisassembly(PrintStream&, const char* prefix, LinkBuffer&, MacroAssembler::Label& previousLabel, MacroAssembler::Label currentLabel, Node* context); Graph& m_graph; MacroAssembler::Label m_startOfCode; Vector<MacroAssembler::Label> m_labelForBlockIndex; - Vector<MacroAssembler::Label> m_labelForNodeIndex; + HashMap<Node*, MacroAssembler::Label> m_labelForNode; MacroAssembler::Label m_endOfMainPath; MacroAssembler::Label m_endOfCode; }; |