aboutsummaryrefslogtreecommitdiff
path: root/riscv/insns/c_lui.h
diff options
context:
space:
mode:
Diffstat (limited to 'riscv/insns/c_lui.h')
-rw-r--r--riscv/insns/c_lui.h8
1 files changed, 7 insertions, 1 deletions
diff --git a/riscv/insns/c_lui.h b/riscv/insns/c_lui.h
index 7a82c13..98a8898 100644
--- a/riscv/insns/c_lui.h
+++ b/riscv/insns/c_lui.h
@@ -5,7 +5,13 @@ if (insn.rvc_rd() == 2) { // c.addi16sp
} else if (insn.rvc_imm() != 0) { // c.lui
WRITE_RD(insn.rvc_imm() << 12);
} else if ((insn.rvc_rd() & 0x11) == 1) { // c.mop.N
- #include "c_mop_N.h"
+ if (insn.rvc_rd() == 5 && p->extension_enabled(EXT_ZICFISS)) {
+ #include "c_sspopchk_x5.h"
+ } else if (insn.rvc_rd() == 1 && p->extension_enabled(EXT_ZICFISS)) {
+ #include "c_sspush_x1.h"
+ } else {
+ #include "c_mop_N.h"
+ }
} else {
require(false);
}