/
mintops.def
780 lines (666 loc) · 39.3 KB
/
mintops.def
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
/*
* Definitions of VM instructions executed by interp.c
*
* Authors:
* Bernie Solomon (bernard@ugsolutions.com)
*
* OPDEF (opsymbol, opstring, oplength (in uint16s), num_dregs (0 or 1), num_sregs, optype)
* optype describes the contents of the instruction, following the dreg/sreg offsets.
*/
OPDEF(MINT_NOP, "nop", 1, 0, 0, MintOpNoArgs)
OPDEF(MINT_NIY, "niy", 1, 0, 0, MintOpNoArgs)
OPDEF(MINT_DEF, "def", 2, 1, 0, MintOpNoArgs)
OPDEF(MINT_IL_SEQ_POINT, "il_seq_point", 1, 0, 0, MintOpNoArgs)
OPDEF(MINT_DUMMY_USE, "dummy_use", 2, 0, 1, MintOpNoArgs)
OPDEF(MINT_BREAK, "break", 1, 0, 0, MintOpNoArgs)
OPDEF(MINT_BREAKPOINT, "breakpoint", 1, 0, 0, MintOpNoArgs)
OPDEF(MINT_RET, "ret", 2, 0, 1, MintOpNoArgs)
OPDEF(MINT_RET_VOID, "ret.void", 1, 0, 0, MintOpNoArgs)
OPDEF(MINT_RET_VT, "ret.vt", 3, 0, 1, MintOpShortInt)
OPDEF(MINT_RET_LOCALLOC, "ret.localloc", 2, 0, 1, MintOpNoArgs)
OPDEF(MINT_RET_VOID_LOCALLOC, "ret.void.localloc", 1, 0, 0, MintOpNoArgs)
OPDEF(MINT_RET_VT_LOCALLOC, "ret.vt.localloc", 3, 0, 1, MintOpShortInt)
OPDEF(MINT_LDC_I4_M1, "ldc.i4.m1", 2, 1, 0, MintOpNoArgs)
OPDEF(MINT_LDC_I4_0, "ldc.i4.0", 2, 1, 0, MintOpNoArgs)
OPDEF(MINT_LDC_I4_1, "ldc.i4.1", 2, 1, 0, MintOpNoArgs)
OPDEF(MINT_LDC_I4_2, "ldc.i4.2", 2, 1, 0, MintOpNoArgs)
OPDEF(MINT_LDC_I4_3, "ldc.i4.3", 2, 1, 0, MintOpNoArgs)
OPDEF(MINT_LDC_I4_4, "ldc.i4.4", 2, 1, 0, MintOpNoArgs)
OPDEF(MINT_LDC_I4_5, "ldc.i4.5", 2, 1, 0, MintOpNoArgs)
OPDEF(MINT_LDC_I4_6, "ldc.i4.6", 2, 1, 0, MintOpNoArgs)
OPDEF(MINT_LDC_I4_7, "ldc.i4.7", 2, 1, 0, MintOpNoArgs)
OPDEF(MINT_LDC_I4_8, "ldc.i4.8", 2, 1, 0, MintOpNoArgs)
OPDEF(MINT_LDC_I4_S, "ldc.i4.s", 3, 1, 0, MintOpShortInt)
OPDEF(MINT_LDC_I4, "ldc.i4", 4, 1, 0, MintOpInt)
OPDEF(MINT_LDC_I8_0, "ldc.i8.0", 2, 1, 0, MintOpNoArgs)
OPDEF(MINT_LDC_I8_S, "ldc.i8.s", 3, 1, 0, MintOpShortInt)
OPDEF(MINT_LDC_I8, "ldc.i8", 6, 1, 0, MintOpLongInt)
OPDEF(MINT_LDC_R4, "ldc.r4", 4, 1, 0, MintOpFloat)
OPDEF(MINT_LDC_R8, "ldc.r8", 6, 1, 0, MintOpDouble)
OPDEF(MINT_INIT_ARGLIST, "init_arglist", 3, 1, 0, MintOpNoArgs)
OPDEF(MINT_LDFLD_I1, "ldfld.i1", 4, 1, 1, MintOpUShortInt)
OPDEF(MINT_LDFLD_U1, "ldfld.u1", 4, 1, 1, MintOpUShortInt)
OPDEF(MINT_LDFLD_I2, "ldfld.i2", 4, 1, 1, MintOpUShortInt)
OPDEF(MINT_LDFLD_U2, "ldfld.u2", 4, 1, 1, MintOpUShortInt)
OPDEF(MINT_LDFLD_I4, "ldfld.i4", 4, 1, 1, MintOpUShortInt)
OPDEF(MINT_LDFLD_I8, "ldfld.i8", 4, 1, 1, MintOpUShortInt)
OPDEF(MINT_LDFLD_R4, "ldfld.r4", 4, 1, 1, MintOpUShortInt)
OPDEF(MINT_LDFLD_R8, "ldfld.r8", 4, 1, 1, MintOpUShortInt)
OPDEF(MINT_LDFLD_O, "ldfld.o", 4, 1, 1, MintOpUShortInt)
OPDEF(MINT_LDFLD_VT, "ldfld.vt", 5, 1, 1, MintOpShortInt)
OPDEF(MINT_LDFLD_I8_UNALIGNED, "ldfld.i8.unaligned", 4, 1, 1, MintOpUShortInt)
OPDEF(MINT_LDFLD_R8_UNALIGNED, "ldfld.r8.unaligned", 4, 1, 1, MintOpUShortInt)
OPDEF(MINT_LDFLDA, "ldflda", 4, 1, 1, MintOpUShortInt)
OPDEF(MINT_LDFLDA_UNSAFE, "ldflda.unsafe", 4, 1, 1, MintOpUShortInt)
OPDEF(MINT_STFLD_I1, "stfld.i1", 4, 0, 2, MintOpUShortInt)
OPDEF(MINT_STFLD_U1, "stfld.u1", 4, 0, 2, MintOpUShortInt)
OPDEF(MINT_STFLD_I2, "stfld.i2", 4, 0, 2, MintOpUShortInt)
OPDEF(MINT_STFLD_U2, "stfld.u2", 4, 0, 2, MintOpUShortInt)
OPDEF(MINT_STFLD_I4, "stfld.i4", 4, 0, 2, MintOpUShortInt)
OPDEF(MINT_STFLD_I8, "stfld.i8", 4, 0, 2, MintOpUShortInt)
OPDEF(MINT_STFLD_R4, "stfld.r4", 4, 0, 2, MintOpUShortInt)
OPDEF(MINT_STFLD_R8, "stfld.r8", 4, 0, 2, MintOpUShortInt)
OPDEF(MINT_STFLD_O, "stfld.o", 4, 0, 2, MintOpUShortInt)
OPDEF(MINT_STFLD_VT, "stfld.vt", 5, 0, 2, MintOpTwoShorts)
OPDEF(MINT_STFLD_VT_NOREF, "stfld.vt.noref", 5, 0, 2, MintOpTwoShorts)
OPDEF(MINT_STFLD_I8_UNALIGNED, "stfld.i8.unaligned", 4, 0, 2, MintOpUShortInt)
OPDEF(MINT_STFLD_R8_UNALIGNED, "stfld.r8.unaligned", 4, 0, 2, MintOpUShortInt)
OPDEF(MINT_LDSFLD_I1, "ldsfld.i1", 4, 1, 0, MintOpUShortInt)
OPDEF(MINT_LDSFLD_U1, "ldsfld.u1", 4, 1, 0, MintOpUShortInt)
OPDEF(MINT_LDSFLD_I2, "ldsfld.i2", 4, 1, 0, MintOpUShortInt)
OPDEF(MINT_LDSFLD_U2, "ldsfld.u2", 4, 1, 0, MintOpUShortInt)
OPDEF(MINT_LDSFLD_I4, "ldsfld.i4", 4, 1, 0, MintOpUShortInt)
OPDEF(MINT_LDSFLD_I8, "ldsfld.i8", 4, 1, 0, MintOpUShortInt)
OPDEF(MINT_LDSFLD_R4, "ldsfld.r4", 4, 1, 0, MintOpUShortInt)
OPDEF(MINT_LDSFLD_R8, "ldsfld.r8", 4, 1, 0, MintOpUShortInt)
OPDEF(MINT_LDSFLD_O, "ldsfld.o", 4, 1, 0, MintOpUShortInt)
OPDEF(MINT_LDSFLD_VT, "ldsfld.vt", 5, 1, 0, MintOpTwoShorts)
OPDEF(MINT_LDSFLD_W, "ldsfld.w", 8, 1, 0, MintOpTwoInts)
OPDEF(MINT_STSFLD_I1, "stsfld.i1", 4, 0, 1, MintOpUShortInt)
OPDEF(MINT_STSFLD_U1, "stsfld.u1", 4, 0, 1, MintOpUShortInt)
OPDEF(MINT_STSFLD_I2, "stsfld.i2", 4, 0, 1, MintOpUShortInt)
OPDEF(MINT_STSFLD_U2, "stsfld.u2", 4, 0, 1, MintOpUShortInt)
OPDEF(MINT_STSFLD_I4, "stsfld.i4", 4, 0, 1, MintOpUShortInt)
OPDEF(MINT_STSFLD_I8, "stsfld.i8", 4, 0, 1, MintOpUShortInt)
OPDEF(MINT_STSFLD_R4, "stsfld.r4", 4, 0, 1, MintOpUShortInt)
OPDEF(MINT_STSFLD_R8, "stsfld.r8", 4, 0, 1, MintOpUShortInt)
OPDEF(MINT_STSFLD_O, "stsfld.o", 4, 0, 1, MintOpUShortInt)
OPDEF(MINT_STSFLD_VT, "stsfld.vt", 5, 0, 1, MintOpTwoShorts)
OPDEF(MINT_STSFLD_W, "stsfld.w", 8, 0, 1, MintOpTwoInts)
OPDEF(MINT_LDSFLDA, "ldsflda", 4, 1, 0, MintOpTwoShorts)
OPDEF(MINT_LDTSFLDA, "ldtsflda", 4, 1, 0, MintOpInt)
OPDEF(MINT_MOV_OFF, "mov.off", 6, 1, 1, MintOpTwoShorts)
OPDEF(MINT_MOV_I1, "mov.i1", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_MOV_U1, "mov.u1", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_MOV_I2, "mov.i2", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_MOV_U2, "mov.u2", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_MOV_4, "mov.4", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_MOV_8, "mov.8", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_MOV_VT, "mov.vt", 4, 1, 1, MintOpShortInt)
// These opcodes represent multiple moves stacked together. They have multiple src and dst
// but they are not represented here. They are generated by the var offset allocator.
OPDEF(MINT_MOV_8_2, "mov.8.2", 5, 0, 0, MintOpPair2)
OPDEF(MINT_MOV_8_3, "mov.8.3", 7, 0, 0, MintOpPair3)
OPDEF(MINT_MOV_8_4, "mov.8.4", 9, 0, 0, MintOpPair4)
OPDEF(MINT_LDLOCA_S, "ldloca.s", 3, 1, 0, MintOpUShortInt)
OPDEF(MINT_LDIND_I1, "ldind.i1", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_LDIND_U1, "ldind.u1", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_LDIND_I2, "ldind.i2", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_LDIND_U2, "ldind.u2", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_LDIND_I4, "ldind.i4", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_LDIND_I8, "ldind.i8", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_LDIND_R4, "ldind.r4", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_LDIND_R8, "ldind.r8", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_LDIND_OFFSET_I1, "ldind_off.i1", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_LDIND_OFFSET_U1, "ldind_off.u1", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_LDIND_OFFSET_I2, "ldind_off.i2", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_LDIND_OFFSET_U2, "ldind_off.u2", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_LDIND_OFFSET_I4, "ldind_off.i4", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_LDIND_OFFSET_I8, "ldind_off.i8", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_LDIND_OFFSET_IMM_I1, "ldind_off_imm.i1", 4, 1, 1, MintOpShortInt)
OPDEF(MINT_LDIND_OFFSET_IMM_U1, "ldind_off_imm.u1", 4, 1, 1, MintOpShortInt)
OPDEF(MINT_LDIND_OFFSET_IMM_I2, "ldind_off_imm.i2", 4, 1, 1, MintOpShortInt)
OPDEF(MINT_LDIND_OFFSET_IMM_U2, "ldind_off_imm.u2", 4, 1, 1, MintOpShortInt)
OPDEF(MINT_LDIND_OFFSET_IMM_I4, "ldind_off_imm.i4", 4, 1, 1, MintOpShortInt)
OPDEF(MINT_LDIND_OFFSET_IMM_I8, "ldind_off_imm.i8", 4, 1, 1, MintOpShortInt)
OPDEF(MINT_STIND_I1, "stind.i1", 3, 0, 2, MintOpNoArgs)
OPDEF(MINT_STIND_I2, "stind.i2", 3, 0, 2, MintOpNoArgs)
OPDEF(MINT_STIND_I4, "stind.i4", 3, 0, 2, MintOpNoArgs)
OPDEF(MINT_STIND_I8, "stind.i8", 3, 0, 2, MintOpNoArgs)
OPDEF(MINT_STIND_R4, "stind.r4", 3, 0, 2, MintOpNoArgs)
OPDEF(MINT_STIND_R8, "stind.r8", 3, 0, 2, MintOpNoArgs)
OPDEF(MINT_STIND_REF, "stind.ref", 3, 0, 2, MintOpNoArgs)
OPDEF(MINT_STIND_OFFSET_I1, "stind_off.i1", 4, 0, 3, MintOpNoArgs)
OPDEF(MINT_STIND_OFFSET_I2, "stind_off.i2", 4, 0, 3, MintOpNoArgs)
OPDEF(MINT_STIND_OFFSET_I4, "stind_off.i4", 4, 0, 3, MintOpNoArgs)
OPDEF(MINT_STIND_OFFSET_I8, "stind_off.i8", 4, 0, 3, MintOpNoArgs)
OPDEF(MINT_STIND_OFFSET_IMM_I1, "stind_off_imm.i1", 4, 0, 2, MintOpShortInt)
OPDEF(MINT_STIND_OFFSET_IMM_I2, "stind_off_imm.i2", 4, 0, 2, MintOpShortInt)
OPDEF(MINT_STIND_OFFSET_IMM_I4, "stind_off_imm.i4", 4, 0, 2, MintOpShortInt)
OPDEF(MINT_STIND_OFFSET_IMM_I8, "stind_off_imm.i8", 4, 0, 2, MintOpShortInt)
OPDEF(MINT_BR, "br", 3, 0, 0, MintOpBranch)
OPDEF(MINT_LEAVE, "leave", 3, 0, 0, MintOpBranch)
OPDEF(MINT_LEAVE_CHECK, "leave.check", 3, 0, 0, MintOpBranch)
OPDEF(MINT_BR_S, "br.s", 2, 0, 0, MintOpShortBranch)
OPDEF(MINT_LEAVE_S, "leave.s", 2, 0, 0, MintOpShortBranch)
OPDEF(MINT_LEAVE_S_CHECK, "leave.s.check", 2, 0, 0, MintOpShortBranch)
OPDEF(MINT_CALL_HANDLER, "call_handler", 4, 0, 0, MintOpBranch)
OPDEF(MINT_CALL_HANDLER_S, "call_handler.s", 3, 0, 0, MintOpShortBranch)
OPDEF(MINT_THROW, "throw", 2, 0, 1, MintOpNoArgs)
OPDEF(MINT_RETHROW, "rethrow", 2, 0, 0, MintOpUShortInt)
OPDEF(MINT_ENDFINALLY, "endfinally", 2, 0, 0, MintOpShortInt)
OPDEF(MINT_MONO_RETHROW, "mono_rethrow", 2, 0, 1, MintOpNoArgs)
OPDEF(MINT_SAFEPOINT, "safepoint", 1, 0, 0, MintOpNoArgs)
OPDEF(MINT_BRFALSE_I4, "brfalse.i4", 4, 0, 1, MintOpBranch)
OPDEF(MINT_BRFALSE_I8, "brfalse.i8", 4, 0, 1, MintOpBranch)
OPDEF(MINT_BRFALSE_R4, "brfalse.r4", 4, 0, 1, MintOpBranch)
OPDEF(MINT_BRFALSE_R8, "brfalse.r8", 4, 0, 1, MintOpBranch)
OPDEF(MINT_BRTRUE_I4, "brtrue.i4", 4, 0, 1, MintOpBranch)
OPDEF(MINT_BRTRUE_I8, "brtrue.i8", 4, 0, 1, MintOpBranch)
OPDEF(MINT_BRTRUE_R4, "brtrue.r4", 4, 0, 1, MintOpBranch)
OPDEF(MINT_BRTRUE_R8, "brtrue.r8", 4, 0, 1, MintOpBranch)
OPDEF(MINT_BRFALSE_I4_S, "brfalse.i4.s", 3, 0, 1, MintOpShortBranch)
OPDEF(MINT_BRFALSE_I8_S, "brfalse.i8.s", 3, 0, 1, MintOpShortBranch)
OPDEF(MINT_BRFALSE_R4_S, "brfalse.r4.s", 3, 0, 1, MintOpShortBranch)
OPDEF(MINT_BRFALSE_R8_S, "brfalse.r8.s", 3, 0, 1, MintOpShortBranch)
OPDEF(MINT_BRTRUE_I4_S, "brtrue.i4.s", 3, 0, 1, MintOpShortBranch)
OPDEF(MINT_BRTRUE_I8_S, "brtrue.i8.s", 3, 0, 1, MintOpShortBranch)
OPDEF(MINT_BRTRUE_R4_S, "brtrue.r4.s", 3, 0, 1, MintOpShortBranch)
OPDEF(MINT_BRTRUE_R8_S, "brtrue.r8.s", 3, 0, 1, MintOpShortBranch)
OPDEF(MINT_BEQ_I4, "beq.i4", 5, 0, 2, MintOpBranch)
OPDEF(MINT_BEQ_I8, "beq.i8", 5, 0, 2, MintOpBranch)
OPDEF(MINT_BEQ_R4, "beq.r4", 5, 0, 2, MintOpBranch)
OPDEF(MINT_BEQ_R8, "beq.r8", 5, 0, 2, MintOpBranch)
OPDEF(MINT_BGE_I4, "bge.i4", 5, 0, 2, MintOpBranch)
OPDEF(MINT_BGE_I8, "bge.i8", 5, 0, 2, MintOpBranch)
OPDEF(MINT_BGE_R4, "bge.r4", 5, 0, 2, MintOpBranch)
OPDEF(MINT_BGE_R8, "bge.r8", 5, 0, 2, MintOpBranch)
OPDEF(MINT_BGT_I4, "bgt.i4", 5, 0, 2, MintOpBranch)
OPDEF(MINT_BGT_I8, "bgt.i8", 5, 0, 2, MintOpBranch)
OPDEF(MINT_BGT_R4, "bgt.r4", 5, 0, 2, MintOpBranch)
OPDEF(MINT_BGT_R8, "bgt.r8", 5, 0, 2, MintOpBranch)
OPDEF(MINT_BLT_I4, "blt.i4", 5, 0, 2, MintOpBranch)
OPDEF(MINT_BLT_I8, "blt.i8", 5, 0, 2, MintOpBranch)
OPDEF(MINT_BLT_R4, "blt.r4", 5, 0, 2, MintOpBranch)
OPDEF(MINT_BLT_R8, "blt.r8", 5, 0, 2, MintOpBranch)
OPDEF(MINT_BLE_I4, "ble.i4", 5, 0, 2, MintOpBranch)
OPDEF(MINT_BLE_I8, "ble.i8", 5, 0, 2, MintOpBranch)
OPDEF(MINT_BLE_R4, "ble.r4", 5, 0, 2, MintOpBranch)
OPDEF(MINT_BLE_R8, "ble.r8", 5, 0, 2, MintOpBranch)
OPDEF(MINT_BNE_UN_I4, "bne.un.i4", 5, 0, 2, MintOpBranch)
OPDEF(MINT_BNE_UN_I8, "bne.un.i8", 5, 0, 2, MintOpBranch)
OPDEF(MINT_BNE_UN_R4, "bne.un.r4", 5, 0, 2, MintOpBranch)
OPDEF(MINT_BNE_UN_R8, "bne.un.r8", 5, 0, 2, MintOpBranch)
OPDEF(MINT_BGE_UN_I4, "bge.un.i4", 5, 0, 2, MintOpBranch)
OPDEF(MINT_BGE_UN_I8, "bge.un.i8", 5, 0, 2, MintOpBranch)
OPDEF(MINT_BGE_UN_R4, "bge.un.r4", 5, 0, 2, MintOpBranch)
OPDEF(MINT_BGE_UN_R8, "bge.un.r8", 5, 0, 2, MintOpBranch)
OPDEF(MINT_BGT_UN_I4, "bgt.un.i4", 5, 0, 2, MintOpBranch)
OPDEF(MINT_BGT_UN_I8, "bgt.un.i8", 5, 0, 2, MintOpBranch)
OPDEF(MINT_BGT_UN_R4, "bgt.un.r4", 5, 0, 2, MintOpBranch)
OPDEF(MINT_BGT_UN_R8, "bgt.un.r8", 5, 0, 2, MintOpBranch)
OPDEF(MINT_BLE_UN_I4, "ble.un.i4", 5, 0, 2, MintOpBranch)
OPDEF(MINT_BLE_UN_I8, "ble.un.i8", 5, 0, 2, MintOpBranch)
OPDEF(MINT_BLE_UN_R4, "ble.un.r4", 5, 0, 2, MintOpBranch)
OPDEF(MINT_BLE_UN_R8, "ble.un.r8", 5, 0, 2, MintOpBranch)
OPDEF(MINT_BLT_UN_I4, "blt.un.i4", 5, 0, 2, MintOpBranch)
OPDEF(MINT_BLT_UN_I8, "blt.un.i8", 5, 0, 2, MintOpBranch)
OPDEF(MINT_BLT_UN_R4, "blt.un.r4", 5, 0, 2, MintOpBranch)
OPDEF(MINT_BLT_UN_R8, "blt.un.r8", 5, 0, 2, MintOpBranch)
OPDEF(MINT_BEQ_I4_S, "beq.i4.s", 4, 0, 2, MintOpShortBranch)
OPDEF(MINT_BEQ_I8_S, "beq.i8.s", 4, 0, 2, MintOpShortBranch)
OPDEF(MINT_BEQ_R4_S, "beq.r4.s", 4, 0, 2, MintOpShortBranch)
OPDEF(MINT_BEQ_R8_S, "beq.r8.s", 4, 0, 2, MintOpShortBranch)
OPDEF(MINT_BGE_I4_S, "bge.i4.s", 4, 0, 2, MintOpShortBranch)
OPDEF(MINT_BGE_I8_S, "bge.i8.s", 4, 0, 2, MintOpShortBranch)
OPDEF(MINT_BGE_R4_S, "bge.r4.s", 4, 0, 2, MintOpShortBranch)
OPDEF(MINT_BGE_R8_S, "bge.r8.s", 4, 0, 2, MintOpShortBranch)
OPDEF(MINT_BGT_I4_S, "bgt.i4.s", 4, 0, 2, MintOpShortBranch)
OPDEF(MINT_BGT_I8_S, "bgt.i8.s", 4, 0, 2, MintOpShortBranch)
OPDEF(MINT_BGT_R4_S, "bgt.r4.s", 4, 0, 2, MintOpShortBranch)
OPDEF(MINT_BGT_R8_S, "bgt.r8.s", 4, 0, 2, MintOpShortBranch)
OPDEF(MINT_BLT_I4_S, "blt.i4.s", 4, 0, 2, MintOpShortBranch)
OPDEF(MINT_BLT_I8_S, "blt.i8.s", 4, 0, 2, MintOpShortBranch)
OPDEF(MINT_BLT_R4_S, "blt.r4.s", 4, 0, 2, MintOpShortBranch)
OPDEF(MINT_BLT_R8_S, "blt.r8.s", 4, 0, 2, MintOpShortBranch)
OPDEF(MINT_BLE_I4_S, "ble.i4.s", 4, 0, 2, MintOpShortBranch)
OPDEF(MINT_BLE_I8_S, "ble.i8.s", 4, 0, 2, MintOpShortBranch)
OPDEF(MINT_BLE_R4_S, "ble.r4.s", 4, 0, 2, MintOpShortBranch)
OPDEF(MINT_BLE_R8_S, "ble.r8.s", 4, 0, 2, MintOpShortBranch)
OPDEF(MINT_BNE_UN_I4_S, "bne.un.i4.s", 4, 0, 2, MintOpShortBranch)
OPDEF(MINT_BNE_UN_I8_S, "bne.un.i8.s", 4, 0, 2, MintOpShortBranch)
OPDEF(MINT_BNE_UN_R4_S, "bne.un.r4.s", 4, 0, 2, MintOpShortBranch)
OPDEF(MINT_BNE_UN_R8_S, "bne.un.r8.s", 4, 0, 2, MintOpShortBranch)
OPDEF(MINT_BGE_UN_I4_S, "bge.un.i4.s", 4, 0, 2, MintOpShortBranch)
OPDEF(MINT_BGE_UN_I8_S, "bge.un.i8.s", 4, 0, 2, MintOpShortBranch)
OPDEF(MINT_BGE_UN_R4_S, "bge.un.r4.s", 4, 0, 2, MintOpShortBranch)
OPDEF(MINT_BGE_UN_R8_S, "bge.un.r8.s", 4, 0, 2, MintOpShortBranch)
OPDEF(MINT_BGT_UN_I4_S, "bgt.un.i4.s", 4, 0, 2, MintOpShortBranch)
OPDEF(MINT_BGT_UN_I8_S, "bgt.un.i8.s", 4, 0, 2, MintOpShortBranch)
OPDEF(MINT_BGT_UN_R4_S, "bgt.un.r4.s", 4, 0, 2, MintOpShortBranch)
OPDEF(MINT_BGT_UN_R8_S, "bgt.un.r8.s", 4, 0, 2, MintOpShortBranch)
OPDEF(MINT_BLE_UN_I4_S, "ble.un.i4.s", 4, 0, 2, MintOpShortBranch)
OPDEF(MINT_BLE_UN_I8_S, "ble.un.i8.s", 4, 0, 2, MintOpShortBranch)
OPDEF(MINT_BLE_UN_R4_S, "ble.un.r4.s", 4, 0, 2, MintOpShortBranch)
OPDEF(MINT_BLE_UN_R8_S, "ble.un.r8.s", 4, 0, 2, MintOpShortBranch)
OPDEF(MINT_BLT_UN_I4_S, "blt.un.i4.s", 4, 0, 2, MintOpShortBranch)
OPDEF(MINT_BLT_UN_I8_S, "blt.un.i8.s", 4, 0, 2, MintOpShortBranch)
OPDEF(MINT_BLT_UN_R4_S, "blt.un.r4.s", 4, 0, 2, MintOpShortBranch)
OPDEF(MINT_BLT_UN_R8_S, "blt.un.r8.s", 4, 0, 2, MintOpShortBranch)
OPDEF(MINT_BRFALSE_I4_SP, "brfalse.i4.sp", 3, 0, 1, MintOpShortBranch)
OPDEF(MINT_BRFALSE_I8_SP, "brfalse.i8.sp", 3, 0, 1, MintOpShortBranch)
OPDEF(MINT_BRTRUE_I4_SP, "brtrue.i4.sp", 3, 0, 1, MintOpShortBranch)
OPDEF(MINT_BRTRUE_I8_SP, "brtrue.i8.sp", 3, 0, 1, MintOpShortBranch)
OPDEF(MINT_BEQ_I4_SP, "beq.i4.sp", 4, 0, 2, MintOpShortBranch)
OPDEF(MINT_BEQ_I8_SP, "beq.i8.sp", 4, 0, 2, MintOpShortBranch)
OPDEF(MINT_BGE_I4_SP, "bge.i4.sp", 4, 0, 2, MintOpShortBranch)
OPDEF(MINT_BGE_I8_SP, "bge.i8.sp", 4, 0, 2, MintOpShortBranch)
OPDEF(MINT_BGT_I4_SP, "bgt.i4.sp", 4, 0, 2, MintOpShortBranch)
OPDEF(MINT_BGT_I8_SP, "bgt.i8.sp", 4, 0, 2, MintOpShortBranch)
OPDEF(MINT_BLT_I4_SP, "blt.i4.sp", 4, 0, 2, MintOpShortBranch)
OPDEF(MINT_BLT_I8_SP, "blt.i8.sp", 4, 0, 2, MintOpShortBranch)
OPDEF(MINT_BLE_I4_SP, "ble.i4.sp", 4, 0, 2, MintOpShortBranch)
OPDEF(MINT_BLE_I8_SP, "ble.i8.sp", 4, 0, 2, MintOpShortBranch)
OPDEF(MINT_BNE_UN_I4_SP, "bne.un.i4.sp", 4, 0, 2, MintOpShortBranch)
OPDEF(MINT_BNE_UN_I8_SP, "bne.un.i8.sp", 4, 0, 2, MintOpShortBranch)
OPDEF(MINT_BGE_UN_I4_SP, "bge.un.i4.sp", 4, 0, 2, MintOpShortBranch)
OPDEF(MINT_BGE_UN_I8_SP, "bge.un.i8.sp", 4, 0, 2, MintOpShortBranch)
OPDEF(MINT_BGT_UN_I4_SP, "bgt.un.i4.sp", 4, 0, 2, MintOpShortBranch)
OPDEF(MINT_BGT_UN_I8_SP, "bgt.un.i8.sp", 4, 0, 2, MintOpShortBranch)
OPDEF(MINT_BLE_UN_I4_SP, "ble.un.i4.sp", 4, 0, 2, MintOpShortBranch)
OPDEF(MINT_BLE_UN_I8_SP, "ble.un.i8.sp", 4, 0, 2, MintOpShortBranch)
OPDEF(MINT_BLT_UN_I4_SP, "blt.un.i4.sp", 4, 0, 2, MintOpShortBranch)
OPDEF(MINT_BLT_UN_I8_SP, "blt.un.i8.sp", 4, 0, 2, MintOpShortBranch)
OPDEF(MINT_BEQ_I4_IMM_SP, "beq.i4.imm.sp", 4, 0, 1, MintOpShortAndShortBranch)
OPDEF(MINT_BEQ_I8_IMM_SP, "beq.i8.imm.sp", 4, 0, 1, MintOpShortAndShortBranch)
OPDEF(MINT_BGE_I4_IMM_SP, "bge.i4.imm.sp", 4, 0, 1, MintOpShortAndShortBranch)
OPDEF(MINT_BGE_I8_IMM_SP, "bge.i8.imm.sp", 4, 0, 1, MintOpShortAndShortBranch)
OPDEF(MINT_BGT_I4_IMM_SP, "bgt.i4.imm.sp", 4, 0, 1, MintOpShortAndShortBranch)
OPDEF(MINT_BGT_I8_IMM_SP, "bgt.i8.imm.sp", 4, 0, 1, MintOpShortAndShortBranch)
OPDEF(MINT_BLT_I4_IMM_SP, "blt.i4.imm.sp", 4, 0, 1, MintOpShortAndShortBranch)
OPDEF(MINT_BLT_I8_IMM_SP, "blt.i8.imm.sp", 4, 0, 1, MintOpShortAndShortBranch)
OPDEF(MINT_BLE_I4_IMM_SP, "ble.i4.imm.sp", 4, 0, 1, MintOpShortAndShortBranch)
OPDEF(MINT_BLE_I8_IMM_SP, "ble.i8.imm.sp", 4, 0, 1, MintOpShortAndShortBranch)
OPDEF(MINT_BNE_UN_I4_IMM_SP, "bne.un.i4.imm.sp", 4, 0, 1, MintOpShortAndShortBranch)
OPDEF(MINT_BNE_UN_I8_IMM_SP, "bne.un.i8.imm.sp", 4, 0, 1, MintOpShortAndShortBranch)
OPDEF(MINT_BGE_UN_I4_IMM_SP, "bge.un.i4.imm.sp", 4, 0, 1, MintOpShortAndShortBranch)
OPDEF(MINT_BGE_UN_I8_IMM_SP, "bge.un.i8.imm.sp", 4, 0, 1, MintOpShortAndShortBranch)
OPDEF(MINT_BGT_UN_I4_IMM_SP, "bgt.un.i4.imm.sp", 4, 0, 1, MintOpShortAndShortBranch)
OPDEF(MINT_BGT_UN_I8_IMM_SP, "bgt.un.i8.imm.sp", 4, 0, 1, MintOpShortAndShortBranch)
OPDEF(MINT_BLE_UN_I4_IMM_SP, "ble.un.i4.imm.sp", 4, 0, 1, MintOpShortAndShortBranch)
OPDEF(MINT_BLE_UN_I8_IMM_SP, "ble.un.i8.imm.sp", 4, 0, 1, MintOpShortAndShortBranch)
OPDEF(MINT_BLT_UN_I4_IMM_SP, "blt.un.i4.imm.sp", 4, 0, 1, MintOpShortAndShortBranch)
OPDEF(MINT_BLT_UN_I8_IMM_SP, "blt.un.i8.imm.sp", 4, 0, 1, MintOpShortAndShortBranch)
OPDEF(MINT_SWITCH, "switch", 0, 0, 1, MintOpSwitch)
OPDEF(MINT_LDSTR, "ldstr", 3, 1, 0, MintOpShortInt)
OPDEF(MINT_LDSTR_TOKEN, "ldstr.token", 3, 1, 0, MintOpShortInt)
OPDEF(MINT_JMP, "jmp", 2, 0, 0, MintOpMethodToken)
OPDEF(MINT_ENDFILTER, "endfilter", 2, 0, 1, MintOpNoArgs)
OPDEF(MINT_NEWOBJ_SLOW, "newobj_slow", 4, 1, 1, MintOpMethodToken)
OPDEF(MINT_NEWOBJ_ARRAY, "newobj_array", 5, 1, 1, MintOpMethodToken)
OPDEF(MINT_NEWOBJ_STRING, "newobj_string", 4, 1, 1, MintOpMethodToken)
OPDEF(MINT_NEWOBJ, "newobj", 5, 1, 1, MintOpMethodToken)
OPDEF(MINT_NEWOBJ_INLINED, "newobj_inlined", 3, 1, 0, MintOpMethodToken)
OPDEF(MINT_NEWOBJ_VT, "newobj_vt", 5, 1, 1, MintOpMethodToken)
OPDEF(MINT_NEWOBJ_VT_INLINED, "newobj_vt_inlined", 4, 1, 1, MintOpMethodToken)
OPDEF(MINT_INITOBJ, "initobj", 3, 0, 1, MintOpShortInt)
OPDEF(MINT_CASTCLASS, "castclass", 4, 1, 1, MintOpClassToken)
OPDEF(MINT_ISINST, "isinst", 4, 1, 1, MintOpClassToken)
OPDEF(MINT_CASTCLASS_INTERFACE, "castclass.interface", 4, 1, 1, MintOpClassToken)
OPDEF(MINT_ISINST_INTERFACE, "isinst.interface", 4, 1, 1, MintOpClassToken)
OPDEF(MINT_CASTCLASS_COMMON, "castclass.common", 4, 1, 1, MintOpClassToken)
OPDEF(MINT_ISINST_COMMON, "isinst.common", 4, 1, 1, MintOpClassToken)
OPDEF(MINT_NEWARR, "newarr", 4, 1, 1, MintOpClassToken)
OPDEF(MINT_BOX, "box", 4, 1, 1, MintOpShortInt)
OPDEF(MINT_BOX_VT, "box.vt", 4, 1, 1, MintOpShortInt)
OPDEF(MINT_BOX_PTR, "box.ptr", 4, 1, 1, MintOpShortInt)
OPDEF(MINT_BOX_NULLABLE_PTR, "box.nullable.ptr", 4, 1, 1, MintOpShortInt)
OPDEF(MINT_UNBOX, "unbox", 4, 1, 1, MintOpClassToken)
OPDEF(MINT_LDTOKEN, "ldtoken", 3, 1, 0, MintOpShortInt)
OPDEF(MINT_LDFTN, "ldftn", 3, 1, 0, MintOpMethodToken)
OPDEF(MINT_LDFTN_ADDR, "ldftn_addr", 3, 1, 0, MintOpMethodToken)
OPDEF(MINT_LDFTN_DYNAMIC, "ldftn.dynamic", 3, 1, 1, MintOpMethodToken)
OPDEF(MINT_LDVIRTFTN, "ldvirtftn", 4, 1, 1, MintOpMethodToken)
OPDEF(MINT_CPOBJ, "cpobj", 4, 0, 2, MintOpClassToken)
OPDEF(MINT_CPOBJ_VT, "cpobj.vt", 4, 0, 2, MintOpClassToken)
OPDEF(MINT_LDOBJ_VT, "ldobj.vt", 4, 1, 1, MintOpShortInt)
OPDEF(MINT_STOBJ_VT, "stobj.vt", 4, 0, 2, MintOpClassToken)
OPDEF(MINT_CPBLK, "cpblk", 4, 0, 3, MintOpNoArgs)
OPDEF(MINT_INITBLK, "initblk", 4, 0, 3, MintOpNoArgs)
OPDEF(MINT_LOCALLOC, "localloc", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_INITLOCAL, "initlocal", 3, 1, 0, MintOpShortInt)
OPDEF(MINT_INITLOCALS, "initlocals", 3, 0, 0, MintOpTwoShorts)
OPDEF(MINT_LDELEM_I, "ldelem.i", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_LDELEM_I1, "ldelem.i1", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_LDELEM_U1, "ldelem.u1", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_LDELEM_I2, "ldelem.i2", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_LDELEM_U2, "ldelem.u2", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_LDELEM_I4, "ldelem.i4", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_LDELEM_U4, "ldelem.u4", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_LDELEM_I8, "ldelem.i8", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_LDELEM_R4, "ldelem.r4", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_LDELEM_R8, "ldelem.r8", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_LDELEM_REF, "ldelem.ref", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_LDELEM_VT, "ldelem.vt", 5, 1, 2, MintOpShortInt)
OPDEF(MINT_LDELEMA1, "ldelema1", 5, 1, 2, MintOpShortInt)
OPDEF(MINT_LDELEMA, "ldelema", 5, 1, 1, MintOpTwoShorts)
OPDEF(MINT_LDELEMA_TC, "ldelema.tc", 4, 1, 1, MintOpTwoShorts)
OPDEF(MINT_STELEM_I, "stelem.i", 4, 0, 3, MintOpNoArgs)
OPDEF(MINT_STELEM_I1, "stelem.i1", 4, 0, 3, MintOpNoArgs)
OPDEF(MINT_STELEM_U1, "stelem.u1", 4, 0, 3, MintOpNoArgs)
OPDEF(MINT_STELEM_I2, "stelem.i2", 4, 0, 3, MintOpNoArgs)
OPDEF(MINT_STELEM_U2, "stelem.u2", 4, 0, 3, MintOpNoArgs)
OPDEF(MINT_STELEM_I4, "stelem.i4", 4, 0, 3, MintOpNoArgs)
OPDEF(MINT_STELEM_I8, "stelem.i8", 4, 0, 3, MintOpNoArgs)
OPDEF(MINT_STELEM_R4, "stelem.r4", 4, 0, 3, MintOpNoArgs)
OPDEF(MINT_STELEM_R8, "stelem.r8", 4, 0, 3, MintOpNoArgs)
OPDEF(MINT_STELEM_REF, "stelem.ref", 4, 0, 3, MintOpNoArgs)
OPDEF(MINT_STELEM_VT, "stelem.vt", 6, 0, 3, MintOpTwoShorts)
OPDEF(MINT_LDLEN, "ldlen", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_LDLEN_SPAN, "ldlen.span", 4, 1, 1, MintOpShortInt)
OPDEF(MINT_GETITEM_SPAN, "getitem.span", 7, 1, 2, MintOpTwoShorts)
/* binops */
OPDEF(MINT_ADD_I4, "add.i4", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_ADD_I8, "add.i8", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_ADD_R4, "add.r4", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_ADD_R8, "add.r8", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_SUB_I4, "sub.i4", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_SUB_I8, "sub.i8", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_SUB_R4, "sub.r4", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_SUB_R8, "sub.r8", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_MUL_I4, "mul.i4", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_MUL_I8, "mul.i8", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_MUL_R4, "mul.r4", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_MUL_R8, "mul.r8", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_DIV_I4, "div.i4", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_DIV_I8, "div.i8", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_DIV_R4, "div.r4", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_DIV_R8, "div.r8", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_DIV_UN_I4, "div.un.i4", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_DIV_UN_I8, "div.un.i8", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_ADD_OVF_I4, "add.ovf.i4", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_ADD_OVF_I8, "add.ovf.i8", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_ADD_OVF_UN_I4, "add.ovf.un.i4", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_ADD_OVF_UN_I8, "add.ovf.un.i8", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_MUL_OVF_I4, "mul.ovf.i4", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_MUL_OVF_I8, "mul.ovf.i8", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_MUL_OVF_UN_I4, "mul.ovf.un.i4", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_MUL_OVF_UN_I8, "mul.ovf.un.i8", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_SUB_OVF_I4, "sub.ovf.i4", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_SUB_OVF_I8, "sub.ovf.i8", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_SUB_OVF_UN_I4, "sub.ovf.un.i4", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_SUB_OVF_UN_I8, "sub.ovf.un.i8", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_AND_I4, "and.i4", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_AND_I8, "and.i8", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_OR_I4, "or.i4", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_OR_I8, "or.i8", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_XOR_I4, "xor.i4", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_XOR_I8, "xor.i8", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_REM_I4, "rem.i4", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_REM_I8, "rem.i8", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_REM_R4, "rem.r4", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_REM_R8, "rem.r8", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_REM_UN_I4, "rem.un.i4", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_REM_UN_I8, "rem.un.i8", 4, 1, 2, MintOpNoArgs)
// Shifts, keep in order with imm versions
OPDEF(MINT_SHR_UN_I4, "shr.un.i4", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_SHR_UN_I8, "shr.un.i8", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_SHL_I4, "shl.i4", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_SHL_I8, "shl.i8", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_SHR_I4, "shr.i4", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_SHR_I8, "shr.i8", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_CEQ_I4, "ceq.i4", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_CEQ_I8, "ceq.i8", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_CEQ_R4, "ceq.r4", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_CEQ_R8, "ceq.r8", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_CNE_I4, "cne.i4", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_CNE_I8, "cne.i8", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_CNE_R4, "cne.r4", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_CNE_R8, "cne.r8", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_CGT_I4, "cgt.i4", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_CGT_I8, "cgt.i8", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_CGT_R4, "cgt.r4", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_CGT_R8, "cgt.r8", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_CGE_I4, "cge.i4", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_CGE_I8, "cge.i8", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_CGE_R4, "cge.r4", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_CGE_R8, "cge.r8", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_CGE_UN_I4, "cge.un.i4", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_CGE_UN_I8, "cge.un.i8", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_CGT_UN_I4, "cgt.un.i4", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_CGT_UN_I8, "cgt.un.i8", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_CGT_UN_R4, "cgt.un.r4", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_CGT_UN_R8, "cgt.un.r8", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_CLT_I4, "clt.i4", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_CLT_I8, "clt.i8", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_CLT_R4, "clt.r4", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_CLT_R8, "clt.r8", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_CLE_I4, "cle.i4", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_CLE_I8, "cle.i8", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_CLE_R4, "cle.r4", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_CLE_R8, "cle.r8", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_CLE_UN_I4, "cle.un.i4", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_CLE_UN_I8, "cle.un.i8", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_CLT_UN_I4, "clt.un.i4", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_CLT_UN_I8, "clt.un.i8", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_CLT_UN_R4, "clt.un.r4", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_CLT_UN_R8, "clt.un.r8", 4, 1, 2, MintOpNoArgs)
/* binops end */
/* unops */
OPDEF(MINT_ADD1_I4, "add1.i4", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_ADD1_I8, "add1.i8", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_SUB1_I4, "sub1.i4", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_SUB1_I8, "sub1.i8", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_NEG_I4, "neg.i4", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_NEG_I8, "neg.i8", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_NEG_R4, "neg.r4", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_NEG_R8, "neg.r8", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_NOT_I4, "not.i4", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_NOT_I8, "not.i8", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_CONV_R_UN_I4, "conv.r.un.i4", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_CONV_R_UN_I8, "conv.r.un.i8", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_CONV_I1_I4, "conv.i1.i4", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_CONV_I1_I8, "conv.i1.i8", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_CONV_I1_R4, "conv.i1.r4", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_CONV_I1_R8, "conv.i1.r8", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_CONV_U1_I4, "conv.u1.i4", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_CONV_U1_I8, "conv.u1.i8", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_CONV_U1_R4, "conv.u1.r4", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_CONV_U1_R8, "conv.u1.r8", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_CONV_I2_I4, "conv.i2.i4", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_CONV_I2_I8, "conv.i2.i8", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_CONV_I2_R4, "conv.i2.r4", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_CONV_I2_R8, "conv.i2.r8", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_CONV_U2_I4, "conv.u2.i4", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_CONV_U2_I8, "conv.u2.i8", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_CONV_U2_R4, "conv.u2.r4", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_CONV_U2_R8, "conv.u2.r8", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_CONV_I4_R4, "conv.i4.r4", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_CONV_I4_R8, "conv.i4.r8", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_CONV_U4_R4, "conv.u4.r4", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_CONV_U4_R8, "conv.u4.r8", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_CONV_I8_I4, "conv.i8.i4", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_CONV_I8_U4, "conv.i8.u4", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_CONV_I8_R4, "conv.i8.r4", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_CONV_I8_R8, "conv.i8.r8", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_CONV_R4_I4, "conv.r4.i4", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_CONV_R4_I8, "conv.r4.i8", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_CONV_R4_R8, "conv.r4.r8", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_CONV_R8_I4, "conv.r8.i4", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_CONV_R8_I8, "conv.r8.i8", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_CONV_R8_R4, "conv.r8.r4", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_CONV_U8_R4, "conv.u8.r4", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_CONV_U8_R8, "conv.u8.r8", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_CONV_OVF_I1_I4, "conv.ovf.i1.i4", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_CONV_OVF_I1_I8, "conv.ovf.i1.i8", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_CONV_OVF_I1_R4, "conv.ovf.i1.r4", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_CONV_OVF_I1_R8, "conv.ovf.i1.r8", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_CONV_OVF_I1_U4, "conv.ovf.i1.u4", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_CONV_OVF_I1_U8, "conv.ovf.i1.u8", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_CONV_OVF_U1_I4, "conv.ovf.u1.i4", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_CONV_OVF_U1_I8, "conv.ovf.u1.i8", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_CONV_OVF_U1_R4, "conv.ovf.u1.r4", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_CONV_OVF_U1_R8, "conv.ovf.u1.r8", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_CONV_OVF_I2_I4, "conv.ovf.i2.i4", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_CONV_OVF_I2_I8, "conv.ovf.i2.i8", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_CONV_OVF_I2_R4, "conv.ovf.i2.r4", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_CONV_OVF_I2_R8, "conv.ovf.i2.r8", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_CONV_OVF_I2_U4, "conv.ovf.i2.u4", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_CONV_OVF_I2_U8, "conv.ovf.i2.u8", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_CONV_OVF_U2_I4, "conv.ovf.u2.i4", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_CONV_OVF_U2_I8, "conv.ovf.u2.i8", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_CONV_OVF_U2_R4, "conv.ovf.u2.r4", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_CONV_OVF_U2_R8, "conv.ovf.u2.r8", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_CONV_OVF_I4_U4, "conv.ovf.i4.u4", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_CONV_OVF_I4_I8, "conv.ovf.i4.i8", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_CONV_OVF_I4_U8, "conv.ovf.i4.u8", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_CONV_OVF_I4_R4, "conv.ovf.i4.r4", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_CONV_OVF_I4_R8, "conv.ovf.i4.r8", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_CONV_OVF_U4_I4, "conv.ovf.u4.i4", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_CONV_OVF_U4_I8, "conv.ovf.u4.i8", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_CONV_OVF_U4_R4, "conv.ovf.u4.r4", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_CONV_OVF_U4_R8, "conv.ovf.u4.r8", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_CONV_OVF_I8_U8, "conv.ovf.i8.u8", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_CONV_OVF_I8_R4, "conv.ovf.i8.r4", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_CONV_OVF_I8_R8, "conv.ovf.i8.r8", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_CONV_OVF_U8_I4, "conv.ovf.u8.i4", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_CONV_OVF_U8_I8, "conv.ovf.u8.i8", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_CONV_OVF_U8_R4, "conv.ovf.u8.r4", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_CONV_OVF_U8_R8, "conv.ovf.u8.r8", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_CEQ0_I4, "ceq0.i4", 3, 1, 1, MintOpNoArgs)
/* unops end */
/* super instructions */
OPDEF(MINT_RET_I4_IMM, "ret.i4.imm", 2, 0, 0, MintOpShortInt)
OPDEF(MINT_RET_I8_IMM, "ret.i8.imm", 2, 0, 0, MintOpShortInt)
OPDEF(MINT_ADD_I4_IMM, "add.i4.imm", 4, 1, 1, MintOpShortInt)
OPDEF(MINT_ADD_I8_IMM, "add.i8.imm", 4, 1, 1, MintOpShortInt)
OPDEF(MINT_MUL_I4_IMM, "mul.i4.imm", 4, 1, 1, MintOpShortInt)
OPDEF(MINT_MUL_I8_IMM, "mul.i8.imm", 4, 1, 1, MintOpShortInt)
OPDEF(MINT_SHR_UN_I4_IMM, "shr.un.i4.imm", 4, 1, 1, MintOpShortInt)
OPDEF(MINT_SHR_UN_I8_IMM, "shr.un.i8.imm", 4, 1, 1, MintOpShortInt)
OPDEF(MINT_SHL_I4_IMM, "shl.i4.imm", 4, 1, 1, MintOpShortInt)
OPDEF(MINT_SHL_I8_IMM, "shl.i8.imm", 4, 1, 1, MintOpShortInt)
OPDEF(MINT_SHR_I4_IMM, "shr.i4.imm", 4, 1, 1, MintOpShortInt)
OPDEF(MINT_SHR_I8_IMM, "shr.i8.imm", 4, 1, 1, MintOpShortInt)
OPDEF(MINT_CKFINITE, "ckfinite", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_MKREFANY, "mkrefany", 4, 1, 1, MintOpClassToken)
OPDEF(MINT_REFANYTYPE, "refanytype", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_REFANYVAL, "refanyval", 4, 1, 1, MintOpNoArgs)
OPDEF(MINT_CKNULL, "cknull", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_GETCHR, "getchr", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_STRLEN, "strlen", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_ARRAY_RANK, "array_rank", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_ARRAY_ELEMENT_SIZE, "array_element_size", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_ARRAY_IS_PRIMITIVE, "array_is_primitive", 3, 1, 1, MintOpNoArgs)
/* Calls */
OPDEF(MINT_CALL, "call", 4, 1, 1, MintOpMethodToken)
OPDEF(MINT_CALLVIRT, "callvirt", 4, 1, 1, MintOpMethodToken)
OPDEF(MINT_CALLVIRT_FAST, "callvirt.fast", 5, 1, 1, MintOpMethodToken)
OPDEF(MINT_CALL_DELEGATE, "call.delegate", 5, 1, 1, MintOpTwoShorts)
OPDEF(MINT_CALLI, "calli", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_CALLI_NAT, "calli.nat", 8, 1, 2, MintOpMethodToken)
OPDEF(MINT_CALLI_NAT_DYNAMIC, "calli.nat.dynamic", 5, 1, 2, MintOpMethodToken)
OPDEF(MINT_CALLI_NAT_FAST, "calli.nat.fast", 7, 1, 2, MintOpMethodToken)
OPDEF(MINT_CALL_VARARG, "call.vararg", 6, 1, 1, MintOpMethodToken)
OPDEF(MINT_CALLRUN, "callrun", 5, 1, 1, MintOpNoArgs)
OPDEF(MINT_ICALL_V_V, "mono_icall_v_v", 3, 0, 1, MintOpShortInt)
OPDEF(MINT_ICALL_V_P, "mono_icall_v_p", 4, 1, 1, MintOpShortInt)
OPDEF(MINT_ICALL_P_V, "mono_icall_p_v", 3, 0, 1, MintOpShortInt)
OPDEF(MINT_ICALL_P_P, "mono_icall_p_p", 4, 1, 1, MintOpShortInt)
OPDEF(MINT_ICALL_PP_V, "mono_icall_pp_v", 3, 0, 1, MintOpShortInt)
OPDEF(MINT_ICALL_PP_P, "mono_icall_pp_p", 4, 1, 1, MintOpShortInt)
OPDEF(MINT_ICALL_PPP_V, "mono_icall_ppp_v", 3, 0, 1, MintOpShortInt)
OPDEF(MINT_ICALL_PPP_P, "mono_icall_ppp_p", 4, 1, 1, MintOpShortInt)
OPDEF(MINT_ICALL_PPPP_V, "mono_icall_pppp_v", 3, 0, 1, MintOpShortInt)
OPDEF(MINT_ICALL_PPPP_P, "mono_icall_pppp_p", 4, 1, 1, MintOpShortInt)
OPDEF(MINT_ICALL_PPPPP_V, "mono_icall_ppppp_v", 3, 0, 1, MintOpShortInt)
OPDEF(MINT_ICALL_PPPPP_P, "mono_icall_ppppp_p", 4, 1, 1, MintOpShortInt)
OPDEF(MINT_ICALL_PPPPPP_V, "mono_icall_pppppp_v", 3, 0, 1, MintOpShortInt)
OPDEF(MINT_ICALL_PPPPPP_P, "mono_icall_pppppp_p", 4, 1, 1, MintOpShortInt)
// FIXME: MintOp
OPDEF(MINT_JIT_CALL, "mono_jit_call", 4, 1, 1, MintOpNoArgs)
OPDEF(MINT_JIT_CALL2, "mono_jit_call2", 7, 1, 1, MintOpNoArgs)
OPDEF(MINT_MONO_LDPTR, "mono_ldptr", 3, 1, 0, MintOpShortInt)
OPDEF(MINT_MONO_SGEN_THREAD_INFO, "mono_sgen_thread_info", 2, 1, 0, MintOpNoArgs)
OPDEF(MINT_MONO_NEWOBJ, "mono_newobj", 3, 1, 0, MintOpClassToken)
OPDEF(MINT_MONO_RETOBJ, "mono_retobj", 2, 0, 1, MintOpNoArgs)
OPDEF(MINT_MONO_ATOMIC_STORE_I4, "mono_atomic.store.i4", 3, 0, 2, MintOpNoArgs)
OPDEF(MINT_MONO_MEMORY_BARRIER, "mono_memory_barrier", 1, 0, 0, MintOpNoArgs)
OPDEF(MINT_MONO_EXCHANGE_I8, "mono_interlocked.xchg.i8", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_MONO_LDDOMAIN, "mono_lddomain", 2, 1, 0, MintOpNoArgs)
OPDEF(MINT_MONO_ENABLE_GCTRANS, "mono_enable_gctrans", 1, 0, 0, MintOpNoArgs)
OPDEF(MINT_SDB_INTR_LOC, "sdb_intr_loc", 1, 0, 0, MintOpNoArgs)
OPDEF(MINT_SDB_SEQ_POINT, "sdb_seq_point", 1, 0, 0, MintOpNoArgs)
OPDEF(MINT_SDB_BREAKPOINT, "sdb_breakpoint", 1, 0, 0, MintOpNoArgs)
OPDEF(MINT_LD_DELEGATE_METHOD_PTR, "ld_delegate_method_ptr", 3, 1, 1, MintOpNoArgs)
// Math intrinsics
// double
OPDEF(MINT_ABS, "abs", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_ASIN, "asin", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_ASINH, "asinh", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_ACOS, "acos", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_ACOSH, "acosh", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_ATAN, "atan", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_ATANH, "atanh", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_ATAN2, "atan2", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_CEILING, "ceiling", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_COS, "cos", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_CBRT, "cbrt", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_COSH, "cosh", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_EXP, "exp", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_FMA, "fma", 5, 1, 3, MintOpNoArgs)
OPDEF(MINT_FLOOR, "floor", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_LOG, "log", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_LOG2, "log2", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_LOG10, "log10", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_POW, "pow", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_SCALEB, "scaleb", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_SIN, "sin", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_SQRT, "sqrt", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_SINH, "sinh", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_TAN, "tan", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_TANH, "tanh", 3, 1, 1, MintOpNoArgs)
// float. These must be kept in the same order as their double counterpart
OPDEF(MINT_ABSF, "absf", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_ASINF, "asinf", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_ASINHF, "asinhf", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_ACOSF, "acosf", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_ACOSHF, "acoshf", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_ATANF, "atanf", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_ATANHF, "atanhf", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_ATAN2F, "atan2f", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_CEILINGF, "ceilingf", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_COSF, "cosf", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_CBRTF, "cbrtf", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_COSHF, "coshf", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_EXPF, "expf", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_FMAF, "fmaf", 5, 1, 3, MintOpNoArgs)
OPDEF(MINT_FLOORF, "floorf", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_LOGF, "logf", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_LOG2F, "log2f", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_LOG10F, "log10f", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_POWF, "powf", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_SCALEBF, "scalebf", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_SINF, "sinf", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_SQRTF, "sqrtf", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_SINHF, "sinhf", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_TANF, "tanf", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_TANHF, "tanhf", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_PROF_ENTER, "prof_enter", 2, 0, 0, MintOpShortInt)
OPDEF(MINT_PROF_EXIT, "prof_exit", 5, 0, 1, MintOpShortAndInt)
OPDEF(MINT_PROF_EXIT_VOID, "prof_exit_void", 2, 0, 0, MintOpNoArgs)
OPDEF(MINT_PROF_COVERAGE_STORE, "prof_coverage_store", 5, 0, 0, MintOpLongInt)
OPDEF(MINT_INTRINS_ENUM_HASFLAG, "intrins_enum_hasflag", 5, 1, 2, MintOpClassToken)
OPDEF(MINT_INTRINS_GET_HASHCODE, "intrins_get_hashcode", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_INTRINS_GET_TYPE, "intrins_get_type", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_INTRINS_SPAN_CTOR, "intrins_span_ctor", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_INTRINS_UNSAFE_BYTE_OFFSET, "intrins_unsafe_byte_offset", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_INTRINS_RUNTIMEHELPERS_OBJECT_HAS_COMPONENT_SIZE, "intrins_runtimehelpers_object_has_component_size", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_INTRINS_CLEAR_WITH_REFERENCES, "intrin_clear_with_references", 3, 0, 2, MintOpNoArgs)
OPDEF(MINT_INTRINS_MARVIN_BLOCK, "intrins_marvin_block", 3, 0, 2, MintOpNoArgs)
OPDEF(MINT_INTRINS_ASCII_CHARS_TO_UPPERCASE, "intrins_ascii_chars_to_uppercase", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_INTRINS_MEMORYMARSHAL_GETARRAYDATAREF, "intrins_memorymarshal_getarraydataref", 3, 1, 1, MintOpNoArgs)
OPDEF(MINT_INTRINS_ORDINAL_IGNORE_CASE_ASCII, "intrins_ordinal_ignore_case_ascii", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_INTRINS_64ORDINAL_IGNORE_CASE_ASCII, "intrins_64ordinal_ignore_case_ascii", 4, 1, 2, MintOpNoArgs)
OPDEF(MINT_INTRINS_U32_TO_DECSTR, "intrins_u32_to_decstr", 5, 1, 1, MintOpTwoShorts)
OPDEF(MINT_INTRINS_WIDEN_ASCII_TO_UTF16, "intrins_widen_ascii_to_utf16", 5, 1, 3, MintOpNoArgs)