GCC MIPS-32 Convenzioni di chiamata / Definizione frame stack
Domanda
Sembra che non ci siano convenzioni standard definitive di stack frame e linguaggio C (utilizzo del registro e simili) per l'architettura del processore MIPS-32. Cioè, sembra essere completamente all'altezza della catena di strumenti assemblatore / compilatore per definire il proprio frame di stack e convenzioni di chiamata. Ho faticato a trovare un riferimento definitivo di quali convenzioni utilizza il compilatore GCC per il set di istruzioni MIPS-32. Sto utilizzando il compilatore incrociato GCC su Cygwin che ha come target un core MIPS-32 utilizzato in un ambiente incorporato nel kernel open source eCos.
Tutti i riferimenti alla documentazione definitiva su GCC per MIPS-32 in questo settore sarebbero apprezzati.
Soluzione
Hai ragione, questo è un po 'un casino ed è scarsamente documentato. Consiglierei:
- http://math-atlas.sourceforge.net/devel/assembly/ mipsabi32.pdf
- " Vedi MIPS Run " di Dominic Sweetman
- Esame del codice disassemblato generato dal compilatore per verificare eventuali discrepanze con i riferimenti precedenti.
Altri suggerimenti
Fa riferimento a MIPS EABI per RedHat Linux ?
Non mi piacciono i MIPS, ma forse questo Storia ABI MIPS potrebbe aiuto.