• Nicolas Pitre's avatar
    [ARM] 2930/1: optimized sha1 implementation for ARM · c09f9827
    Nicolas Pitre authored
    Patch from Nicolas Pitre
    
    Here's an ARM assembly SHA1 implementation to replace the default C
    version. It is approximately 50% faster than the generic C version. On
    an XScale processor running at 400MHz:
    	generic C version:	9.8 MB/s
    	my version:		14.5 MB/s
    This code is useful to quite a few callers in the tree:
    crypto/sha1.c:		sha_transform(sctx->state, sctx->buffer, temp);
    crypto/sha1.c:			sha_transform(sctx->state, &data[i], temp);
    drivers/char/random.c:		sha_transform(buf, (__u8 *)r->pool+i, buf + 5);
    drivers/char/random.c:	sha_transform(buf, (__u8 *)data, buf + 5);
    net/ipv4/syncookies.c:	sha_transform(tmp + 16, (__u8 *)tmp, tmp + 16 + 5);
    Signed-off-by: default avatarNicolas Pitre <nico@cam.org>
    Seems to work fine on big-endian as well.
    Signed-off-by: default avatarLennert Buytenhek <buytenh@wantstofly.org>
    Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
    c09f9827
sha1.S 3.83 KB