• 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"); * you may not use this file except in compliance with
4  * the License. You may obtain a copy of the License at
5  *
6  * http://www.apache.org/licenses/LICENSE-2.0
7  *
8  * Unless required by applicable law or agreed to in writing, software
9  * distributed under the License is distributed on an "AS IS" BASIS,
10  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11  * See the License for the specific language governing permissions and
12  * limitations under the License.
13  */
14 
15 #ifndef LIBABCKIT_ISA_DYNAMIC_IMPL_INSTR_H
16 #define LIBABCKIT_ISA_DYNAMIC_IMPL_INSTR_H
17 
18 #include <cassert>
19 
20 #include "libabckit/include/c/abckit.h"
21 #include "libabckit/include/c/ir_core.h"
22 #include "libabckit/include/c/isa/isa_dynamic.h"
23 
24 #include "libabckit/src/metadata_inspect_impl.h"
25 #include "libabckit/src/helpers_common.h"
26 #include "libabckit/src/ir_impl.h"
27 #include "libabckit/src/adapter_static/ir_static.h"
28 
29 #include "libabckit/src/macros.h"
30 
31 #include <iostream>
32 
33 namespace libabckit {
34 
35 extern "C" AbckitIsaApiDynamicOpcode IgetDYNAMICOpcode(AbckitInst *inst);
36 extern "C" AbckitInst *IcreateDYNAMICLoadString(AbckitGraph *graph, AbckitString *str);
37 extern "C" AbckitInst *IcreateDYNAMICLdnan(AbckitGraph *graph);
38 extern "C" AbckitInst *IcreateDYNAMICLdinfinity(AbckitGraph *graph);
39 extern "C" AbckitInst *IcreateDYNAMICLdundefined(AbckitGraph *graph);
40 extern "C" AbckitInst *IcreateDYNAMICLdnull(AbckitGraph *graph);
41 extern "C" AbckitInst *IcreateDYNAMICLdsymbol(AbckitGraph *graph);
42 extern "C" AbckitInst *IcreateDYNAMICLdglobal(AbckitGraph *graph);
43 extern "C" AbckitInst *IcreateDYNAMICLdtrue(AbckitGraph *graph);
44 extern "C" AbckitInst *IcreateDYNAMICLdfalse(AbckitGraph *graph);
45 extern "C" AbckitInst *IcreateDYNAMICLdhole(AbckitGraph *graph);
46 extern "C" AbckitInst *IcreateDYNAMICLdnewtarget(AbckitGraph *graph);
47 extern "C" AbckitInst *IcreateDYNAMICLdthis(AbckitGraph *graph);
48 extern "C" AbckitInst *IcreateDYNAMICPoplexenv(AbckitGraph *graph);
49 extern "C" AbckitInst *IcreateDYNAMICGetunmappedargs(AbckitGraph *graph);
50 extern "C" AbckitInst *IcreateDYNAMICAsyncfunctionenter(AbckitGraph *graph);
51 extern "C" AbckitInst *IcreateDYNAMICLdfunction(AbckitGraph *graph);
52 extern "C" AbckitInst *IcreateDYNAMICDebugger(AbckitGraph *graph);
53 extern "C" AbckitInst *IcreateDYNAMICGetpropiterator(AbckitGraph *graph, AbckitInst *acc);
54 extern "C" AbckitInst *IcreateDYNAMICGetiterator(AbckitGraph *graph, AbckitInst *acc);
55 extern "C" AbckitInst *IcreateDYNAMICGetasynciterator(AbckitGraph *graph, AbckitInst *acc);
56 extern "C" AbckitInst *IcreateDYNAMICLdprivateproperty(AbckitGraph *graph, AbckitInst *acc, uint64_t imm0,
57                                                        uint64_t imm1);
58 extern "C" AbckitInst *IcreateDYNAMICStprivateproperty(AbckitGraph *graph, AbckitInst *acc, uint64_t imm0,
59                                                        uint64_t imm1, AbckitInst *input0);
60 extern "C" AbckitInst *IcreateDYNAMICTestin(AbckitGraph *graph, AbckitInst *acc, uint64_t imm0, uint64_t imm1);
61 extern "C" AbckitInst *IcreateDYNAMICDefinefieldbyname(AbckitGraph *graph, AbckitInst *acc, AbckitString *string,
62                                                        AbckitInst *input0);
63 extern "C" AbckitInst *IcreateDYNAMICDefinepropertybyname(AbckitGraph *graph, AbckitInst *acc, AbckitString *string,
64                                                           AbckitInst *input0);
65 extern "C" AbckitInst *IcreateDYNAMICCreateemptyobject(AbckitGraph *graph);
66 extern "C" AbckitInst *IcreateDYNAMICCreateemptyarray(AbckitGraph *graph);
67 extern "C" AbckitInst *IcreateDYNAMICCreategeneratorobj(AbckitGraph *graph, AbckitInst *input0);
68 extern "C" AbckitInst *IcreateDYNAMICCreateiterresultobj(AbckitGraph *graph, AbckitInst *input0, AbckitInst *input1);
69 extern "C" AbckitInst *IcreateDYNAMICCreateobjectwithexcludedkeys(AbckitGraph *graph, AbckitInst *input0,
70                                                                   AbckitInst *input1, uint64_t imm0, ...);
71 extern "C" AbckitInst *IcreateDYNAMICWideCreateobjectwithexcludedkeys(AbckitGraph *graph, AbckitInst *input0,
72                                                                       AbckitInst *input1, uint64_t imm0, ...);
73 extern "C" AbckitInst *IcreateDYNAMICCreatearraywithbuffer(AbckitGraph *graph, AbckitLiteralArray *literalArray);
74 extern "C" AbckitInst *IcreateDYNAMICCreateobjectwithbuffer(AbckitGraph *graph, AbckitLiteralArray *literalArray);
75 extern "C" AbckitInst *IcreateDYNAMICNewobjapply(AbckitGraph *graph, AbckitInst *acc, AbckitInst *input0);
76 extern "C" AbckitInst *IcreateDYNAMICNewobjrange(AbckitGraph *graph, size_t argCount, ...);
77 extern "C" AbckitInst *IcreateDYNAMICWideNewobjrange(AbckitGraph *graph, size_t argCount, ...);
78 extern "C" AbckitInst *IcreateDYNAMICNewlexenv(AbckitGraph *graph, uint64_t imm0);
79 extern "C" AbckitInst *IcreateDYNAMICWideNewlexenv(AbckitGraph *graph, uint64_t imm0);
80 extern "C" AbckitInst *IcreateDYNAMICNewlexenvwithname(AbckitGraph *graph, uint64_t imm0,
81                                                        AbckitLiteralArray *literalArray);
82 extern "C" AbckitInst *IcreateDYNAMICWideNewlexenvwithname(AbckitGraph *graph, uint64_t imm0,
83                                                            AbckitLiteralArray *literalArray);
84 extern "C" AbckitInst *IcreateDYNAMICCreateasyncgeneratorobj(AbckitGraph *graph, AbckitInst *input0);
85 extern "C" AbckitInst *IcreateDYNAMICAsyncgeneratorresolve(AbckitGraph *graph, AbckitInst *input0, AbckitInst *input1,
86                                                            AbckitInst *input2);
87 extern "C" AbckitInst *IcreateDYNAMICAdd2(AbckitGraph *graph, AbckitInst *acc, AbckitInst *input0);
88 extern "C" AbckitInst *IcreateDYNAMICSub2(AbckitGraph *graph, AbckitInst *acc, AbckitInst *input0);
89 extern "C" AbckitInst *IcreateDYNAMICMul2(AbckitGraph *graph, AbckitInst *acc, AbckitInst *input0);
90 extern "C" AbckitInst *IcreateDYNAMICDiv2(AbckitGraph *graph, AbckitInst *acc, AbckitInst *input0);
91 extern "C" AbckitInst *IcreateDYNAMICMod2(AbckitGraph *graph, AbckitInst *acc, AbckitInst *input0);
92 extern "C" AbckitInst *IcreateDYNAMICEq(AbckitGraph *graph, AbckitInst *acc, AbckitInst *input0);
93 extern "C" AbckitInst *IcreateDYNAMICNoteq(AbckitGraph *graph, AbckitInst *acc, AbckitInst *input0);
94 extern "C" AbckitInst *IcreateDYNAMICLess(AbckitGraph *graph, AbckitInst *acc, AbckitInst *input0);
95 extern "C" AbckitInst *IcreateDYNAMICLesseq(AbckitGraph *graph, AbckitInst *acc, AbckitInst *input0);
96 extern "C" AbckitInst *IcreateDYNAMICGreater(AbckitGraph *graph, AbckitInst *acc, AbckitInst *input0);
97 extern "C" AbckitInst *IcreateDYNAMICGreatereq(AbckitGraph *graph, AbckitInst *acc, AbckitInst *input0);
98 extern "C" AbckitInst *IcreateDYNAMICShl2(AbckitGraph *graph, AbckitInst *acc, AbckitInst *input0);
99 extern "C" AbckitInst *IcreateDYNAMICShr2(AbckitGraph *graph, AbckitInst *acc, AbckitInst *input0);
100 extern "C" AbckitInst *IcreateDYNAMICAshr2(AbckitGraph *graph, AbckitInst *acc, AbckitInst *input0);
101 extern "C" AbckitInst *IcreateDYNAMICAnd2(AbckitGraph *graph, AbckitInst *acc, AbckitInst *input0);
102 extern "C" AbckitInst *IcreateDYNAMICOr2(AbckitGraph *graph, AbckitInst *acc, AbckitInst *input0);
103 extern "C" AbckitInst *IcreateDYNAMICXor2(AbckitGraph *graph, AbckitInst *acc, AbckitInst *input0);
104 extern "C" AbckitInst *IcreateDYNAMICExp(AbckitGraph *graph, AbckitInst *acc, AbckitInst *input0);
105 extern "C" AbckitInst *IcreateDYNAMICTypeof(AbckitGraph *graph, AbckitInst *acc);
106 extern "C" AbckitInst *IcreateDYNAMICTonumber(AbckitGraph *graph, AbckitInst *acc);
107 extern "C" AbckitInst *IcreateDYNAMICTonumeric(AbckitGraph *graph, AbckitInst *acc);
108 extern "C" AbckitInst *IcreateDYNAMICNeg(AbckitGraph *graph, AbckitInst *acc);
109 extern "C" AbckitInst *IcreateDYNAMICNot(AbckitGraph *graph, AbckitInst *acc);
110 extern "C" AbckitInst *IcreateDYNAMICInc(AbckitGraph *graph, AbckitInst *acc);
111 extern "C" AbckitInst *IcreateDYNAMICDec(AbckitGraph *graph, AbckitInst *acc);
112 extern "C" AbckitInst *IcreateDYNAMICIstrue(AbckitGraph *graph, AbckitInst *acc);
113 extern "C" AbckitInst *IcreateDYNAMICIsfalse(AbckitGraph *graph, AbckitInst *acc);
114 extern "C" AbckitInst *IcreateDYNAMICIsin(AbckitGraph *graph, AbckitInst *acc, AbckitInst *input0);
115 extern "C" AbckitInst *IcreateDYNAMICInstanceof(AbckitGraph *graph, AbckitInst *acc, AbckitInst *input0);
116 extern "C" AbckitInst *IcreateDYNAMICStrictnoteq(AbckitGraph *graph, AbckitInst *acc, AbckitInst *input0);
117 extern "C" AbckitInst *IcreateDYNAMICStricteq(AbckitGraph *graph, AbckitInst *acc, AbckitInst *input0);
118 extern "C" AbckitInst *IcreateDYNAMICCallruntimeNotifyconcurrentresult(AbckitGraph *graph, AbckitInst *acc);
119 extern "C" AbckitInst *IcreateDYNAMICCallruntimeDefinefieldbyvalue(AbckitGraph *graph, AbckitInst *acc,
120                                                                    AbckitInst *input0, AbckitInst *input1);
121 extern "C" AbckitInst *IcreateDYNAMICCallruntimeDefinefieldbyindex(AbckitGraph *graph, AbckitInst *acc, uint64_t imm0,
122                                                                    AbckitInst *input0);
123 extern "C" AbckitInst *IcreateDYNAMICCallruntimeTopropertykey(AbckitGraph *graph, AbckitInst *acc);
124 extern "C" AbckitInst *IcreateDYNAMICCallruntimeCreateprivateproperty(AbckitGraph *graph, uint64_t imm0,
125                                                                       AbckitLiteralArray *literalArray);
126 extern "C" AbckitInst *IcreateDYNAMICCallruntimeDefineprivateproperty(AbckitGraph *graph, AbckitInst *acc,
127                                                                       uint64_t imm0, uint64_t imm1, AbckitInst *input0);
128 extern "C" AbckitInst *IcreateDYNAMICCallruntimeCallinit(AbckitGraph *graph, AbckitInst *acc, AbckitInst *input0);
129 extern "C" AbckitInst *IcreateDYNAMICCallruntimeDefinesendableclass(AbckitGraph *graph, AbckitCoreFunction *function,
130                                                                     AbckitLiteralArray *literalArray, uint64_t imm0,
131                                                                     AbckitInst *input0);
132 extern "C" AbckitInst *IcreateDYNAMICCallruntimeLdsendableclass(AbckitGraph *graph, uint64_t imm0);
133 extern "C" AbckitInst *IcreateDYNAMICCallruntimeLdsendableexternalmodulevar(AbckitGraph *graph, uint64_t imm0);
134 extern "C" AbckitInst *IcreateDYNAMICCallruntimeWideldsendableexternalmodulevar(AbckitGraph *graph, uint64_t imm0);
135 extern "C" AbckitInst *IcreateDYNAMICCallruntimeNewsendableenv(AbckitGraph *graph, uint64_t imm0);
136 extern "C" AbckitInst *IcreateDYNAMICCallruntimeWidenewsendableenv(AbckitGraph *graph, uint64_t imm0);
137 extern "C" AbckitInst *IcreateDYNAMICCallruntimeStsendablevar(AbckitGraph *graph, AbckitInst *acc, uint64_t imm0,
138                                                               uint64_t imm1);
139 extern "C" AbckitInst *IcreateDYNAMICCallruntimeWidestsendablevar(AbckitGraph *graph, AbckitInst *acc, uint64_t imm0,
140                                                                   uint64_t imm1);
141 extern "C" AbckitInst *IcreateDYNAMICCallruntimeLdsendablevar(AbckitGraph *graph, uint64_t imm0, uint64_t imm1);
142 extern "C" AbckitInst *IcreateDYNAMICCallruntimeWideldsendablevar(AbckitGraph *graph, uint64_t imm0, uint64_t imm1);
143 extern "C" AbckitInst *IcreateDYNAMICCallruntimeIstrue(AbckitGraph *graph, AbckitInst *acc);
144 extern "C" AbckitInst *IcreateDYNAMICCallruntimeIsfalse(AbckitGraph *graph, AbckitInst *acc);
145 extern "C" AbckitInst *IcreateDYNAMICThrow(AbckitGraph *graph, AbckitInst *acc);
146 extern "C" AbckitInst *IcreateDYNAMICThrowNotexists(AbckitGraph *graph);
147 extern "C" AbckitInst *IcreateDYNAMICThrowPatternnoncoercible(AbckitGraph *graph);
148 extern "C" AbckitInst *IcreateDYNAMICThrowDeletesuperproperty(AbckitGraph *graph);
149 extern "C" AbckitInst *IcreateDYNAMICThrowConstassignment(AbckitGraph *graph, AbckitInst *input0);
150 extern "C" AbckitInst *IcreateDYNAMICThrowIfnotobject(AbckitGraph *graph, AbckitInst *input0);
151 extern "C" AbckitInst *IcreateDYNAMICThrowUndefinedifhole(AbckitGraph *graph, AbckitInst *input0, AbckitInst *input1);
152 extern "C" AbckitInst *IcreateDYNAMICThrowIfsupernotcorrectcall(AbckitGraph *graph, AbckitInst *acc, uint64_t imm0);
153 extern "C" AbckitInst *IcreateDYNAMICThrowUndefinedifholewithname(AbckitGraph *graph, AbckitInst *acc,
154                                                                   AbckitString *string);
155 extern "C" AbckitInst *IcreateDYNAMICCallarg0(AbckitGraph *graph, AbckitInst *acc);
156 extern "C" AbckitInst *IcreateDYNAMICCallarg1(AbckitGraph *graph, AbckitInst *acc, AbckitInst *input0);
157 extern "C" AbckitInst *IcreateDYNAMICCallargs2(AbckitGraph *graph, AbckitInst *acc, AbckitInst *input0,
158                                                AbckitInst *input1);
159 extern "C" AbckitInst *IcreateDYNAMICCallargs3(AbckitGraph *graph, AbckitInst *acc, AbckitInst *input0,
160                                                AbckitInst *input1, AbckitInst *input2);
161 extern "C" AbckitInst *IcreateDYNAMICCallrange(AbckitGraph *graph, AbckitInst *acc, size_t argCount, ...);
162 extern "C" AbckitInst *IcreateDYNAMICWideCallrange(AbckitGraph *graph, AbckitInst *acc, size_t argCount, ...);
163 extern "C" AbckitInst *IcreateDYNAMICSupercallspread(AbckitGraph *graph, AbckitInst *acc, AbckitInst *input0);
164 extern "C" AbckitInst *IcreateDYNAMICApply(AbckitGraph *graph, AbckitInst *acc, AbckitInst *input0, AbckitInst *input1);
165 extern "C" AbckitInst *IcreateDYNAMICCallthis0(AbckitGraph *graph, AbckitInst *acc, AbckitInst *input0);
166 extern "C" AbckitInst *IcreateDYNAMICCallthis1(AbckitGraph *graph, AbckitInst *acc, AbckitInst *input0,
167                                                AbckitInst *input1);
168 extern "C" AbckitInst *IcreateDYNAMICCallthis2(AbckitGraph *graph, AbckitInst *acc, AbckitInst *input0,
169                                                AbckitInst *input1, AbckitInst *input2);
170 // CC-OFFNXT(G.FUN.01-CPP) API function
171 extern "C" AbckitInst *IcreateDYNAMICCallthis3(AbckitGraph *graph, AbckitInst *acc, AbckitInst *input0,
172                                                AbckitInst *input1, AbckitInst *input2, AbckitInst *input3);
173 extern "C" AbckitInst *IcreateDYNAMICCallthisrange(AbckitGraph *graph, AbckitInst *acc, size_t argCount, ...);
174 extern "C" AbckitInst *IcreateDYNAMICWideCallthisrange(AbckitGraph *graph, AbckitInst *acc, size_t argCount, ...);
175 extern "C" AbckitInst *IcreateDYNAMICSupercallthisrange(AbckitGraph *graph, size_t argCount, ...);
176 extern "C" AbckitInst *IcreateDYNAMICWideSupercallthisrange(AbckitGraph *graph, size_t argCount, ...);
177 extern "C" AbckitInst *IcreateDYNAMICSupercallarrowrange(AbckitGraph *graph, AbckitInst *acc, size_t argCount, ...);
178 extern "C" AbckitInst *IcreateDYNAMICWideSupercallarrowrange(AbckitGraph *graph, AbckitInst *acc, size_t argCount, ...);
179 // CC-OFFNXT(G.FUN.01-CPP) API function
180 extern "C" AbckitInst *IcreateDYNAMICDefinegettersetterbyvalue(AbckitGraph *graph, AbckitInst *acc, AbckitInst *input0,
181                                                                AbckitInst *input1, AbckitInst *input2,
182                                                                AbckitInst *input3);
183 extern "C" AbckitInst *IcreateDYNAMICDefinefunc(AbckitGraph *graph, AbckitCoreFunction *function, uint64_t imm0);
184 extern "C" AbckitInst *IcreateDYNAMICDefinemethod(AbckitGraph *graph, AbckitInst *acc, AbckitCoreFunction *function,
185                                                   uint64_t imm0);
186 extern "C" AbckitInst *IcreateDYNAMICDefineclasswithbuffer(AbckitGraph *graph, AbckitCoreFunction *function,
187                                                            AbckitLiteralArray *literalArray, uint64_t imm0,
188                                                            AbckitInst *input0);
189 extern "C" AbckitInst *IcreateDYNAMICResumegenerator(AbckitGraph *graph, AbckitInst *acc);
190 extern "C" AbckitInst *IcreateDYNAMICGetresumemode(AbckitGraph *graph, AbckitInst *acc);
191 extern "C" AbckitInst *IcreateDYNAMICGettemplateobject(AbckitGraph *graph, AbckitInst *acc);
192 extern "C" AbckitInst *IcreateDYNAMICGetnextpropname(AbckitGraph *graph, AbckitInst *input0);
193 extern "C" AbckitInst *IcreateDYNAMICDelobjprop(AbckitGraph *graph, AbckitInst *acc, AbckitInst *input0);
194 extern "C" AbckitInst *IcreateDYNAMICSuspendgenerator(AbckitGraph *graph, AbckitInst *acc, AbckitInst *input0);
195 extern "C" AbckitInst *IcreateDYNAMICAsyncfunctionawaituncaught(AbckitGraph *graph, AbckitInst *acc,
196                                                                 AbckitInst *input0);
197 extern "C" AbckitInst *IcreateDYNAMICCopydataproperties(AbckitGraph *graph, AbckitInst *acc, AbckitInst *input0);
198 extern "C" AbckitInst *IcreateDYNAMICStarrayspread(AbckitGraph *graph, AbckitInst *acc, AbckitInst *input0,
199                                                    AbckitInst *input1);
200 extern "C" AbckitInst *IcreateDYNAMICSetobjectwithproto(AbckitGraph *graph, AbckitInst *acc, AbckitInst *input0);
201 extern "C" AbckitInst *IcreateDYNAMICLdobjbyvalue(AbckitGraph *graph, AbckitInst *acc, AbckitInst *input0);
202 extern "C" AbckitInst *IcreateDYNAMICStobjbyvalue(AbckitGraph *graph, AbckitInst *acc, AbckitInst *input0,
203                                                   AbckitInst *input1);
204 extern "C" AbckitInst *IcreateDYNAMICStownbyvalue(AbckitGraph *graph, AbckitInst *acc, AbckitInst *input0,
205                                                   AbckitInst *input1);
206 extern "C" AbckitInst *IcreateDYNAMICLdsuperbyvalue(AbckitGraph *graph, AbckitInst *acc, AbckitInst *input0);
207 extern "C" AbckitInst *IcreateDYNAMICStsuperbyvalue(AbckitGraph *graph, AbckitInst *acc, AbckitInst *input0,
208                                                     AbckitInst *input1);
209 extern "C" AbckitInst *IcreateDYNAMICLdobjbyindex(AbckitGraph *graph, AbckitInst *acc, uint64_t imm0);
210 extern "C" AbckitInst *IcreateDYNAMICWideLdobjbyindex(AbckitGraph *graph, AbckitInst *acc, uint64_t imm0);
211 extern "C" AbckitInst *IcreateDYNAMICStobjbyindex(AbckitGraph *graph, AbckitInst *acc, AbckitInst *input0,
212                                                   uint64_t imm0);
213 extern "C" AbckitInst *IcreateDYNAMICWideStobjbyindex(AbckitGraph *graph, AbckitInst *acc, AbckitInst *input0,
214                                                       uint64_t imm0);
215 extern "C" AbckitInst *IcreateDYNAMICStownbyindex(AbckitGraph *graph, AbckitInst *acc, AbckitInst *input0,
216                                                   uint64_t imm0);
217 extern "C" AbckitInst *IcreateDYNAMICWideStownbyindex(AbckitGraph *graph, AbckitInst *acc, AbckitInst *input0,
218                                                       uint64_t imm0);
219 extern "C" AbckitInst *IcreateDYNAMICAsyncfunctionresolve(AbckitGraph *graph, AbckitInst *acc, AbckitInst *input0);
220 extern "C" AbckitInst *IcreateDYNAMICAsyncfunctionreject(AbckitGraph *graph, AbckitInst *acc, AbckitInst *input0);
221 extern "C" AbckitInst *IcreateDYNAMICCopyrestargs(AbckitGraph *graph, uint64_t imm0);
222 extern "C" AbckitInst *IcreateDYNAMICWideCopyrestargs(AbckitGraph *graph, uint64_t imm0);
223 extern "C" AbckitInst *IcreateDYNAMICLdlexvar(AbckitGraph *graph, uint64_t imm0, uint64_t imm1);
224 extern "C" AbckitInst *IcreateDYNAMICWideLdlexvar(AbckitGraph *graph, uint64_t imm0, uint64_t imm1);
225 extern "C" AbckitInst *IcreateDYNAMICStlexvar(AbckitGraph *graph, AbckitInst *acc, uint64_t imm0, uint64_t imm1);
226 extern "C" AbckitInst *IcreateDYNAMICWideStlexvar(AbckitGraph *graph, AbckitInst *acc, uint64_t imm0, uint64_t imm1);
227 extern "C" AbckitInst *IcreateDYNAMICGetmodulenamespace(AbckitGraph *graph, AbckitCoreModule *md);
228 extern "C" AbckitInst *IcreateDYNAMICWideGetmodulenamespace(AbckitGraph *graph, AbckitCoreModule *md);
229 extern "C" AbckitInst *IcreateDYNAMICStmodulevar(AbckitGraph *graph, AbckitInst *acc, AbckitCoreExportDescriptor *ed);
230 extern "C" AbckitInst *IcreateDYNAMICWideStmodulevar(AbckitGraph *graph, AbckitInst *acc,
231                                                      AbckitCoreExportDescriptor *ed);
232 extern "C" AbckitInst *IcreateDYNAMICTryldglobalbyname(AbckitGraph *graph, AbckitString *string);
233 extern "C" AbckitInst *IcreateDYNAMICTrystglobalbyname(AbckitGraph *graph, AbckitInst *acc, AbckitString *string);
234 extern "C" AbckitInst *IcreateDYNAMICLdglobalvar(AbckitGraph *graph, AbckitString *string);
235 extern "C" AbckitInst *IcreateDYNAMICStglobalvar(AbckitGraph *graph, AbckitInst *acc, AbckitString *string);
236 extern "C" AbckitInst *IcreateDYNAMICLdobjbyname(AbckitGraph *graph, AbckitInst *acc, AbckitString *string);
237 extern "C" AbckitInst *IcreateDYNAMICStobjbyname(AbckitGraph *graph, AbckitInst *acc, AbckitString *string,
238                                                  AbckitInst *input0);
239 extern "C" AbckitInst *IcreateDYNAMICStownbyname(AbckitGraph *graph, AbckitInst *acc, AbckitString *string,
240                                                  AbckitInst *input0);
241 extern "C" AbckitInst *IcreateDYNAMICLdsuperbyname(AbckitGraph *graph, AbckitInst *acc, AbckitString *string);
242 extern "C" AbckitInst *IcreateDYNAMICStsuperbyname(AbckitGraph *graph, AbckitInst *acc, AbckitString *string,
243                                                    AbckitInst *input0);
244 extern "C" AbckitInst *IcreateDYNAMICLdlocalmodulevar(AbckitGraph *graph, AbckitCoreExportDescriptor *ed);
245 extern "C" AbckitInst *IcreateDYNAMICWideLdlocalmodulevar(AbckitGraph *graph, AbckitCoreExportDescriptor *ed);
246 extern "C" AbckitInst *IcreateDYNAMICLdexternalmodulevar(AbckitGraph *graph, AbckitCoreImportDescriptor *id);
247 extern "C" AbckitInst *IcreateDYNAMICWideLdexternalmodulevar(AbckitGraph *graph, AbckitCoreImportDescriptor *id);
248 extern "C" AbckitInst *IcreateDYNAMICStownbyvaluewithnameset(AbckitGraph *graph, AbckitInst *acc, AbckitInst *input0,
249                                                              AbckitInst *input1);
250 extern "C" AbckitInst *IcreateDYNAMICStownbynamewithnameset(AbckitGraph *graph, AbckitInst *acc, AbckitString *string,
251                                                             AbckitInst *input0);
252 extern "C" AbckitInst *IcreateDYNAMICLdbigint(AbckitGraph *graph, AbckitString *string);
253 extern "C" AbckitInst *IcreateDYNAMICLdthisbyname(AbckitGraph *graph, AbckitString *string);
254 extern "C" AbckitInst *IcreateDYNAMICStthisbyname(AbckitGraph *graph, AbckitInst *acc, AbckitString *string);
255 extern "C" AbckitInst *IcreateDYNAMICLdthisbyvalue(AbckitGraph *graph, AbckitInst *acc);
256 extern "C" AbckitInst *IcreateDYNAMICStthisbyvalue(AbckitGraph *graph, AbckitInst *acc, AbckitInst *input0);
257 extern "C" AbckitInst *IcreateDYNAMICWideLdpatchvar(AbckitGraph *graph, uint64_t imm0);
258 extern "C" AbckitInst *IcreateDYNAMICWideStpatchvar(AbckitGraph *graph, AbckitInst *acc, uint64_t imm0);
259 extern "C" AbckitInst *IcreateDYNAMICDynamicimport(AbckitGraph *graph, AbckitInst *acc);
260 extern "C" AbckitInst *IcreateDYNAMICAsyncgeneratorreject(AbckitGraph *graph, AbckitInst *acc, AbckitInst *input0);
261 extern "C" AbckitInst *IcreateDYNAMICSetgeneratorstate(AbckitGraph *graph, AbckitInst *acc, uint64_t imm0);
262 extern "C" AbckitInst *IcreateDYNAMICReturn(AbckitGraph *graph, AbckitInst *acc);
263 extern "C" AbckitInst *IcreateDYNAMICReturnundefined(AbckitGraph *graph);
264 extern "C" AbckitInst *IcreateDYNAMICIf(AbckitGraph *graph, AbckitInst *input, AbckitIsaApiDynamicConditionCode cc);
265 extern "C" AbckitIsaApiDynamicConditionCode IgetDYNAMICConditionCode(AbckitInst *inst);
266 extern "C" void IsetDYNAMICConditionCode(AbckitInst *inst, AbckitIsaApiDynamicConditionCode cc);
267 extern "C" AbckitCoreImportDescriptor *IgetImportDescriptor(AbckitInst *inst);
268 extern "C" void IsetImportDescriptor(AbckitInst *inst, AbckitCoreImportDescriptor *id);
269 extern "C" AbckitCoreExportDescriptor *IgetExportDescriptor(AbckitInst *inst);
270 extern "C" void IsetExportDescriptor(AbckitInst *inst, AbckitCoreExportDescriptor *ed);
271 extern "C" AbckitCoreModule *IgetModule(AbckitInst *inst);
272 extern "C" void IsetModule(AbckitInst *inst, AbckitCoreModule *md);
273 }  // namespace libabckit
274 
275 #endif
276