diff --git a/src/cpucounter.c b/src/cpucounter.c index fce42e2..23fd47c 100644 --- a/src/cpucounter.c +++ b/src/cpucounter.c @@ -4,14 +4,18 @@ uint64_t cpucounter(void) { uint64_t low, high; - __asm__ __volatile__ ("rdtscp" : "=a" (low), "=d" (high) : : "%ecx"); + __asm__ __volatile__("rdtscp" + : "=a"(low), "=d"(high) + : + : "%ecx"); return (high << 32) | low; } #elif defined(__aarch64__) uint64_t cpucounter(void) { uint64_t virtual_timer_value; - __asm__ __volatile__ ("mrs %0, cntvct_el0" : "=r"(virtual_timer_value)); + __asm__ __volatile__("mrs %0, cntvct_el0" + : "=r"(virtual_timer_value)); return virtual_timer_value; } #endif \ No newline at end of file diff --git a/src/cpucounter.rs b/src/cpucounter.rs index cc0997e..6fccc47 100644 --- a/src/cpucounter.rs +++ b/src/cpucounter.rs @@ -10,14 +10,15 @@ unsafe fn cpucounter() -> u64 { (high << 32) | low } - // https://github.com/google/benchmark/blob/v1.1.0/src/cycleclock.h#L116 #[cfg(asm)] #[inline] #[cfg(any(target_arch = "aarch64"))] unsafe fn cpucounter() -> u64 { let (vtm): (u64); - asm!("mrs %0, cntvct_el0" : "=r"(vtm)); + //asm!("mrs %0, cntvct_el0" : "=r"(vtm)); + //asm!("mrs %0, cntvct_el0", out(reg) vtm); + asm!("mrs {}, cntvct_el0", out(reg) vtm); vtm }