默认情况下,任何大类型(大于 4 字节)在 EABI 上都将对齐到 8 字节。这意味着如果function(u32, u64)
调用, u32 进入,并且 u64 在andr0
之间分割,不使用。r2
r3
r1
我怎样才能让编译器将它对齐到 4 字节呢?我理解这个(打破 ABI)或其他的后果,但我并不在乎。也不建议使用 OABI,因为在内核配置中启用 OABI 会禁用对 ARMv7 的支持。
使用 4 字节对齐,u32 仍将进入,r0
但 u64 现在将在r1
和之间拆分r2
。