|
|
1
2
调用约定是由编译器实现的,而不是特定于操作系统的约定。已经说过,我可以确认GCC和RVCT(ARM的C/C++编译器)都生成遵循上面提到的ARM体系结构的过程调用约定的代码。 查看到Microsoft文档的链接,我还可以确认它遵循了ARM调用约定。 |
|
|
2
1
我遇到的问题和我试图找到答案的问题完全一样。也就是说,在哪里/什么文档说了什么或定义了Linux下使用的ARMABI。 以下文件是我最接近答案的文件
它是由代码源代码编写的,其摘要在我看来是对上述问题的答案,即:
这个
但是,由于本文档中发布的ABI设计时没有参考特定的操作系统,因此有一些方面仍然未指明。 显然,codesourcery的文档旨在通过指定在使用GNU/Linux操作系统时为这些方面所做的决策来补充ARM体系结构的ABI。 我提供了一个指向此文档的链接(其他链接可以通过搜索文档标题找到): http://www.boost.org/doc/libs/1_51_0_beta1/libs/context/doc/pdf/arm-linux-aapcs.pdf 似乎没有一个在Linux下指定ARMABI的标准,而且代码源代码编写的文档似乎也试图涵盖这一方面。 |
|
|
Daniel · 仅在-O3中进行未对齐的内存访问 2 年前 |
|
|
TRElec · STM32:代码的执行似乎取决于它在闪存中的位置 2 年前 |
|
|
Marietto · FATAL:ThreadManitizer:不支持的VMA范围FATAL:找到39-支持的48/go:添加了github.com/docker/docker v23.0.4+不兼容 3 年前 |
|
|
Ilya Loskutov · 无法将单词加载到寄存器中 3 年前 |