use crate::{ARCH, Arch};
#[cfg(target_arch = "x86")]
use ::core::arch::x86::{__rdtscp, _rdtsc};
#[cfg(target_arch = "x86_64")]
use ::core::arch::x86_64::{__rdtscp, _rdtsc};
impl Arch {
#[doc = concat!("See `::core::arch::", ARCH!(), "::`[`_rdtsc()`].")]
#[must_use]
#[inline(always)]
pub fn rdtsc() -> u64 {
unsafe { _rdtsc() }
}
#[doc = concat!("See `::core::arch::", ARCH!(), "::`[`__rdtscp()`].")]
#[must_use]
#[inline(always)]
pub fn rdtscp() -> (u64, u32) {
let mut aux: u32 = 0;
let res = unsafe { __rdtscp(&mut aux as *mut u32) };
(res, aux)
}
}