summaryrefslogtreecommitdiff
path: root/src/instr.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/instr.cc')
-rw-r--r--src/instr.cc20
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