【发布时间】:2015-03-02 10:06:16
【问题描述】:
以下汇编代码将导致 iPad air2 上 Xcode6.1.1 目标上出现“exc_bad_access code=259”。
// SP default 16 aligned on function entry,
sub sp,sp,#8
st1 {v8.1d},[sp],#8
虽然新版本不会
sub sp,sp,#16
st1 {v8.1d},[sp],#8
我发现 ARMv8_ISA 文档提到“对齐”
第 3 章:大多数加载和存储都允许未对齐的地址,包括...SIMD 寄存器 第 5.8.24.1 章:...后增量立即偏移量(如果存在)必须是 8/16/24/32/48/64,具体取决于传输的元素数量。
上面的代码传输大小是dword(8bytes),为什么要强制qword对齐?顺便说一句,我没有在 Android ndk r10 上测试过它,所以我不确认它对 aarch64 或 Xcode 的限制? 有什么建议吗?谢谢!
【问题讨论】:
标签: xcode assembly gnu-assembler arm64