There appears to be no
definitive standardized stack frame and C language calling conventions
(register usage and such) for the MIPS-32 Processor Architecture. That
is, it appears to be completely up to the assembler/compiler tool chain
to define their own stack frame and calling conventions. I've struggled
to find a definitive reference of what conventions the GCC compiler
uses for MIPS-32 instruction set. I'm specially using GCC
cross-compiler on Cygwin that targets a MIPS-32 core being used in an
embedded environment on the eCos open source kernel.
Any references to definitive documentation about GCC for MIPS-32 in this area would be appreciated.
You are right, this is a bit of a mess and is poorly documented. I would recommend: