diff options
Diffstat (limited to 'inc')
-rw-r--r-- | inc/instr.h | 13 | ||||
-rw-r--r-- | inc/instrDTO.h | 4 |
2 files changed, 15 insertions, 2 deletions
diff --git a/inc/instr.h b/inc/instr.h index c4f5e37..0c49a79 100644 --- a/inc/instr.h +++ b/inc/instr.h @@ -61,11 +61,20 @@ enum Mnemonic { NOP, }; +enum FieldType { + SI_INT, + R_VECT, + I_VECT, +}; + namespace instr { extern const std::unordered_map<unsigned int, Mnemonic> mnemonic_map; -bool is_vector_type(Mnemonic m); -bool is_logical_type(Mnemonic m); +/** + * @param a mnemonic + * @return an enum representing the types of the decoded instruction fields. + */ +FieldType get_field_types(Mnemonic m); } // namespace instr #endif /* INSTR_H_INCLUDED */ diff --git a/inc/instrDTO.h b/inc/instrDTO.h index f4ef416..98247a3 100644 --- a/inc/instrDTO.h +++ b/inc/instrDTO.h @@ -60,6 +60,10 @@ struct InstrDTO { * The register this instruction checks out. */ signed int checked_out; + /** + * The currently active union member. + */ + FieldType type; union { struct U_INT_TYPE integer; struct V_TYPE vector; |