2 * Copyright (C) 2014, 2015 Apple Inc. All rights reserved.
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
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.
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.
27 #include "DFGHeapLocation.h"
31 namespace JSC
{ namespace DFG
{
33 void HeapLocation::dump(PrintStream
& out
) const
35 out
.print(m_kind
, ":", m_heap
);
40 out
.print("[", m_base
);
42 out
.print(", ", m_index
);
46 } } // namespace JSC::DFG
50 using namespace JSC::DFG
;
52 void printInternal(PrintStream
& out
, LocationKind kind
)
55 case InvalidLocationKind
:
56 out
.print("InvalidLocationKind");
59 case InvalidationPointLoc
:
60 out
.print("InvalidationPointLoc");
63 case IsObjectOrNullLoc
:
64 out
.print("IsObjectOrNullLoc");
68 out
.print("IsFunctionLoc");
72 out
.print("GetterLoc");
76 out
.print("SetterLoc");
80 out
.print("StackLoc");
84 out
.print("StackPayloadLoc");
88 out
.print("ArrayLengthLoc");
92 out
.print("ButterflyLoc");
95 case CheckHasInstanceLoc
:
96 out
.print("CheckHasInstanceLoc");
99 case ClosureVariableLoc
:
100 out
.print("ClosureVariableLoc");
103 case DirectArgumentsLoc
:
104 out
.print("DirectArgumentsLoc");
107 case GlobalVariableLoc
:
108 out
.print("GlobalVariableLoc");
111 case HasIndexedPropertyLoc
:
112 out
.print("HasIndexedPorpertyLoc");
115 case IndexedPropertyLoc
:
116 out
.print("IndexedPorpertyLoc");
119 case IndexedPropertyStorageLoc
:
120 out
.print("IndexedPropertyStorageLoc");
124 out
.print("InstanceOfLoc");
127 case NamedPropertyLoc
:
128 out
.print("NamedPropertyLoc");
131 case TypedArrayByteOffsetLoc
:
132 out
.print("TypedArrayByteOffsetLoc");
135 case VarInjectionWatchpointLoc
:
136 out
.print("VarInjectionWatchpointLoc");
140 out
.print("StructureLoc");
144 RELEASE_ASSERT_NOT_REACHED();
149 #endif // ENABLE(DFG_JIT)