From f610e45e8d6a3ecdeb2b6c66e44f62766efb9388 Mon Sep 17 00:00:00 2001 From: Christian Herber Date: Wed, 10 Jan 2024 08:41:20 +0100 Subject: [PATCH] Adding Zilsd extension --- arg_lut.csv | 6 ++++++ constants.py | 7 +++++++ unratified/rv32_zcmlsd | 10 ++++++++++ unratified/rv32_zilsd | 4 ++++ 4 files changed, 27 insertions(+) create mode 100644 unratified/rv32_zcmlsd create mode 100644 unratified/rv32_zilsd diff --git a/arg_lut.csv b/arg_lut.csv index b1436503..1ca9b916 100644 --- a/arg_lut.csv +++ b/arg_lut.csv @@ -98,3 +98,9 @@ "c_rs2", 6, 2 "c_sreg1", 9, 7 "c_sreg2", 4, 2 +"rd_p_e", 4, 3 +"rs2_p_e", 4, 3 +"rd_n0_e", 11, 8 +"c_rs2_e", 6, 3 +"rd_e", 11, 8 +"rs2_e", 24, 21 \ No newline at end of file diff --git a/constants.py b/constants.py index 3451ade8..4ae8c34f 100644 --- a/constants.py +++ b/constants.py @@ -116,6 +116,13 @@ latex_mapping['c_uimm10sp_s'] = 'uimm[5:4$\\vert$9:6]' latex_mapping['c_uimm9sp_s'] = 'uimm[5:3$\\vert$8:6]' +latex_mapping['rd_p_e'] = "rd\\,$'$, even values only" +latex_mapping['rs2_p_e'] = "rs2\\,$'$, even values only" +latex_mapping['rd_n0_e'] = 'rd$\\neq$0, even values only' +latex_mapping['c_rs2_e'] = 'rs2, even values only' +latex_mapping['rd_e'] = 'rd, even values only' +latex_mapping['rs2_e'] = 'rs2, even values only' + # created a dummy instruction-dictionary like dictionary for all the instruction # types so that the same logic can be used to create their tables latex_inst_type = {} diff --git a/unratified/rv32_zcmlsd b/unratified/rv32_zcmlsd new file mode 100644 index 00000000..b4046eb5 --- /dev/null +++ b/unratified/rv32_zcmlsd @@ -0,0 +1,10 @@ +# Compressed load/store pair for RV32 + +# quadrant 0 +$pseudo_op rv32_c_f::c.flw c.ld rd_p_e rs1_p c_uimm8lo c_uimm8hi 2..0=0 15..13=3 +$pseudo_op rv32_c_f::c.fsw c.sd rs1_p rs2_p_e c_uimm8hi c_uimm8lo 2..0=0 15..13=7 + +#quadrant 2 +$pseudo_op rv32_c_f::c.flwsp c.ldsp rd_n0_e c_uimm9sphi c_uimm9splo 1..0=2 15..13=3 7=0 +$pseudo_op rv32_c_f::c.fswsp c.sdsp c_rs2_e c_uimm9sp_s 2..0=2 15..13=7 + diff --git a/unratified/rv32_zilsd b/unratified/rv32_zilsd new file mode 100644 index 00000000..be4f591f --- /dev/null +++ b/unratified/rv32_zilsd @@ -0,0 +1,4 @@ +# Load/store pair for RV32 + +ld rd_e rs1 imm12 14..12=3 7..2=0x00 1..0=3 +sd imm12hi rs1 rs2_e imm12lo 20=0 14..12=3 6..2=0x08 1..0=3 \ No newline at end of file