diff options
Diffstat (limited to 'riscv/trap.h')
-rw-r--r-- | riscv/trap.h | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/riscv/trap.h b/riscv/trap.h index da8da65..4434013 100644 --- a/riscv/trap.h +++ b/riscv/trap.h @@ -29,11 +29,13 @@ class trap_t class insn_trap_t : public trap_t { public: - insn_trap_t(reg_t which, reg_t tval) - : trap_t(which), tval(tval) {} + insn_trap_t(reg_t which, bool gva, reg_t tval) + : trap_t(which), gva(gva), tval(tval) {} + bool has_gva() override { return gva; } bool has_tval() override { return true; } reg_t get_tval() override { return tval; } private: + bool gva; reg_t tval; }; @@ -62,7 +64,7 @@ class mem_trap_t : public trap_t #define DECLARE_INST_TRAP(n, x) class trap_##x : public insn_trap_t { \ public: \ - trap_##x(reg_t tval) : insn_trap_t(n, tval) {} \ + trap_##x(reg_t tval) : insn_trap_t(n, /*gva*/false, tval) {} \ const char* name() { return "trap_"#x; } \ }; |