#[cfg(not(feature = "v2"))]
use core::arch::asm;
#[cfg(not(feature = "v2"))]
#[inline]
pub fn read() -> usize {
let ans: usize;
unsafe { asm!("csrr {}, 0x800", out(reg) ans) };
ans
}
#[cfg(not(feature = "v2"))]
#[inline]
pub unsafe fn write(bits: usize) {
unsafe { asm!("csrw 0x800, {}", in(reg) bits) };
}
#[cfg(not(feature = "v2"))]
#[inline]
pub unsafe fn set_enable() {
let mask = 0x8;
unsafe { asm!("csrs 0x800, {}", in(reg) mask) };
}
#[cfg(not(feature = "v2"))]
#[inline]
pub fn set_disable() -> usize {
let prev: usize;
let mask = 0x8usize;
unsafe { asm!("csrrc {}, 0x800, {}", out(reg) prev, in(reg) mask) };
prev
}