summaryrefslogtreecommitdiff
path: root/inc/id.h
diff options
context:
space:
mode:
authorbd <bdunahu@operationnull.com>2025-03-28 19:55:04 -0400
committerbd <bdunahu@operationnull.com>2025-03-28 19:55:04 -0400
commit7b3abbd51c91b51725a12d17fad6ecbfcdb19975 (patch)
tree4fdd60cc2de9f0a68814bf47d42d675593a965a0 /inc/id.h
parent9cd1f287f0c86b36788cd8ede812b847c584f711 (diff)
Move get_instr_fields, add all instruction mnemonics
Diffstat (limited to 'inc/id.h')
-rw-r--r--inc/id.h18
1 files changed, 18 insertions, 0 deletions
diff --git a/inc/id.h b/inc/id.h
index eafe274..1503457 100644
--- a/inc/id.h
+++ b/inc/id.h
@@ -15,6 +15,24 @@ class ID : public Stage
ID(Stage *next);
Response advance(InstrDTO &i) override;
+
+ /**
+ * Parse an instruction into a type, opcode, and fields. If the type is
+ * invalid, only the type field will be set.
+ * @param the resulting first field, which varies per type. To call this
+ * function properly, this field must contain the full instruction bytes on
+ * function entry.
+ * @param the resulting second field, which varies per type.
+ * @param the resulting third field, which varies per type.
+ * @param the resulting type.
+ * @param the resulting opcode.
+ */
+ void get_instr_fields(
+ signed int &s1,
+ signed int &s2,
+ signed int &s3,
+ unsigned int &type,
+ unsigned int &opcode);
};
#endif /* ID_D_INCLUDED */