- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
由于这是一个反复出现的主题,因此我提出了一个相关问题。
根据AAPCS :
5.2.1.1 Universal stack constraints
- SP mod 4 = 0. The stack must at all times be aligned to a word boundary
5.2.1.2 Stack constraints at a public interface
- SP mod 8 = 0. The stack must be double-word aligned.
8字节对齐背后的原理是什么?
最佳答案
主要原因是STRD和LDRD只能工作在8字节对齐的地址上。因此,要在堆栈变量上使用它们,堆栈指针需要始终保持 8 字节对齐。
引用ARM Website :
Eight-byte stack alignment is of particular benefit to processors supporting LDRD and STRD instructions, for example, processors based on ARM architecture v5TE and later. If the stack is not eight-byte aligned the use of LDRD and STRD might cause an alignment fault, depending on the target and configuration used.
ARM在这个ABI Advisory Note中也详细解释了它.
关于assembly - 为什么 "Procedure Call Standard for the ARM Architecture"(AAPCS) 要求 SP 8 字节对齐?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25282466/
我目前正在将为 ARM 编写的编译器移植到另一个目标体系结构。我发现 ARM 存在两种不同的 ABI:APCS_ABI 和 AAPCS_ABI。 我用Google搜索并引用了ARM手册,但没有发现它们
我正在尝试使用 GCC 和 ARM Cortex-A7 优化编写内联汇编的数学函数。我的代码是这样的: __inline int __attribute__((pcs("aapcs"))) optAb
问题 C99 standard告诉我们: There may be unnamed padding within a structure object, but not at its beginnin
首先安装跨工具,然后构建工具链,然后构建内核,但是在为RAM编译内核2.6.34时,反复出现错误 root@kali:~/felabs/sysdev/tinysystem/linux-2.6.
由于这是一个反复出现的主题,因此我提出了一个相关问题。 根据AAPCS : 5.2.1.1 Universal stack constraints SP mod 4 = 0. The stack mu
我是一名优秀的程序员,十分优秀!