summaryrefslogtreecommitdiff
path: root/Source/JavaScriptCore/dfg/DFGNodeFlags.cpp
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@digia.com>2013-09-13 12:51:20 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-09-19 20:50:05 +0200
commitd441d6f39bb846989d95bcf5caf387b42414718d (patch)
treee367e64a75991c554930278175d403c072de6bb8 /Source/JavaScriptCore/dfg/DFGNodeFlags.cpp
parent0060b2994c07842f4c59de64b5e3e430525c4b90 (diff)
downloadqtwebkit-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/DFGNodeFlags.cpp')
-rw-r--r--Source/JavaScriptCore/dfg/DFGNodeFlags.cpp131
1 files changed, 40 insertions, 91 deletions
diff --git a/Source/JavaScriptCore/dfg/DFGNodeFlags.cpp b/Source/JavaScriptCore/dfg/DFGNodeFlags.cpp
index fb83c5a71..c5753d207 100644
--- a/Source/JavaScriptCore/dfg/DFGNodeFlags.cpp
+++ b/Source/JavaScriptCore/dfg/DFGNodeFlags.cpp
@@ -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
@@ -28,132 +28,81 @@
#if ENABLE(DFG_JIT)
-#include <wtf/BoundsCheckedPointer.h>
+#include <wtf/CommaPrinter.h>
namespace JSC { namespace DFG {
-const char* nodeFlagsAsString(NodeFlags flags)
+void dumpNodeFlags(PrintStream& out, NodeFlags flags)
{
- if (!flags)
- return "<empty>";
+ if (!(flags ^ NodeDoesNotExit)) {
+ out.print("<empty>");
+ return;
+ }
- static const int size = 128;
- static char description[size];
- BoundsCheckedPointer<char> ptr(description, size);
-
- bool hasPrinted = false;
+ CommaPrinter comma("|");
if (flags & NodeResultMask) {
switch (flags & NodeResultMask) {
case NodeResultJS:
- ptr.strcat("JS");
+ out.print(comma, "JS");
break;
case NodeResultNumber:
- ptr.strcat("Number");
+ out.print(comma, "Number");
break;
case NodeResultInt32:
- ptr.strcat("Int32");
+ out.print(comma, "Int32");
break;
case NodeResultBoolean:
- ptr.strcat("Boolean");
+ out.print(comma, "Boolean");
break;
case NodeResultStorage:
- ptr.strcat("Storage");
+ out.print(comma, "Storage");
break;
default:
- ASSERT_NOT_REACHED();
+ RELEASE_ASSERT_NOT_REACHED();
break;
}
- hasPrinted = true;
}
- if (flags & NodeMustGenerate) {
- if (hasPrinted)
- ptr.strcat("|");
- ptr.strcat("MustGen");
- hasPrinted = true;
- }
+ if (flags & NodeMustGenerate)
+ out.print(comma, "MustGen");
- if (flags & NodeHasVarArgs) {
- if (hasPrinted)
- ptr.strcat("|");
- ptr.strcat("VarArgs");
- hasPrinted = true;
- }
+ if (flags & NodeHasVarArgs)
+ out.print(comma, "VarArgs");
- if (flags & NodeClobbersWorld) {
- if (hasPrinted)
- ptr.strcat("|");
- ptr.strcat("Clobbers");
- hasPrinted = true;
- }
+ if (flags & NodeClobbersWorld)
+ out.print(comma, "Clobbers");
- if (flags & NodeMightClobber) {
- if (hasPrinted)
- ptr.strcat("|");
- ptr.strcat("MightClobber");
- hasPrinted = true;
- }
+ if (flags & NodeMightClobber)
+ out.print(comma, "MightClobber");
if (flags & NodeResultMask) {
- if (!(flags & NodeUsedAsNumber) && !(flags & NodeNeedsNegZero)) {
- if (hasPrinted)
- ptr.strcat("|");
- ptr.strcat("PureInt");
- hasPrinted = true;
- } else if (!(flags & NodeUsedAsNumber)) {
- if (hasPrinted)
- ptr.strcat("|");
- ptr.strcat("PureInt(w/ neg zero)");
- hasPrinted = true;
- } else if (!(flags & NodeNeedsNegZero)) {
- if (hasPrinted)
- ptr.strcat("|");
- ptr.strcat("PureNum");
- hasPrinted = true;
- }
- if (flags & NodeUsedAsOther) {
- if (hasPrinted)
- ptr.strcat("|");
- ptr.strcat("UseAsOther");
- hasPrinted = true;
- }
+ if (!(flags & NodeUsedAsNumber) && !(flags & NodeNeedsNegZero))
+ out.print(comma, "PureInt");
+ else if (!(flags & NodeUsedAsNumber))
+ out.print(comma, "PureInt(w/ neg zero)");
+ else if (!(flags & NodeNeedsNegZero))
+ out.print(comma, "PureNum");
+ if (flags & NodeUsedAsOther)
+ out.print(comma, "UseAsOther");
}
- if (flags & NodeMayOverflow) {
- if (hasPrinted)
- ptr.strcat("|");
- ptr.strcat("MayOverflow");
- hasPrinted = true;
- }
+ if (flags & NodeMayOverflow)
+ out.print(comma, "MayOverflow");
- if (flags & NodeMayNegZero) {
- if (hasPrinted)
- ptr.strcat("|");
- ptr.strcat("MayNegZero");
- hasPrinted = true;
- }
+ if (flags & NodeMayNegZero)
+ out.print(comma, "MayNegZero");
- if (flags & NodeUsedAsInt) {
- if (hasPrinted)
- ptr.strcat("|");
- ptr.strcat("UseAsInt");
- hasPrinted = true;
- }
+ if (flags & NodeUsedAsInt)
+ out.print(comma, "UseAsInt");
- if (!(flags & NodeDoesNotExit)) {
- if (hasPrinted)
- ptr.strcat("|");
- ptr.strcat("CanExit");
- hasPrinted = true;
- }
-
- *ptr++ = 0;
+ if (!(flags & NodeDoesNotExit))
+ out.print(comma, "CanExit");
- return description;
+ if (flags & NodeExitsForward)
+ out.print(comma, "NodeExitsForward");
}
-
} } // namespace JSC::DFG
#endif // ENABLE(DFG_JIT)