#include "ibex_system.h" void __enable_irqs(void) { __csrs("mstatus", 0x08); } void __disable_irqs(void) { __csrc("mstatus", 0x08); } void __enable_irqn(int irq_number) { __csrs("mie", (1U << irq_number)); } void __enable_mcount(void) { // CY bit in mcountinhibit // RISC-V GCC has not implement this CSR name for now. __csrc("0x320", 0x01); } void __disable_mcount(void) { // Same as above. __csrs("0x320", 0x01); } uint64_t __read_mcycle(void) { uint32_t mcycleh = 0; uint32_t mcycle = 0; __csrr("mcycle", mcycle); __csrr("mcycleh", mcycleh); uint64_t ret = (uint64_t)mcycleh << 32; ret |= mcycle; return ret; }