Commit 13954e78 authored by Ard Biesheuvel's avatar Ard Biesheuvel Committed by Herbert Xu

crypto: arm/aes-neonbs - fix issue with v2.22 and older assembler

The GNU assembler for ARM version 2.22 or older fails to infer the
element size from the vmov instructions, and aborts the build in
the following way;

.../aes-neonbs-core.S: Assembler messages:
.../aes-neonbs-core.S:817: Error: bad type for scalar -- `vmov q1h[1],r10'
.../aes-neonbs-core.S:817: Error: bad type for scalar -- `vmov q1h[0],r9'
.../aes-neonbs-core.S:817: Error: bad type for scalar -- `vmov q1l[1],r8'
.../aes-neonbs-core.S:817: Error: bad type for scalar -- `vmov q1l[0],r7'
.../aes-neonbs-core.S:818: Error: bad type for scalar -- `vmov q2h[1],r10'
.../aes-neonbs-core.S:818: Error: bad type for scalar -- `vmov q2h[0],r9'
.../aes-neonbs-core.S:818: Error: bad type for scalar -- `vmov q2l[1],r8'
.../aes-neonbs-core.S:818: Error: bad type for scalar -- `vmov q2l[0],r7'

Fix this by setting the element size explicitly, by replacing vmov with
vmov.32.
Signed-off-by: default avatarArd Biesheuvel <ard.biesheuvel@linaro.org>
Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
parent 76512f2d
...@@ -766,13 +766,13 @@ ENTRY(aesbs_cbc_decrypt) ...@@ -766,13 +766,13 @@ ENTRY(aesbs_cbc_decrypt)
ENDPROC(aesbs_cbc_decrypt) ENDPROC(aesbs_cbc_decrypt)
.macro next_ctr, q .macro next_ctr, q
vmov \q\()h[1], r10 vmov.32 \q\()h[1], r10
adds r10, r10, #1 adds r10, r10, #1
vmov \q\()h[0], r9 vmov.32 \q\()h[0], r9
adcs r9, r9, #0 adcs r9, r9, #0
vmov \q\()l[1], r8 vmov.32 \q\()l[1], r8
adcs r8, r8, #0 adcs r8, r8, #0
vmov \q\()l[0], r7 vmov.32 \q\()l[0], r7
adc r7, r7, #0 adc r7, r7, #0
vrev32.8 \q, \q vrev32.8 \q, \q
.endm .endm
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment