Line data Source code
1 : #[allow(non_camel_case_types)]
2 0 : #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
3 : pub enum Opcode {
4 : PHI,
5 : INLINEASM,
6 : INLINEASM_BR,
7 : CFI_INSTRUCTION,
8 : EH_LABEL,
9 : GC_LABEL,
10 : ANNOTATION_LABEL,
11 : KILL,
12 : EXTRACT_SUBREG,
13 : INSERT_SUBREG,
14 : IMPLICIT_DEF,
15 : INIT_UNDEF,
16 : SUBREG_TO_REG,
17 : COPY_TO_REGCLASS,
18 : DBG_VALUE,
19 : DBG_VALUE_LIST,
20 : DBG_INSTR_REF,
21 : DBG_PHI,
22 : DBG_LABEL,
23 : REG_SEQUENCE,
24 : COPY,
25 : BUNDLE,
26 : LIFETIME_START,
27 : LIFETIME_END,
28 : PSEUDO_PROBE,
29 : ARITH_FENCE,
30 : STACKMAP,
31 : FENTRY_CALL,
32 : PATCHPOINT,
33 : LOAD_STACK_GUARD,
34 : PREALLOCATED_SETUP,
35 : PREALLOCATED_ARG,
36 : STATEPOINT,
37 : LOCAL_ESCAPE,
38 : FAULTING_OP,
39 : PATCHABLE_OP,
40 : PATCHABLE_FUNCTION_ENTER,
41 : PATCHABLE_RET,
42 : PATCHABLE_FUNCTION_EXIT,
43 : PATCHABLE_TAIL_CALL,
44 : PATCHABLE_EVENT_CALL,
45 : PATCHABLE_TYPED_EVENT_CALL,
46 : ICALL_BRANCH_FUNNEL,
47 : FAKE_USE,
48 : MEMBARRIER,
49 : JUMP_TABLE_DEBUG_INFO,
50 : CONVERGENCECTRL_ENTRY,
51 : CONVERGENCECTRL_ANCHOR,
52 : CONVERGENCECTRL_LOOP,
53 : CONVERGENCECTRL_GLUE,
54 : G_ASSERT_SEXT,
55 : G_ASSERT_ZEXT,
56 : G_ASSERT_ALIGN,
57 : G_ADD,
58 : G_SUB,
59 : G_MUL,
60 : G_SDIV,
61 : G_UDIV,
62 : G_SREM,
63 : G_UREM,
64 : G_SDIVREM,
65 : G_UDIVREM,
66 : G_AND,
67 : G_OR,
68 : G_XOR,
69 : G_ABDS,
70 : G_ABDU,
71 : G_IMPLICIT_DEF,
72 : G_PHI,
73 : G_FRAME_INDEX,
74 : G_GLOBAL_VALUE,
75 : G_PTRAUTH_GLOBAL_VALUE,
76 : G_CONSTANT_POOL,
77 : G_EXTRACT,
78 : G_UNMERGE_VALUES,
79 : G_INSERT,
80 : G_MERGE_VALUES,
81 : G_BUILD_VECTOR,
82 : G_BUILD_VECTOR_TRUNC,
83 : G_CONCAT_VECTORS,
84 : G_PTRTOINT,
85 : G_INTTOPTR,
86 : G_BITCAST,
87 : G_FREEZE,
88 : G_CONSTANT_FOLD_BARRIER,
89 : G_INTRINSIC_FPTRUNC_ROUND,
90 : G_INTRINSIC_TRUNC,
91 : G_INTRINSIC_ROUND,
92 : G_INTRINSIC_LRINT,
93 : G_INTRINSIC_LLRINT,
94 : G_INTRINSIC_ROUNDEVEN,
95 : G_READCYCLECOUNTER,
96 : G_READSTEADYCOUNTER,
97 : G_LOAD,
98 : G_SEXTLOAD,
99 : G_ZEXTLOAD,
100 : G_INDEXED_LOAD,
101 : G_INDEXED_SEXTLOAD,
102 : G_INDEXED_ZEXTLOAD,
103 : G_STORE,
104 : G_INDEXED_STORE,
105 : G_ATOMIC_CMPXCHG_WITH_SUCCESS,
106 : G_ATOMIC_CMPXCHG,
107 : G_ATOMICRMW_XCHG,
108 : G_ATOMICRMW_ADD,
109 : G_ATOMICRMW_SUB,
110 : G_ATOMICRMW_AND,
111 : G_ATOMICRMW_NAND,
112 : G_ATOMICRMW_OR,
113 : G_ATOMICRMW_XOR,
114 : G_ATOMICRMW_MAX,
115 : G_ATOMICRMW_MIN,
116 : G_ATOMICRMW_UMAX,
117 : G_ATOMICRMW_UMIN,
118 : G_ATOMICRMW_FADD,
119 : G_ATOMICRMW_FSUB,
120 : G_ATOMICRMW_FMAX,
121 : G_ATOMICRMW_FMIN,
122 : G_ATOMICRMW_FMAXIMUM,
123 : G_ATOMICRMW_FMINIMUM,
124 : G_ATOMICRMW_UINC_WRAP,
125 : G_ATOMICRMW_UDEC_WRAP,
126 : G_ATOMICRMW_USUB_COND,
127 : G_ATOMICRMW_USUB_SAT,
128 : G_FENCE,
129 : G_PREFETCH,
130 : G_BRCOND,
131 : G_BRINDIRECT,
132 : G_INVOKE_REGION_START,
133 : G_INTRINSIC,
134 : G_INTRINSIC_W_SIDE_EFFECTS,
135 : G_INTRINSIC_CONVERGENT,
136 : G_INTRINSIC_CONVERGENT_W_SIDE_EFFECTS,
137 : G_ANYEXT,
138 : G_TRUNC,
139 : G_TRUNC_SSAT_S,
140 : G_TRUNC_SSAT_U,
141 : G_TRUNC_USAT_U,
142 : G_CONSTANT,
143 : G_FCONSTANT,
144 : G_VASTART,
145 : G_VAARG,
146 : G_SEXT,
147 : G_SEXT_INREG,
148 : G_ZEXT,
149 : G_SHL,
150 : G_LSHR,
151 : G_ASHR,
152 : G_FSHL,
153 : G_FSHR,
154 : G_ROTR,
155 : G_ROTL,
156 : G_ICMP,
157 : G_FCMP,
158 : G_SCMP,
159 : G_UCMP,
160 : G_SELECT,
161 : G_UADDO,
162 : G_UADDE,
163 : G_USUBO,
164 : G_USUBE,
165 : G_SADDO,
166 : G_SADDE,
167 : G_SSUBO,
168 : G_SSUBE,
169 : G_UMULO,
170 : G_SMULO,
171 : G_UMULH,
172 : G_SMULH,
173 : G_UADDSAT,
174 : G_SADDSAT,
175 : G_USUBSAT,
176 : G_SSUBSAT,
177 : G_USHLSAT,
178 : G_SSHLSAT,
179 : G_SMULFIX,
180 : G_UMULFIX,
181 : G_SMULFIXSAT,
182 : G_UMULFIXSAT,
183 : G_SDIVFIX,
184 : G_UDIVFIX,
185 : G_SDIVFIXSAT,
186 : G_UDIVFIXSAT,
187 : G_FADD,
188 : G_FSUB,
189 : G_FMUL,
190 : G_FMA,
191 : G_FMAD,
192 : G_FDIV,
193 : G_FREM,
194 : G_FPOW,
195 : G_FPOWI,
196 : G_FEXP,
197 : G_FEXP2,
198 : G_FEXP10,
199 : G_FLOG,
200 : G_FLOG2,
201 : G_FLOG10,
202 : G_FLDEXP,
203 : G_FFREXP,
204 : G_FNEG,
205 : G_FPEXT,
206 : G_FPTRUNC,
207 : G_FPTOSI,
208 : G_FPTOUI,
209 : G_SITOFP,
210 : G_UITOFP,
211 : G_FPTOSI_SAT,
212 : G_FPTOUI_SAT,
213 : G_FABS,
214 : G_FCOPYSIGN,
215 : G_IS_FPCLASS,
216 : G_FCANONICALIZE,
217 : G_FMINNUM,
218 : G_FMAXNUM,
219 : G_FMINNUM_IEEE,
220 : G_FMAXNUM_IEEE,
221 : G_FMINIMUM,
222 : G_FMAXIMUM,
223 : G_FMINIMUMNUM,
224 : G_FMAXIMUMNUM,
225 : G_GET_FPENV,
226 : G_SET_FPENV,
227 : G_RESET_FPENV,
228 : G_GET_FPMODE,
229 : G_SET_FPMODE,
230 : G_RESET_FPMODE,
231 : G_GET_ROUNDING,
232 : G_PTR_ADD,
233 : G_PTRMASK,
234 : G_SMIN,
235 : G_SMAX,
236 : G_UMIN,
237 : G_UMAX,
238 : G_ABS,
239 : G_LROUND,
240 : G_LLROUND,
241 : G_BR,
242 : G_BRJT,
243 : G_VSCALE,
244 : G_INSERT_SUBVECTOR,
245 : G_EXTRACT_SUBVECTOR,
246 : G_INSERT_VECTOR_ELT,
247 : G_EXTRACT_VECTOR_ELT,
248 : G_SHUFFLE_VECTOR,
249 : G_SPLAT_VECTOR,
250 : G_STEP_VECTOR,
251 : G_VECTOR_COMPRESS,
252 : G_CTTZ,
253 : G_CTTZ_ZERO_UNDEF,
254 : G_CTLZ,
255 : G_CTLZ_ZERO_UNDEF,
256 : G_CTPOP,
257 : G_BSWAP,
258 : G_BITREVERSE,
259 : G_FCEIL,
260 : G_FCOS,
261 : G_FSIN,
262 : G_FSINCOS,
263 : G_FTAN,
264 : G_FACOS,
265 : G_FASIN,
266 : G_FATAN,
267 : G_FATAN2,
268 : G_FCOSH,
269 : G_FSINH,
270 : G_FTANH,
271 : G_FSQRT,
272 : G_FFLOOR,
273 : G_FRINT,
274 : G_FNEARBYINT,
275 : G_ADDRSPACE_CAST,
276 : G_BLOCK_ADDR,
277 : G_JUMP_TABLE,
278 : G_DYN_STACKALLOC,
279 : G_STACKSAVE,
280 : G_STACKRESTORE,
281 : G_STRICT_FADD,
282 : G_STRICT_FSUB,
283 : G_STRICT_FMUL,
284 : G_STRICT_FDIV,
285 : G_STRICT_FREM,
286 : G_STRICT_FMA,
287 : G_STRICT_FSQRT,
288 : G_STRICT_FLDEXP,
289 : G_READ_REGISTER,
290 : G_WRITE_REGISTER,
291 : G_MEMCPY,
292 : G_MEMCPY_INLINE,
293 : G_MEMMOVE,
294 : G_MEMSET,
295 : G_BZERO,
296 : G_TRAP,
297 : G_DEBUGTRAP,
298 : G_UBSANTRAP,
299 : G_VECREDUCE_SEQ_FADD,
300 : G_VECREDUCE_SEQ_FMUL,
301 : G_VECREDUCE_FADD,
302 : G_VECREDUCE_FMUL,
303 : G_VECREDUCE_FMAX,
304 : G_VECREDUCE_FMIN,
305 : G_VECREDUCE_FMAXIMUM,
306 : G_VECREDUCE_FMINIMUM,
307 : G_VECREDUCE_ADD,
308 : G_VECREDUCE_MUL,
309 : G_VECREDUCE_AND,
310 : G_VECREDUCE_OR,
311 : G_VECREDUCE_XOR,
312 : G_VECREDUCE_SMAX,
313 : G_VECREDUCE_SMIN,
314 : G_VECREDUCE_UMAX,
315 : G_VECREDUCE_UMIN,
316 : G_SBFX,
317 : G_UBFX,
318 : ADJCALLSTACKDOWN,
319 : ADJCALLSTACKUP,
320 : FI_ri,
321 : MEMCPY,
322 : Select,
323 : Select_32,
324 : Select_32_64,
325 : Select_64_32,
326 : Select_Ri,
327 : Select_Ri_32,
328 : Select_Ri_32_64,
329 : Select_Ri_64_32,
330 : ADDR_SPACE_CAST,
331 : ADD_ri,
332 : ADD_ri_32,
333 : ADD_rr,
334 : ADD_rr_32,
335 : AND_ri,
336 : AND_ri_32,
337 : AND_rr,
338 : AND_rr_32,
339 : BE16,
340 : BE32,
341 : BE64,
342 : BSWAP16,
343 : BSWAP32,
344 : BSWAP64,
345 : CMPXCHGD,
346 : CMPXCHGW32,
347 : CORE_LD32,
348 : CORE_LD64,
349 : CORE_SHIFT,
350 : CORE_ST,
351 : DIV_ri,
352 : DIV_ri_32,
353 : DIV_rr,
354 : DIV_rr_32,
355 : JAL,
356 : JALX,
357 : JCOND,
358 : JEQ_ri,
359 : JEQ_ri_32,
360 : JEQ_rr,
361 : JEQ_rr_32,
362 : JMP,
363 : JMPL,
364 : JNE_ri,
365 : JNE_ri_32,
366 : JNE_rr,
367 : JNE_rr_32,
368 : JSET_ri,
369 : JSET_ri_32,
370 : JSET_rr,
371 : JSET_rr_32,
372 : JSGE_ri,
373 : JSGE_ri_32,
374 : JSGE_rr,
375 : JSGE_rr_32,
376 : JSGT_ri,
377 : JSGT_ri_32,
378 : JSGT_rr,
379 : JSGT_rr_32,
380 : JSLE_ri,
381 : JSLE_ri_32,
382 : JSLE_rr,
383 : JSLE_rr_32,
384 : JSLT_ri,
385 : JSLT_ri_32,
386 : JSLT_rr,
387 : JSLT_rr_32,
388 : JUGE_ri,
389 : JUGE_ri_32,
390 : JUGE_rr,
391 : JUGE_rr_32,
392 : JUGT_ri,
393 : JUGT_ri_32,
394 : JUGT_rr,
395 : JUGT_rr_32,
396 : JULE_ri,
397 : JULE_ri_32,
398 : JULE_rr,
399 : JULE_rr_32,
400 : JULT_ri,
401 : JULT_ri_32,
402 : JULT_rr,
403 : JULT_rr_32,
404 : LDB,
405 : LDB32,
406 : LDBACQ32,
407 : LDBSX,
408 : LDD,
409 : LDDACQ,
410 : LDH,
411 : LDH32,
412 : LDHACQ32,
413 : LDHSX,
414 : LDW,
415 : LDW32,
416 : LDWACQ32,
417 : LDWSX,
418 : LD_ABS_B,
419 : LD_ABS_H,
420 : LD_ABS_W,
421 : LD_IND_B,
422 : LD_IND_H,
423 : LD_IND_W,
424 : LD_imm64,
425 : LD_pseudo,
426 : LE16,
427 : LE32,
428 : LE64,
429 : MOD_ri,
430 : MOD_ri_32,
431 : MOD_rr,
432 : MOD_rr_32,
433 : MOVSX_rr_16,
434 : MOVSX_rr_32,
435 : MOVSX_rr_32_16,
436 : MOVSX_rr_32_8,
437 : MOVSX_rr_8,
438 : MOV_32_64,
439 : MOV_ri,
440 : MOV_ri_32,
441 : MOV_rr,
442 : MOV_rr_32,
443 : MUL_ri,
444 : MUL_ri_32,
445 : MUL_rr,
446 : MUL_rr_32,
447 : NEG_32,
448 : NEG_64,
449 : NOP,
450 : OR_ri,
451 : OR_ri_32,
452 : OR_rr,
453 : OR_rr_32,
454 : RET,
455 : SDIV_ri,
456 : SDIV_ri_32,
457 : SDIV_rr,
458 : SDIV_rr_32,
459 : SLL_ri,
460 : SLL_ri_32,
461 : SLL_rr,
462 : SLL_rr_32,
463 : SMOD_ri,
464 : SMOD_ri_32,
465 : SMOD_rr,
466 : SMOD_rr_32,
467 : SRA_ri,
468 : SRA_ri_32,
469 : SRA_rr,
470 : SRA_rr_32,
471 : SRL_ri,
472 : SRL_ri_32,
473 : SRL_rr,
474 : SRL_rr_32,
475 : STB,
476 : STB32,
477 : STBREL32,
478 : STB_imm,
479 : STD,
480 : STDREL,
481 : STD_imm,
482 : STH,
483 : STH32,
484 : STHREL32,
485 : STH_imm,
486 : STW,
487 : STW32,
488 : STWREL32,
489 : STW_imm,
490 : SUB_ri,
491 : SUB_ri_32,
492 : SUB_rr,
493 : SUB_rr_32,
494 : XADDD,
495 : XADDW,
496 : XADDW32,
497 : XANDD,
498 : XANDW32,
499 : XCHGD,
500 : XCHGW32,
501 : XFADDD,
502 : XFADDW32,
503 : XFANDD,
504 : XFANDW32,
505 : XFORD,
506 : XFORW32,
507 : XFXORD,
508 : XFXORW32,
509 : XORD,
510 : XORW32,
511 : XOR_ri,
512 : XOR_ri_32,
513 : XOR_rr,
514 : XOR_rr_32,
515 : XXORD,
516 : XXORW32,
517 : INSTRUCTION_LIST_END,
518 : UNKNOWN(u64),
519 : }
520 :
521 : impl From<u64> for Opcode {
522 0 : fn from(value: u64) -> Self {
523 0 : match value {
524 0 : 0 => Opcode::PHI,
525 0 : 1 => Opcode::INLINEASM,
526 0 : 2 => Opcode::INLINEASM_BR,
527 0 : 3 => Opcode::CFI_INSTRUCTION,
528 0 : 4 => Opcode::EH_LABEL,
529 0 : 5 => Opcode::GC_LABEL,
530 0 : 6 => Opcode::ANNOTATION_LABEL,
531 0 : 7 => Opcode::KILL,
532 0 : 8 => Opcode::EXTRACT_SUBREG,
533 0 : 9 => Opcode::INSERT_SUBREG,
534 0 : 10 => Opcode::IMPLICIT_DEF,
535 0 : 11 => Opcode::INIT_UNDEF,
536 0 : 12 => Opcode::SUBREG_TO_REG,
537 0 : 13 => Opcode::COPY_TO_REGCLASS,
538 0 : 14 => Opcode::DBG_VALUE,
539 0 : 15 => Opcode::DBG_VALUE_LIST,
540 0 : 16 => Opcode::DBG_INSTR_REF,
541 0 : 17 => Opcode::DBG_PHI,
542 0 : 18 => Opcode::DBG_LABEL,
543 0 : 19 => Opcode::REG_SEQUENCE,
544 0 : 20 => Opcode::COPY,
545 0 : 21 => Opcode::BUNDLE,
546 0 : 22 => Opcode::LIFETIME_START,
547 0 : 23 => Opcode::LIFETIME_END,
548 0 : 24 => Opcode::PSEUDO_PROBE,
549 0 : 25 => Opcode::ARITH_FENCE,
550 0 : 26 => Opcode::STACKMAP,
551 0 : 27 => Opcode::FENTRY_CALL,
552 0 : 28 => Opcode::PATCHPOINT,
553 0 : 29 => Opcode::LOAD_STACK_GUARD,
554 0 : 30 => Opcode::PREALLOCATED_SETUP,
555 0 : 31 => Opcode::PREALLOCATED_ARG,
556 0 : 32 => Opcode::STATEPOINT,
557 0 : 33 => Opcode::LOCAL_ESCAPE,
558 0 : 34 => Opcode::FAULTING_OP,
559 0 : 35 => Opcode::PATCHABLE_OP,
560 0 : 36 => Opcode::PATCHABLE_FUNCTION_ENTER,
561 0 : 37 => Opcode::PATCHABLE_RET,
562 0 : 38 => Opcode::PATCHABLE_FUNCTION_EXIT,
563 0 : 39 => Opcode::PATCHABLE_TAIL_CALL,
564 0 : 40 => Opcode::PATCHABLE_EVENT_CALL,
565 0 : 41 => Opcode::PATCHABLE_TYPED_EVENT_CALL,
566 0 : 42 => Opcode::ICALL_BRANCH_FUNNEL,
567 0 : 43 => Opcode::FAKE_USE,
568 0 : 44 => Opcode::MEMBARRIER,
569 0 : 45 => Opcode::JUMP_TABLE_DEBUG_INFO,
570 0 : 46 => Opcode::CONVERGENCECTRL_ENTRY,
571 0 : 47 => Opcode::CONVERGENCECTRL_ANCHOR,
572 0 : 48 => Opcode::CONVERGENCECTRL_LOOP,
573 0 : 49 => Opcode::CONVERGENCECTRL_GLUE,
574 0 : 50 => Opcode::G_ASSERT_SEXT,
575 0 : 51 => Opcode::G_ASSERT_ZEXT,
576 0 : 52 => Opcode::G_ASSERT_ALIGN,
577 0 : 53 => Opcode::G_ADD,
578 0 : 54 => Opcode::G_SUB,
579 0 : 55 => Opcode::G_MUL,
580 0 : 56 => Opcode::G_SDIV,
581 0 : 57 => Opcode::G_UDIV,
582 0 : 58 => Opcode::G_SREM,
583 0 : 59 => Opcode::G_UREM,
584 0 : 60 => Opcode::G_SDIVREM,
585 0 : 61 => Opcode::G_UDIVREM,
586 0 : 62 => Opcode::G_AND,
587 0 : 63 => Opcode::G_OR,
588 0 : 64 => Opcode::G_XOR,
589 0 : 65 => Opcode::G_ABDS,
590 0 : 66 => Opcode::G_ABDU,
591 0 : 67 => Opcode::G_IMPLICIT_DEF,
592 0 : 68 => Opcode::G_PHI,
593 0 : 69 => Opcode::G_FRAME_INDEX,
594 0 : 70 => Opcode::G_GLOBAL_VALUE,
595 0 : 71 => Opcode::G_PTRAUTH_GLOBAL_VALUE,
596 0 : 72 => Opcode::G_CONSTANT_POOL,
597 0 : 73 => Opcode::G_EXTRACT,
598 0 : 74 => Opcode::G_UNMERGE_VALUES,
599 0 : 75 => Opcode::G_INSERT,
600 0 : 76 => Opcode::G_MERGE_VALUES,
601 0 : 77 => Opcode::G_BUILD_VECTOR,
602 0 : 78 => Opcode::G_BUILD_VECTOR_TRUNC,
603 0 : 79 => Opcode::G_CONCAT_VECTORS,
604 0 : 80 => Opcode::G_PTRTOINT,
605 0 : 81 => Opcode::G_INTTOPTR,
606 0 : 82 => Opcode::G_BITCAST,
607 0 : 83 => Opcode::G_FREEZE,
608 0 : 84 => Opcode::G_CONSTANT_FOLD_BARRIER,
609 0 : 85 => Opcode::G_INTRINSIC_FPTRUNC_ROUND,
610 0 : 86 => Opcode::G_INTRINSIC_TRUNC,
611 0 : 87 => Opcode::G_INTRINSIC_ROUND,
612 0 : 88 => Opcode::G_INTRINSIC_LRINT,
613 0 : 89 => Opcode::G_INTRINSIC_LLRINT,
614 0 : 90 => Opcode::G_INTRINSIC_ROUNDEVEN,
615 0 : 91 => Opcode::G_READCYCLECOUNTER,
616 0 : 92 => Opcode::G_READSTEADYCOUNTER,
617 0 : 93 => Opcode::G_LOAD,
618 0 : 94 => Opcode::G_SEXTLOAD,
619 0 : 95 => Opcode::G_ZEXTLOAD,
620 0 : 96 => Opcode::G_INDEXED_LOAD,
621 0 : 97 => Opcode::G_INDEXED_SEXTLOAD,
622 0 : 98 => Opcode::G_INDEXED_ZEXTLOAD,
623 0 : 99 => Opcode::G_STORE,
624 0 : 100 => Opcode::G_INDEXED_STORE,
625 0 : 101 => Opcode::G_ATOMIC_CMPXCHG_WITH_SUCCESS,
626 0 : 102 => Opcode::G_ATOMIC_CMPXCHG,
627 0 : 103 => Opcode::G_ATOMICRMW_XCHG,
628 0 : 104 => Opcode::G_ATOMICRMW_ADD,
629 0 : 105 => Opcode::G_ATOMICRMW_SUB,
630 0 : 106 => Opcode::G_ATOMICRMW_AND,
631 0 : 107 => Opcode::G_ATOMICRMW_NAND,
632 0 : 108 => Opcode::G_ATOMICRMW_OR,
633 0 : 109 => Opcode::G_ATOMICRMW_XOR,
634 0 : 110 => Opcode::G_ATOMICRMW_MAX,
635 0 : 111 => Opcode::G_ATOMICRMW_MIN,
636 0 : 112 => Opcode::G_ATOMICRMW_UMAX,
637 0 : 113 => Opcode::G_ATOMICRMW_UMIN,
638 0 : 114 => Opcode::G_ATOMICRMW_FADD,
639 0 : 115 => Opcode::G_ATOMICRMW_FSUB,
640 0 : 116 => Opcode::G_ATOMICRMW_FMAX,
641 0 : 117 => Opcode::G_ATOMICRMW_FMIN,
642 0 : 118 => Opcode::G_ATOMICRMW_FMAXIMUM,
643 0 : 119 => Opcode::G_ATOMICRMW_FMINIMUM,
644 0 : 120 => Opcode::G_ATOMICRMW_UINC_WRAP,
645 0 : 121 => Opcode::G_ATOMICRMW_UDEC_WRAP,
646 0 : 122 => Opcode::G_ATOMICRMW_USUB_COND,
647 0 : 123 => Opcode::G_ATOMICRMW_USUB_SAT,
648 0 : 124 => Opcode::G_FENCE,
649 0 : 125 => Opcode::G_PREFETCH,
650 0 : 126 => Opcode::G_BRCOND,
651 0 : 127 => Opcode::G_BRINDIRECT,
652 0 : 128 => Opcode::G_INVOKE_REGION_START,
653 0 : 129 => Opcode::G_INTRINSIC,
654 0 : 130 => Opcode::G_INTRINSIC_W_SIDE_EFFECTS,
655 0 : 131 => Opcode::G_INTRINSIC_CONVERGENT,
656 0 : 132 => Opcode::G_INTRINSIC_CONVERGENT_W_SIDE_EFFECTS,
657 0 : 133 => Opcode::G_ANYEXT,
658 0 : 134 => Opcode::G_TRUNC,
659 0 : 135 => Opcode::G_TRUNC_SSAT_S,
660 0 : 136 => Opcode::G_TRUNC_SSAT_U,
661 0 : 137 => Opcode::G_TRUNC_USAT_U,
662 0 : 138 => Opcode::G_CONSTANT,
663 0 : 139 => Opcode::G_FCONSTANT,
664 0 : 140 => Opcode::G_VASTART,
665 0 : 141 => Opcode::G_VAARG,
666 0 : 142 => Opcode::G_SEXT,
667 0 : 143 => Opcode::G_SEXT_INREG,
668 0 : 144 => Opcode::G_ZEXT,
669 0 : 145 => Opcode::G_SHL,
670 0 : 146 => Opcode::G_LSHR,
671 0 : 147 => Opcode::G_ASHR,
672 0 : 148 => Opcode::G_FSHL,
673 0 : 149 => Opcode::G_FSHR,
674 0 : 150 => Opcode::G_ROTR,
675 0 : 151 => Opcode::G_ROTL,
676 0 : 152 => Opcode::G_ICMP,
677 0 : 153 => Opcode::G_FCMP,
678 0 : 154 => Opcode::G_SCMP,
679 0 : 155 => Opcode::G_UCMP,
680 0 : 156 => Opcode::G_SELECT,
681 0 : 157 => Opcode::G_UADDO,
682 0 : 158 => Opcode::G_UADDE,
683 0 : 159 => Opcode::G_USUBO,
684 0 : 160 => Opcode::G_USUBE,
685 0 : 161 => Opcode::G_SADDO,
686 0 : 162 => Opcode::G_SADDE,
687 0 : 163 => Opcode::G_SSUBO,
688 0 : 164 => Opcode::G_SSUBE,
689 0 : 165 => Opcode::G_UMULO,
690 0 : 166 => Opcode::G_SMULO,
691 0 : 167 => Opcode::G_UMULH,
692 0 : 168 => Opcode::G_SMULH,
693 0 : 169 => Opcode::G_UADDSAT,
694 0 : 170 => Opcode::G_SADDSAT,
695 0 : 171 => Opcode::G_USUBSAT,
696 0 : 172 => Opcode::G_SSUBSAT,
697 0 : 173 => Opcode::G_USHLSAT,
698 0 : 174 => Opcode::G_SSHLSAT,
699 0 : 175 => Opcode::G_SMULFIX,
700 0 : 176 => Opcode::G_UMULFIX,
701 0 : 177 => Opcode::G_SMULFIXSAT,
702 0 : 178 => Opcode::G_UMULFIXSAT,
703 0 : 179 => Opcode::G_SDIVFIX,
704 0 : 180 => Opcode::G_UDIVFIX,
705 0 : 181 => Opcode::G_SDIVFIXSAT,
706 0 : 182 => Opcode::G_UDIVFIXSAT,
707 0 : 183 => Opcode::G_FADD,
708 0 : 184 => Opcode::G_FSUB,
709 0 : 185 => Opcode::G_FMUL,
710 0 : 186 => Opcode::G_FMA,
711 0 : 187 => Opcode::G_FMAD,
712 0 : 188 => Opcode::G_FDIV,
713 0 : 189 => Opcode::G_FREM,
714 0 : 190 => Opcode::G_FPOW,
715 0 : 191 => Opcode::G_FPOWI,
716 0 : 192 => Opcode::G_FEXP,
717 0 : 193 => Opcode::G_FEXP2,
718 0 : 194 => Opcode::G_FEXP10,
719 0 : 195 => Opcode::G_FLOG,
720 0 : 196 => Opcode::G_FLOG2,
721 0 : 197 => Opcode::G_FLOG10,
722 0 : 198 => Opcode::G_FLDEXP,
723 0 : 199 => Opcode::G_FFREXP,
724 0 : 200 => Opcode::G_FNEG,
725 0 : 201 => Opcode::G_FPEXT,
726 0 : 202 => Opcode::G_FPTRUNC,
727 0 : 203 => Opcode::G_FPTOSI,
728 0 : 204 => Opcode::G_FPTOUI,
729 0 : 205 => Opcode::G_SITOFP,
730 0 : 206 => Opcode::G_UITOFP,
731 0 : 207 => Opcode::G_FPTOSI_SAT,
732 0 : 208 => Opcode::G_FPTOUI_SAT,
733 0 : 209 => Opcode::G_FABS,
734 0 : 210 => Opcode::G_FCOPYSIGN,
735 0 : 211 => Opcode::G_IS_FPCLASS,
736 0 : 212 => Opcode::G_FCANONICALIZE,
737 0 : 213 => Opcode::G_FMINNUM,
738 0 : 214 => Opcode::G_FMAXNUM,
739 0 : 215 => Opcode::G_FMINNUM_IEEE,
740 0 : 216 => Opcode::G_FMAXNUM_IEEE,
741 0 : 217 => Opcode::G_FMINIMUM,
742 0 : 218 => Opcode::G_FMAXIMUM,
743 0 : 219 => Opcode::G_FMINIMUMNUM,
744 0 : 220 => Opcode::G_FMAXIMUMNUM,
745 0 : 221 => Opcode::G_GET_FPENV,
746 0 : 222 => Opcode::G_SET_FPENV,
747 0 : 223 => Opcode::G_RESET_FPENV,
748 0 : 224 => Opcode::G_GET_FPMODE,
749 0 : 225 => Opcode::G_SET_FPMODE,
750 0 : 226 => Opcode::G_RESET_FPMODE,
751 0 : 227 => Opcode::G_GET_ROUNDING,
752 0 : 228 => Opcode::G_PTR_ADD,
753 0 : 229 => Opcode::G_PTRMASK,
754 0 : 230 => Opcode::G_SMIN,
755 0 : 231 => Opcode::G_SMAX,
756 0 : 232 => Opcode::G_UMIN,
757 0 : 233 => Opcode::G_UMAX,
758 0 : 234 => Opcode::G_ABS,
759 0 : 235 => Opcode::G_LROUND,
760 0 : 236 => Opcode::G_LLROUND,
761 0 : 237 => Opcode::G_BR,
762 0 : 238 => Opcode::G_BRJT,
763 0 : 239 => Opcode::G_VSCALE,
764 0 : 240 => Opcode::G_INSERT_SUBVECTOR,
765 0 : 241 => Opcode::G_EXTRACT_SUBVECTOR,
766 0 : 242 => Opcode::G_INSERT_VECTOR_ELT,
767 0 : 243 => Opcode::G_EXTRACT_VECTOR_ELT,
768 0 : 244 => Opcode::G_SHUFFLE_VECTOR,
769 0 : 245 => Opcode::G_SPLAT_VECTOR,
770 0 : 246 => Opcode::G_STEP_VECTOR,
771 0 : 247 => Opcode::G_VECTOR_COMPRESS,
772 0 : 248 => Opcode::G_CTTZ,
773 0 : 249 => Opcode::G_CTTZ_ZERO_UNDEF,
774 0 : 250 => Opcode::G_CTLZ,
775 0 : 251 => Opcode::G_CTLZ_ZERO_UNDEF,
776 0 : 252 => Opcode::G_CTPOP,
777 0 : 253 => Opcode::G_BSWAP,
778 0 : 254 => Opcode::G_BITREVERSE,
779 0 : 255 => Opcode::G_FCEIL,
780 0 : 256 => Opcode::G_FCOS,
781 0 : 257 => Opcode::G_FSIN,
782 0 : 258 => Opcode::G_FSINCOS,
783 0 : 259 => Opcode::G_FTAN,
784 0 : 260 => Opcode::G_FACOS,
785 0 : 261 => Opcode::G_FASIN,
786 0 : 262 => Opcode::G_FATAN,
787 0 : 263 => Opcode::G_FATAN2,
788 0 : 264 => Opcode::G_FCOSH,
789 0 : 265 => Opcode::G_FSINH,
790 0 : 266 => Opcode::G_FTANH,
791 0 : 267 => Opcode::G_FSQRT,
792 0 : 268 => Opcode::G_FFLOOR,
793 0 : 269 => Opcode::G_FRINT,
794 0 : 270 => Opcode::G_FNEARBYINT,
795 0 : 271 => Opcode::G_ADDRSPACE_CAST,
796 0 : 272 => Opcode::G_BLOCK_ADDR,
797 0 : 273 => Opcode::G_JUMP_TABLE,
798 0 : 274 => Opcode::G_DYN_STACKALLOC,
799 0 : 275 => Opcode::G_STACKSAVE,
800 0 : 276 => Opcode::G_STACKRESTORE,
801 0 : 277 => Opcode::G_STRICT_FADD,
802 0 : 278 => Opcode::G_STRICT_FSUB,
803 0 : 279 => Opcode::G_STRICT_FMUL,
804 0 : 280 => Opcode::G_STRICT_FDIV,
805 0 : 281 => Opcode::G_STRICT_FREM,
806 0 : 282 => Opcode::G_STRICT_FMA,
807 0 : 283 => Opcode::G_STRICT_FSQRT,
808 0 : 284 => Opcode::G_STRICT_FLDEXP,
809 0 : 285 => Opcode::G_READ_REGISTER,
810 0 : 286 => Opcode::G_WRITE_REGISTER,
811 0 : 287 => Opcode::G_MEMCPY,
812 0 : 288 => Opcode::G_MEMCPY_INLINE,
813 0 : 289 => Opcode::G_MEMMOVE,
814 0 : 290 => Opcode::G_MEMSET,
815 0 : 291 => Opcode::G_BZERO,
816 0 : 292 => Opcode::G_TRAP,
817 0 : 293 => Opcode::G_DEBUGTRAP,
818 0 : 294 => Opcode::G_UBSANTRAP,
819 0 : 295 => Opcode::G_VECREDUCE_SEQ_FADD,
820 0 : 296 => Opcode::G_VECREDUCE_SEQ_FMUL,
821 0 : 297 => Opcode::G_VECREDUCE_FADD,
822 0 : 298 => Opcode::G_VECREDUCE_FMUL,
823 0 : 299 => Opcode::G_VECREDUCE_FMAX,
824 0 : 300 => Opcode::G_VECREDUCE_FMIN,
825 0 : 301 => Opcode::G_VECREDUCE_FMAXIMUM,
826 0 : 302 => Opcode::G_VECREDUCE_FMINIMUM,
827 0 : 303 => Opcode::G_VECREDUCE_ADD,
828 0 : 304 => Opcode::G_VECREDUCE_MUL,
829 0 : 305 => Opcode::G_VECREDUCE_AND,
830 0 : 306 => Opcode::G_VECREDUCE_OR,
831 0 : 307 => Opcode::G_VECREDUCE_XOR,
832 0 : 308 => Opcode::G_VECREDUCE_SMAX,
833 0 : 309 => Opcode::G_VECREDUCE_SMIN,
834 0 : 310 => Opcode::G_VECREDUCE_UMAX,
835 0 : 311 => Opcode::G_VECREDUCE_UMIN,
836 0 : 312 => Opcode::G_SBFX,
837 0 : 313 => Opcode::G_UBFX,
838 0 : 314 => Opcode::ADJCALLSTACKDOWN,
839 0 : 315 => Opcode::ADJCALLSTACKUP,
840 0 : 316 => Opcode::FI_ri,
841 0 : 317 => Opcode::MEMCPY,
842 0 : 318 => Opcode::Select,
843 0 : 319 => Opcode::Select_32,
844 0 : 320 => Opcode::Select_32_64,
845 0 : 321 => Opcode::Select_64_32,
846 0 : 322 => Opcode::Select_Ri,
847 0 : 323 => Opcode::Select_Ri_32,
848 0 : 324 => Opcode::Select_Ri_32_64,
849 0 : 325 => Opcode::Select_Ri_64_32,
850 0 : 326 => Opcode::ADDR_SPACE_CAST,
851 0 : 327 => Opcode::ADD_ri,
852 0 : 328 => Opcode::ADD_ri_32,
853 0 : 329 => Opcode::ADD_rr,
854 0 : 330 => Opcode::ADD_rr_32,
855 0 : 331 => Opcode::AND_ri,
856 0 : 332 => Opcode::AND_ri_32,
857 0 : 333 => Opcode::AND_rr,
858 0 : 334 => Opcode::AND_rr_32,
859 0 : 335 => Opcode::BE16,
860 0 : 336 => Opcode::BE32,
861 0 : 337 => Opcode::BE64,
862 0 : 338 => Opcode::BSWAP16,
863 0 : 339 => Opcode::BSWAP32,
864 0 : 340 => Opcode::BSWAP64,
865 0 : 341 => Opcode::CMPXCHGD,
866 0 : 342 => Opcode::CMPXCHGW32,
867 0 : 343 => Opcode::CORE_LD32,
868 0 : 344 => Opcode::CORE_LD64,
869 0 : 345 => Opcode::CORE_SHIFT,
870 0 : 346 => Opcode::CORE_ST,
871 0 : 347 => Opcode::DIV_ri,
872 0 : 348 => Opcode::DIV_ri_32,
873 0 : 349 => Opcode::DIV_rr,
874 0 : 350 => Opcode::DIV_rr_32,
875 0 : 351 => Opcode::JAL,
876 0 : 352 => Opcode::JALX,
877 0 : 353 => Opcode::JCOND,
878 0 : 354 => Opcode::JEQ_ri,
879 0 : 355 => Opcode::JEQ_ri_32,
880 0 : 356 => Opcode::JEQ_rr,
881 0 : 357 => Opcode::JEQ_rr_32,
882 0 : 358 => Opcode::JMP,
883 0 : 359 => Opcode::JMPL,
884 0 : 360 => Opcode::JNE_ri,
885 0 : 361 => Opcode::JNE_ri_32,
886 0 : 362 => Opcode::JNE_rr,
887 0 : 363 => Opcode::JNE_rr_32,
888 0 : 364 => Opcode::JSET_ri,
889 0 : 365 => Opcode::JSET_ri_32,
890 0 : 366 => Opcode::JSET_rr,
891 0 : 367 => Opcode::JSET_rr_32,
892 0 : 368 => Opcode::JSGE_ri,
893 0 : 369 => Opcode::JSGE_ri_32,
894 0 : 370 => Opcode::JSGE_rr,
895 0 : 371 => Opcode::JSGE_rr_32,
896 0 : 372 => Opcode::JSGT_ri,
897 0 : 373 => Opcode::JSGT_ri_32,
898 0 : 374 => Opcode::JSGT_rr,
899 0 : 375 => Opcode::JSGT_rr_32,
900 0 : 376 => Opcode::JSLE_ri,
901 0 : 377 => Opcode::JSLE_ri_32,
902 0 : 378 => Opcode::JSLE_rr,
903 0 : 379 => Opcode::JSLE_rr_32,
904 0 : 380 => Opcode::JSLT_ri,
905 0 : 381 => Opcode::JSLT_ri_32,
906 0 : 382 => Opcode::JSLT_rr,
907 0 : 383 => Opcode::JSLT_rr_32,
908 0 : 384 => Opcode::JUGE_ri,
909 0 : 385 => Opcode::JUGE_ri_32,
910 0 : 386 => Opcode::JUGE_rr,
911 0 : 387 => Opcode::JUGE_rr_32,
912 0 : 388 => Opcode::JUGT_ri,
913 0 : 389 => Opcode::JUGT_ri_32,
914 0 : 390 => Opcode::JUGT_rr,
915 0 : 391 => Opcode::JUGT_rr_32,
916 0 : 392 => Opcode::JULE_ri,
917 0 : 393 => Opcode::JULE_ri_32,
918 0 : 394 => Opcode::JULE_rr,
919 0 : 395 => Opcode::JULE_rr_32,
920 0 : 396 => Opcode::JULT_ri,
921 0 : 397 => Opcode::JULT_ri_32,
922 0 : 398 => Opcode::JULT_rr,
923 0 : 399 => Opcode::JULT_rr_32,
924 0 : 400 => Opcode::LDB,
925 0 : 401 => Opcode::LDB32,
926 0 : 402 => Opcode::LDBACQ32,
927 0 : 403 => Opcode::LDBSX,
928 0 : 404 => Opcode::LDD,
929 0 : 405 => Opcode::LDDACQ,
930 0 : 406 => Opcode::LDH,
931 0 : 407 => Opcode::LDH32,
932 0 : 408 => Opcode::LDHACQ32,
933 0 : 409 => Opcode::LDHSX,
934 0 : 410 => Opcode::LDW,
935 0 : 411 => Opcode::LDW32,
936 0 : 412 => Opcode::LDWACQ32,
937 0 : 413 => Opcode::LDWSX,
938 0 : 414 => Opcode::LD_ABS_B,
939 0 : 415 => Opcode::LD_ABS_H,
940 0 : 416 => Opcode::LD_ABS_W,
941 0 : 417 => Opcode::LD_IND_B,
942 0 : 418 => Opcode::LD_IND_H,
943 0 : 419 => Opcode::LD_IND_W,
944 0 : 420 => Opcode::LD_imm64,
945 0 : 421 => Opcode::LD_pseudo,
946 0 : 422 => Opcode::LE16,
947 0 : 423 => Opcode::LE32,
948 0 : 424 => Opcode::LE64,
949 0 : 425 => Opcode::MOD_ri,
950 0 : 426 => Opcode::MOD_ri_32,
951 0 : 427 => Opcode::MOD_rr,
952 0 : 428 => Opcode::MOD_rr_32,
953 0 : 429 => Opcode::MOVSX_rr_16,
954 0 : 430 => Opcode::MOVSX_rr_32,
955 0 : 431 => Opcode::MOVSX_rr_32_16,
956 0 : 432 => Opcode::MOVSX_rr_32_8,
957 0 : 433 => Opcode::MOVSX_rr_8,
958 0 : 434 => Opcode::MOV_32_64,
959 0 : 435 => Opcode::MOV_ri,
960 0 : 436 => Opcode::MOV_ri_32,
961 0 : 437 => Opcode::MOV_rr,
962 0 : 438 => Opcode::MOV_rr_32,
963 0 : 439 => Opcode::MUL_ri,
964 0 : 440 => Opcode::MUL_ri_32,
965 0 : 441 => Opcode::MUL_rr,
966 0 : 442 => Opcode::MUL_rr_32,
967 0 : 443 => Opcode::NEG_32,
968 0 : 444 => Opcode::NEG_64,
969 0 : 445 => Opcode::NOP,
970 0 : 446 => Opcode::OR_ri,
971 0 : 447 => Opcode::OR_ri_32,
972 0 : 448 => Opcode::OR_rr,
973 0 : 449 => Opcode::OR_rr_32,
974 0 : 450 => Opcode::RET,
975 0 : 451 => Opcode::SDIV_ri,
976 0 : 452 => Opcode::SDIV_ri_32,
977 0 : 453 => Opcode::SDIV_rr,
978 0 : 454 => Opcode::SDIV_rr_32,
979 0 : 455 => Opcode::SLL_ri,
980 0 : 456 => Opcode::SLL_ri_32,
981 0 : 457 => Opcode::SLL_rr,
982 0 : 458 => Opcode::SLL_rr_32,
983 0 : 459 => Opcode::SMOD_ri,
984 0 : 460 => Opcode::SMOD_ri_32,
985 0 : 461 => Opcode::SMOD_rr,
986 0 : 462 => Opcode::SMOD_rr_32,
987 0 : 463 => Opcode::SRA_ri,
988 0 : 464 => Opcode::SRA_ri_32,
989 0 : 465 => Opcode::SRA_rr,
990 0 : 466 => Opcode::SRA_rr_32,
991 0 : 467 => Opcode::SRL_ri,
992 0 : 468 => Opcode::SRL_ri_32,
993 0 : 469 => Opcode::SRL_rr,
994 0 : 470 => Opcode::SRL_rr_32,
995 0 : 471 => Opcode::STB,
996 0 : 472 => Opcode::STB32,
997 0 : 473 => Opcode::STBREL32,
998 0 : 474 => Opcode::STB_imm,
999 0 : 475 => Opcode::STD,
1000 0 : 476 => Opcode::STDREL,
1001 0 : 477 => Opcode::STD_imm,
1002 0 : 478 => Opcode::STH,
1003 0 : 479 => Opcode::STH32,
1004 0 : 480 => Opcode::STHREL32,
1005 0 : 481 => Opcode::STH_imm,
1006 0 : 482 => Opcode::STW,
1007 0 : 483 => Opcode::STW32,
1008 0 : 484 => Opcode::STWREL32,
1009 0 : 485 => Opcode::STW_imm,
1010 0 : 486 => Opcode::SUB_ri,
1011 0 : 487 => Opcode::SUB_ri_32,
1012 0 : 488 => Opcode::SUB_rr,
1013 0 : 489 => Opcode::SUB_rr_32,
1014 0 : 490 => Opcode::XADDD,
1015 0 : 491 => Opcode::XADDW,
1016 0 : 492 => Opcode::XADDW32,
1017 0 : 493 => Opcode::XANDD,
1018 0 : 494 => Opcode::XANDW32,
1019 0 : 495 => Opcode::XCHGD,
1020 0 : 496 => Opcode::XCHGW32,
1021 0 : 497 => Opcode::XFADDD,
1022 0 : 498 => Opcode::XFADDW32,
1023 0 : 499 => Opcode::XFANDD,
1024 0 : 500 => Opcode::XFANDW32,
1025 0 : 501 => Opcode::XFORD,
1026 0 : 502 => Opcode::XFORW32,
1027 0 : 503 => Opcode::XFXORD,
1028 0 : 504 => Opcode::XFXORW32,
1029 0 : 505 => Opcode::XORD,
1030 0 : 506 => Opcode::XORW32,
1031 0 : 507 => Opcode::XOR_ri,
1032 0 : 508 => Opcode::XOR_ri_32,
1033 0 : 509 => Opcode::XOR_rr,
1034 0 : 510 => Opcode::XOR_rr_32,
1035 0 : 511 => Opcode::XXORD,
1036 0 : 512 => Opcode::XXORW32,
1037 0 : 513 => Opcode::INSTRUCTION_LIST_END,
1038 0 : _ => Opcode::UNKNOWN(value),
1039 : }
1040 0 : }
1041 : }
|