diff options
Diffstat (limited to 'src/instr.cc')
-rw-r--r-- | src/instr.cc | 20 |
1 files changed, 8 insertions, 12 deletions
diff --git a/src/instr.cc b/src/instr.cc index 0282be3..ee2d37f 100644 --- a/src/instr.cc +++ b/src/instr.cc @@ -38,18 +38,14 @@ const std::unordered_map<unsigned int, Mnemonic> mnemonic_map = { {0b0100110, POP}, {0b0101010, RET}, }; -bool is_vector_type(Mnemonic m) +FieldType get_field_types(Mnemonic m) { - return ( - m == ADDV || m == SUBV || m == MULV || m == DIVV || m == CEV || - m == LOADV || m == STOREV); + if (m == ADDV || m == SUBV || m == MULV || m == DIVV || m == CEV) { + return R_VECT; + } else if (m == STOREV || m == LOADV) { + return I_VECT; + } else { + return SI_INT; + } } - -bool is_logical_type(Mnemonic m) -{ - return ( - m == ANDI || m == ORI || m == XORI || m == AND || m == OR || m == XOR || - m == NOT); -} - } // namespace instr |