Convenciones de llamadas de GCC MIPS-32 / Definición de marco de pila
Pregunta
Parece que no hay un marco de pila estandarizado definitivo y convenciones de llamadas de lenguaje C (uso de registros y demás) para la arquitectura de procesador MIPS-32. Es decir, parece estar completamente a la altura de la cadena de herramientas del ensamblador / compilador para definir su propio marco de pila y convenciones de llamada. Me costó encontrar una referencia definitiva de qué convenciones utiliza el compilador GCC para el conjunto de instrucciones MIPS-32. Estoy utilizando especialmente el compilador cruzado GCC en Cygwin que se dirige a un núcleo MIPS-32 que se usa en un entorno integrado en el kernel de código abierto de eCos.
Cualquier referencia a la documentación definitiva sobre GCC para MIPS-32 en esta área sería apreciada.
Solución
Tienes razón, esto es un poco desordenado y está mal documentado. Yo recomendaría:
- http://math-atlas.sourceforge.net/devel/assembly/ mipsabi32.pdf
- " Ver Ejecutar MIPS " por Dominic Sweetman
- Examinar el código desensamblado generado por el compilador para buscar discrepancias con las referencias anteriores.
Otros consejos
Hace esta referencia en MIPS EABI para RedHat Linux ayuda ?
No estoy interesado en MIPS, pero tal vez esta MIPS ABI History referencia podría ayuda.