diff options
author | bd <bdunahu@operationnull.com> | 2025-05-11 22:04:46 -0400 |
---|---|---|
committer | bd <bdunahu@operationnull.com> | 2025-05-11 22:04:46 -0400 |
commit | 43588597069587f6846a7d64a1957435bec5429d (patch) | |
tree | ce89a55af60b01f6b4129d7539d07c08bfaa1b9a /src/ex.cc | |
parent | e98aadede1f2151e50a8fdb3dc69d306590718eb (diff) |
Add ROTV instruction
Diffstat (limited to 'src/ex.cc')
-rw-r--r-- | src/ex.cc | 8 |
1 files changed, 7 insertions, 1 deletions
@@ -249,6 +249,13 @@ void EX::handle_s_vector_operations( unsigned int i, inc1, inc2; switch (m) { + case ROTV: + s2 = s2 % v_len; + if (s2 < 0) + s2 += v_len; + + std::rotate(s1.begin(), s1.begin() + s2, s1.begin() + v_len); + break; case SRDL: case SRDS: inc1 = s1[0]; @@ -286,7 +293,6 @@ void EX::advance_helper() handle_s_vector_operations( this->curr_instr->operands.s_vector.slot_one, this->curr_instr->operands.s_vector.slot_two, m, v_len_or_pc); - printArray(this->curr_instr->operands.s_vector.slot_three); } this->status = OK; |