1. 22 Aug, 2019 39 commits
  2. 15 Aug, 2019 1 commit
    • Ard Biesheuvel's avatar
      crypto: arm64/aegis128 - implement plain NEON version · 19842963
      Ard Biesheuvel authored
      Provide a version of the core AES transform to the aegis128 SIMD
      code that does not rely on the special AES instructions, but uses
      plain NEON instructions instead. This allows the SIMD version of
      the aegis128 driver to be used on arm64 systems that do not
      implement those instructions (which are not mandatory in the
      architecture), such as the Raspberry Pi 3.
      
      Since GCC makes a mess of this when using the tbl/tbx intrinsics
      to perform the sbox substitution, preload the Sbox into v16..v31
      in this case and use inline asm to emit the tbl/tbx instructions.
      Clang does not support this approach, nor does it require it, since
      it does a much better job at code generation, so there we use the
      intrinsics as usual.
      
      Cc: Nick Desaulniers <ndesaulniers@google.com>
      Signed-off-by: default avatarArd Biesheuvel <ard.biesheuvel@linaro.org>
      Acked-by: default avatarNick Desaulniers <ndesaulniers@google.com>
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      19842963