• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2024 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 #ifndef ECMASCRIPT_COMPILER_BASELINE_BASELINE_COMPILER_BUILTINS_H
16 #define ECMASCRIPT_COMPILER_BASELINE_BASELINE_COMPILER_BUILTINS_H
17 namespace panda::ecmascript::kungfu {
18 
19 #define BASELINE_COMPILER_BUILTIN_LIST(V)                                  \
20     V(BaselineTryLdGLobalByNameImm8ID16)                                   \
21     V(BaselineStToGlobalRecordImm16ID16)                                   \
22     V(BaselineLdaStrID16)                                                  \
23     V(BaselineCallArg1Imm8V8)                                              \
24     V(BaselineLdsymbol)                                                    \
25     V(BaselineLdglobal)                                                    \
26     V(BaselinePoplexenv)                                                   \
27     V(BaselineGetunmappedargs)                                             \
28     V(BaselineAsyncfunctionenter)                                          \
29     V(BaselineCreateasyncgeneratorobjV8)                                   \
30     V(BaselineDebugger)                                                    \
31     V(BaselineGetpropiterator)                                             \
32     V(BaselineGetiteratorImm8)                                             \
33     V(BaselineGetiteratorImm16)                                            \
34     V(BaselineCloseiteratorImm8V8)                                         \
35     V(BaselineCloseiteratorImm16V8)                                        \
36     V(BaselineAsyncgeneratorresolveV8V8V8)                                 \
37     V(BaselineCreateemptyobject)                                           \
38     V(BaselineCreateemptyarrayImm8)                                        \
39     V(BaselineCreateemptyarrayImm16)                                       \
40     V(BaselineCreategeneratorobjV8)                                        \
41     V(BaselineCreateiterresultobjV8V8)                                     \
42     V(BaselineCreateobjectwithexcludedkeysImm8V8V8)                        \
43     V(BaselineCallthis0Imm8V8)                                             \
44     V(BaselineCreatearraywithbufferImm8Id16)                               \
45     V(BaselineCreatearraywithbufferImm16Id16)                              \
46     V(BaselineCallthis1Imm8V8V8)                                           \
47     V(BaselineCallthis2Imm8V8V8V8)                                         \
48     V(BaselineCreateobjectwithbufferImm8Id16)                              \
49     V(BaselineCreateobjectwithbufferImm16Id16)                             \
50     V(BaselineCreateregexpwithliteralImm8Id16Imm8)                         \
51     V(BaselineCreateregexpwithliteralImm16Id16Imm8)                        \
52     V(BaselineNewobjapplyImm8V8)                                           \
53     V(BaselineNewobjapplyImm16V8)                                          \
54     V(BaselineNewlexenvImm8)                                               \
55     V(BaselineNewlexenvwithnameImm8Id16)                                   \
56     V(BaselineAdd2Imm8V8)                                                  \
57     V(BaselineSub2Imm8V8)                                                  \
58     V(BaselineMul2Imm8V8)                                                  \
59     V(BaselineDiv2Imm8V8)                                                  \
60     V(BaselineMod2Imm8V8)                                                  \
61     V(BaselineEqImm8V8)                                                    \
62     V(BaselineNoteqImm8V8)                                                 \
63     V(BaselineLessImm8V8)                                                  \
64     V(BaselineLesseqImm8V8)                                                \
65     V(BaselineGreaterImm8V8)                                               \
66     V(BaselineGreatereqImm8V8)                                             \
67     V(BaselineShl2Imm8V8)                                                  \
68     V(BaselineShr2Imm8V8)                                                  \
69     V(BaselineAshr2Imm8V8)                                                 \
70     V(BaselineAnd2Imm8V8)                                                  \
71     V(BaselineOr2Imm8V8)                                                   \
72     V(BaselineXor2Imm8V8)                                                  \
73     V(BaselineExpImm8V8)                                                   \
74     V(BaselineTypeofImm8)                                                  \
75     V(BaselineTypeofImm16)                                                 \
76     V(BaselineTonumberImm8)                                                \
77     V(BaselineTonumericImm8)                                               \
78     V(BaselineNegImm8)                                                     \
79     V(BaselineNotImm8)                                                     \
80     V(BaselineIncImm8)                                                     \
81     V(BaselineDecImm8)                                                     \
82     V(BaselineIsinImm8V8)                                                  \
83     V(BaselineInstanceofImm8V8)                                            \
84     V(BaselineStrictnoteqImm8V8)                                           \
85     V(BaselineStricteqImm8V8)                                              \
86     V(BaselineIstrue)                                                      \
87     V(BaselineIsfalse)                                                     \
88     V(BaselineCallthis3Imm8V8V8V8V8)                                       \
89     V(BaselineCallthisrangeImm8Imm8V8)                                     \
90     V(BaselineSupercallthisrangeImm8Imm8V8)                                \
91     V(BaselineSupercallarrowrangeImm8Imm8V8)                               \
92     V(BaselineDefinefuncImm8Id16Imm8)                                      \
93     V(BaselineDefinefuncImm16Id16Imm8)                                     \
94     V(BaselineDefinemethodImm8Id16Imm8)                                    \
95     V(BaselineDefinemethodImm16Id16Imm8)                                   \
96     V(BaselineCallarg0Imm8)                                                \
97     V(BaselineSupercallspreadImm8V8)                                       \
98     V(BaselineCallRuntimeSupercallforwardallargsPrefV8)                    \
99     V(BaselineApplyImm8V8V8)                                               \
100     V(BaselineCallargs2Imm8V8V8)                                           \
101     V(BaselineCallargs3Imm8V8V8V8)                                         \
102     V(BaselineCallrangeImm8Imm8V8)                                         \
103     V(BaselineLdexternalmodulevarImm8)                                     \
104     V(BaselineLdthisbynameImm8Id16)                                        \
105     V(BaselineDefinegettersetterbyvalueV8V8V8V8)                           \
106     V(BaselineLdthisbynameImm16Id16)                                       \
107     V(BaselineStthisbynameImm8Id16)                                        \
108     V(BaselineStthisbynameImm16Id16)                                       \
109     V(BaselineLdthisbyvalueImm8)                                           \
110     V(BaselineLdthisbyvalueImm16)                                          \
111     V(BaselineStthisbyvalueImm8V8)                                         \
112     V(BaselineStthisbyvalueImm16V8)                                        \
113     V(BaselineDynamicimport)                                               \
114     V(BaselineDefineclasswithbufferImm8Id16Id16Imm16V8)                    \
115     V(BaselineDefineclasswithbufferImm16Id16Id16Imm16V8)                   \
116     V(BaselineResumegenerator)                                             \
117     V(BaselineGetresumemod)                                                \
118     V(BaselineGettemplateobjectImm8)                                       \
119     V(BaselineGettemplateobjectImm16)                                      \
120     V(BaselineGetnextpropnameV8)                                           \
121     V(BaselineSetobjectwithprotoImm8V8)                                    \
122     V(BaselineDelobjpropV8)                                                \
123     V(BaselineSuspendgeneratorV8)                                          \
124     V(BaselineAsyncfunctionawaituncaughtV8)                                \
125     V(BaselineCopydatapropertiesV8)                                        \
126     V(BaselineStarrayspreadV8V8)                                           \
127     V(BaselineSetobjectwithprotoImm16V8)                                   \
128     V(BaselineLdobjbyvalueImm8V8)                                          \
129     V(BaselineLdobjbyvalueImm16V8)                                         \
130     V(BaselineStobjbyvalueImm8V8V8)                                        \
131     V(BaselineStobjbyvalueImm16V8V8)                                       \
132     V(BaselineStownbyvalueImm8V8V8)                                        \
133     V(BaselineStownbyvalueImm16V8V8)                                       \
134     V(BaselineLdsuperbyvalueImm8V8)                                        \
135     V(BaselineLdsuperbyvalueImm16V8)                                       \
136     V(BaselineStsuperbyvalueImm8V8V8)                                      \
137     V(BaselineStsuperbyvalueImm16V8V8)                                     \
138     V(BaselineLdobjbyindexImm8Imm16)                                       \
139     V(BaselineLdobjbyindexImm16Imm16)                                      \
140     V(BaselineStobjbyindexImm8V8Imm16)                                     \
141     V(BaselineStobjbyindexImm16V8Imm16)                                    \
142     V(BaselineStownbyindexImm8V8Imm16)                                     \
143     V(BaselineStownbyindexImm16V8Imm16)                                    \
144     V(BaselineAsyncfunctionresolveV8)                                      \
145     V(BaselineAsyncfunctionrejectV8)                                       \
146     V(BaselineCopyrestargsImm8)                                            \
147     V(BaselineLdlexvarImm4Imm4)                                            \
148     V(BaselineStlexvarImm4Imm4)                                            \
149     V(BaselineGetmodulenamespaceImm8)                                      \
150     V(BaselineStmodulevarImm8)                                             \
151     V(BaselineTryldglobalbynameImm16Id16)                                   \
152     V(BaselineTrystglobalbynameImm8Id16)                                   \
153     V(BaselineTrystglobalbynameImm16Id16)                                  \
154     V(BaselineLdglobalvarImm16Id16)                                        \
155     V(BaselineStglobalvarImm16Id16)                                        \
156     V(BaselineLdobjbynameImm8Id16)                                         \
157     V(BaselineLdobjbynameImm16Id16)                                        \
158     V(BaselineStobjbynameImm8Id16V8)                                       \
159     V(BaselineStobjbynameImm16Id16V8)                                      \
160     V(BaselineStownbynameImm8Id16V8)                                       \
161     V(BaselineStownbynameImm16Id16V8)                                      \
162     V(BaselineLdsuperbynameImm8Id16)                                       \
163     V(BaselineLdsuperbynameImm16Id16)                                      \
164     V(BaselineStsuperbynameImm8Id16V8)                                     \
165     V(BaselineStsuperbynameImm16Id16V8)                                    \
166     V(BaselineLdlocalmodulevarImm8)                                        \
167     V(BaselineStconsttoglobalrecordImm16Id16)                              \
168     V(BaselineStownbyvaluewithnamesetImm8V8V8)                             \
169     V(BaselineStownbyvaluewithnamesetImm16V8V8)                            \
170     V(BaselineStownbynamewithnamesetImm8Id16V8)                            \
171     V(BaselineStownbynamewithnamesetImm16Id16V8)                           \
172     V(BaselineLdbigintId16)                                                \
173     V(BaselineFldaiImm64)                                                  \
174     V(BaselineReturn)                                                      \
175     V(BaselineLdlexvarImm8Imm8)                                            \
176     V(BaselineStlexvarImm8Imm8)                                            \
177     V(BaselineJnstricteqV8Imm16)                                           \
178     V(BaselineAsyncgeneratorrejectV8)                                      \
179     V(BaselineSetgeneratorstateImm8)                                       \
180     V(BaselineGetasynciteratorImm8)                                        \
181     V(BaselineLdPrivatePropertyImm8Imm16Imm16)                             \
182     V(BaselineStPrivatePropertyImm8Imm16Imm16V8)                           \
183     V(BaselineTestInImm8Imm16Imm16)                                        \
184     V(BaselineDeprecatedLdlexenvPrefNone)                                  \
185     V(BaselineWideCreateobjectwithexcludedkeysPrefImm16V8V8)               \
186     V(BaselineThrowPrefNone)                                               \
187     V(BaselineDeprecatedPoplexenvPrefNone)                                 \
188     V(BaselineWideNewobjrangePrefImm16V8)                                  \
189     V(BaselineThrowNotexistsPrefNone)                                      \
190     V(BaselineDeprecatedGetiteratornextPrefV8V8)                           \
191     V(BaselineWideNewlexenvPrefImm16)                                      \
192     V(BaselineThrowPatternnoncoerciblePrefNone)                            \
193     V(BaselineDeprecatedCreatearraywithbufferPrefImm16)                    \
194     V(BaselineWideNewlexenvwithnamePrefImm16Id16)                          \
195     V(BaselineThrowDeletesuperpropertyPrefNone)                            \
196     V(BaselineDeprecatedCreateobjectwithbufferPrefImm16)                   \
197     V(BaselineNewobjrangeImm8Imm8V8)                                       \
198     V(BaselineNewobjrangeImm16Imm8V8)                                      \
199     V(BaselineWideCallrangePrefImm16V8)                                    \
200     V(BaselineThrowConstassignmentPrefV8)                                  \
201     V(BaselineDeprecatedTonumberPrefV8)                                    \
202     V(BaselineWideCallthisrangePrefImm16V8)                                \
203     V(BaselineThrowIfnotobjectPrefV8)                                      \
204     V(BaselineDeprecatedTonumericPrefV8)                                   \
205     V(BaselineWideSupercallthisrangePrefImm16V8)                           \
206     V(BaselineThrowUndefinedifholePrefV8V8)                                \
207     V(BaselineThrowUndefinedifholewithnamePrefId16)                        \
208     V(BaselineDeprecatedNegPrefV8)                                         \
209     V(BaselineWideSupercallarrowrangePrefImm16V8)                          \
210     V(BaselineThrowIfsupernotcorrectcallPrefImm8)                          \
211     V(BaselineDeprecatedNotPrefV8)                                         \
212     V(BaselineWideLdobjbyindexPrefImm32)                                   \
213     V(BaselineThrowIfsupernotcorrectcallPrefImm16)                         \
214     V(BaselineDeprecatedIncPrefV8)                                         \
215     V(BaselineWideStobjbyindexPrefV8Imm32)                                 \
216     V(BaselineDeprecatedDecPrefV8)                                         \
217     V(BaselineWideStownbyindexPrefV8Imm32)                                 \
218     V(BaselineDeprecatedCallarg0PrefV8)                                    \
219     V(BaselineWideCopyrestargsPrefImm16)                                   \
220     V(BaselineDeprecatedCallarg1PrefV8V8)                                  \
221     V(BaselineWideLdlexvarPrefImm16Imm16)                                  \
222     V(BaselineDeprecatedCallargs2PrefV8V8V8)                               \
223     V(BaselineWideStlexvarPrefImm16Imm16)                                  \
224     V(BaselineDeprecatedCallargs3PrefV8V8V8V8)                             \
225     V(BaselineWideGetmodulenamespacePrefImm16)                             \
226     V(BaselineDeprecatedCallrangePrefImm16V8)                              \
227     V(BaselineWideStmodulevarPrefImm16)                                    \
228     V(BaselineDeprecatedCallspreadPrefV8V8V8)                              \
229     V(BaselineWideLdlocalmodulevarPrefImm16)                               \
230     V(BaselineDeprecatedCallthisrangePrefImm16V8)                          \
231     V(BaselineWideLdexternalmodulevarPrefImm16)                            \
232     V(BaselineDeprecatedDefineclasswithbufferPrefId16Imm16Imm16V8V8)       \
233     V(BaselineWideLdpatchvarPrefImm16)                                     \
234     V(BaselineDeprecatedResumegeneratorPrefV8)                             \
235     V(BaselineWideStpatchvarPrefImm16)                                     \
236     V(BaselineDeprecatedGetresumemodePrefV8)                               \
237     V(BaselineDeprecatedGettemplateobjectPrefV8)                           \
238     V(BaselineDeprecatedDelobjpropPrefV8V8)                                \
239     V(BaselineDeprecatedSuspendgeneratorPrefV8V8)                          \
240     V(BaselineDeprecatedAsyncfunctionawaituncaughtPrefV8V8)                \
241     V(BaselineDeprecatedCopydatapropertiesPrefV8V8)                        \
242     V(BaselineDeprecatedSetobjectwithprotoPrefV8V8)                        \
243     V(BaselineDeprecatedLdobjbyvaluePrefV8V8)                              \
244     V(BaselineDeprecatedLdsuperbyvaluePrefV8V8)                            \
245     V(BaselineDeprecatedLdobjbyindexPrefV8Imm32)                           \
246     V(BaselineDeprecatedAsyncfunctionresolvePrefV8V8V8)                    \
247     V(BaselineDeprecatedAsyncfunctionrejectPrefV8V8V8)                     \
248     V(BaselineDeprecatedStlexvarPrefImm4Imm4V8)                            \
249     V(BaselineDeprecatedStlexvarPrefImm8Imm8V8)                            \
250     V(BaselineDeprecatedStlexvarPrefImm16Imm16V8)                          \
251     V(BaselineDeprecatedGetmodulenamespacePrefId32)                        \
252     V(BaselineDeprecatedStmodulevarPrefId32)                               \
253     V(BaselineDeprecatedLdobjbynamePrefId32V8)                             \
254     V(BaselineDeprecatedLdsuperbynamePrefId32V8)                           \
255     V(BaselineDeprecatedLdmodulevarPrefId32Imm8)                           \
256     V(BaselineDeprecatedStconsttoglobalrecordPrefId32)                     \
257     V(BaselineDeprecatedStlettoglobalrecordPrefId32)                       \
258     V(BaselineDeprecatedStclasstoglobalrecordPrefId32)                     \
259     V(BaselineDeprecatedLdhomeobjectPrefNone)                              \
260     V(BaselineDeprecatedCreateobjecthavingmethodPrefImm16)                 \
261     V(BaselineDeprecatedDynamicimportPrefV8)                               \
262     V(BaselineCallRuntimeNotifyConcurrentResultPrefNone)                   \
263     V(BaselineDefineFieldByNameImm8Id16V8)                                 \
264     V(BaselineDefinePropertyByNameImm8Id16V8)                              \
265     V(BaselineCallRuntimeDefineFieldByValuePrefImm8V8V8)                   \
266     V(BaselineCallRuntimeDefineFieldByIndexPrefImm8Imm32V8)                \
267     V(BaselineCallRuntimeToPropertyKeyPrefNone)                            \
268     V(BaselineCallRuntimeCreatePrivatePropertyPrefImm16Id16)               \
269     V(BaselineCallRuntimeDefinePrivatePropertyPrefImm8Imm16Imm16V8)        \
270     V(BaselineCallRuntimeCallInitPrefImm8V8)                               \
271     V(BaselineCallRuntimeDefineSendableClassPrefImm16Id16Id16Imm16V8)      \
272     V(BaselineCallRuntimeLdSendableClassPrefImm16)                         \
273     V(BaselineCallRuntimeIstruePrefImm8)                                   \
274     V(BaselineCallRuntimeIsfalsePrefImm8)                                  \
275     V(BaselineReturnundefined)                                             \
276     V(BaselineExceptionHandler)                                            \
277     V(BaselineUpdateHotness)                                               \
278 
279 }  // namespace panda::ecmascript::kungfu
280 #endif  // ECMASCRIPT_COMPILER_BASELINE_BASELINE_COMPILER_BUILTINS_H
281