diff --git a/src/hw_aarch64.rs b/src/hw_aarch64.rs index 7f84114..d55a8a5 100644 --- a/src/hw_aarch64.rs +++ b/src/hw_aarch64.rs @@ -1,8 +1,6 @@ use crate::hw_tables; use crate::util::{self, U64Le}; - use std::arch::aarch64 as simd; -use std::arch::asm; pub unsafe fn crc32c(crci: u32, buffer: &[u8]) -> u32 { let mut crc0 = !crci; @@ -46,18 +44,8 @@ pub unsafe fn crc32c(crci: u32, buffer: &[u8]) -> u32 { #[inline] #[target_feature(enable = "crc")] -pub unsafe fn __crc32b(mut crc: u32, data: u8) -> u32 { - asm!( - "crc32cb {0:w}, {0:w}, {1:w}", - inout(reg) crc, - in(reg) data, - ); - crc -} - -#[inline] unsafe fn crc_u8(crc: u32, buffer: &[u8]) -> u32 { - buffer.iter().fold(crc, |crc, &next| __crc32b(crc, next)) + buffer.iter().fold(crc, |crc, &next| simd::__crc32cb(crc, next)) } #[inline(always)]