Martial Demolins (./29) :Kevin Kofler (./25) :
./23> Voilà pourquoi je dis de toujours partir du principe qu'une fonction détruit d0-d2/a0-a1 pas plus ni moins.
Hé, où sont partis mes signes '%'?

Martial Demolins (./1) :
La question que je me pose est de savoir si il convient mieux d'établirue convention de destruction des registres (genre d0-d2/a0-a1, au hasard) pour chaque fonction, ou s'il est plus avantageux de faire sauvegarder et restaurer les registres par chaque fonction? Je suppose que ceux qui ont de l'expérience dans les programmes de taille asuront me répondre.
Pollux (./45) :
(le must en vitesse étant de passer l'adresse de retour dans un registre d'adresse et pas sur la pile)
Kevin Kofler (./47) :Pollux (./45) :
(le must en vitesse étant de passer l'adresse de retour dans un registre d'adresse et pas sur la pile)
L'appel prend le même temps (le lea x(%pc),%an prend 8 cycles, la différence entre un jbsr et un jbra), le retour 8 cycles de moins (8 au lieu de 16), et tu as gaspillé 4 octets et surtout un registre dans la fonction appelée (ce qui va te faire perdre de la performance en général, et si tu sauvegardes/restaures un registre sur la pile pour compenser, ça te coûte plus que 8 cycles). Donc je ne suis pas convaincu que ce soit une bonne idée.