diff options
Diffstat (limited to 'riscv/insns/sd.h')
-rw-r--r-- | riscv/insns/sd.h | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/riscv/insns/sd.h b/riscv/insns/sd.h index 5c9dd4e..c80f137 100644 --- a/riscv/insns/sd.h +++ b/riscv/insns/sd.h @@ -1,2 +1,7 @@ -require_rv64; -MMU.store<uint64_t>(RS1 + insn.s_imm(), RS2); +require((xlen == 64) || p->extension_enabled(EXT_ZILSD)); + +if (xlen == 32) { + MMU.store<uint64_t>(RS1 + insn.s_imm(), RS2_PAIR); +} else { + MMU.store<uint64_t>(RS1 + insn.s_imm(), RS2); +} |