2 * Copyright (C) 2017 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 "Intrinsic.h"
29 #include <wtf/PrintStream.h>
33 const char* intrinsicName(Intrinsic intrinsic)
39 return "AbsIntrinsic";
41 return "ACosIntrinsic";
43 return "ASinIntrinsic";
45 return "ATanIntrinsic";
47 return "ACoshIntrinsic";
49 return "ASinhIntrinsic";
51 return "ATanhIntrinsic";
53 return "MinIntrinsic";
55 return "MaxIntrinsic";
57 return "SqrtIntrinsic";
59 return "SinIntrinsic";
61 return "CbrtIntrinsic";
63 return "Clz32Intrinsic";
65 return "CosIntrinsic";
67 return "TanIntrinsic";
69 return "CoshIntrinsic";
71 return "SinhIntrinsic";
73 return "TanhIntrinsic";
74 case ArrayIndexOfIntrinsic:
75 return "ArrayIndexOfIntrinsic";
76 case ArrayPushIntrinsic:
77 return "ArrayPushIntrinsic";
78 case ArrayPopIntrinsic:
79 return "ArrayPopIntrinsic";
80 case ArraySliceIntrinsic:
81 return "ArraySliceIntrinsic";
82 case CharCodeAtIntrinsic:
83 return "CharCodeAtIntrinsic";
85 return "CharAtIntrinsic";
86 case FromCharCodeIntrinsic:
87 return "FromCharCodeIntrinsic";
89 return "PowIntrinsic";
91 return "FloorIntrinsic";
93 return "CeilIntrinsic";
95 return "RoundIntrinsic";
97 return "ExpIntrinsic";
99 return "Expm1Intrinsic";
101 return "LogIntrinsic";
103 return "Log10Intrinsic";
105 return "Log1pIntrinsic";
107 return "Log2Intrinsic";
108 case RegExpExecIntrinsic:
109 return "RegExpExecIntrinsic";
110 case RegExpTestIntrinsic:
111 return "RegExpTestIntrinsic";
112 case RegExpTestFastIntrinsic:
113 return "RegExpTestFastIntrinsic";
114 case ObjectGetPrototypeOfIntrinsic:
115 return "ObjectGetPrototypeOfIntrinsic";
116 case ReflectGetPrototypeOfIntrinsic:
117 return "ReflectGetPrototypeOfIntrinsic";
118 case StringPrototypeValueOfIntrinsic:
119 return "StringPrototypeValueOfIntrinsic";
120 case StringPrototypeReplaceIntrinsic:
121 return "StringPrototypeReplaceIntrinsic";
122 case StringPrototypeReplaceRegExpIntrinsic:
123 return "StringPrototypeReplaceRegExpIntrinsic";
124 case StringPrototypeSliceIntrinsic:
125 return "StringPrototypeSliceIntrinsic";
126 case StringPrototypeToLowerCaseIntrinsic:
127 return "StringPrototypeToLowerCaseIntrinsic";
128 case NumberPrototypeToStringIntrinsic:
129 return "NumberPrototypeToStringIntrinsic";
131 return "IMulIntrinsic";
132 case RandomIntrinsic:
133 return "RandomIntrinsic";
134 case FRoundIntrinsic:
135 return "FRoundIntrinsic";
137 return "TruncIntrinsic";
138 case IsTypedArrayViewIntrinsic:
139 return "IsTypedArrayViewIntrinsic";
140 case BoundThisNoArgsFunctionCallIntrinsic:
141 return "BoundThisNoArgsFunctionCallIntrinsic";
142 case JSMapGetIntrinsic:
143 return "JSMapGetIntrinsic";
144 case JSMapHasIntrinsic:
145 return "JSMapHasIntrinsic";
146 case JSMapBucketHeadIntrinsic:
147 return "JSMapBucketHeadIntrinsic";
148 case JSMapBucketNextIntrinsic:
149 return "JSMapBucketNextIntrinsic";
150 case JSMapBucketKeyIntrinsic:
151 return "JSMapBucketKeyIntrinsic";
152 case JSMapBucketValueIntrinsic:
153 return "JSMapBucketValueIntrinsic";
154 case JSSetHasIntrinsic:
155 return "JSSetHasIntrinsic";
156 case JSSetBucketHeadIntrinsic:
157 return "JSSetBucketHeadIntrinsic";
158 case JSSetBucketNextIntrinsic:
159 return "JSSetBucketNextIntrinsic";
160 case JSSetBucketKeyIntrinsic:
161 return "JSSetBucketKeyIntrinsic";
162 case JSWeakMapGetIntrinsic:
163 return "JSWeakMapGetIntrinsic";
164 case HasOwnPropertyIntrinsic:
165 return "HasOwnPropertyIntrinsic";
166 case AtomicsAddIntrinsic:
167 return "AtomicsAddIntrinsic";
168 case AtomicsAndIntrinsic:
169 return "AtomicsAndIntrinsic";
170 case AtomicsCompareExchangeIntrinsic:
171 return "AtomicsCompareExchangeIntrinsic";
172 case AtomicsExchangeIntrinsic:
173 return "AtomicsExchangeIntrinsic";
174 case AtomicsIsLockFreeIntrinsic:
175 return "AtomicsIsLockFreeIntrinsic";
176 case AtomicsLoadIntrinsic:
177 return "AtomicsLoadIntrinsic";
178 case AtomicsOrIntrinsic:
179 return "AtomicsOrIntrinsic";
180 case AtomicsStoreIntrinsic:
181 return "AtomicsStoreIntrinsic";
182 case AtomicsSubIntrinsic:
183 return "AtomicsSubIntrinsic";
184 case AtomicsWaitIntrinsic:
185 return "AtomicsWaitIntrinsic";
186 case AtomicsWakeIntrinsic:
187 return "AtomicsWakeIntrinsic";
188 case AtomicsXorIntrinsic:
189 return "AtomicsXorIntrinsic";
190 case ParseIntIntrinsic:
191 return "ParseIntIntrinsic";
192 case TypedArrayLengthIntrinsic:
193 return "TypedArrayLengthIntrinsic";
194 case TypedArrayByteLengthIntrinsic:
195 return "TypedArrayByteLengthIntrinsic";
196 case TypedArrayByteOffsetIntrinsic:
197 return "TypedArrayByteOffsetIntrinsic";
198 case UnderscoreProtoIntrinsic:
199 return "UnderscoreProtoIntrinsic";
200 case DFGTrueIntrinsic:
201 return "DFGTrueIntrinsic";
202 case OSRExitIntrinsic:
203 return "OSRExitIntrinsic";
204 case IsFinalTierIntrinsic:
205 return "IsFinalTierIntrinsic";
206 case SetInt32HeapPredictionIntrinsic:
207 return "SetInt32HeapPredictionIntrinsic";
208 case CheckInt32Intrinsic:
209 return "CheckInt32Intrinsic";
210 case FiatInt52Intrinsic:
211 return "FiatInt52Intrinsic";
212 case CPUMfenceIntrinsic:
213 return "CPUMfenceIntrinsic";
214 case CPURdtscIntrinsic:
215 return "CPURdtscIntrinsic";
216 case CPUCpuidIntrinsic:
217 return "CPUCpuidIntrinsic";
218 case CPUPauseIntrinsic:
219 return "CPUPauseIntrinsic";
221 RELEASE_ASSERT_NOT_REACHED();
229 void printInternal(PrintStream& out, JSC::Intrinsic intrinsic)
231 out.print(JSC::intrinsicName(intrinsic));