Eliminate hwacha <-> riscv circular dependence
[riscv-isa-sim.git] / riscv / extension.cc
1 #include "extension.h"
2 #include "trap.h"
3
4 std::map<std::string, std::function<extension_t*()>>& extensions()
5 {
6 static std::map<std::string, std::function<extension_t*()>> v;
7 return v;
8 }
9
10 extension_t::~extension_t()
11 {
12 }
13
14 void extension_t::illegal_instruction()
15 {
16 throw trap_illegal_instruction();
17 }
18
19 void extension_t::raise_interrupt()
20 {
21 p->set_interrupt(IRQ_COP, true);
22 p->take_interrupt();
23 }
24
25 void extension_t::clear_interrupt()
26 {
27 p->set_interrupt(IRQ_COP, false);
28 }