summaryrefslogtreecommitdiffstats
path: root/arch/arm/crypto
diff options
context:
space:
mode:
authorArd Biesheuvel <ard.biesheuvel@linaro.org>2017-01-19 12:23:32 +0000
committerHerbert Xu <herbert@gondor.apana.org.au>2017-01-23 22:50:25 +0800
commit13954e788dc7e3a47cc00419c120a63756be4eb1 (patch)
treecdd53114fc169f391129f15e33021d8dd2b34d45 /arch/arm/crypto
parent76512f2d8ca5e68160f4df0dead5e8e7b4bdb08e (diff)
downloadlinux-13954e788dc7e3a47cc00419c120a63756be4eb1.tar.bz2
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: Ard Biesheuvel <ard.biesheuvel@linaro.org> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'arch/arm/crypto')
-rw-r--r--arch/arm/crypto/aes-neonbs-core.S8
1 files changed, 4 insertions, 4 deletions
diff --git a/arch/arm/crypto/aes-neonbs-core.S b/arch/arm/crypto/aes-neonbs-core.S
index c9477044fbba..12da247164d1 100644
--- a/arch/arm/crypto/aes-neonbs-core.S
+++ b/arch/arm/crypto/aes-neonbs-core.S
@@ -766,13 +766,13 @@ ENTRY(aesbs_cbc_decrypt)
ENDPROC(aesbs_cbc_decrypt)
.macro next_ctr, q
- vmov \q\()h[1], r10
+ vmov.32 \q\()h[1], r10
adds r10, r10, #1
- vmov \q\()h[0], r9
+ vmov.32 \q\()h[0], r9
adcs r9, r9, #0
- vmov \q\()l[1], r8
+ vmov.32 \q\()l[1], r8
adcs r8, r8, #0
- vmov \q\()l[0], r7
+ vmov.32 \q\()l[0], r7
adc r7, r7, #0
vrev32.8 \q, \q
.endm