crypto: arm64/aes-neonbs - replace tweak mask literal with composition
authorArd Biesheuvel <ard.biesheuvel@linaro.org>
Tue, 3 Sep 2019 16:43:28 +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/arm64/crypto/aes-neonbs-core.S

index cf10ff8878a3d9387b8e9ac2f4e4740f1603c391..65982039fa3653faf9d9dc369c8b163b5ae95cc1 100644 (file)
@@ -730,11 +730,6 @@ ENDPROC(aesbs_cbc_decrypt)
        eor             \out\().16b, \out\().16b, \tmp\().16b
        .endm
 
-       .align          4
-.Lxts_mul_x:
-CPU_LE(        .quad           1, 0x87         )
-CPU_BE(        .quad           0x87, 1         )
-
        /*
         * aesbs_xts_encrypt(u8 out[], u8 const in[], u8 const rk[], int rounds,
         *                   int blocks, u8 iv[])
@@ -806,7 +801,9 @@ ENDPROC(__xts_crypt8)
        mov             x23, x4
        mov             x24, x5
 
-0:     ldr             q30, .Lxts_mul_x
+0:     movi            v30.2s, #0x1
+       movi            v25.2s, #0x87
+       uzp1            v30.4s, v30.4s, v25.4s
        ld1             {v25.16b}, [x24]
 
 99:    adr             x7, \do8