crypto: arm/aes - avoid reserved 'tt' mnemonic in asm code
authorArd Biesheuvel <ard.biesheuvel@linaro.org>
Fri, 13 Jan 2017 08:33:26 +0000 (08:33 +0000)
committerHerbert Xu <herbert@gondor.apana.org.au>
Fri, 13 Jan 2017 10:47:21 +0000 (18:47 +0800)
The ARMv8-M architecture introduces 'tt' and 'ttt' instructions,
which means we can no longer use 'tt' as a register alias on recent
versions of binutils for ARM. So replace the alias with 'ttab'.

Fixes: 81edb4262975 ("crypto: arm/aes - replace scalar AES cipher")
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
arch/arm/crypto/aes-cipher-core.S

index b04261e1e0681238535d297924f4756c622bb1f0..c817a86c4ca89e1472a15b0ede4ba6e654b4c399 100644 (file)
@@ -18,7 +18,7 @@
        rounds          .req    r1
        in              .req    r2
        out             .req    r3
-       tt              .req    ip
+       ttab            .req    ip
 
        t0              .req    lr
        t1              .req    r2
@@ -34,9 +34,9 @@
 
        .macro          __load, out, in, idx
        .if             __LINUX_ARM_ARCH__ < 7 && \idx > 0
-       ldr             \out, [tt, \in, lsr #(8 * \idx) - 2]
+       ldr             \out, [ttab, \in, lsr #(8 * \idx) - 2]
        .else
-       ldr             \out, [tt, \in, lsl #2]
+       ldr             \out, [ttab, \in, lsl #2]
        .endif
        .endm
 
        eor             r6, r6, r10
        eor             r7, r7, r11
 
-       __adrl          tt, \ttab
+       __adrl          ttab, \ttab
 
        tst             rounds, #2
        bne             1f
 
 1:     subs            rounds, rounds, #4
        \round          r8, r9, r10, r11, r4, r5, r6, r7
-       __adrl          tt, \ltab, ls
+       __adrl          ttab, \ltab, ls
        \round          r4, r5, r6, r7, r8, r9, r10, r11
        bhi             0b