Minor fixes to SHA assembly implementations
authorJussi Kivilinna <jussi.kivilinna@iki.fi>
Sat, 14 Dec 2013 09:23:03 +0000 (11:23 +0200)
committerJussi Kivilinna <jussi.kivilinna@iki.fi>
Sat, 14 Dec 2013 09:23:03 +0000 (11:23 +0200)
* cipher/Makefile.am: Correct 'sha256-avx*.S' to 'sha512-avx*.S'.
* cipher/sha1-ssse3-amd64.S: First line, correct filename.
* cipher/sha256-ssse3-amd64.S: Return correct stack burn depth.
* cipher/sha512-avx-amd64.S: Use 'vzeroall' to clear registers.
* cipher/sha512-avx2-bmi2-amd64.S: Ditto and return correct stack burn
depth.
--

Signed-off-by: Jussi Kivilinna <jussi.kivilinna@iki.fi>
cipher/Makefile.am
cipher/sha1-ssse3-amd64.S
cipher/sha256-ssse3-amd64.S
cipher/sha512-avx-amd64.S
cipher/sha512-avx2-bmi2-amd64.S

index 7d737e2..a1718c5 100644 (file)
@@ -78,8 +78,9 @@ scrypt.c \
 seed.c \
 serpent.c serpent-sse2-amd64.S serpent-avx2-amd64.S \
 sha1.c sha1-ssse3-amd64.S \
-sha256.c sha256-ssse3-amd64.S sha256-avx-amd64.S sha256-avx2-bmi2-amd64.S \
-sha512.c sha512-ssse3-amd64.S sha512-armv7-neon.S \
+sha256.c sha256-ssse3-amd64.S \
+sha512.c sha512-ssse3-amd64.S sha512-avx-amd64.S sha512-avx2-bmi2-amd64.S \
+  sha512-armv7-neon.S \
 stribog.c \
 tiger.c \
 whirlpool.c \
index cf8c079..5e5716b 100644 (file)
@@ -1,4 +1,4 @@
-/* sha1-ssse3-amd64.c - Intel SSSE3 accelerated SHA-1 transform function
+/* sha1-ssse3-amd64.S - Intel SSSE3 accelerated SHA-1 transform function
  * Copyright © 2013 Jussi Kivilinna <jussi.kivilinna@iki.fi>
  *
  * Based on sha1.c:
index bcf0e19..9b27f8f 100644 (file)
@@ -504,7 +504,7 @@ _gcry_sha256_transform_amd64_ssse3:
        pop     rbp
        pop     rbx
 
-       mov     rax, STACK_SIZE
+       mov     eax, STACK_SIZE + 5*8
        ret
 
 
index 900936e..3449b87 100644 (file)
@@ -348,17 +348,7 @@ _gcry_sha512_transform_amd64_avx:
        /* Restore Stack Pointer */
        add     rsp, frame_size
 
-       vzeroupper
-       pxor    xmm0, xmm0
-       pxor    xmm1, xmm1
-       pxor    xmm2, xmm2
-       pxor    xmm3, xmm3
-       pxor    xmm4, xmm4
-       pxor    xmm5, xmm5
-       pxor    xmm6, xmm6
-       pxor    xmm7, xmm7
-       pxor    xmm8, xmm8
-       pxor    xmm9, xmm9
+       vzeroall
 
        /* Return stack burn depth */
        mov     rax, frame_size
index 9ece4fd..d6301f3 100644 (file)
@@ -719,19 +719,9 @@ _gcry_sha512_transform_amd64_avx2:
        /* Restore Stack Pointer */
        mov     rsp, [rsp + frame_RSPSAVE]
 
-       vzeroupper
-       pxor    xmm0, xmm0
-       pxor    xmm1, xmm1
-       pxor    xmm2, xmm2
-       pxor    xmm3, xmm3
-       pxor    xmm4, xmm4
-       pxor    xmm5, xmm5
-       pxor    xmm6, xmm6
-       pxor    xmm7, xmm7
-       pxor    xmm8, xmm8
-       pxor    xmm9, xmm9
-
-       mov     rax, frame_size
+       vzeroall
+
+       mov     eax, frame_size + 31
 .Lnowork:
        ret