1/*
2 * Copyright (C) 2013, 2014 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        break;
43    case Int32Use:
44        out.print("Int32");
45        break;
46    case KnownInt32Use:
47        out.print("KnownInt32");
48        break;
49    case Int52RepUse:
50        out.print("Int52Rep");
51        break;
52    case MachineIntUse:
53        out.print("MachineInt");
54        break;
55    case NumberUse:
56        out.print("Number");
57        break;
58    case DoubleRepUse:
59        out.print("DoubleRep");
60        break;
61    case DoubleRepRealUse:
62        out.print("DoubleRepReal");
63        break;
64    case DoubleRepMachineIntUse:
65        out.print("DoubleRepMachineInt");
66        break;
67    case BooleanUse:
68        out.print("Boolean");
69        break;
70    case CellUse:
71        out.print("Cell");
72        break;
73    case KnownCellUse:
74        out.print("KnownCell");
75        break;
76    case ObjectUse:
77        out.print("Object");
78        break;
79    case FinalObjectUse:
80        out.print("FinalObject");
81        break;
82    case ObjectOrOtherUse:
83        out.print("ObjectOrOther");
84        break;
85    case StringIdentUse:
86        out.print("StringIdent");
87        break;
88    case StringUse:
89        out.print("String");
90        break;
91    case KnownStringUse:
92        out.print("KnownString");
93        break;
94    case StringObjectUse:
95        out.print("StringObject");
96        break;
97    case StringOrStringObjectUse:
98        out.print("StringOrStringObject");
99        break;
100    case NotStringVarUse:
101        out.print("NotStringVar");
102        break;
103    case NotCellUse:
104        out.print("NotCell");
105        break;
106    case OtherUse:
107        out.print("Other");
108        break;
109    case MiscUse:
110        out.print("Misc");
111        break;
112    default:
113        RELEASE_ASSERT_NOT_REACHED();
114        break;
115    }
116}
117
118} // namespace WTF
119
120#endif // ENABLE(DFG_JIT)
121
122