2009-05-01 13 views
10

Non sembra esserci alcuna convenzione di stack standard e convenzioni di linguaggio C (utilizzo del registro e così via) per l'architettura del processore MIPS-32. Cioè, sembra che sia completamente alla catena degli strumenti assemblatore/compilatore definire il proprio stack frame e le convenzioni di chiamata. Ho faticato a trovare un riferimento definitivo su quali convenzioni il compilatore GCC utilizza per il set di istruzioni MIPS-32. In particolare utilizzo il cross-compiler GCC su Cygwin che si rivolge a un core MIPS-32 utilizzato in un ambiente embedded sul kernel open source di eCos.GCC MIPS-32 Convenzioni di chiamata/Definizione frame stack

Qualsiasi riferimento alla documentazione definitiva su GCC per MIPS-32 in questo settore sarebbe apprezzato.

risposta

5

Hai ragione, questo è un po 'un disastro ed è scarsamente documentato. Suggerirei:

+0

Grazie per i riferimenti. Ho effettivamente guardato il codice generato e la maggior parte di esso l'ho capito, ma è difficile sapere che effettivamente il caso generale è ben definito per tutti i vari tipi di parametri e combinazioni, ecc. –

4

Non sono in MIPS, ma forse questo riferimento MIPS ABI History potrebbe essere d'aiuto.

+1

Questo link non funziona più. Il nuovo collegamento sembra essere: http://www.linux-mips.org/wiki/MIPS_ABI_History – antoyo