GCC MIPS-32 调用约定/堆栈帧定义
题
MIPS-32 处理器架构似乎没有明确的标准化堆栈框架和 C 语言调用约定(寄存器使用等)。也就是说,似乎完全由汇编器/编译器工具链来定义自己的堆栈框架和调用约定。我一直在努力寻找关于 GCC 编译器用于 MIPS-32 指令集的约定的明确参考。我专门在 Cygwin 上使用 GCC 交叉编译器,该编译器的目标是在 eCos 开源内核的嵌入式环境中使用的 MIPS-32 内核。
任何有关该领域 MIPS-32 GCC 的权威文档的参考都将不胜感激。
解决方案
你是对的,这有点混乱,而且记录很少。我会推荐:
- http://math-atlas.sourceforge.net/devel/ assembly/mipsabi32.pdf
- 多米尼克·斯威特曼 (Dominic Sweetman) 的《See MIPS Run》
- 检查编译器生成的反汇编代码,以检查与上述引用是否存在差异。
其他提示
请参阅针对RedHat Linux的MIPS EABI 帮助?
我不参与MIPS,但也许这个 MIPS ABI历史参考可能帮助
不隶属于 StackOverflow