summaryrefslogtreecommitdiff
path: root/Source/JavaScriptCore/dfg/DFGNodeFlags.cpp
diff options
context:
space:
mode:
authorKonstantin Tokarev <annulen@yandex.ru>2016-08-25 19:20:41 +0300
committerKonstantin Tokarev <annulen@yandex.ru>2017-02-02 12:30:55 +0000
commit6882a04fb36642862b11efe514251d32070c3d65 (patch)
treeb7959826000b061fd5ccc7512035c7478742f7b0 /Source/JavaScriptCore/dfg/DFGNodeFlags.cpp
parentab6df191029eeeb0b0f16f127d553265659f739e (diff)
downloadqtwebkit-6882a04fb36642862b11efe514251d32070c3d65.tar.gz
Imported QtWebKit TP3 (git b57bc6801f1876c3220d5a4bfea33d620d477443)
Change-Id: I3b1d8a2808782c9f34d50240000e20cb38d3680f Reviewed-by: Konstantin Tokarev <annulen@yandex.ru>
Diffstat (limited to 'Source/JavaScriptCore/dfg/DFGNodeFlags.cpp')
-rw-r--r--Source/JavaScriptCore/dfg/DFGNodeFlags.cpp70
1 files changed, 43 insertions, 27 deletions
diff --git a/Source/JavaScriptCore/dfg/DFGNodeFlags.cpp b/Source/JavaScriptCore/dfg/DFGNodeFlags.cpp
index c5753d207..79f4b4302 100644
--- a/Source/JavaScriptCore/dfg/DFGNodeFlags.cpp
+++ b/Source/JavaScriptCore/dfg/DFGNodeFlags.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2012, 2013 Apple Inc. All rights reserved.
+ * Copyright (C) 2012, 2013, 2014 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -28,17 +28,15 @@
#if ENABLE(DFG_JIT)
+#include "JSCInlines.h"
#include <wtf/CommaPrinter.h>
+#include <wtf/StringPrintStream.h>
namespace JSC { namespace DFG {
-void dumpNodeFlags(PrintStream& out, NodeFlags flags)
+void dumpNodeFlags(PrintStream& actualOut, NodeFlags flags)
{
- if (!(flags ^ NodeDoesNotExit)) {
- out.print("<empty>");
- return;
- }
-
+ StringPrintStream out;
CommaPrinter comma("|");
if (flags & NodeResultMask) {
@@ -49,9 +47,15 @@ void dumpNodeFlags(PrintStream& out, NodeFlags flags)
case NodeResultNumber:
out.print(comma, "Number");
break;
+ case NodeResultDouble:
+ out.print(comma, "Double");
+ break;
case NodeResultInt32:
out.print(comma, "Int32");
break;
+ case NodeResultInt52:
+ out.print(comma, "Int52");
+ break;
case NodeResultBoolean:
out.print(comma, "Boolean");
break;
@@ -70,37 +74,49 @@ void dumpNodeFlags(PrintStream& out, NodeFlags flags)
if (flags & NodeHasVarArgs)
out.print(comma, "VarArgs");
- if (flags & NodeClobbersWorld)
- out.print(comma, "Clobbers");
-
- if (flags & NodeMightClobber)
- out.print(comma, "MightClobber");
-
if (flags & NodeResultMask) {
- if (!(flags & NodeUsedAsNumber) && !(flags & NodeNeedsNegZero))
+ if (!(flags & NodeBytecodeUsesAsNumber) && !(flags & NodeBytecodeNeedsNegZero))
out.print(comma, "PureInt");
- else if (!(flags & NodeUsedAsNumber))
+ else if (!(flags & NodeBytecodeUsesAsNumber))
out.print(comma, "PureInt(w/ neg zero)");
- else if (!(flags & NodeNeedsNegZero))
+ else if (!(flags & NodeBytecodeNeedsNegZero))
out.print(comma, "PureNum");
- if (flags & NodeUsedAsOther)
+ if (flags & NodeBytecodeUsesAsOther)
out.print(comma, "UseAsOther");
}
+
+ if (flags & NodeMayHaveNonIntResult)
+ out.print(comma, "MayHaveNonIntResult");
+
+ if (flags & NodeMayOverflowInt52)
+ out.print(comma, "MayOverflowInt52");
+
+ if (flags & NodeMayOverflowInt32InBaseline)
+ out.print(comma, "MayOverflowInt32InBaseline");
+
+ if (flags & NodeMayOverflowInt32InDFG)
+ out.print(comma, "MayOverflowInt32InDFG");
+
+ if (flags & NodeMayNegZeroInBaseline)
+ out.print(comma, "MayNegZeroInBaseline");
- if (flags & NodeMayOverflow)
- out.print(comma, "MayOverflow");
-
- if (flags & NodeMayNegZero)
- out.print(comma, "MayNegZero");
+ if (flags & NodeMayNegZeroInDFG)
+ out.print(comma, "MayNegZeroInDFG");
- if (flags & NodeUsedAsInt)
+ if (flags & NodeBytecodeUsesAsInt)
out.print(comma, "UseAsInt");
+
+ if (flags & NodeBytecodeUsesAsArrayIndex)
+ out.print(comma, "ReallyWantsInt");
- if (!(flags & NodeDoesNotExit))
- out.print(comma, "CanExit");
+ if (flags & NodeIsFlushed)
+ out.print(comma, "IsFlushed");
- if (flags & NodeExitsForward)
- out.print(comma, "NodeExitsForward");
+ CString string = out.toCString();
+ if (!string.length())
+ actualOut.print("<empty>");
+ else
+ actualOut.print(string);
}
} } // namespace JSC::DFG