ERET |
Retour d'exception |
| ARM |
Syntaxe
Paramètres
| Nom |
Description |
| cond |
Ce paramètre optionnel permet d'indiquer le code de condition |
Description
Cette instruction permet d'indiquer un retour d'une exception.
Remarques
- ERET sert à revenir d'un niveau d'exception vers l'état précédent : L'instruction ERET est utilisée pour sortir d'un mode d'exception (comme FIQ,
IRQ, Supervisor) et revenir à l'état du processeur avant l'interruption. Elle restaure le programme counter (PC) et d'autres états à partir du registre de retour
spécifique (ELR, SPSR,... selon le niveau).
- Indispensable dans les systèmes d'exploitation ARM : C'est une instruction clef dans la gestion du cycle d'interruption. Après avoir traité une exception
(comme un appel système, une faute mémoire,...), ERET permet de revenir au code utilisateur ou au contexte normal du noyau de façon contrôlée.
- ERET prend en compte l'état du processeur stocké dans SPSR : Lors d'une exception, ARM sauvegarde automatiquement l'état du processeur dans un registre
appelé SPSR (Saved Program Status Register). ERET restaure cet état (mode, interruptions activées, taille des instructions,...), assurant un retour propre au contexte
initial.
- Utilisée dans les niveaux de privilège élevés (EL1, EL2, EL3) : Sur les architectures ARMv7 et ARMv8, ERET est utilisée principalement dans les niveaux
d'exécution privilégiés (comme EL1/EL2/EL3). Elle est donc inaccessible depuis des niveaux non-privilégiés (comme EL0 ou mode utilisateur).
- La condition {cond} est rarement utilisée avec ERET : Bien que syntaxiquement possible, l'usage d'un code de condition {cond} avec ERET est peu courant. En
pratique, le retour d'exception est généralement inconditionnel, car il marque la fin logique d'une séquence critique d'exception.
- ERET change le flux d'exécution via une mise à jour du PC : Techniquement, ERET agit comme un saut (branch) vers une adresse spécifique (contenue dans
le registre ELR ou LR selon le contexte). Mais contrairement à un simple BX ou MOV PC, elle restaure aussi le contexte (flags, mode) lié à l'exception.
- Une instruction critique pour la sécurité du système : Étant donnée sa capacité à changer l'état du processeur, ERET est très surveillée dans les systèmes
sécurisés. Une mauvaise gestion ou une faille dans l'usage de ERET pourrait permettre à un processus malveillant de sortir d'un mode protégé ou bypasser des
contrôles.
- Elle peut déclencher une erreur si les registres de retour sont corrompus : Si les registres nécessaires à ERET (comme ELR_EL1 ou SPSR_EL1) ont été mal
initialisés ou modifiés par erreur, l'exécution de ERET peut conduire à un comportement imprévisible, voire à une double exception ou un plantage. D'où l'importance
de bien sauvegarder/restaurer ces registres.
Dernière mise à jour : Dimanche, le 12 novembre 2017