• Michael Cree's avatar
    alpha: Use new generic strncpy_from_user() and strnlen_user() · f2db633d
    Michael Cree authored
    Similar to x86/sparc/powerpc implementations except:
    1) we implement an extremely efficient has_zero()/find_zero()
       sequence with both prep_zero_mask() and create_zero_mask()
       no-operations.
    2) Our output from prep_zero_mask() differs in that only the
       lowest eight bits are used to represent the zero bytes
       nevertheless it can be safely ORed with other similar masks
       from prep_zero_mask() and forms input to create_zero_mask(),
       the two fundamental properties prep_zero_mask() must satisfy.
    
    Tests on EV67 and EV68 CPUs revealed that the generic code is
    essentially as fast (to within 0.5% of CPU cycles) of the old
    Alpha specific code for large quadword-aligned strings, despite
    the 30% extra CPU instructions executed.  In contrast, the
    generic code for unaligned strings is substantially slower (by
    more than a factor of 3) than the old Alpha specific code.
    Signed-off-by: default avatarMichael Cree <mcree@orcon.net.nz>
    Acked-by: default avatarMatt Turner <mattst88@gmail.com>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    f2db633d
word-at-a-time.h 1.24 KB