1 /*
2 * Copyright (c) 2024-2025 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
16 #include "../../src/mock/abckit_mock.h"
17 #include "../../src/mock/mock_values.h"
18
19 #include "../../include/c/metadata_core.h"
20 #include "../../include/c/isa/isa_static.h"
21
22 #include <cstdint>
23 #include <cstring>
24 #include <gtest/gtest.h>
25
26 namespace libabckit::mock::isa_api_static {
27
28 // NOLINTBEGIN(readability-identifier-naming)
29
IgetClass(AbckitInst * inst)30 AbckitCoreClass *IgetClass(AbckitInst *inst)
31 {
32 g_calledFuncs.push(__func__);
33
34 EXPECT_TRUE(inst == DEFAULT_INST);
35 return DEFAULT_CORE_CLASS;
36 }
37
IsetClass(AbckitInst * inst,AbckitCoreClass * klass)38 void IsetClass(AbckitInst *inst, AbckitCoreClass *klass)
39 {
40 g_calledFuncs.push(__func__);
41
42 EXPECT_TRUE(inst == DEFAULT_INST);
43 EXPECT_TRUE(klass == DEFAULT_CORE_CLASS);
44 }
45
IgetConditionCode(AbckitInst * inst)46 enum AbckitIsaApiStaticConditionCode IgetConditionCode(AbckitInst *inst)
47 {
48 g_calledFuncs.push(__func__);
49
50 EXPECT_TRUE(inst == DEFAULT_INST);
51 return DEFAULT_ENUM_ISA_STATIC_CONDITION_CODE;
52 }
53
IsetConditionCode(AbckitInst * inst,enum AbckitIsaApiStaticConditionCode cc)54 void IsetConditionCode(AbckitInst *inst, enum AbckitIsaApiStaticConditionCode cc)
55 {
56 g_calledFuncs.push(__func__);
57
58 EXPECT_TRUE(inst == DEFAULT_INST);
59 EXPECT_TRUE(cc == DEFAULT_ENUM_ISA_STATIC_CONDITION_CODE);
60 }
61
IgetOpcode(AbckitInst * inst)62 AbckitIsaApiStaticOpcode IgetOpcode(AbckitInst *inst)
63 {
64 g_calledFuncs.push(__func__);
65
66 EXPECT_TRUE(inst == DEFAULT_INST);
67 return DEFAULT_ENUM_ISA_API_STATIC_OPCODE;
68 }
69
IsetTargetType(AbckitInst * inst,AbckitTypeId t)70 void IsetTargetType(AbckitInst *inst, AbckitTypeId t)
71 {
72 g_calledFuncs.push(__func__);
73
74 EXPECT_TRUE(inst == DEFAULT_INST);
75 EXPECT_TRUE(t == DEFAULT_TYPE_ID);
76 }
77
IgetTargetType(AbckitInst * inst)78 enum AbckitTypeId IgetTargetType(AbckitInst *inst)
79 {
80 g_calledFuncs.push(__func__);
81
82 EXPECT_TRUE(inst == DEFAULT_INST);
83 return DEFAULT_ENUM_TYPE_ID;
84 }
85
IcreateCmp(AbckitGraph * graph,AbckitInst * input0,AbckitInst * input1)86 AbckitInst *IcreateCmp(AbckitGraph *graph, AbckitInst *input0, AbckitInst *input1)
87 {
88 g_calledFuncs.push(__func__);
89
90 EXPECT_TRUE(graph == DEFAULT_GRAPH);
91 EXPECT_TRUE(input0 == DEFAULT_INST);
92 EXPECT_TRUE(input1 == DEFAULT_INST);
93 return DEFAULT_INST;
94 }
95
IcreateLoadString(AbckitGraph * graph,AbckitString * str)96 AbckitInst *IcreateLoadString(AbckitGraph *graph, AbckitString *str)
97 {
98 g_calledFuncs.push(__func__);
99
100 EXPECT_TRUE(graph == DEFAULT_GRAPH);
101 EXPECT_TRUE(str == DEFAULT_STRING);
102 return DEFAULT_INST;
103 }
104
IcreateReturn(AbckitGraph * graph,AbckitInst * input0)105 AbckitInst *IcreateReturn(AbckitGraph *graph, AbckitInst *input0)
106 {
107 g_calledFuncs.push(__func__);
108
109 EXPECT_TRUE(graph == DEFAULT_GRAPH);
110 EXPECT_TRUE(input0 == DEFAULT_INST);
111 return DEFAULT_INST;
112 }
113
IcreateIf(AbckitGraph * graph,AbckitInst * input0,AbckitInst * input1,enum AbckitIsaApiStaticConditionCode cc)114 AbckitInst *IcreateIf(AbckitGraph *graph, AbckitInst *input0, AbckitInst *input1,
115 enum AbckitIsaApiStaticConditionCode cc)
116 {
117 g_calledFuncs.push(__func__);
118
119 EXPECT_TRUE(graph == DEFAULT_GRAPH);
120 EXPECT_TRUE(input0 == DEFAULT_INST);
121 EXPECT_TRUE(input1 == DEFAULT_INST);
122 EXPECT_TRUE(cc == DEFAULT_ENUM_ISA_STATIC_CONDITION_CODE);
123 return DEFAULT_INST;
124 }
125
IcreateNeg(AbckitGraph * graph,AbckitInst * input0)126 AbckitInst *IcreateNeg(AbckitGraph *graph, AbckitInst *input0)
127 {
128 g_calledFuncs.push(__func__);
129
130 EXPECT_TRUE(graph == DEFAULT_GRAPH);
131 EXPECT_TRUE(input0 == DEFAULT_INST);
132 return DEFAULT_INST;
133 }
134
IcreateNot(AbckitGraph * graph,AbckitInst * input0)135 AbckitInst *IcreateNot(AbckitGraph *graph, AbckitInst *input0)
136 {
137 g_calledFuncs.push(__func__);
138
139 EXPECT_TRUE(graph == DEFAULT_GRAPH);
140 EXPECT_TRUE(input0 == DEFAULT_INST);
141 return DEFAULT_INST;
142 }
143
IcreateAdd(AbckitGraph * graph,AbckitInst * input0,AbckitInst * input1)144 AbckitInst *IcreateAdd(AbckitGraph *graph, AbckitInst *input0, AbckitInst *input1)
145 {
146 g_calledFuncs.push(__func__);
147
148 EXPECT_TRUE(graph == DEFAULT_GRAPH);
149 EXPECT_TRUE(input0 == DEFAULT_INST);
150 EXPECT_TRUE(input1 == DEFAULT_INST);
151 return DEFAULT_INST;
152 }
153
IcreateSub(AbckitGraph * graph,AbckitInst * input0,AbckitInst * input1)154 AbckitInst *IcreateSub(AbckitGraph *graph, AbckitInst *input0, AbckitInst *input1)
155 {
156 g_calledFuncs.push(__func__);
157
158 EXPECT_TRUE(graph == DEFAULT_GRAPH);
159 EXPECT_TRUE(input0 == DEFAULT_INST);
160 EXPECT_TRUE(input1 == DEFAULT_INST);
161 return DEFAULT_INST;
162 }
163
IcreateMul(AbckitGraph * graph,AbckitInst * input0,AbckitInst * input1)164 AbckitInst *IcreateMul(AbckitGraph *graph, AbckitInst *input0, AbckitInst *input1)
165 {
166 g_calledFuncs.push(__func__);
167
168 EXPECT_TRUE(graph == DEFAULT_GRAPH);
169 EXPECT_TRUE(input0 == DEFAULT_INST);
170 EXPECT_TRUE(input1 == DEFAULT_INST);
171 return DEFAULT_INST;
172 }
173
IcreateDiv(AbckitGraph * graph,AbckitInst * input0,AbckitInst * input1)174 AbckitInst *IcreateDiv(AbckitGraph *graph, AbckitInst *input0, AbckitInst *input1)
175 {
176 g_calledFuncs.push(__func__);
177
178 EXPECT_TRUE(graph == DEFAULT_GRAPH);
179 EXPECT_TRUE(input0 == DEFAULT_INST);
180 EXPECT_TRUE(input1 == DEFAULT_INST);
181 return DEFAULT_INST;
182 }
183
IcreateMod(AbckitGraph * graph,AbckitInst * input0,AbckitInst * input1)184 AbckitInst *IcreateMod(AbckitGraph *graph, AbckitInst *input0, AbckitInst *input1)
185 {
186 g_calledFuncs.push(__func__);
187
188 EXPECT_TRUE(graph == DEFAULT_GRAPH);
189 EXPECT_TRUE(input0 == DEFAULT_INST);
190 EXPECT_TRUE(input1 == DEFAULT_INST);
191 return DEFAULT_INST;
192 }
193
IcreateShl(AbckitGraph * graph,AbckitInst * input0,AbckitInst * input1)194 AbckitInst *IcreateShl(AbckitGraph *graph, AbckitInst *input0, AbckitInst *input1)
195 {
196 g_calledFuncs.push(__func__);
197
198 EXPECT_TRUE(graph == DEFAULT_GRAPH);
199 EXPECT_TRUE(input0 == DEFAULT_INST);
200 EXPECT_TRUE(input1 == DEFAULT_INST);
201 return DEFAULT_INST;
202 }
203
IcreateShr(AbckitGraph * graph,AbckitInst * input0,AbckitInst * input1)204 AbckitInst *IcreateShr(AbckitGraph *graph, AbckitInst *input0, AbckitInst *input1)
205 {
206 g_calledFuncs.push(__func__);
207
208 EXPECT_TRUE(graph == DEFAULT_GRAPH);
209 EXPECT_TRUE(input0 == DEFAULT_INST);
210 EXPECT_TRUE(input1 == DEFAULT_INST);
211 return DEFAULT_INST;
212 }
213
IcreateAShr(AbckitGraph * graph,AbckitInst * input0,AbckitInst * input1)214 AbckitInst *IcreateAShr(AbckitGraph *graph, AbckitInst *input0, AbckitInst *input1)
215 {
216 g_calledFuncs.push(__func__);
217
218 EXPECT_TRUE(graph == DEFAULT_GRAPH);
219 EXPECT_TRUE(input0 == DEFAULT_INST);
220 EXPECT_TRUE(input1 == DEFAULT_INST);
221 return DEFAULT_INST;
222 }
223
IcreateAnd(AbckitGraph * graph,AbckitInst * input0,AbckitInst * input1)224 AbckitInst *IcreateAnd(AbckitGraph *graph, AbckitInst *input0, AbckitInst *input1)
225 {
226 g_calledFuncs.push(__func__);
227
228 EXPECT_TRUE(graph == DEFAULT_GRAPH);
229 EXPECT_TRUE(input0 == DEFAULT_INST);
230 EXPECT_TRUE(input1 == DEFAULT_INST);
231 return DEFAULT_INST;
232 }
233
IcreateOr(AbckitGraph * graph,AbckitInst * input0,AbckitInst * input1)234 AbckitInst *IcreateOr(AbckitGraph *graph, AbckitInst *input0, AbckitInst *input1)
235 {
236 g_calledFuncs.push(__func__);
237
238 EXPECT_TRUE(graph == DEFAULT_GRAPH);
239 EXPECT_TRUE(input0 == DEFAULT_INST);
240 EXPECT_TRUE(input1 == DEFAULT_INST);
241 return DEFAULT_INST;
242 }
243
IcreateXor(AbckitGraph * graph,AbckitInst * input0,AbckitInst * input1)244 AbckitInst *IcreateXor(AbckitGraph *graph, AbckitInst *input0, AbckitInst *input1)
245 {
246 g_calledFuncs.push(__func__);
247
248 EXPECT_TRUE(graph == DEFAULT_GRAPH);
249 EXPECT_TRUE(input0 == DEFAULT_INST);
250 EXPECT_TRUE(input1 == DEFAULT_INST);
251 return DEFAULT_INST;
252 }
253
IcreateCast(AbckitGraph * graph,AbckitInst * input0,AbckitTypeId targetType)254 AbckitInst *IcreateCast(AbckitGraph *graph, AbckitInst *input0, AbckitTypeId targetType)
255 {
256 g_calledFuncs.push(__func__);
257
258 EXPECT_TRUE(graph == DEFAULT_GRAPH);
259 EXPECT_TRUE(input0 == DEFAULT_INST);
260 EXPECT_TRUE(targetType == DEFAULT_TYPE_ID);
261 return DEFAULT_INST;
262 }
263
GcreateNullPtr(AbckitGraph * graph)264 AbckitInst *GcreateNullPtr(AbckitGraph *graph)
265 {
266 g_calledFuncs.push(__func__);
267
268 EXPECT_TRUE(graph == DEFAULT_GRAPH);
269 return DEFAULT_INST;
270 }
271
IcreateNewArray(AbckitGraph * graph,AbckitCoreClass * inputClass,AbckitInst * inputSize)272 AbckitInst *IcreateNewArray(AbckitGraph *graph, AbckitCoreClass *inputClass, AbckitInst *inputSize)
273 {
274 g_calledFuncs.push(__func__);
275
276 EXPECT_TRUE(graph == DEFAULT_GRAPH);
277 EXPECT_TRUE(inputClass == DEFAULT_CORE_CLASS);
278 EXPECT_TRUE(inputSize == DEFAULT_INST);
279 return DEFAULT_INST;
280 }
281
IcreateNewObject(AbckitGraph * graph,AbckitCoreClass * inputClass)282 AbckitInst *IcreateNewObject(AbckitGraph *graph, AbckitCoreClass *inputClass)
283 {
284 g_calledFuncs.push(__func__);
285
286 EXPECT_TRUE(graph == DEFAULT_GRAPH);
287 EXPECT_TRUE(inputClass == DEFAULT_CORE_CLASS);
288 return DEFAULT_INST;
289 }
290
IcreateInitObject(AbckitGraph * graph,AbckitCoreFunction * function,size_t argCount,...)291 AbckitInst *IcreateInitObject(AbckitGraph *graph, AbckitCoreFunction *function, size_t argCount, ...)
292 {
293 g_calledFuncs.push(__func__);
294
295 EXPECT_TRUE(graph == DEFAULT_GRAPH);
296 EXPECT_TRUE(function == DEFAULT_CORE_FUNCTION);
297 EXPECT_TRUE(argCount == DEFAULT_SIZE_T);
298 return DEFAULT_INST;
299 }
300
IcreateLoadArray(AbckitGraph * graph,AbckitInst * arrayRef,AbckitInst * idx,AbckitTypeId returnTypeId)301 AbckitInst *IcreateLoadArray(AbckitGraph *graph, AbckitInst *arrayRef, AbckitInst *idx, AbckitTypeId returnTypeId)
302 {
303 g_calledFuncs.push(__func__);
304
305 EXPECT_TRUE(graph == DEFAULT_GRAPH);
306 EXPECT_TRUE(arrayRef == DEFAULT_INST);
307 EXPECT_TRUE(idx == DEFAULT_INST);
308 EXPECT_TRUE(returnTypeId == DEFAULT_TYPE_ID);
309 return DEFAULT_INST;
310 }
311
IcreateStoreArray(AbckitGraph * graph,AbckitInst * arrayRef,AbckitInst * idx,AbckitInst * value,AbckitTypeId returnTypeId)312 AbckitInst *IcreateStoreArray(AbckitGraph *graph, AbckitInst *arrayRef, AbckitInst *idx, AbckitInst *value,
313 AbckitTypeId returnTypeId)
314 {
315 g_calledFuncs.push(__func__);
316
317 EXPECT_TRUE(graph == DEFAULT_GRAPH);
318 EXPECT_TRUE(arrayRef == DEFAULT_INST);
319 EXPECT_TRUE(idx == DEFAULT_INST);
320 EXPECT_TRUE(value == DEFAULT_INST);
321 EXPECT_TRUE(returnTypeId == DEFAULT_TYPE_ID);
322 return DEFAULT_INST;
323 }
324
IcreateStoreArrayWide(AbckitGraph * graph,AbckitInst * arrayRef,AbckitInst * idx,AbckitInst * value,AbckitTypeId returnTypeId)325 AbckitInst *IcreateStoreArrayWide(AbckitGraph *graph, AbckitInst *arrayRef, AbckitInst *idx, AbckitInst *value,
326 AbckitTypeId returnTypeId)
327 {
328 g_calledFuncs.push(__func__);
329
330 EXPECT_TRUE(graph == DEFAULT_GRAPH);
331 EXPECT_TRUE(arrayRef == DEFAULT_INST);
332 EXPECT_TRUE(idx == DEFAULT_INST);
333 EXPECT_TRUE(value == DEFAULT_INST);
334 EXPECT_TRUE(returnTypeId == DEFAULT_TYPE_ID);
335 return DEFAULT_INST;
336 }
337
IcreateLenArray(AbckitGraph * graph,AbckitInst * arr)338 AbckitInst *IcreateLenArray(AbckitGraph *graph, AbckitInst *arr)
339 {
340 g_calledFuncs.push(__func__);
341
342 EXPECT_TRUE(graph == DEFAULT_GRAPH);
343 EXPECT_TRUE(arr == DEFAULT_INST);
344 return DEFAULT_INST;
345 }
346
IcreateLoadConstArray(AbckitGraph * graph,AbckitLiteralArray * literalArray)347 AbckitInst *IcreateLoadConstArray(AbckitGraph *graph, AbckitLiteralArray *literalArray)
348 {
349 g_calledFuncs.push(__func__);
350
351 EXPECT_TRUE(graph == DEFAULT_GRAPH);
352 EXPECT_TRUE(literalArray == DEFAULT_LITERAL_ARRAY);
353 return DEFAULT_INST;
354 }
355
IcreateCheckCast(AbckitGraph * graph,AbckitInst * inputObj,AbckitType * targetType)356 AbckitInst *IcreateCheckCast(AbckitGraph *graph, AbckitInst *inputObj, AbckitType *targetType)
357 {
358 g_calledFuncs.push(__func__);
359
360 EXPECT_TRUE(graph == DEFAULT_GRAPH);
361 EXPECT_TRUE(inputObj == DEFAULT_INST);
362 EXPECT_TRUE(targetType == DEFAULT_TYPE);
363 return DEFAULT_INST;
364 }
365
IcreateIsInstance(AbckitGraph * graph,AbckitInst * inputObj,AbckitType * targetType)366 AbckitInst *IcreateIsInstance(AbckitGraph *graph, AbckitInst *inputObj, AbckitType *targetType)
367 {
368 g_calledFuncs.push(__func__);
369
370 EXPECT_TRUE(graph == DEFAULT_GRAPH);
371 EXPECT_TRUE(inputObj == DEFAULT_INST);
372 EXPECT_TRUE(targetType == DEFAULT_TYPE);
373 return DEFAULT_INST;
374 }
375
IcreateLoadNullValue(AbckitGraph * graph)376 AbckitInst *IcreateLoadNullValue(AbckitGraph *graph)
377 {
378 g_calledFuncs.push(__func__);
379
380 EXPECT_TRUE(graph == DEFAULT_GRAPH);
381 return DEFAULT_INST;
382 }
383
IcreateReturnVoid(AbckitGraph * graph)384 AbckitInst *IcreateReturnVoid(AbckitGraph *graph)
385 {
386 g_calledFuncs.push(__func__);
387
388 EXPECT_TRUE(graph == DEFAULT_GRAPH);
389 return DEFAULT_INST;
390 }
391
IcreateEquals(AbckitGraph * graph,AbckitInst * input0,AbckitInst * input1)392 AbckitInst *IcreateEquals(AbckitGraph *graph, AbckitInst *input0, AbckitInst *input1)
393 {
394 g_calledFuncs.push(__func__);
395
396 EXPECT_TRUE(graph == DEFAULT_GRAPH);
397 EXPECT_TRUE(input0 == DEFAULT_INST);
398 EXPECT_TRUE(input1 == DEFAULT_INST);
399 return DEFAULT_INST;
400 }
401
IcreateCallStatic(AbckitGraph * graph,AbckitCoreFunction * function,size_t argCount,...)402 AbckitInst *IcreateCallStatic(AbckitGraph *graph, AbckitCoreFunction *function, size_t argCount, ...)
403 {
404 g_calledFuncs.push(__func__);
405
406 EXPECT_TRUE(graph == DEFAULT_GRAPH);
407 EXPECT_TRUE(function == DEFAULT_CORE_FUNCTION);
408 EXPECT_TRUE(argCount == DEFAULT_SIZE_T);
409 return DEFAULT_INST;
410 }
411
IcreateStrictEquals(AbckitGraph * graph,AbckitInst * input0,AbckitInst * input1)412 AbckitInst *IcreateStrictEquals(AbckitGraph *graph, AbckitInst *input0, AbckitInst *input1)
413 {
414 g_calledFuncs.push(__func__);
415
416 EXPECT_TRUE(graph == DEFAULT_GRAPH);
417 EXPECT_TRUE(input0 == DEFAULT_INST);
418 EXPECT_TRUE(input1 == DEFAULT_INST);
419 return DEFAULT_INST;
420 }
421
IcreateCallVirtual(AbckitGraph * graph,AbckitInst * inputObj,AbckitCoreFunction * function,size_t argCount,...)422 AbckitInst *IcreateCallVirtual(AbckitGraph *graph, AbckitInst *inputObj, AbckitCoreFunction *function, size_t argCount,
423 ...)
424 {
425 g_calledFuncs.push(__func__);
426
427 EXPECT_TRUE(graph == DEFAULT_GRAPH);
428 EXPECT_TRUE(inputObj == DEFAULT_INST);
429 EXPECT_TRUE(function == DEFAULT_CORE_FUNCTION);
430 EXPECT_TRUE(argCount == DEFAULT_SIZE_T);
431 return DEFAULT_INST;
432 }
433
IcreateAddI(AbckitGraph * graph,AbckitInst * input0,uint64_t imm)434 AbckitInst *IcreateAddI(AbckitGraph *graph, AbckitInst *input0, uint64_t imm)
435 {
436 g_calledFuncs.push(__func__);
437
438 EXPECT_TRUE(graph == DEFAULT_GRAPH);
439 EXPECT_TRUE(input0 == DEFAULT_INST);
440 EXPECT_TRUE(imm == DEFAULT_U64);
441 return DEFAULT_INST;
442 }
443
IcreateSubI(AbckitGraph * graph,AbckitInst * input0,uint64_t imm)444 AbckitInst *IcreateSubI(AbckitGraph *graph, AbckitInst *input0, uint64_t imm)
445 {
446 g_calledFuncs.push(__func__);
447
448 EXPECT_TRUE(graph == DEFAULT_GRAPH);
449 EXPECT_TRUE(input0 == DEFAULT_INST);
450 EXPECT_TRUE(imm == DEFAULT_U64);
451 return DEFAULT_INST;
452 }
453
IcreateMulI(AbckitGraph * graph,AbckitInst * input0,uint64_t imm)454 AbckitInst *IcreateMulI(AbckitGraph *graph, AbckitInst *input0, uint64_t imm)
455 {
456 g_calledFuncs.push(__func__);
457
458 EXPECT_TRUE(graph == DEFAULT_GRAPH);
459 EXPECT_TRUE(input0 == DEFAULT_INST);
460 EXPECT_TRUE(imm == DEFAULT_U64);
461 return DEFAULT_INST;
462 }
463
IcreateDivI(AbckitGraph * graph,AbckitInst * input0,uint64_t imm)464 AbckitInst *IcreateDivI(AbckitGraph *graph, AbckitInst *input0, uint64_t imm)
465 {
466 g_calledFuncs.push(__func__);
467
468 EXPECT_TRUE(graph == DEFAULT_GRAPH);
469 EXPECT_TRUE(input0 == DEFAULT_INST);
470 EXPECT_TRUE(imm == DEFAULT_U64);
471 return DEFAULT_INST;
472 }
473
IcreateModI(AbckitGraph * graph,AbckitInst * input0,uint64_t imm)474 AbckitInst *IcreateModI(AbckitGraph *graph, AbckitInst *input0, uint64_t imm)
475 {
476 g_calledFuncs.push(__func__);
477
478 EXPECT_TRUE(graph == DEFAULT_GRAPH);
479 EXPECT_TRUE(input0 == DEFAULT_INST);
480 EXPECT_TRUE(imm == DEFAULT_U64);
481 return DEFAULT_INST;
482 }
483
IcreateShlI(AbckitGraph * graph,AbckitInst * input0,uint64_t imm)484 AbckitInst *IcreateShlI(AbckitGraph *graph, AbckitInst *input0, uint64_t imm)
485 {
486 g_calledFuncs.push(__func__);
487
488 EXPECT_TRUE(graph == DEFAULT_GRAPH);
489 EXPECT_TRUE(input0 == DEFAULT_INST);
490 EXPECT_TRUE(imm == DEFAULT_U64);
491 return DEFAULT_INST;
492 }
493
IcreateShrI(AbckitGraph * graph,AbckitInst * input0,uint64_t imm)494 AbckitInst *IcreateShrI(AbckitGraph *graph, AbckitInst *input0, uint64_t imm)
495 {
496 g_calledFuncs.push(__func__);
497
498 EXPECT_TRUE(graph == DEFAULT_GRAPH);
499 EXPECT_TRUE(input0 == DEFAULT_INST);
500 EXPECT_TRUE(imm == DEFAULT_U64);
501 return DEFAULT_INST;
502 }
503
IcreateAShrI(AbckitGraph * graph,AbckitInst * input0,uint64_t imm)504 AbckitInst *IcreateAShrI(AbckitGraph *graph, AbckitInst *input0, uint64_t imm)
505 {
506 g_calledFuncs.push(__func__);
507
508 EXPECT_TRUE(graph == DEFAULT_GRAPH);
509 EXPECT_TRUE(input0 == DEFAULT_INST);
510 EXPECT_TRUE(imm == DEFAULT_U64);
511 return DEFAULT_INST;
512 }
513
IcreateAndI(AbckitGraph * graph,AbckitInst * input0,uint64_t imm)514 AbckitInst *IcreateAndI(AbckitGraph *graph, AbckitInst *input0, uint64_t imm)
515 {
516 g_calledFuncs.push(__func__);
517
518 EXPECT_TRUE(graph == DEFAULT_GRAPH);
519 EXPECT_TRUE(input0 == DEFAULT_INST);
520 EXPECT_TRUE(imm == DEFAULT_U64);
521 return DEFAULT_INST;
522 }
523
IcreateOrI(AbckitGraph * graph,AbckitInst * input0,uint64_t imm)524 AbckitInst *IcreateOrI(AbckitGraph *graph, AbckitInst *input0, uint64_t imm)
525 {
526 g_calledFuncs.push(__func__);
527
528 EXPECT_TRUE(graph == DEFAULT_GRAPH);
529 EXPECT_TRUE(input0 == DEFAULT_INST);
530 EXPECT_TRUE(imm == DEFAULT_U64);
531 return DEFAULT_INST;
532 }
533
IcreateXorI(AbckitGraph * graph,AbckitInst * input0,uint64_t imm)534 AbckitInst *IcreateXorI(AbckitGraph *graph, AbckitInst *input0, uint64_t imm)
535 {
536 g_calledFuncs.push(__func__);
537
538 EXPECT_TRUE(graph == DEFAULT_GRAPH);
539 EXPECT_TRUE(input0 == DEFAULT_INST);
540 EXPECT_TRUE(imm == DEFAULT_U64);
541 return DEFAULT_INST;
542 }
543
IcreateThrow(AbckitGraph * graph,AbckitInst * acc)544 AbckitInst *IcreateThrow(AbckitGraph *graph, AbckitInst *acc)
545 {
546 g_calledFuncs.push(__func__);
547
548 EXPECT_TRUE(graph == DEFAULT_GRAPH);
549 EXPECT_TRUE(acc == DEFAULT_INST);
550 return DEFAULT_INST;
551 }
552
IcreateIsUndefined(AbckitGraph * graph,AbckitInst * inputObj)553 AbckitInst *IcreateIsUndefined(AbckitGraph *graph, AbckitInst *inputObj)
554 {
555 g_calledFuncs.push(__func__);
556
557 EXPECT_TRUE(graph == DEFAULT_GRAPH);
558 EXPECT_TRUE(inputObj == DEFAULT_INST);
559 return DEFAULT_INST;
560 }
561
562 AbckitIsaApiStatic g_isaApiStaticImpl = {
563 IgetClass,
564 IsetClass,
565 IgetConditionCode,
566 IsetConditionCode,
567 IgetOpcode,
568 IsetTargetType,
569 IgetTargetType,
570 IcreateCmp,
571 IcreateLoadString,
572 IcreateReturn,
573 IcreateIf,
574 IcreateNeg,
575 IcreateNot,
576 IcreateAdd,
577 IcreateSub,
578 IcreateMul,
579 IcreateDiv,
580 IcreateMod,
581 IcreateShl,
582 IcreateShr,
583 IcreateAShr,
584 IcreateAnd,
585 IcreateOr,
586 IcreateXor,
587 IcreateCast,
588 GcreateNullPtr,
589 IcreateNewArray,
590 IcreateNewObject,
591 IcreateInitObject,
592 IcreateLoadArray,
593 IcreateStoreArray,
594 IcreateStoreArrayWide,
595 IcreateLenArray,
596 IcreateLoadConstArray,
597 IcreateCheckCast,
598 IcreateIsInstance,
599 IcreateLoadNullValue,
600 IcreateReturnVoid,
601 IcreateEquals,
602 IcreateStrictEquals,
603 IcreateCallStatic,
604 IcreateCallVirtual,
605 IcreateAddI,
606 IcreateSubI,
607 IcreateMulI,
608 IcreateDivI,
609 IcreateModI,
610 IcreateShlI,
611 IcreateShrI,
612 IcreateAShrI,
613 IcreateAndI,
614 IcreateOrI,
615 IcreateXorI,
616 IcreateThrow,
617 IcreateIsUndefined,
618 };
619
620 // NOLINTEND(readability-identifier-naming)
621
622 } // namespace libabckit::mock::isa_api_static
623
AbckitGetMockIsaApiStaticImpl(AbckitApiVersion version)624 AbckitIsaApiStatic const *AbckitGetMockIsaApiStaticImpl([[maybe_unused]] AbckitApiVersion version)
625 {
626 return &libabckit::mock::isa_api_static::g_isaApiStaticImpl;
627 }