diff options
Diffstat (limited to 'riscv/insns/ld.h')
-rw-r--r-- | riscv/insns/ld.h | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/riscv/insns/ld.h b/riscv/insns/ld.h index 3dea301..cb0399b 100644 --- a/riscv/insns/ld.h +++ b/riscv/insns/ld.h @@ -1,2 +1,8 @@ -require_rv64; -WRITE_RD(MMU.load<int64_t>(RS1 + insn.i_imm())); +require((xlen == 64) || p->extension_enabled(EXT_ZILSD)); + +if (xlen == 32) { + WRITE_RD_PAIR(MMU.load<int64_t>(RS1 + insn.i_imm())); +} else { + WRITE_RD(MMU.load<int64_t>(RS1 + insn.i_imm())); +} + |