Skip to content
  • Ard Biesheuvel's avatar
    crypto: arm/crc32 - accelerated support based on x86 SSE implementation · d0a3431a
    Ard Biesheuvel authored
    
    
    This is a combination of the the Intel algorithm implemented using SSE
    and PCLMULQDQ instructions from arch/x86/crypto/crc32-pclmul_asm.S, and
    the new CRC32 extensions introduced for both 32-bit and 64-bit ARM in
    version 8 of the architecture. Two versions of the above combo are
    provided, one for CRC32 and one for CRC32C.
    
    The PMULL/NEON algorithm is faster, but operates on blocks of at least
    64 bytes, and on multiples of 16 bytes only. For the remaining input,
    or for all input on systems that lack the PMULL 64x64->128 instructions,
    the CRC32 instructions will be used.
    
    Signed-off-by: default avatarArd Biesheuvel <ard.biesheuvel@linaro.org>
    Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
    d0a3431a