crypto: arm/aes-neonbs - replace tweak mask literal with composition
authorArd Biesheuvel <ard.biesheuvel@linaro.org>
Tue, 3 Sep 2019 16:43:27 +0000 (09:43 -0700)
committerHerbert Xu <herbert@gondor.apana.org.au>
Mon, 9 Sep 2019 07:35:28 +0000 (17:35 +1000)
Replace the vector load from memory sequence with a simple instruction
sequence to compose the tweak vector directly.

Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
arch/arm/crypto/aes-neonbs-core.S

index d3eab76b6e1b37d43f19f1cd286323c1e2c461a6..bb75918e4984ac54edfde844ae8d4653063a266c 100644 (file)
@@ -887,10 +887,6 @@ ENDPROC(aesbs_ctr_encrypt)
        veor            \out, \out, \tmp
        .endm
 
-       .align          4
-.Lxts_mul_x:
-       .quad           1, 0x87
-
        /*
         * aesbs_xts_encrypt(u8 out[], u8 const in[], u8 const rk[], int rounds,
         *                   int blocks, u8 iv[])
@@ -899,7 +895,9 @@ ENDPROC(aesbs_ctr_encrypt)
         */
 __xts_prepare8:
        vld1.8          {q14}, [r7]             // load iv
-       __ldr           q15, .Lxts_mul_x        // load tweak mask
+       vmov.i32        d30, #0x87              // compose tweak mask vector
+       vmovl.u32       q15, d30
+       vshr.u64        d30, d31, #7
        vmov            q12, q14
 
        __adr           ip, 0f