Skip to content

Commit 50fd775

Browse files
authored
zeroize: remove unnecessary cfgs on SIMD type impls (#930)
1 parent 602240f commit 50fd775

File tree

2 files changed

+22
-36
lines changed

2 files changed

+22
-36
lines changed

zeroize/src/aarch64.rs

+11-11
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,13 @@ use crate::{atomic_fence, volatile_write, Zeroize};
88
use core::arch::aarch64::*;
99

1010
macro_rules! impl_zeroize_for_simd_register {
11-
($(($type:ty, $vdupq:ident)),+) => {
11+
($($type:ty),* $(,)?) => {
1212
$(
1313
#[cfg_attr(docsrs, doc(cfg(target_arch = "aarch64")))]
14-
#[cfg_attr(docsrs, doc(cfg(target_feature = "neon")))]
1514
impl Zeroize for $type {
15+
#[inline]
1616
fn zeroize(&mut self) {
17-
volatile_write(self, unsafe { $vdupq(0) });
17+
volatile_write(self, unsafe { core::mem::zeroed() });
1818
atomic_fence();
1919
}
2020
}
@@ -24,12 +24,12 @@ macro_rules! impl_zeroize_for_simd_register {
2424

2525
// TODO(tarcieri): other NEON register types?
2626
impl_zeroize_for_simd_register! {
27-
(uint8x8_t, vdup_n_u8),
28-
(uint8x16_t, vdupq_n_u8),
29-
(uint16x4_t, vdup_n_u16),
30-
(uint16x8_t, vdupq_n_u16),
31-
(uint32x2_t, vdup_n_u32),
32-
(uint32x4_t, vdupq_n_u32),
33-
(uint64x1_t, vdup_n_u64),
34-
(uint64x2_t, vdupq_n_u64)
27+
uint8x8_t,
28+
uint8x16_t,
29+
uint16x4_t,
30+
uint16x8_t,
31+
uint32x2_t,
32+
uint32x4_t,
33+
uint64x1_t,
34+
uint64x2_t,
3535
}

zeroize/src/x86.rs

+11-25
Original file line numberDiff line numberDiff line change
@@ -9,32 +9,18 @@ use core::arch::x86::*;
99
use core::arch::x86_64::*;
1010

1111
macro_rules! impl_zeroize_for_simd_register {
12-
($type:ty, $feature:expr, $zero_value:ident) => {
13-
#[cfg_attr(docsrs, doc(cfg(target_arch = "x86")))] // also `x86_64`
14-
#[cfg_attr(docsrs, doc(cfg(target_feature = $feature)))]
15-
impl Zeroize for $type {
16-
fn zeroize(&mut self) {
17-
volatile_write(self, unsafe { $zero_value() });
18-
atomic_fence();
12+
($($type:ty),* $(,)?) => {
13+
$(
14+
#[cfg_attr(docsrs, doc(cfg(any(target_arch = "x86", target_arch = "x86_64"))))]
15+
impl Zeroize for $type {
16+
#[inline]
17+
fn zeroize(&mut self) {
18+
volatile_write(self, unsafe { core::mem::zeroed() });
19+
atomic_fence();
20+
}
1921
}
20-
}
22+
)*
2123
};
2224
}
2325

24-
#[cfg(target_feature = "sse")]
25-
impl_zeroize_for_simd_register!(__m128, "sse", _mm_setzero_ps);
26-
27-
#[cfg(target_feature = "sse2")]
28-
impl_zeroize_for_simd_register!(__m128d, "sse2", _mm_setzero_pd);
29-
30-
#[cfg(target_feature = "sse2")]
31-
impl_zeroize_for_simd_register!(__m128i, "sse2", _mm_setzero_si128);
32-
33-
#[cfg(target_feature = "avx")]
34-
impl_zeroize_for_simd_register!(__m256, "avx", _mm256_setzero_ps);
35-
36-
#[cfg(target_feature = "avx")]
37-
impl_zeroize_for_simd_register!(__m256d, "avx", _mm256_setzero_pd);
38-
39-
#[cfg(target_feature = "avx")]
40-
impl_zeroize_for_simd_register!(__m256i, "avx", _mm256_setzero_si256);
26+
impl_zeroize_for_simd_register!(__m128, __m128d, __m128i, __m256, __m256d, __m256i);

0 commit comments

Comments
 (0)