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