【发布时间】:2015-05-27 07:52:42
【问题描述】:
我正在尝试使用几个针对 ARMv8 AArch64 架构编写的程序集文件来编译一个项目(来自 GitHub:link)。当我尝试编译这些文件时,几乎每一行都会出现相同的错误,它的开头是:
authenc_ac_gcm_low.S:汇编器消息:
authenc_ac_gcm_low.S:80: Error: unknown mnemonic `ld1.16b' -- `ld1.16b {v0},[x1]'
authenc_ac_gcm_low.S:81: Error: unknown mnemonic `rbit.16b' -- `rbit.16b v0,v0'
authenc_ac_gcm_low.S:82: Error: unknown mnemonic `st1.16b' -- `st1.16b {v0},[x0]'
authenc_ac_gcm_low.S:90: Error: unknown mnemonic `ld1.16b' -- `ld1.16b {v24},[x0]'
authenc_ac_gcm_low.S:92: Error: unknown mnemonic `ld1.16b' -- `ld1.16b {v0,v1,v2,v3},[x1],#64'
authenc_ac_gcm_low.S:93: Error: unknown mnemonic `ld1.16b' -- `ld1.16b {v4,v5,v6,v7},[x1]'
一小部分代码:(第 78 到 87 行)
ac_gcm_convert_low:
_ac_gcm_convert_low:
ld1.16b {v0}, [x1]
rbit.16b v0, v0
st1.16b {v0}, [x0]
ret
ac_gcm_ghash_low:
_ac_gcm_ghash_low:
cbz x3, exit //this might be the only line it doesn't error
我正在为 AArch64 使用 Linaro 交叉编译器,我使用 -mcpu=cortex-a53+crypto 标志进行编译;不这样做会导致“没有这样的指令”错误。 我对组装的经验很少,显然我在这里犯了一些错误,但我找不到。如何摆脱错误?
【问题讨论】:
-
我见过不同的汇编程序对 neon 指令的助记符略有不同。如果“ld1.16b {v0},[x1]”不起作用,请尝试“ld1 {v0.16b},[x1]”
标签: gcc assembly cross-compiling arm64