WRITE_REG({X_SP,0}, sext_xlen(rv_add(RVC_SP, insn.rvc_addi16sp_imm())));
} else {
require(rv_ne(insn.rvc_imm(), sv_reg_t(0L)));
- WRITE_RD(rv_sl(insn.rvc_imm(), sv_reg_t(12UL)));
+ WRITE_RD(rv_sl(insn.rvc_imm(), sv_reg_t(12UL), xlen));
}
require_extension('C');
require(rv_lt(insn.rvc_zimm(), sv_reg_t(xlen)));
-WRITE_RVC_RS1S(sext_xlen(rv_sr(sext_xlen(RVC_RS1S), insn.rvc_zimm())));
+WRITE_RVC_RS1S(sext_xlen(rv_sr(sext_xlen(RVC_RS1S), insn.rvc_zimm(), xlen)));
require_extension('C');
require(rv_lt(insn.rvc_zimm(), sv_reg_t(xlen)));
-WRITE_RVC_RS1S(sext_xlen(rv_sr(zext_xlen(RVC_RS1S), insn.rvc_zimm())));
+WRITE_RVC_RS1S(sext_xlen(rv_sr(zext_xlen(RVC_RS1S), insn.rvc_zimm(), xlen)));
OP_M64_FN( mulhsu, sv_sreg_t, sv_reg_t, sv_sreg_t, int64_t, uint64_t, int64_t )
OP_M64_FN( mulh , sv_sreg_t, sv_sreg_t, sv_sreg_t, int64_t, int64_t, int64_t )
-sv_reg_t sv_proc_t::rv_sl(sv_reg_t const & lhs, sv_reg_t const & rhs)
-{
- return rv_sl(lhs, rhs, xlen);
-}
-
sv_reg_t sv_proc_t::rv_sl(sv_reg_t const & lhs, sv_reg_t const & rhs,
unsigned int dflt_bitwidth)
{
return rv_int_op_finish(lhs, rhs, result, bitwidth);
}
-sv_reg_t sv_proc_t::rv_sr(sv_reg_t const & lhs, sv_reg_t const & rhs)
-{
- return rv_sr(lhs, rhs, xlen);
-}
-
sv_reg_t sv_proc_t::rv_sr(sv_reg_t const & lhs, sv_reg_t const & rhs,
unsigned int dflt_bitwidth)
{
sv_reg_t rv_and(sv_reg_t const & lhs, sv_reg_t const & rhs);
sv_reg_t rv_or(sv_reg_t const & lhs, sv_reg_t const & rhs);
sv_reg_t rv_xor(sv_reg_t const & lhs, sv_reg_t const & rhs);
- sv_reg_t rv_sl(sv_reg_t const & lhs, sv_reg_t const & rhs);
sv_reg_t rv_sl(sv_reg_t const & lhs, sv_reg_t const & rhs,
unsigned int dflt_bitwidth);
- sv_reg_t rv_sr(sv_reg_t const & lhs, sv_reg_t const & rhs);
sv_reg_t rv_sr(sv_reg_t const & lhs, sv_reg_t const & rhs,
unsigned int dflt_bitwidth);
bool rv_lt(sv_reg_t const & lhs, sv_reg_t const & rhs);