Я думаю, это будет зависеть от вашей конкретной реализации risc-v. Например, я работаю над RI5CY и, как вы можете видеть в riscv_defines.sv, держатель текущего режима определяется как:
// Privileged mode
typedef enum logic[1:0] {
PRIV_LVL_M = 2'b11,
PRIV_LVL_H = 2'b10,
PRIV_LVL_S = 2'b01,
PRIV_LVL_U = 2'b00
} PrivLvl_t;
И создается в riscv_core.sv
PrivLvl_t current_priv_lvl;
К сожалению, я не знаю о дальнейшей документации от фонда. Надеюсь, это поможет