summaryrefslogtreecommitdiff
path: root/isa/isa.h
diff options
context:
space:
mode:
Diffstat (limited to 'isa/isa.h')
-rw-r--r--isa/isa.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/isa/isa.h b/isa/isa.h
index 3b8220e..11a8db2 100644
--- a/isa/isa.h
+++ b/isa/isa.h
@@ -22,9 +22,11 @@ struct instruction_context {
22 bool need_exec_load = false; // data = mem[final_address] 22 bool need_exec_load = false; // data = mem[final_address]
23 bool need_read_acc = false; // acc = %acc 23 bool need_read_acc = false; // acc = %acc
24 bool need_read_link = false; // link = %link 24 bool need_read_link = false; // link = %link
25 bool need_read_mq = false; // mq = %mq
25 std::optional<ctlreg> read_ctlreg; // ctlval = %[read_ctlreg] 26 std::optional<ctlreg> read_ctlreg; // ctlval = %[read_ctlreg]
26 bool need_write_acc = false; // %acc = acc 27 bool need_write_acc = false; // %acc = acc
27 bool need_write_link = false; // %link = link 28 bool need_write_link = false; // %link = link
29 bool need_write_mq = false; // %mq = mq
28 std::optional<ctlreg> write_ctlreg; // %[write_ctlreg] = ctlval 30 std::optional<ctlreg> write_ctlreg; // %[write_ctlreg] = ctlval
29 bool need_exec_store = false; // mem[final_address] = data 31 bool need_exec_store = false; // mem[final_address] = data
30 bool possibly_redirects = false; // %pc = next_pc 32 bool possibly_redirects = false; // %pc = next_pc
@@ -40,6 +42,7 @@ struct instruction_context {
40 std::optional<unsigned int> data; 42 std::optional<unsigned int> data;
41 std::optional<unsigned int> acc; 43 std::optional<unsigned int> acc;
42 std::optional<bool> link; 44 std::optional<bool> link;
45 std::optional<unsigned int> mq;
43 bool halt = false; 46 bool halt = false;
44}; 47};
45 48