From dd91e772430dc294e3bf478c119ef8d43c0a3358 Mon Sep 17 00:00:00 2001 From: Simon Hausmann Date: Mon, 12 Mar 2012 14:11:15 +0100 Subject: Imported WebKit commit 3db4eb1820ac8fb03065d7ea73a4d9db1e8fea1a (http://svn.webkit.org/repository/webkit/trunk@110422) This includes build fixes for the latest qtbase/qtdeclarative as well as the final QML2 API. --- .../dfg/DFGArithNodeFlagsInferencePhase.cpp | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) (limited to 'Source/JavaScriptCore/dfg/DFGArithNodeFlagsInferencePhase.cpp') diff --git a/Source/JavaScriptCore/dfg/DFGArithNodeFlagsInferencePhase.cpp b/Source/JavaScriptCore/dfg/DFGArithNodeFlagsInferencePhase.cpp index f55533a61..9a49364dd 100644 --- a/Source/JavaScriptCore/dfg/DFGArithNodeFlagsInferencePhase.cpp +++ b/Source/JavaScriptCore/dfg/DFGArithNodeFlagsInferencePhase.cpp @@ -80,11 +80,8 @@ private: if (!node.shouldGenerate()) return; - NodeType op = node.op; - ArithNodeFlags flags = 0; - - if (node.hasArithNodeFlags()) - flags = node.rawArithNodeFlags(); + NodeType op = static_cast(node.op); + NodeFlags flags = node.flags; #if DFG_ENABLE(DEBUG_PROPAGATION_VERBOSE) dataLog(" %s @%u: %s ", Graph::opName(op), m_compileIndex, arithNodeFlagsAsString(flags)); @@ -131,6 +128,11 @@ private: break; } + case ArithNegate: { + changed |= m_graph[node.child1()].mergeArithNodeFlags(flags); + break; + } + case ArithMul: case ArithDiv: { // As soon as a multiply happens, we can easily end up in the part @@ -173,7 +175,7 @@ private: default: flags |= NodeUsedAsNumber | NodeNeedsNegZero; - if (op & NodeHasVarArgs) { + if (node.flags & NodeHasVarArgs) { for (unsigned childIdx = node.firstChild(); childIdx < node.firstChild() + node.numChildren(); childIdx++) changed |= m_graph[m_graph.m_varArgChildren[childIdx]].mergeArithNodeFlags(flags); } else { @@ -217,6 +219,9 @@ private: NodeIndex m_compileIndex; bool m_changed; +#if DFG_ENABLE(DEBUG_PROPAGATION_VERBOSE) + unsigned m_count; +#endif }; void performArithNodeFlagsInference(Graph& graph) -- cgit v1.2.1