diff --git a/riscv/insns/psll_dws.h b/riscv/insns/psll_dws.h index ec71edbf..578814fb 100644 --- a/riscv/insns/psll_dws.h +++ b/riscv/insns/psll_dws.h @@ -1,7 +1,6 @@ require_rv32; P_RD_RS1_DW_LOOP(32, 32, { - uint8_t m = P_FIELD(RS2, 0, 8); + uint8_t m = RS2 & 0x1F; const uint64_t maskN = 0xFFFFFFFFull; - if (m >= 32) p_rd = 0; - else p_rd = (uint32_t)((p_rs1 << m) & maskN); + p_rd = (uint32_t)((p_rs1 << m) & maskN); }) \ No newline at end of file