symm/rijndael-arm64-crypto.S: Fix bogus element-to-GP move.
authorMark Wooding <mdw@distorted.org.uk>
Wed, 18 Sep 2019 17:24:49 +0000 (18:24 +0100)
committerMark Wooding <mdw@distorted.org.uk>
Wed, 18 Sep 2019 17:24:49 +0000 (18:24 +0100)
Spotted by Clang's assembler.  GAS is obviously too lenient.

symm/rijndael-arm64-crypto.S

index f2d3f45..98f6173 100644 (file)
@@ -110,7 +110,7 @@ FUNC(rijndael_setup_arm64_crypto)
        // the byte substitution.
        dup     v0.4s, w14
        aese    v0.16b, v1.16b          // effectively, just SubBytes
-       mov     w14, v0.4s[0]
+       mov     w14, v0.s[0]
        b       2f
 
        // First word of the cycle.  Byte substitution, rotation, and round
@@ -118,7 +118,7 @@ FUNC(rijndael_setup_arm64_crypto)
 1:     ldrb    w13, [x5], #1           // next round constant
        dup     v0.4s, w14
        aese    v0.16b, v1.16b          // effectively, just SubBytes
-       mov     w14, v0.4s[0]
+       mov     w14, v0.s[0]
        eor     w14, w13, w14, ror #8
 
        // Common ending: mix in the word from the previous cycle and store.