diff options
author | bd <bdunahu@operationnull.com> | 2025-05-11 19:40:47 -0400 |
---|---|---|
committer | bd <bdunahu@operationnull.com> | 2025-05-11 19:40:47 -0400 |
commit | c9d4b54150b67e1701a920719ba2c7c03d897d27 (patch) | |
tree | 9c4c19ff4b0f7eb53bfae632437eff3a0a42d5e3 /src/id.cc | |
parent | 79a68cabb033530871a1dab259149480584b2586 (diff) |
Stride load, stride store
Diffstat (limited to 'src/id.cc')
-rw-r--r-- | src/id.cc | 8 |
1 files changed, 7 insertions, 1 deletions
@@ -135,10 +135,16 @@ void ID::decode_R_type(signed int &s1) this->write_guard<std::array<signed int, V_R_LIMIT>>(s3); break; case SRDL: - case SRDS: this->curr_instr->operands.s_vector.slot_three = this->write_guard<std::array<signed int, V_R_LIMIT>>(s3); break; + case SRDS: + r1 = this->read_guard<std::array<signed int, V_R_LIMIT>>( + s3, this->curr_instr->operands.s_vector.slot_three); + if (r1 != OK) { + this->status = STALLED; + } + break; default: this->curr_instr->operands.integer.slot_three = this->write_guard<signed int>(s3); |