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 PromiseObjectUse:
101 out.print("PromiseObject");
102 return;
103 case ProxyObjectUse:
104 out.print("ProxyObject");
105 return;
106 case DerivedArrayUse:
107 out.print("DerivedArray");
108 return;
109 case DateObjectUse:
110 out.print("DateObject");
111 return;
112 case MapObjectUse:
113 out.print("MapObject");
114 return;
115 case SetObjectUse:
116 out.print("SetObject");
117 return;
118 case WeakMapObjectUse:
119 out.print("WeakMapObject");
120 return;
121 case WeakSetObjectUse:
122 out.print("WeakSetObject");
123 return;
124 case DataViewObjectUse:
125 out.print("DataViewObject");
126 return;
127 case ObjectOrOtherUse:
128 out.print("ObjectOrOther");
129 return;
130 case StringIdentUse:
131 out.print("StringIdent");
132 return;
133 case StringUse:
134 out.print("String");
135 return;
136 case StringOrOtherUse:
137 out.print("StringOrOther");
138 return;
139 case KnownStringUse:
140 out.print("KnownString");
141 return;
142 case KnownPrimitiveUse:
143 out.print("KnownPrimitive");
144 return;
145 case SymbolUse:
146 out.print("Symbol");
147 return;
148 case BigIntUse:
149 out.print("BigInt");
150 return;
151 case StringObjectUse:
152 out.print("StringObject");
153 return;
154 case StringOrStringObjectUse:
155 out.print("StringOrStringObject");
156 return;
157 case NotStringVarUse:
158 out.print("NotStringVar");
159 return;
160 case NotSymbolUse:
161 out.print("NotSymbol");
162 return;
163 case NotCellUse:
164 out.print("NotCell");
165 return;
166 case KnownOtherUse:
167 out.print("KnownOther");
168 return;
169 case OtherUse:
170 out.print("Other");
171 return;
172 case MiscUse:
173 out.print("Misc");
174 return;
175 case LastUseKind:
176 RELEASE_ASSERT_NOT_REACHED();
177 return;
178 }
179 RELEASE_ASSERT_NOT_REACHED();
180}
181
182} // namespace WTF
183
184#endif // ENABLE(DFG_JIT)
185
186