我試圖編譯一個項目(從GitHub:link)與幾個彙編文件,這是爲ARMv8 AArch64架構編寫的。當我嘗試編譯這些文件,我得到的幾乎每一個行上同樣的錯誤,它的開頭爲:裝配未知助記符AArch64 ARMv8
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]'
代碼的小部分: (直到87線78)
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 =皮質-A53 +加密標誌;不這樣做導致「沒有這樣的指令」錯誤。 我對Assembly的經驗很少,顯然我在這裏犯了一些錯誤,但是我找不到它。如何擺脫錯誤?
我見過不同的彙編器有氖指令略有不同的助記符。如果「ld1.16b {v0},[x1]」不起作用,請嘗試「ld1 {v0.16b},[x1]」 – BitBank