Skip to content

Commit 0325be5

Browse files
committed
Separate RV32 and RV64 C instructions into separate files
1 parent 48f8154 commit 0325be5

File tree

10 files changed

+31
-33
lines changed

10 files changed

+31
-33
lines changed

riscv/insns/c_flw.h

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,3 @@
1-
if (xlen == 32) {
2-
require_extension(EXT_ZCF);
3-
require_fp;
4-
WRITE_RVC_FRS2S(f32(MMU.load<uint32_t>(RVC_RS1S + insn.rvc_lw_imm())));
5-
} else { // c.ld
6-
require_extension(EXT_ZCA);
7-
WRITE_RVC_RS2S(MMU.load<int64_t>(RVC_RS1S + insn.rvc_ld_imm()));
8-
}
1+
require_extension(EXT_ZCF);
2+
require_fp;
3+
WRITE_RVC_FRS2S(f32(MMU.load<uint32_t>(RVC_RS1S + insn.rvc_lw_imm())));

riscv/insns/c_flwsp.h

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,3 @@
1-
if (xlen == 32) {
2-
require_extension(EXT_ZCF);
3-
require_fp;
4-
WRITE_FRD(f32(MMU.load<uint32_t>(RVC_SP + insn.rvc_lwsp_imm())));
5-
} else { // c.ldsp
6-
require_extension(EXT_ZCA);
7-
require(insn.rvc_rd() != 0);
8-
WRITE_RD(MMU.load<int64_t>(RVC_SP + insn.rvc_ldsp_imm()));
9-
}
1+
require_extension(EXT_ZCF);
2+
require_fp;
3+
WRITE_FRD(f32(MMU.load<uint32_t>(RVC_SP + insn.rvc_lwsp_imm())));

riscv/insns/c_fsw.h

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,3 @@
1-
if (xlen == 32) {
2-
require_extension(EXT_ZCF);
3-
require_fp;
4-
MMU.store<uint32_t>(RVC_RS1S + insn.rvc_lw_imm(), RVC_FRS2S.v[0]);
5-
} else { // c.sd
6-
require_extension(EXT_ZCA);
7-
MMU.store<uint64_t>(RVC_RS1S + insn.rvc_ld_imm(), RVC_RS2S);
8-
}
1+
require_extension(EXT_ZCF);
2+
require_fp;
3+
MMU.store<uint32_t>(RVC_RS1S + insn.rvc_lw_imm(), RVC_FRS2S.v[0]);

riscv/insns/c_fswsp.h

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,3 @@
1-
if (xlen == 32) {
2-
require_extension(EXT_ZCF);
3-
require_fp;
4-
MMU.store<uint32_t>(RVC_SP + insn.rvc_swsp_imm(), RVC_FRS2.v[0]);
5-
} else { // c.sdsp
6-
require_extension(EXT_ZCA);
7-
MMU.store<uint64_t>(RVC_SP + insn.rvc_sdsp_imm(), RVC_RS2);
8-
}
1+
require_extension(EXT_ZCF);
2+
require_fp;
3+
MMU.store<uint32_t>(RVC_SP + insn.rvc_swsp_imm(), RVC_FRS2.v[0]);

riscv/insns/c_ld.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
require_extension(EXT_ZCA);
2+
WRITE_RVC_RS2S(MMU.load<int64_t>(RVC_RS1S + insn.rvc_ld_imm()));

riscv/insns/c_ldsp.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
require_extension(EXT_ZCA);
2+
require(insn.rvc_rd() != 0);
3+
WRITE_RD(MMU.load<int64_t>(RVC_SP + insn.rvc_ldsp_imm()));

riscv/insns/c_sd.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
require_extension(EXT_ZCA);
2+
MMU.store<uint64_t>(RVC_RS1S + insn.rvc_ld_imm(), RVC_RS2S);

riscv/insns/c_sdsp.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
require_extension(EXT_ZCA);
2+
MMU.store<uint64_t>(RVC_SP + insn.rvc_sdsp_imm(), RVC_RS2);

riscv/overlap_list.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
// these overlap c.ld[sp]/c.sd[sp]
2+
DECLARE_OVERLAP_INSN(c_flw, EXT_ZCF)
3+
DECLARE_OVERLAP_INSN(c_flwsp, EXT_ZCF)
4+
DECLARE_OVERLAP_INSN(c_fsw, EXT_ZCF)
5+
DECLARE_OVERLAP_INSN(c_fswsp, EXT_ZCF)
6+
17
// these overlap c.fsdsp
28
DECLARE_OVERLAP_INSN(cm_push, EXT_ZCMP)
39
DECLARE_OVERLAP_INSN(cm_pop, EXT_ZCMP)

riscv/riscv.mk.in

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -182,6 +182,8 @@ riscv_insn_ext_c = \
182182
c_jr \
183183
c_li \
184184
c_lui \
185+
c_ld \
186+
c_ldsp \
185187
c_lw \
186188
c_lwsp \
187189
c_mv \
@@ -191,6 +193,8 @@ riscv_insn_ext_c = \
191193
c_srli \
192194
c_sub \
193195
c_subw \
196+
c_sd \
197+
c_sdsp \
194198
c_sw \
195199
c_swsp \
196200
c_xor \

0 commit comments

Comments
 (0)