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 "DFGPromotedHeapLocation.h"
32 #include "JSCInlines.h"
34 namespace JSC
{ namespace DFG
{
36 void PromotedLocationDescriptor::dump(PrintStream
& out
) const
38 out
.print(m_kind
, "(", m_info
, ")");
41 Node
* PromotedHeapLocation::createHint(Graph
& graph
, NodeOrigin origin
, Node
* value
)
44 SpecNone
, PutHint
, origin
, OpInfo(descriptor().imm1()), OpInfo(descriptor().imm2()),
45 base()->defaultEdge(), value
->defaultEdge());
48 void PromotedHeapLocation::dump(PrintStream
& out
) const
50 out
.print(kind(), "(", m_base
, ", ", info(), ")");
53 } } // namespace JSC::DFG
57 using namespace JSC::DFG
;
59 void printInternal(PrintStream
& out
, PromotedLocationKind kind
)
62 case InvalidPromotedLocationKind
:
63 out
.print("InvalidPromotedLocationKind");
67 out
.print("StructurePLoc");
70 case ActivationSymbolTablePLoc
:
71 out
.print("ActivationSymbolTablePLoc");
74 case NamedPropertyPLoc
:
75 out
.print("NamedPropertyPLoc");
79 out
.print("ArgumentPLoc");
82 case ArgumentCountPLoc
:
83 out
.print("ArgumentCountPLoc");
86 case ArgumentsCalleePLoc
:
87 out
.print("ArgumentsCalleePLoc");
90 case FunctionExecutablePLoc
:
91 out
.print("FunctionExecutablePLoc");
94 case FunctionActivationPLoc
:
95 out
.print("FunctionActivationPLoc");
98 case ActivationScopePLoc
:
99 out
.print("ActivationScopePLoc");
103 out
.print("ClosureVarPLoc");
107 RELEASE_ASSERT_NOT_REACHED();
112 #endif // ENABLE(DFG_JIT)