Basé sur Eric réponse ici sont certains que j'ai repéré. Où je peux voir une raison que j'ai indiquée, si je pas librement spéculer. Hésitez pas à l'indiquer si ces spéculations sont mauvais.
Break
Les signaux de la Common Language Infrastructure (CLI) pour informer le débogueur qu'un point de rupture a été déclenché.
Vous voudriez faire cela en Système d'appel.Diagnostics.Débogueur.Pause(), cela ne semble pas utiliser cette instruction directement, mais utilise à la place une BreakInternal() la méthode de boulangerie dans le CLR.
Cpblk
et Cpobj
Des Copies d'un nombre spécifié d'octets à partir d'une adresse source vers une adresse de destination.
Copie le type de la valeur située à l'adresse d'un objet (type &, * ou native int) à l'adresse de la destination de l'objet (type &, * ou native int).
Je suppose qu'ils ont été ajoutés pour le C++/CLI (précédemment Gérée C++), mais c'est purement de la spéculation de ma part. Ils peuvent également être présents dans certains appels système, mais pas normalement généré par le compilateur et la possibilité dangereux pour l'amusement et les jeux.
Endfilter
Transfère le contrôle à partir de la clause de filtre d'une exception à l'arrière de la Common Language Infrastructure (CLI) gestionnaire d'exception.
C# ne prend pas en charge l'exception de filtrage. Le compilateur visual basic, sans doute, rend l'utilisation de ce bien.
Initblk
Initialise un certain bloc de mémoire à une adresse précise, pour une taille donnée et la valeur initiale.
Je vais spéculer à nouveau que c'est potentiellement utile dans le code unsafe et C++/CLI
Jmp
Sorties méthode actuelle et les sauts à la méthode spécifiée.
Je vais supposer que ce genre de trampoline peut être utile pour ceux qui veulent éviter la queue des appels. Peut-être le DLR rend l'utilisation de celui-ci?
Tailcall
Effectue une suffixé appel de la méthode d'instruction, telles que la méthode actuelle du cadre de pile est retirée avant de l'appel, l'instruction est exécutée.
Discuté en profondeur ailleurs, actuellement, le compilateur c# n'émet pas de cet opcode
Unaligned
Indique qu'une adresse actuellement au sommet de la pile d'évaluation pourrait ne pas être aligné à la taille naturelle de la suit immédiatement ldind, stind, ldfld, stfld, ldobj, stobj, initblk, ou cpblk instruction.
C# (et le CLR) est tout à fait un peu de garanties concernant l'harmonisation de la nature d'une grande partie de son code et de données. Il n'est pas surprenant que ce n'est pas émise, mais je peux voir pourquoi il serait inclus.
Unbox
Convertit le texte de l'encadré de la représentation d'un type de valeur à ses unboxed forme.
Le compilateur c# préfère utiliser l' Unbox_Any
enseignement exclusivement à cette fin. Je présume, basée sur l'addition de cela pour le jeu d'instruction dans la version 2.0, il fait des génériques soit feasibale, ou beaucoup plus simple. À ce point de l'utiliser dans le code pour tout, génériques ou autre, soit plus sûr, plus simple ou plus rapide (ou une combinaison de tous).
Note de bas de page:
Prefix1, Prefix2 Non Vides, Prefix3, Prefix4, Prefix5, Prefix6, Prefix7, Prefixref
L'Infrastructure. C'est réservé à l'enseignement.
Ce ne sont pas des instructions en tant que tel, Certaines instructions IL sont plus long que les autres. Ces de longueur variable doit commencer avec des préfixes qui ne sont jamais valables sur leur propre pour faire l'analyse claire. Ces préfixe opcodes sont réservés pour qu'ainsi ils ne sont pas utilisés ailleurs. Sans doute quelqu'un de la mise en œuvre d'une instruction switch d'analyseur de pour un IL séquence s'apprécient ces, de sorte qu'ils pourraient piéger ceux et maintenir l'état.