#[inline(always)]
pub unsafe fn prefetch_l1(ptr: *const u8) {
#[cfg(target_arch = "aarch64")]
{
core::arch::asm!(
"prfm pldl1keep, [{ptr}]",
ptr = in(reg) ptr,
options(nostack, preserves_flags),
);
}
#[cfg(not(target_arch = "aarch64"))]
{
let _ = ptr;
}
}
#[inline(always)]
pub unsafe fn prefetch_l2(ptr: *const u8) {
#[cfg(target_arch = "aarch64")]
{
core::arch::asm!(
"prfm pldl2keep, [{ptr}]",
ptr = in(reg) ptr,
options(nostack, preserves_flags),
);
}
#[cfg(not(target_arch = "aarch64"))]
{
let _ = ptr;
}
}
#[inline(always)]
pub unsafe fn prefetch_l1_write(ptr: *mut u8) {
#[cfg(target_arch = "aarch64")]
{
core::arch::asm!(
"prfm pstl1keep, [{ptr}]",
ptr = in(reg) ptr,
options(nostack, preserves_flags),
);
}
#[cfg(not(target_arch = "aarch64"))]
{
let _ = ptr;
}
}