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