From d20c3a0d6b884be65c8bb427e5731a4139d47c39 Mon Sep 17 00:00:00 2001 From: lisicky Date: Mon, 26 Dec 2022 03:06:28 +0400 Subject: [PATCH 1/2] fix avx preprocessor checks --- src/hashing/blake2/mod.rs | 26 ++++++++++++++++++-------- src/hashing/sha2/impl256/mod.rs | 19 +++++++++++++------ 2 files changed, 31 insertions(+), 14 deletions(-) diff --git a/src/hashing/blake2/mod.rs b/src/hashing/blake2/mod.rs index 0e3f350..2ae2f2f 100644 --- a/src/hashing/blake2/mod.rs +++ b/src/hashing/blake2/mod.rs @@ -9,10 +9,10 @@ mod reference; pub use common::LastBlock; -#[cfg(any(target_arch = "x86", target_arch = "x86_64"))] +#[cfg(all(any(target_arch = "x86", target_arch = "x86_64"), target_feature = "avx"))] mod avx; -#[cfg(any(target_arch = "x86", target_arch = "x86_64"))] +#[cfg(all(any(target_arch = "x86", target_arch = "x86_64"), target_feature = "avx2"))] mod avx2; use common::{b, s}; @@ -59,8 +59,11 @@ impl EngineS { #[cfg(not(target_feature = "avx"))] const HAS_AVX: bool = false; - if HAS_AVX { - return avx::compress_s(&mut self.h, &mut self.t, buf, last); + #[cfg(target_feature = "avx")] + { + if HAS_AVX { + return avx::compress_s(&mut self.h, &mut self.t, buf, last); + } } } reference::compress_s(&mut self.h, &mut self.t, buf, last) @@ -115,11 +118,18 @@ impl EngineB { #[cfg(not(target_feature = "avx2"))] const HAS_AVX2: bool = false; - if HAS_AVX2 { - return avx2::compress_b(&mut self.h, &mut self.t, buf, last); + #[cfg(target_feature = "avx2")] + { + if HAS_AVX2 { + return avx2::compress_b(&mut self.h, &mut self.t, buf, last); + } } - if HAS_AVX { - return avx::compress_b(&mut self.h, &mut self.t, buf, last); + + #[cfg(target_feature = "avx")] + { + if HAS_AVX { + return avx::compress_b(&mut self.h, &mut self.t, buf, last); + } } } reference::compress_b(&mut self.h, &mut self.t, buf, last) diff --git a/src/hashing/sha2/impl256/mod.rs b/src/hashing/sha2/impl256/mod.rs index 30365ab..89a35a9 100644 --- a/src/hashing/sha2/impl256/mod.rs +++ b/src/hashing/sha2/impl256/mod.rs @@ -10,9 +10,9 @@ #[cfg(all(target_arch = "aarch64", feature = "use-stdsimd"))] mod aarch64; -#[cfg(any(target_arch = "x86_64", target_arch = "x86"))] +#[cfg(all(any(target_arch = "x86", target_arch = "x86_64"), target_feature = "avx"))] mod avx; -#[cfg(any(target_arch = "x86_64", target_arch = "x86"))] +#[cfg(all(any(target_arch = "x86", target_arch = "x86_64"), target_feature = "sse4.1"))] mod sse41; //TODO not finished yet //#[cfg(all(target_arch = "x86_64", target_feature = "sha"))] @@ -35,11 +35,18 @@ pub(crate) fn digest_block(state: &mut [u32; 8], block: &[u8]) { #[cfg(not(target_feature = "sse4.1"))] const HAS_SSE41: bool = false; - if HAS_AVX { - return avx::digest_block(state, block); + #[cfg(target_feature = "avx")] + { + if HAS_AVX { + return avx::digest_block(state, block); + } } - if HAS_SSE41 { - return sse41::digest_block(state, block); + + #[cfg(target_feature = "sse4.1")] + { + if HAS_SSE41 { + return sse41::digest_block(state, block); + } } } #[cfg(target_arch = "aarch64")] From d7c86b0f0a3d8f05f9163f8ede2584df64943e4c Mon Sep 17 00:00:00 2001 From: lisicky Date: Thu, 5 Jan 2023 02:52:51 +0400 Subject: [PATCH 2/2] fmt --- src/hashing/blake2/mod.rs | 10 ++++++++-- src/hashing/sha2/impl256/mod.rs | 12 ++++++++++-- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/src/hashing/blake2/mod.rs b/src/hashing/blake2/mod.rs index 2ae2f2f..7da4ae1 100644 --- a/src/hashing/blake2/mod.rs +++ b/src/hashing/blake2/mod.rs @@ -9,10 +9,16 @@ mod reference; pub use common::LastBlock; -#[cfg(all(any(target_arch = "x86", target_arch = "x86_64"), target_feature = "avx"))] +#[cfg(all( + any(target_arch = "x86", target_arch = "x86_64"), + target_feature = "avx" +))] mod avx; -#[cfg(all(any(target_arch = "x86", target_arch = "x86_64"), target_feature = "avx2"))] +#[cfg(all( + any(target_arch = "x86", target_arch = "x86_64"), + target_feature = "avx2" +))] mod avx2; use common::{b, s}; diff --git a/src/hashing/sha2/impl256/mod.rs b/src/hashing/sha2/impl256/mod.rs index 89a35a9..a8ef0cb 100644 --- a/src/hashing/sha2/impl256/mod.rs +++ b/src/hashing/sha2/impl256/mod.rs @@ -10,9 +10,17 @@ #[cfg(all(target_arch = "aarch64", feature = "use-stdsimd"))] mod aarch64; -#[cfg(all(any(target_arch = "x86", target_arch = "x86_64"), target_feature = "avx"))] + +#[cfg(all( + any(target_arch = "x86", target_arch = "x86_64"), + target_feature = "avx" +))] mod avx; -#[cfg(all(any(target_arch = "x86", target_arch = "x86_64"), target_feature = "sse4.1"))] + +#[cfg(all( + any(target_arch = "x86", target_arch = "x86_64"), + target_feature = "sse4.1" +))] mod sse41; //TODO not finished yet //#[cfg(all(target_arch = "x86_64", target_feature = "sha"))]