Implement new FP encoding
[riscv-isa-sim.git] / riscv / insns / c_flw.h
index cdb7221dd47fc0aa4214102ea005e88b08588466..682566c705b764366f4681b6eff3dd85a2c27efa 100644 (file)
@@ -1,3 +1,8 @@
-require_rvc;
-require_fp;
-FCRDS = mmu.load_int32(CRS1S+CIMM5*4);
+require_extension('C');
+if (xlen == 32) {
+  require_extension('F');
+  require_fp;
+  WRITE_RVC_FRS2S(f32(MMU.load_uint32(RVC_RS1S + insn.rvc_lw_imm())));
+} else { // c.ld
+  WRITE_RVC_RS2S(MMU.load_int64(RVC_RS1S + insn.rvc_ld_imm()));
+}