Conventions d'appel GCC MIPS-32 / Définition du cadre de pile
Question
Il ne semble pas exister de convention définitive normalisée pour les cadres de pile et les conventions d'appel en langage C (utilisation du registre, etc.) pour l'architecture de processeur MIPS-32. Autrement dit, il semble que la chaîne d’outils assembleur / compilateur ait tout à fait le droit de définir son propre cadre de pile et ses conventions d’appel. J'ai eu du mal à trouver une référence définitive sur les conventions utilisées par le compilateur GCC pour le jeu d'instructions MIPS-32. J'utilise spécialement le compilateur croisé GCC sur Cygwin qui cible un cœur MIPS-32 utilisé dans un environnement intégré sur le noyau open source eCos.
Toute référence à la documentation définitive sur GCC pour MIPS-32 dans ce domaine serait appréciée.
La solution
Vous avez raison, il s’agit d’un gâchis mal documenté. Je recommanderais:
- http://math-atlas.sourceforge.net/devel/assembly/ mipsabi32.pdf
- " Voir MIPS Run " par Dominic Sweetman
- Examen du code désassemblé généré par le compilateur pour vérifier les anomalies par rapport aux références ci-dessus.
Autres conseils
Cette référence est-elle disponible sur MIAB EABI pour RedHat Linux ?
Je ne suis pas au courant de MIPS, mais peut-être que cette référence de MIPS ABI pourrait aide.