Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.busybox.net/busybox.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2023-03-29 16:17:00 +0300
committerDenys Vlasenko <vda.linux@googlemail.com>2023-03-29 16:50:40 +0300
commit8d198665a0d09c3f22f3a12234809f46b1c2b04a (patch)
tree5ff1358a6e7ce7489793dd2cbc6fd5595ebd1104
parentc0bb90e2fe56b74af34047d446e7758172bbf4b7 (diff)
libbb/sha: fix sha-NI instruction detection
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-rw-r--r--libbb/hash_md5_sha.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/libbb/hash_md5_sha.c b/libbb/hash_md5_sha.c
index 880ffab01..bbe58c77b 100644
--- a/libbb/hash_md5_sha.c
+++ b/libbb/hash_md5_sha.c
@@ -1178,7 +1178,7 @@ void FAST_FUNC sha1_begin(sha1_ctx_t *ctx)
if (!shaNI) {
unsigned eax = 7, ebx = ebx, ecx = 0, edx = edx;
cpuid(&eax, &ebx, &ecx, &edx);
- shaNI = ((ebx >> 29) << 1) - 1;
+ shaNI = ((ebx >> 28) & 2) - 1; /* bit 29 -> 1 or -1 */
}
if (shaNI > 0)
ctx->process_block = sha1_process_block64_shaNI;
@@ -1232,7 +1232,7 @@ void FAST_FUNC sha256_begin(sha256_ctx_t *ctx)
if (!shaNI) {
unsigned eax = 7, ebx = ebx, ecx = 0, edx = edx;
cpuid(&eax, &ebx, &ecx, &edx);
- shaNI = ((ebx >> 29) << 1) - 1;
+ shaNI = ((ebx >> 28) & 2) - 1; /* bit 29 -> 1 or -1 */
}
if (shaNI > 0)
ctx->process_block = sha256_process_block64_shaNI;