diff options
Diffstat (limited to 'riscv/insns/c_lui.h')
-rw-r--r-- | riscv/insns/c_lui.h | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/riscv/insns/c_lui.h b/riscv/insns/c_lui.h index 956fa44..3e0e02f 100644 --- a/riscv/insns/c_lui.h +++ b/riscv/insns/c_lui.h @@ -2,7 +2,10 @@ require_extension(EXT_ZCA); if (insn.rvc_rd() == 2) { // c.addi16sp require(insn.rvc_addi16sp_imm() != 0); WRITE_REG(X_SP, sext_xlen(RVC_SP + insn.rvc_addi16sp_imm())); -} else { - require(insn.rvc_imm() != 0); +} else if (insn.rvc_imm() != 0) { // c.lui WRITE_RD(insn.rvc_imm() << 12); +} else if ((insn.rvc_rd() & 1) != 0) { // c.mop.N + #include "c_mop_N.h" +} else { + require(false); } |