1 // See LICENSE for license details.
6 extension_t::~extension_t()
10 void extension_t::illegal_instruction()
12 throw trap_illegal_instruction();
15 void extension_t::raise_interrupt()
17 reg_t prv
= p
->get_state()->prv
;
18 reg_t mie
= get_field(p
->get_state()->mstatus
, MSTATUS_MIE
);
20 if (prv
< PRV_M
|| (prv
== PRV_M
&& mie
))
21 p
->raise_interrupt(IRQ_COP
);
23 throw std::logic_error("a COP exception was posted, but interrupts are disabled!");
26 void extension_t::clear_interrupt()