@@ -407,41 +407,47 @@ class CilBlt_un extends @il_blt_un, CilRelationalBranchInstruction { }
407407
408408class CilSwitch extends @il_switch, CilInstruction { }
409409
410- class CilLdind_I1 extends @il_ldind_I1, CilInstruction { }
410+ /** An instruction that loads a value indirectly through a pointer. */
411+ abstract class CilLoadIndirectInstruction extends CilInstruction { }
411412
412- class CilLdind_U1 extends @il_ldind_U1 , CilInstruction { }
413+ class CilLdind_I1 extends @il_ldind_I1 , CilLoadIndirectInstruction { }
413414
414- class CilLdind_I2 extends @il_ldind_I2 , CilInstruction { }
415+ class CilLdind_U1 extends @il_ldind_U1 , CilLoadIndirectInstruction { }
415416
416- class CilLdind_U2 extends @il_ldind_U2 , CilInstruction { }
417+ class CilLdind_I2 extends @il_ldind_I2 , CilLoadIndirectInstruction { }
417418
418- class CilLdind_I4 extends @il_ldind_I4 , CilInstruction { }
419+ class CilLdind_U2 extends @il_ldind_U2 , CilLoadIndirectInstruction { }
419420
420- class CilLdind_U4 extends @il_ldind_U4 , CilInstruction { }
421+ class CilLdind_I4 extends @il_ldind_I4 , CilLoadIndirectInstruction { }
421422
422- class CilLdind_I8 extends @il_ldind_I8 , CilInstruction { }
423+ class CilLdind_U4 extends @il_ldind_U4 , CilLoadIndirectInstruction { }
423424
424- class CilLdind_I extends @il_ldind_I , CilInstruction { }
425+ class CilLdind_I8 extends @il_ldind_I8 , CilLoadIndirectInstruction { }
425426
426- class CilLdind_R4 extends @il_ldind_R4 , CilInstruction { }
427+ class CilLdind_I extends @il_ldind_I , CilLoadIndirectInstruction { }
427428
428- class CilLdind_R8 extends @il_ldind_R8 , CilInstruction { }
429+ class CilLdind_R4 extends @il_ldind_R4 , CilLoadIndirectInstruction { }
429430
430- class CilLdind_Ref extends @il_ldind_Ref , CilInstruction { }
431+ class CilLdind_R8 extends @il_ldind_R8 , CilLoadIndirectInstruction { }
431432
432- class CilStind_Ref extends @il_stind_Ref , CilInstruction { }
433+ class CilLdind_Ref extends @il_ldind_Ref , CilLoadIndirectInstruction { }
433434
434- class CilStind_I1 extends @il_stind_I1, CilInstruction { }
435+ /** An instruction that stores a value indirectly through a pointer. */
436+ abstract class CilStoreIndirectInstruction extends CilInstruction { }
435437
436- class CilStind_I2 extends @il_stind_I2 , CilInstruction { }
438+ class CilStind_Ref extends @il_stind_Ref , CilStoreIndirectInstruction { }
437439
438- class CilStind_I4 extends @il_stind_I4 , CilInstruction { }
440+ class CilStind_I1 extends @il_stind_I1 , CilStoreIndirectInstruction { }
439441
440- class CilStind_I8 extends @il_stind_I8 , CilInstruction { }
442+ class CilStind_I2 extends @il_stind_I2 , CilStoreIndirectInstruction { }
441443
442- class CilStind_R4 extends @il_stind_R4 , CilInstruction { }
444+ class CilStind_I4 extends @il_stind_I4 , CilStoreIndirectInstruction { }
443445
444- class CilStind_R8 extends @il_stind_R8, CilInstruction { }
446+ class CilStind_I8 extends @il_stind_I8, CilStoreIndirectInstruction { }
447+
448+ class CilStind_R4 extends @il_stind_R4, CilStoreIndirectInstruction { }
449+
450+ class CilStind_R8 extends @il_stind_R8, CilStoreIndirectInstruction { }
445451
446452abstract class CilBinaryInstruction extends CilInstruction { }
447453
@@ -490,21 +496,24 @@ class CilNeg extends @il_neg, CilUnaryInstruction { }
490496
491497class CilNot extends @il_not, CilUnaryInstruction { }
492498
493- class CilConv_I1 extends @il_conv_I1, CilUnaryInstruction { }
499+ /** An instruction that converts a value from one type to another. */
500+ abstract class CilConversionInstruction extends CilUnaryInstruction { }
494501
495- class CilConv_I2 extends @il_conv_I2 , CilUnaryInstruction { }
502+ class CilConv_I1 extends @il_conv_I1 , CilConversionInstruction { }
496503
497- class CilConv_I4 extends @il_conv_I4 , CilUnaryInstruction { }
504+ class CilConv_I2 extends @il_conv_I2 , CilConversionInstruction { }
498505
499- class CilConv_I8 extends @il_conv_I8 , CilUnaryInstruction { }
506+ class CilConv_I4 extends @il_conv_I4 , CilConversionInstruction { }
500507
501- class CilConv_R4 extends @il_conv_R4 , CilUnaryInstruction { }
508+ class CilConv_I8 extends @il_conv_I8 , CilConversionInstruction { }
502509
503- class CilConv_R8 extends @il_conv_R8 , CilUnaryInstruction { }
510+ class CilConv_R4 extends @il_conv_R4 , CilConversionInstruction { }
504511
505- class CilConv_U4 extends @il_conv_U4 , CilUnaryInstruction { }
512+ class CilConv_R8 extends @il_conv_R8 , CilConversionInstruction { }
506513
507- class CilConv_U8 extends @il_conv_U8, CilUnaryInstruction { }
514+ class CilConv_U4 extends @il_conv_U4, CilConversionInstruction { }
515+
516+ class CilConv_U8 extends @il_conv_U8, CilConversionInstruction { }
508517
509518class CilCallvirt extends @il_callvirt, CilCall { }
510519
@@ -522,45 +531,57 @@ class CilCastclass extends @il_castclass, CilInstruction { }
522531
523532class CilIsinst extends @il_isinst, CilInstruction { }
524533
525- class CilConv_R_Un extends @il_conv_R_Un, CilInstruction { }
534+ class CilConv_R_Un extends @il_conv_R_Un, CilConversionInstruction { }
526535
527536class CilUnbox extends @il_unbox, CilInstruction { }
528537
529538class CilThrow extends @il_throw, CilInstruction { }
530539
531- class CilLdfld extends @il_ldfld, CilInstruction { }
540+ /** An instruction that loads a field value. */
541+ abstract class CilLoadFieldInstruction extends CilInstruction { }
542+
543+ /** An instruction that loads an instance field value. */
544+ class CilLdfld extends @il_ldfld, CilLoadFieldInstruction { }
532545
533- class CilLdflda extends @il_ldflda, CilInstruction { }
546+ /** An instruction that loads the address of an instance field. */
547+ class CilLdflda extends @il_ldflda, CilLoadFieldInstruction { }
534548
535- class CilStfld extends @il_stfld, CilInstruction { }
549+ /** An instruction that loads a static field value. */
550+ class CilLdsfld extends @il_ldsfld, CilLoadFieldInstruction { }
536551
537- class CilLdsfld extends @il_ldsfld, CilInstruction { }
552+ /** An instruction that loads the address of a static field. */
553+ class CilLdsflda extends @il_ldsflda, CilLoadFieldInstruction { }
538554
539- class CilLdsflda extends @il_ldsflda, CilInstruction { }
555+ /** An instruction that stores a value to a field. */
556+ abstract class CilStoreFieldInstruction extends CilInstruction { }
540557
541- class CilStsfld extends @il_stsfld, CilInstruction { }
558+ /** An instruction that stores a value to an instance field. */
559+ class CilStfld extends @il_stfld, CilStoreFieldInstruction { }
560+
561+ /** An instruction that stores a value to a static field. */
562+ class CilStsfld extends @il_stsfld, CilStoreFieldInstruction { }
542563
543564class CilStobj extends @il_stobj, CilInstruction { }
544565
545- class CilConv_ovf_I1_Un extends @il_conv_ovf_I1_Un, CilInstruction { }
566+ class CilConv_ovf_I1_Un extends @il_conv_ovf_I1_Un, CilConversionInstruction { }
546567
547- class CilConv_ovf_I2_Un extends @il_conv_ovf_I2_Un, CilInstruction { }
568+ class CilConv_ovf_I2_Un extends @il_conv_ovf_I2_Un, CilConversionInstruction { }
548569
549- class CilConv_ovf_I4_Un extends @il_conv_ovf_I4_Un, CilInstruction { }
570+ class CilConv_ovf_I4_Un extends @il_conv_ovf_I4_Un, CilConversionInstruction { }
550571
551- class CilConv_ovf_I8_Un extends @il_conv_ovf_I8_Un, CilInstruction { }
572+ class CilConv_ovf_I8_Un extends @il_conv_ovf_I8_Un, CilConversionInstruction { }
552573
553- class CilConv_ovf_U1_Un extends @il_conv_ovf_U1_Un, CilInstruction { }
574+ class CilConv_ovf_U1_Un extends @il_conv_ovf_U1_Un, CilConversionInstruction { }
554575
555- class CilConv_ovf_U2_Un extends @il_conv_ovf_U2_Un, CilInstruction { }
576+ class CilConv_ovf_U2_Un extends @il_conv_ovf_U2_Un, CilConversionInstruction { }
556577
557- class CilConv_ovf_U4_Un extends @il_conv_ovf_U4_Un, CilInstruction { }
578+ class CilConv_ovf_U4_Un extends @il_conv_ovf_U4_Un, CilConversionInstruction { }
558579
559- class CilConv_ovf_U8_Un extends @il_conv_ovf_U8_Un, CilInstruction { }
580+ class CilConv_ovf_U8_Un extends @il_conv_ovf_U8_Un, CilConversionInstruction { }
560581
561- class CilConv_ovf_I_Un extends @il_conv_ovf_I_Un, CilInstruction { }
582+ class CilConv_ovf_I_Un extends @il_conv_ovf_I_Un, CilConversionInstruction { }
562583
563- class CilConv_ovf_U_Un extends @il_conv_ovf_U_Un, CilInstruction { }
584+ class CilConv_ovf_U_Un extends @il_conv_ovf_U_Un, CilConversionInstruction { }
564585
565586class CilBox extends @il_box, CilInstruction { }
566587
@@ -570,65 +591,71 @@ class CilLdlen extends @il_ldlen, CilInstruction { }
570591
571592class CilLdelema extends @il_ldelema, CilInstruction { }
572593
573- class CilLdelem_I1 extends @il_ldelem_I1, CilInstruction { }
594+ /** An instruction that loads an element from an array. */
595+ abstract class CilLoadElementInstruction extends CilInstruction { }
596+
597+ class CilLdelem_I1 extends @il_ldelem_I1, CilLoadElementInstruction { }
598+
599+ class CilLdelem_U1 extends @il_ldelem_U1, CilLoadElementInstruction { }
574600
575- class CilLdelem_U1 extends @il_ldelem_U1 , CilInstruction { }
601+ class CilLdelem_I2 extends @il_ldelem_I2 , CilLoadElementInstruction { }
576602
577- class CilLdelem_I2 extends @il_ldelem_I2 , CilInstruction { }
603+ class CilLdelem_U2 extends @il_ldelem_U2 , CilLoadElementInstruction { }
578604
579- class CilLdelem_U2 extends @il_ldelem_U2 , CilInstruction { }
605+ class CilLdelem_I4 extends @il_ldelem_I4 , CilLoadElementInstruction { }
580606
581- class CilLdelem_I4 extends @il_ldelem_I4 , CilInstruction { }
607+ class CilLdelem_U4 extends @il_ldelem_U4 , CilLoadElementInstruction { }
582608
583- class CilLdelem_U4 extends @il_ldelem_U4 , CilInstruction { }
609+ class CilLdelem_I8 extends @il_ldelem_I8 , CilLoadElementInstruction { }
584610
585- class CilLdelem_I8 extends @il_ldelem_I8 , CilInstruction { }
611+ class CilLdelem_I extends @il_ldelem_I , CilLoadElementInstruction { }
586612
587- class CilLdelem_I extends @il_ldelem_I , CilInstruction { }
613+ class CilLdelem_R4 extends @il_ldelem_R4 , CilLoadElementInstruction { }
588614
589- class CilLdelem_R4 extends @il_ldelem_R4 , CilInstruction { }
615+ class CilLdelem_R8 extends @il_ldelem_R8 , CilLoadElementInstruction { }
590616
591- class CilLdelem_R8 extends @il_ldelem_R8 , CilInstruction { }
617+ class CilLdelem_Ref extends @il_ldelem_Ref , CilLoadElementInstruction { }
592618
593- class CilLdelem_Ref extends @il_ldelem_Ref, CilInstruction { }
619+ /** An instruction that stores an element to an array. */
620+ abstract class CilStoreElementInstruction extends CilInstruction { }
594621
595- class CilStelem_I extends @il_stelem_I, CilInstruction { }
622+ class CilStelem_I extends @il_stelem_I, CilStoreElementInstruction { }
596623
597- class CilStelem_I1 extends @il_stelem_I1, CilInstruction { }
624+ class CilStelem_I1 extends @il_stelem_I1, CilStoreElementInstruction { }
598625
599- class CilStelem_I2 extends @il_stelem_I2, CilInstruction { }
626+ class CilStelem_I2 extends @il_stelem_I2, CilStoreElementInstruction { }
600627
601- class CilStelem_I4 extends @il_stelem_I4, CilInstruction { }
628+ class CilStelem_I4 extends @il_stelem_I4, CilStoreElementInstruction { }
602629
603- class CilStelem_I8 extends @il_stelem_I8, CilInstruction { }
630+ class CilStelem_I8 extends @il_stelem_I8, CilStoreElementInstruction { }
604631
605- class CilStelem_R4 extends @il_stelem_R4, CilInstruction { }
632+ class CilStelem_R4 extends @il_stelem_R4, CilStoreElementInstruction { }
606633
607- class CilStelem_R8 extends @il_stelem_R8, CilInstruction { }
634+ class CilStelem_R8 extends @il_stelem_R8, CilStoreElementInstruction { }
608635
609- class CilStelem_Ref extends @il_stelem_Ref, CilInstruction { }
636+ class CilStelem_Ref extends @il_stelem_Ref, CilStoreElementInstruction { }
610637
611- class CilLdelem extends @il_ldelem, CilInstruction { }
638+ class CilLdelem extends @il_ldelem, CilLoadElementInstruction { }
612639
613- class CilStelem extends @il_stelem, CilInstruction { }
640+ class CilStelem extends @il_stelem, CilStoreElementInstruction { }
614641
615642class CilUnbox_any extends @il_unbox_any, CilInstruction { }
616643
617- class CilConv_ovf_I1 extends @il_conv_ovf_I1, CilInstruction { }
644+ class CilConv_ovf_I1 extends @il_conv_ovf_I1, CilConversionInstruction { }
618645
619- class CilConv_ovf_U1 extends @il_conv_ovf_U1, CilInstruction { }
646+ class CilConv_ovf_U1 extends @il_conv_ovf_U1, CilConversionInstruction { }
620647
621- class CilConv_ovf_I2 extends @il_conv_ovf_I2, CilInstruction { }
648+ class CilConv_ovf_I2 extends @il_conv_ovf_I2, CilConversionInstruction { }
622649
623- class CilConv_ovf_U2 extends @il_conv_ovf_U2, CilInstruction { }
650+ class CilConv_ovf_U2 extends @il_conv_ovf_U2, CilConversionInstruction { }
624651
625- class CilConv_ovf_I4 extends @il_conv_ovf_I4, CilInstruction { }
652+ class CilConv_ovf_I4 extends @il_conv_ovf_I4, CilConversionInstruction { }
626653
627- class CilConv_ovf_U4 extends @il_conv_ovf_U4, CilInstruction { }
654+ class CilConv_ovf_U4 extends @il_conv_ovf_U4, CilConversionInstruction { }
628655
629- class CilConv_ovf_I8 extends @il_conv_ovf_I8, CilInstruction { }
656+ class CilConv_ovf_I8 extends @il_conv_ovf_I8, CilConversionInstruction { }
630657
631- class CilConv_ovf_U8 extends @il_conv_ovf_U8, CilInstruction { }
658+ class CilConv_ovf_U8 extends @il_conv_ovf_U8, CilConversionInstruction { }
632659
633660class CilRefanyval extends @il_refanyval, CilInstruction { }
634661
@@ -638,15 +665,15 @@ class CilMkrefany extends @il_mkrefany, CilInstruction { }
638665
639666class CilLdtoken extends @il_ldtoken, CilInstruction { }
640667
641- class CilConv_U2 extends @il_conv_U2, CilInstruction { }
668+ class CilConv_U2 extends @il_conv_U2, CilConversionInstruction { }
642669
643- class CilConv_U1 extends @il_conv_U1, CilInstruction { }
670+ class CilConv_U1 extends @il_conv_U1, CilConversionInstruction { }
644671
645- class CilConv_I extends @il_conv_I, CilInstruction { }
672+ class CilConv_I extends @il_conv_I, CilConversionInstruction { }
646673
647- class CilConv_ovf_I extends @il_conv_ovf_I, CilInstruction { }
674+ class CilConv_ovf_I extends @il_conv_ovf_I, CilConversionInstruction { }
648675
649- class CilConv_ovf_U extends @il_conv_ovf_U, CilInstruction { }
676+ class CilConv_ovf_U extends @il_conv_ovf_U, CilConversionInstruction { }
650677
651678class CilAdd_ovf extends @il_add_ovf, CilAddInstruction { }
652679
@@ -666,9 +693,9 @@ class CilLeave extends @il_leave, CilInstruction { }
666693
667694class CilLeave_s extends @il_leave_s, CilInstruction { }
668695
669- class CilStind_i extends @il_stind_i, CilInstruction { }
696+ class CilStind_i extends @il_stind_i, CilStoreIndirectInstruction { }
670697
671- class CilConv_U extends @il_conv_U, CilInstruction { }
698+ class CilConv_U extends @il_conv_U, CilConversionInstruction { }
672699
673700class CilPrefix7 extends @il_prefix7, CilInstruction { }
674701
0 commit comments