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 | |
33 | namespace WTF { |
34 | |
35 | using namespace JSC::DFG; |
36 | |
37 | void 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 | |