summaryrefslogtreecommitdiff
path: root/src/instr.cc
diff options
context:
space:
mode:
authorbd <bdunahu@operationnull.com>2025-05-11 22:04:46 -0400
committerbd <bdunahu@operationnull.com>2025-05-11 22:04:46 -0400
commit43588597069587f6846a7d64a1957435bec5429d (patch)
treece89a55af60b01f6b4129d7539d07c08bfaa1b9a /src/instr.cc
parente98aadede1f2151e50a8fdb3dc69d306590718eb (diff)
Add ROTV instruction
Diffstat (limited to 'src/instr.cc')
-rw-r--r--src/instr.cc16
1 files changed, 8 insertions, 8 deletions
diff --git a/src/instr.cc b/src/instr.cc
index 271fc99..a638a38 100644
--- a/src/instr.cc
+++ b/src/instr.cc
@@ -29,20 +29,20 @@ const std::unordered_map<unsigned int, Mnemonic> mnemonic_map = {
{0b0101000, NOT}, {0b0101100, XOR}, {0b0110000, ADDV},
{0b0110100, SUBV}, {0b0111000, MULV}, {0b0111100, DIVV},
{0b1000000, CMP}, {0b1000100, CEV}, {0b1001000, SRDL},
- {0b1001100, SRDS}, {0b000101, LOAD}, {0b0001001, ADDI},
- {0b0001101, SUBI}, {0b0010001, SFTRI}, {0b0010101, SFTLI},
- {0b0011001, ANDI}, {0b0011101, ORI}, {0b0100001, XORI},
- {0b0100101, STORE}, {0b0000110, JMP}, {0b0001010, JRL},
- {0b0001110, JAL}, {0b0010010, BEQ}, {0b0010110, BGT},
- {0b0011010, BUF}, {0b0011110, BOF}, {0b0100010, PUSH},
- {0b0100110, POP}, {0b0101010, RET},
+ {0b1001100, SRDS}, {0b1010000, ROTV}, {0b000101, LOAD},
+ {0b0001001, ADDI}, {0b0001101, SUBI}, {0b0010001, SFTRI},
+ {0b0010101, SFTLI}, {0b0011001, ANDI}, {0b0011101, ORI},
+ {0b0100001, XORI}, {0b0100101, STORE}, {0b0000110, JMP},
+ {0b0001010, JRL}, {0b0001110, JAL}, {0b0010010, BEQ},
+ {0b0010110, BGT}, {0b0011010, BUF}, {0b0011110, BOF},
+ {0b0100010, PUSH}, {0b0100110, POP}, {0b0101010, RET},
};
FieldType get_field_types(Mnemonic m)
{
if (m == ADDV || m == SUBV || m == MULV || m == DIVV || m == CEV) {
return R_VECT;
- } else if (m == SRDL || m == SRDS) {
+ } else if (m == SRDL || m == SRDS || m == ROTV) {
return S_VECT;
} else {
return SI_INT;