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