502a1472e5d03c6bc7a8344064a04e72610bbfc2
[WebKit-https.git] / Source / JavaScriptCore / dfg / DFGUseKind.cpp
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 MachineIntUse:
53         out.print("MachineInt");
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 DoubleRepMachineIntUse:
68         out.print("DoubleRepMachineInt");
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 FunctionUse:
89         out.print("Function");
90         return;
91     case FinalObjectUse:
92         out.print("FinalObject");
93         return;
94     case RegExpObjectUse:
95         out.print("RegExpObject");
96         return;
97     case ObjectOrOtherUse:
98         out.print("ObjectOrOther");
99         return;
100     case StringIdentUse:
101         out.print("StringIdent");
102         return;
103     case StringUse:
104         out.print("String");
105         return;
106     case StringOrOtherUse:
107         out.print("StringOrOther");
108         return;
109     case KnownStringUse:
110         out.print("KnownString");
111         return;
112     case KnownPrimitiveUse:
113         out.print("KnownPrimitive");
114         return;
115     case SymbolUse:
116         out.print("Symbol");
117         return;
118     case StringObjectUse:
119         out.print("StringObject");
120         return;
121     case StringOrStringObjectUse:
122         out.print("StringOrStringObject");
123         return;
124     case NotStringVarUse:
125         out.print("NotStringVar");
126         return;
127     case NotCellUse:
128         out.print("NotCell");
129         return;
130     case OtherUse:
131         out.print("Other");
132         return;
133     case MiscUse:
134         out.print("Misc");
135         return;
136     case LastUseKind:
137         RELEASE_ASSERT_NOT_REACHED();
138         return;
139     }
140     RELEASE_ASSERT_NOT_REACHED();
141 }
142
143 } // namespace WTF
144
145 #endif // ENABLE(DFG_JIT)
146