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