-require_rvc;
-if (insn.rvc_imm() >= xlen)
- throw trap_illegal_instruction();
-WRITE_RD(sext_xlen(RVC_RS2 << insn.rvc_imm()));
+require_extension('C');
+require(insn.rvc_zimm() < xlen && insn.rvc_zimm() > 0);
+WRITE_RD(sext_xlen(RVC_RS1 << insn.rvc_zimm()));