diff options
author | Siddarth Suresh <155843085+SiddarthSuresh98@users.noreply.github.com> | 2025-03-30 19:34:17 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-03-30 19:34:17 -0400 |
commit | 12a9e93f913c0057f2ef32f5894931c8b4bd3a85 (patch) | |
tree | 88669ed2be55b4f455ef4ac56263a01dd5f70a40 /inc/ex.h | |
parent | eedf9686eb60f2008e7766cc9a5d3e037b9dae64 (diff) | |
parent | 36dabe6183af98b2e3f6d0316436dc3affc3d986 (diff) |
Merge pull request #41 from bdunahu/bdunahu
Add mock stage, proper decode tests
changes look good
Diffstat (limited to 'inc/ex.h')
-rw-r--r-- | inc/ex.h | 14 |
1 files changed, 13 insertions, 1 deletions
@@ -3,6 +3,7 @@ #include "instrDTO.h" #include "response.h" #include "stage.h" +#include <unordered_map> class EX : public Stage { @@ -13,8 +14,19 @@ class EX : public Stage * @return A newly allocated EX object. */ EX(Stage *next); + using Stage::advance; - InstrDTO *advance(Response p) override; + private: + void advance_helper(); + /** + * Maps each mnemonic to a function which carries out the instruction's base + * logic. + * All instructions store the result into s1. + */ + std::unordered_map< + Mnemonic, + std::function<void(signed int &s1, signed int s2)>> + instr_map; }; #endif /* EX_H_INCLUDED */ |