MCR2 |
Déplace du coprocesseur au registre 2 |
| ARM |
Syntaxe
|
MCR2{cond} coproc, #opcode1, Rt, CRn, CRm{, #opcode2}
|
Paramètres
| Nom |
Description |
| cond |
Ce paramètre optionnel permet d'indiquer le code de condition |
| coproc |
Ce paramètre permet d'indiquer le nom de l'instruction de coprocesseur |
| opcode1 |
Ce paramètre permet d'indiquer le opcode de coprocesseur en 3 bits. |
| Rt |
Ce paramètre permet d'indiquer le registre source ARM. Le registre ne doit pas être PC. |
| CRn |
Ce paramètre permet d'indiquer le premier opérande de registre de coprocesseur. |
| CRm |
Ce paramètre permet d'indiquer le deuxième opérande de registre de coprocesseur. |
| opcode2 |
Ce paramètre optionnel permet d'indiquer le opcode de coprocesseur en 3 bits. |
Description
Cette instruction permet de déplacer des données du coprocesseur vers un registre ARM pour l'architecture ARMv5T.
Remarques
- Instruction spécifique aux coprocesseurs externes : L'instruction MCR2 est très proche de MCR, mais elle s'adresse à un autre espace de coprocesseur, en
général pour des coprocesseurs externes ou non standards. Elle est utile lorsque le système ARM possède plusieurs coprocesseurs distincts nécessitant une séparation
claire des instructions.
- Structure similaire à MCR : La structure de l'instruction reprend les mêmes éléments que MCR : coproc, opcode1, Rt, CRn, CRm, et opcode2. Cela permet
une cohérence syntaxique tout en élargissant les possibilités d'extension pour les fabricants de matériel ou de coprocesseurs personnalisés.
- Pas pour le registre PC : Le registre ARM Rt ne doit jamais être le registre PC (R15) dans l'instruction MCR2. Cela garantirait un comportement sûr,
évitant des effets secondaires indésirables comme une exécution imprévisible ou des erreurs système.
- Instruction privilégiée : Comme MCR, MCR2 est généralement une instruction privilégiée. Elle nécessite un accès en mode superviseur ou un niveau
équivalent, car elle affecte des registres qui peuvent contrôler ou configurer des parties critiques du système.
- Nécessite une documentation spécifique au coprocesseur : La signification exacte des paramètres comme opcode1, opcode2, CRn, et CRm varie selon le
coprocesseur ciblé. Il est donc impératif de consulter la documentation du coprocesseur externe (ou "coprocessor 2") pour comprendre l'effet de l'instruction.
- Faible utilisation générale : Contrairement à MCR, l'instruction MCR2 est peu utilisée dans les systèmes ARM classiques, car elle concerne des extensions
matérielles spécifiques. Elle est souvent réservée à des applications très spécialisées (cryptographie, DSP, coprocesseurs personnalisés...).
- Partenaire de MRC2 : De la même manière que MCR a un pendant (MRC), MCR2 est complémentaire de MRC2, qui permet de récupérer une valeur depuis le
coprocesseur 2 vers un registre ARM. Ces deux instructions sont souvent utilisées ensemble pour configurer et lire l'état de ce coprocesseur.
- Dépendante de l'implémentation matérielle : Toutes les implémentations ARM ne prennent pas en charge l'instruction MCR2. Elle dépend de la présence
effective d'un coprocesseur 2 dans le SoC (System on Chip) et de la compatibilité du processeur avec cette instruction. Elle peut donc être absente sur de nombreux
systèmes ARM génériques.
Dernière mise à jour : Dimanche, le 12 novembre 2017