diff options
Diffstat (limited to 'Source/JavaScriptCore/dfg/DFGNodeFlags.cpp')
-rw-r--r-- | Source/JavaScriptCore/dfg/DFGNodeFlags.cpp | 70 |
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 |