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
16 #include "../../src/mock/abckit_mock.h"
17 #include "../../src/mock/mock_values.h"
18
19 #include "../../include/c/metadata_core.h"
20 #include "../../src/include_v2/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
IcreateLoadUndefined(AbckitGraph * graph)376 AbckitInst *IcreateLoadUndefined(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
IcreateCallVirtual(AbckitGraph * graph,AbckitInst * inputObj,AbckitCoreFunction * function,size_t argCount,...)412 AbckitInst *IcreateCallVirtual(AbckitGraph *graph, AbckitInst *inputObj, AbckitCoreFunction *function, size_t argCount,
413 ...)
414 {
415 g_calledFuncs.push(__func__);
416
417 EXPECT_TRUE(graph == DEFAULT_GRAPH);
418 EXPECT_TRUE(inputObj == DEFAULT_INST);
419 EXPECT_TRUE(function == DEFAULT_CORE_FUNCTION);
420 EXPECT_TRUE(argCount == DEFAULT_SIZE_T);
421 return DEFAULT_INST;
422 }
423
IcreateAddI(AbckitGraph * graph,AbckitInst * input0,uint64_t imm)424 AbckitInst *IcreateAddI(AbckitGraph *graph, AbckitInst *input0, uint64_t imm)
425 {
426 g_calledFuncs.push(__func__);
427
428 EXPECT_TRUE(graph == DEFAULT_GRAPH);
429 EXPECT_TRUE(input0 == DEFAULT_INST);
430 EXPECT_TRUE(imm == DEFAULT_U64);
431 return DEFAULT_INST;
432 }
433
IcreateSubI(AbckitGraph * graph,AbckitInst * input0,uint64_t imm)434 AbckitInst *IcreateSubI(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
IcreateMulI(AbckitGraph * graph,AbckitInst * input0,uint64_t imm)444 AbckitInst *IcreateMulI(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
IcreateDivI(AbckitGraph * graph,AbckitInst * input0,uint64_t imm)454 AbckitInst *IcreateDivI(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
IcreateModI(AbckitGraph * graph,AbckitInst * input0,uint64_t imm)464 AbckitInst *IcreateModI(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
IcreateShlI(AbckitGraph * graph,AbckitInst * input0,uint64_t imm)474 AbckitInst *IcreateShlI(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
IcreateShrI(AbckitGraph * graph,AbckitInst * input0,uint64_t imm)484 AbckitInst *IcreateShrI(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
IcreateAShrI(AbckitGraph * graph,AbckitInst * input0,uint64_t imm)494 AbckitInst *IcreateAShrI(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
IcreateAndI(AbckitGraph * graph,AbckitInst * input0,uint64_t imm)504 AbckitInst *IcreateAndI(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
IcreateOrI(AbckitGraph * graph,AbckitInst * input0,uint64_t imm)514 AbckitInst *IcreateOrI(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
IcreateXorI(AbckitGraph * graph,AbckitInst * input0,uint64_t imm)524 AbckitInst *IcreateXorI(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
IcreateThrow(AbckitGraph * graph,AbckitInst * acc)534 AbckitInst *IcreateThrow(AbckitGraph *graph, AbckitInst *acc)
535 {
536 g_calledFuncs.push(__func__);
537
538 EXPECT_TRUE(graph == DEFAULT_GRAPH);
539 EXPECT_TRUE(acc == DEFAULT_INST);
540 return DEFAULT_INST;
541 }
542
IcreateIsUndefined(AbckitGraph * graph,AbckitInst * inputObj)543 AbckitInst *IcreateIsUndefined(AbckitGraph *graph, AbckitInst *inputObj)
544 {
545 g_calledFuncs.push(__func__);
546
547 EXPECT_TRUE(graph == DEFAULT_GRAPH);
548 EXPECT_TRUE(inputObj == DEFAULT_INST);
549 return DEFAULT_INST;
550 }
551
552 AbckitIsaApiStatic g_isaApiStaticImpl = {
553 IgetClass,
554 IsetClass,
555 IgetConditionCode,
556 IsetConditionCode,
557 IgetOpcode,
558 IsetTargetType,
559 IgetTargetType,
560 IcreateCmp,
561 IcreateLoadString,
562 IcreateReturn,
563 IcreateIf,
564 IcreateNeg,
565 IcreateNot,
566 IcreateAdd,
567 IcreateSub,
568 IcreateMul,
569 IcreateDiv,
570 IcreateMod,
571 IcreateShl,
572 IcreateShr,
573 IcreateAShr,
574 IcreateAnd,
575 IcreateOr,
576 IcreateXor,
577 IcreateCast,
578 GcreateNullPtr,
579 IcreateNewArray,
580 IcreateNewObject,
581 IcreateInitObject,
582 IcreateLoadArray,
583 IcreateStoreArray,
584 IcreateStoreArrayWide,
585 IcreateLenArray,
586 IcreateLoadConstArray,
587 IcreateCheckCast,
588 IcreateIsInstance,
589 IcreateLoadUndefined,
590 IcreateReturnVoid,
591 IcreateEquals,
592 IcreateCallStatic,
593 IcreateCallVirtual,
594 IcreateAddI,
595 IcreateSubI,
596 IcreateMulI,
597 IcreateDivI,
598 IcreateModI,
599 IcreateShlI,
600 IcreateShrI,
601 IcreateAShrI,
602 IcreateAndI,
603 IcreateOrI,
604 IcreateXorI,
605 IcreateThrow,
606 IcreateIsUndefined,
607 };
608
609 // NOLINTEND(readability-identifier-naming)
610
611 } // namespace libabckit::mock::isa_api_static
612
AbckitGetMockIsaApiStaticImpl(AbckitApiVersion version)613 AbckitIsaApiStatic const *AbckitGetMockIsaApiStaticImpl([[maybe_unused]] AbckitApiVersion version)
614 {
615 return &libabckit::mock::isa_api_static::g_isaApiStaticImpl;
616 }