1/*
2 * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
6 * are met:
7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 *
13 * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
14 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
17 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
18 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
19 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
20 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
21 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
23 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24 */
25
26#include "config.h"
27#include "DFGUseKind.h"
28
29#if ENABLE(DFG_JIT)
30
31#include "JSCInlines.h"
32
33namespace WTF {
34
35using namespace JSC::DFG;
36
37void printInternal(PrintStream& out, UseKind useKind)
38{
39 switch (useKind) {
40 case UntypedUse:
41 out.print("Untyped");
42 return;
43 case Int32Use:
44 out.print("Int32");
45 return;
46 case KnownInt32Use:
47 out.print("KnownInt32");
48 return;
49 case Int52RepUse:
50 out.print("Int52Rep");
51 return;
52 case AnyIntUse:
53 out.print("AnyInt");
54 return;
55 case NumberUse:
56 out.print("Number");
57 return;
58 case RealNumberUse:
59 out.print("RealNumber");
60 return;
61 case DoubleRepUse:
62 out.print("DoubleRep");
63 return;
64 case DoubleRepRealUse:
65 out.print("DoubleRepReal");
66 return;
67 case DoubleRepAnyIntUse:
68 out.print("DoubleRepAnyInt");
69 return;
70 case BooleanUse:
71 out.print("Boolean");
72 return;
73 case KnownBooleanUse:
74 out.print("KnownBoolean");
75 return;
76 case CellUse:
77 out.print("Cell");
78 return;
79 case KnownCellUse:
80 out.print("KnownCell");
81 return;
82 case CellOrOtherUse:
83 out.print("CellOrOther");
84 return;
85 case ObjectUse:
86 out.print("Object");
87 return;
88 case ArrayUse:
89 out.print("Array");
90 return;
91 case FunctionUse:
92 out.print("Function");
93 return;
94 case FinalObjectUse:
95 out.print("FinalObject");
96 return;
97 case RegExpObjectUse:
98 out.print("RegExpObject");
99 return;
100 case ProxyObjectUse:
101 out.print("ProxyObject");
102 return;
103 case DerivedArrayUse:
104 out.print("DerivedArray");
105 return;
106 case MapObjectUse:
107 out.print("MapObject");
108 return;
109 case SetObjectUse:
110 out.print("SetObject");
111 return;
112 case WeakMapObjectUse:
113 out.print("WeakMapObject");
114 return;
115 case WeakSetObjectUse:
116 out.print("WeakSetObject");
117 return;
118 case DataViewObjectUse:
119 out.print("DataViewObject");
120 return;
121 case ObjectOrOtherUse:
122 out.print("ObjectOrOther");
123 return;
124 case StringIdentUse:
125 out.print("StringIdent");
126 return;
127 case StringUse:
128 out.print("String");
129 return;
130 case StringOrOtherUse:
131 out.print("StringOrOther");
132 return;
133 case KnownStringUse:
134 out.print("KnownString");
135 return;
136 case KnownPrimitiveUse:
137 out.print("KnownPrimitive");
138 return;
139 case SymbolUse:
140 out.print("Symbol");
141 return;
142 case BigIntUse:
143 out.print("BigInt");
144 return;
145 case StringObjectUse:
146 out.print("StringObject");
147 return;
148 case StringOrStringObjectUse:
149 out.print("StringOrStringObject");
150 return;
151 case NotStringVarUse:
152 out.print("NotStringVar");
153 return;
154 case NotSymbolUse:
155 out.print("NotSymbol");
156 return;
157 case NotCellUse:
158 out.print("NotCell");
159 return;
160 case KnownOtherUse:
161 out.print("KnownOther");
162 return;
163 case OtherUse:
164 out.print("Other");
165 return;
166 case MiscUse:
167 out.print("Misc");
168 return;
169 case LastUseKind:
170 RELEASE_ASSERT_NOT_REACHED();
171 return;
172 }
173 RELEASE_ASSERT_NOT_REACHED();
174}
175
176} // namespace WTF
177
178#endif // ENABLE(DFG_JIT)
179
180