]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
lib/crypto: x86/sha512: Remove unnecessary checks for nblocks==0
authorEric Biggers <ebiggers@kernel.org>
Mon, 30 Jun 2025 16:03:19 +0000 (09:03 -0700)
committerEric Biggers <ebiggers@kernel.org>
Mon, 30 Jun 2025 16:26:20 +0000 (09:26 -0700)
Since sha512_blocks() is called only with nblocks >= 1, remove
unnecessary checks for nblocks == 0 from the x86 SHA-512 assembly code.

Link: https://lore.kernel.org/r/20250630160320.2888-16-ebiggers@kernel.org
Signed-off-by: Eric Biggers <ebiggers@kernel.org>
lib/crypto/x86/sha512-avx-asm.S
lib/crypto/x86/sha512-avx2-asm.S
lib/crypto/x86/sha512-ssse3-asm.S

index 0b5f69179d624c95a4d17b900837a71e0066abf3..7732aa8fd85068e96abda011ef8c08453dbd7efe 100644 (file)
@@ -272,13 +272,10 @@ frame_size = frame_WK + WK_SIZE
 # stored in "data".
 # The size of the message pointed to by "data" must be an integer multiple
 # of SHA512 message blocks.
-# "nblocks" is the message length in SHA512 blocks
+# "nblocks" is the message length in SHA512 blocks.  Must be >= 1.
 ########################################################################
 SYM_FUNC_START(sha512_transform_avx)
 
-       test msglen, msglen
-       je .Lnowork
-
        # Save GPRs
        push    %rbx
        push    %r12
@@ -362,7 +359,6 @@ SYM_FUNC_START(sha512_transform_avx)
        pop     %r12
        pop     %rbx
 
-.Lnowork:
        RET
 SYM_FUNC_END(sha512_transform_avx)
 
index 2309c01e316b960ad5cee6de3e9ee0a39ac8fb02..22bdbfd899d0fa1b9d841779499b4e4f38b79e48 100644 (file)
@@ -564,7 +564,7 @@ frame_size = frame_CTX + CTX_SIZE
 # stored in "data".
 # The size of the message pointed to by "data" must be an integer multiple
 # of SHA512 message blocks.
-# "nblocks" is the message length in SHA512 blocks
+# "nblocks" is the message length in SHA512 blocks.  Must be >= 1.
 ########################################################################
 SYM_FUNC_START(sha512_transform_rorx)
 
@@ -582,7 +582,6 @@ SYM_FUNC_START(sha512_transform_rorx)
        and     $~(0x20 - 1), %rsp
 
        shl     $7, NUM_BLKS    # convert to bytes
-       jz      .Ldone_hash
        add     INP, NUM_BLKS   # pointer to end of data
        mov     NUM_BLKS, frame_INPEND(%rsp)
 
@@ -668,8 +667,6 @@ SYM_FUNC_START(sha512_transform_rorx)
        cmp     frame_INPEND(%rsp), INP
        jne     .Lloop0
 
-.Ldone_hash:
-
        # Restore Stack Pointer
        mov     %rbp, %rsp
        pop     %rbp
index 12e78142f2e382b83e1e4d7c392ce4662a3c5a02..4cae7445b2a864edd1d3a1f9de2380ca235678c4 100644 (file)
@@ -271,13 +271,10 @@ frame_size = frame_WK + WK_SIZE
 # stored in "data".
 # The size of the message pointed to by "data" must be an integer multiple
 # of SHA512 message blocks.
-# "nblocks" is the message length in SHA512 blocks
+# "nblocks" is the message length in SHA512 blocks.  Must be >= 1.
 ########################################################################
 SYM_FUNC_START(sha512_transform_ssse3)
 
-       test msglen, msglen
-       je .Lnowork
-
        # Save GPRs
        push    %rbx
        push    %r12
@@ -361,7 +358,6 @@ SYM_FUNC_START(sha512_transform_ssse3)
        pop     %r12
        pop     %rbx
 
-.Lnowork:
        RET
 SYM_FUNC_END(sha512_transform_ssse3)