Qu'est-ce que Registre sauvegardé par l'appelant (caller-saved) ?

Registre que la fonction appelée peut modifier librement. Si sa valeur est nécessaire après l'appel, l'appelant doit la sauvegarder. En RISC-V : t0 à t6 et a0 à a7.

Nom japonais: 呼び出し元保存レジスタ

« Registre sauvegardé par l'appelant (caller-saved) » apparaît dans 1 questions d'entraînement réparties sur 1 thèmes, dont ISA et assembleur.

Domaine: ISA et assembleur

S'entraîner : questions sur Registre sauvegardé par l'appelant (caller-saved)

Dans la convention d'appel RISC-V, t0 à t6 sont des registres « sauvegardés par l'appelant » (caller-saved). Si une fonction veut continuer à utiliser une valeur placée dans t0 après avoir appelé une autre fonction, quelle est la démarche correcte ?

  1. ANe rien faire : la fonction appelée restaure toujours t0
  2. Bt0 ne pouvant être modifié par d'autres fonctions, on peut l'utiliser tel quel
  3. CSauvegarder la valeur de t0, sur la pile par exemple, avant l'appel, et la restaurer après
Afficher la réponse et l'explication

Réponse : C. Sauvegarder la valeur de t0, sur la pile par exemple, avant l'appel, et la restaurer après

Les registres t peuvent être utilisés librement par la fonction appelée sans sauvegarde. Si la valeur est nécessaire après l'appel, l'appelant doit donc la sauvegarder lui-même. Répartir, registre par registre, la responsabilité de la sauvegarde entre appelant et appelé permet à de nombreuses fonctions d'utiliser des registres temporaires sans coût de sauvegarde, et réduit globalement le nombre de sauvegardes et de restaurations.

Questions mentionnant « Registre sauvegardé par l'appelant (caller-saved) » (1)

  1. Dans la convention d'appel RISC-V, t0 à t6 sont des registres « sauvegardés par l'appelant » (caller-saved). Si une fonction veut continuer à utiliser une valeur placée dans t0 après avoir appelé une autre fonction, quelle est la démarche correcte ?

Termes associés

Convention d'appel ABI (interface binaire d'application) Adressage relatif au PC Adresse de retour Architecture load-store Assembleur Cadre de pile (stack frame) Codes de condition Créneau de délai de branchement (delay slot) Extension de signe

Retour au glossaire