Message ID | 1484828612-18956-1-git-send-email-ard.biesheuvel@linaro.org |
---|---|
State | Accepted |
Commit | 13954e788dc7e3a47cc00419c120a63756be4eb1 |
Headers | show |
On Thu, Jan 19, 2017 at 12:23:32PM +0000, Ard Biesheuvel wrote: > 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> Patch applied. Thanks. -- Email: Herbert Xu <herbert@gondor.apana.org.au> Home Page: http://gondor.apana.org.au/~herbert/ PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt -- To unsubscribe from this list: send the line "unsubscribe linux-crypto" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
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
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> --- Please add to the cryptodev-2.6 queue for v4.11 arch/arm/crypto/aes-neonbs-core.S | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) -- 2.7.4 -- To unsubscribe from this list: send the line "unsubscribe linux-crypto" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html