aboutsummaryrefslogtreecommitdiff
path: root/riscv/insns/c_ebreak.h
blob: c8cc1f5cb44768f56dcfb5ac47da777cc362d9ee (plain)
1
2
3
4
5
6
7
8
9
require_extension('C');
if (!STATE.debug_mode &&
    ((STATE.prv == PRV_M && STATE.dcsr->ebreakm) ||
     (STATE.prv == PRV_S && STATE.dcsr->ebreaks) ||
     (STATE.prv == PRV_U && STATE.dcsr->ebreaku))) {
	throw trap_debug_mode();
} else {
	throw trap_breakpoint(STATE.v, pc);
}