WinCE 和 Linux 在 ARM 上使用相同的调用约定吗?有什么区别?
到目前为止,我找到的文件并没有很好地解释。例如,在http://msdn.microsoft.com/en-us/library/ms864497.aspx上,一行显示“Windows CE .NET 编译器”,下一行显示“ARM 编译器”,以及“CLARM” "在底部,不清楚是指同一个编译器还是不同的编译器。这是我到目前为止发现的...
- ARM 调用序列规范(WinCE) - 编写不佳的文档
- ARM 到 C 调用约定(Linux) - 非正式解释
- Wikipedia - 没有指定操作系统,也没有说明如何处理结构、浮点数或 64 位数字,也没有说明额外参数的放置位置,以防它们不适合寄存器。
- 更新:ARM 体系结构的过程调用标准- 最后我找到了一份综合文档,但它没有说明哪些操作系统遵循该标准(或者这些操作系统可能施加的变体或附加限制)。
我问的原因是我想尝试在 WinCE 中使用 LLVM 在运行时生成一些简单的代码,但它只正式支持 Linux。