summaryrefslogtreecommitdiff
path: root/src/instr.cc
diff options
context:
space:
mode:
authorbd <bdunahu@operationnull.com>2025-05-10 18:25:23 -0400
committerbd <bdunahu@operationnull.com>2025-05-10 18:25:23 -0400
commitebb2a3d33d4536bcace34e9ba95198067ae19522 (patch)
tree9773c935932ee3a4e2fdaa1d25e61ba3f06abd03 /src/instr.cc
parentf0f773a1f2acc3030c89fc5aa6335f667987aa2a (diff)
Add type field to InstrDTO, required for next refactor
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