Skip to content

Commit e4f99ae

Browse files
committed
delay: Implement aarch64 support
Signed-off-by: Akira Moroo <[email protected]>
1 parent a822194 commit e4f99ae

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

src/delay.rs

+8-4
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,12 @@ unsafe fn rdtsc() -> u64 {
1616
_rdtsc()
1717
}
1818

19-
#[cfg(not(target_arch = "x86_64"))]
19+
#[cfg(target_arch = "aarch64")]
2020
#[inline]
2121
unsafe fn rdtsc() -> u64 {
22-
0
22+
let value: u64;
23+
asm!("mrs {}, cntvct_el0", out(reg) value);
24+
value
2325
}
2426

2527
#[cfg(target_arch = "x86_64")]
@@ -28,9 +30,11 @@ unsafe fn pause() {
2830
asm!("pause");
2931
}
3032

31-
#[cfg(not(target_arch = "x86_64"))]
33+
#[cfg(target_arch = "aarch64")]
3234
#[inline]
33-
unsafe fn pause() {}
35+
unsafe fn pause() {
36+
asm!("yield");
37+
}
3438

3539
pub fn ndelay(ns: u64) {
3640
let delta = ns * CPU_KHZ_DEFAULT / NSECS_PER_SEC;

0 commit comments

Comments
 (0)