summaryrefslogtreecommitdiff
path: root/src/id.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/id.cc')
-rw-r--r--src/id.cc31
1 files changed, 2 insertions, 29 deletions
diff --git a/src/id.cc b/src/id.cc
index 371e3b7..3c974e9 100644
--- a/src/id.cc
+++ b/src/id.cc
@@ -123,6 +123,8 @@ void ID::decode_R_type(signed int &s1)
case SUBV:
case MULV:
case DIVV:
+ case SRDL:
+ case SRDS:
if (this->status == OK) {
this->curr_instr->operands.vector.slot_three =
this->write_guard<std::array<signed int, V_R_LIMIT>>(s3);
@@ -164,35 +166,6 @@ void ID::decode_I_type(signed int &s1)
this->curr_instr->operands.integer.slot_two = s2;
this->status = (r1 == OK && r2 == OK) ? OK : STALLED;
return;
- // case SRDS:
- // this->curr_instr->operands.i_vector.slot_two = s3;
- // s2 = GET_MID_BITS(s1, s0b, s1b);
- // s1 = GET_LS_BITS(s1, s0b);
-
- // // base address
- // r1 = this->read_guard<signed int>(s1, s1);
- // this->curr_instr->operands.i_vector.slot_one = s1;
- // // vector value to be stored
- // r2 = this->read_guard<std::array<signed int, V_R_LIMIT>>(
- // s2, this->curr_instr->operands.i_vector.slot_three);
- // r3 = this->set_vlen();
-
- // this->status = (r1 == OK && r2 == OK && r3 == OK) ? OK : STALLED;
- // return;
- // case SRDL:
- // this->curr_instr->operands.i_vector.slot_two = s3;
- // s2 = GET_LS_BITS(s1, s0b);
- // s1 = GET_MID_BITS(s1, s0b, s1b);
- // // base address
- // r1 = this->read_guard<signed int>(s1, s1);
- // this->curr_instr->operands.i_vector.slot_one = s1;
- // r3 = this->set_vlen();
- // if (r1 == OK && r3 == OK)
- // // vector destination
- // this->curr_instr->operands.i_vector.slot_three =
- // this->write_guard<std::array<signed int, V_R_LIMIT>>(s2);
- // this->status = (r1 == OK && r3 == OK) ? OK : STALLED;
- // return;
case LOAD:
this->curr_instr->operands.integer.slot_three = s3;
s2 = GET_LS_BITS(s1, s0b);