aboutsummaryrefslogtreecommitdiff
path: root/rv_c
diff options
context:
space:
mode:
authorNeel Gala <neelgala@incoresemi.com>2022-04-08 17:38:10 +0530
committerNeel Gala <neelgala@incoresemi.com>2022-04-08 20:11:59 +0530
commit88085a5f6bbb74cb434ff62bacc5912f41fb913b (patch)
tree64cade26276a85e63550a6b66461e39dfe075235 /rv_c
parent56147c766f68cf19f826fde0e4897e988d658bcf (diff)
downloadriscv-opcodes-88085a5f6bbb74cb434ff62bacc5912f41fb913b.zip
riscv-opcodes-88085a5f6bbb74cb434ff62bacc5912f41fb913b.tar.gz
riscv-opcodes-88085a5f6bbb74cb434ff62bacc5912f41fb913b.tar.bz2
migrate C-extension opcodes (major)
- the previous opcodes used ignore to define immediate fields instead of assigning arg names to it. This is made it difficult to parse and decode the instructions. - this commit assigns unique names to immediate fields in accordance to what has been done elsewhere. Note these names hold no correspondence to the spec and are defined here purely to ease decoding - This commit also splits the instructions which depend on F/D/Q in to their respective files as per new naming convention - c.nop encoding has been changed to include hints as well.
Diffstat (limited to 'rv_c')
-rw-r--r--rv_c32
1 files changed, 32 insertions, 0 deletions
diff --git a/rv_c b/rv_c
new file mode 100644
index 0000000..46b1e1c
--- /dev/null
+++ b/rv_c
@@ -0,0 +1,32 @@
+# quadrant 0
+c.addi4spn rd_p c_nzuimm10 1..0=0 15..13=0
+c.lw rd_p rs1_p c_uimm7lo c_uimm7hi 1..0=0 15..13=2
+c.sw rs1_p rs2_p c_uimm7lo c_uimm7hi 1..0=0 15..13=6
+
+#quadrant 1
+c.nop c_nzimm6hi c_nzimm6lo 1..0=1 15..13=0 11..7=0
+c.addi rd_rs1_n0 c_nzimm6lo c_nzimm6hi 1..0=1 15..13=0
+c.li rd c_imm6lo c_imm6hi 1..0=1 15..13=2
+c.addi16sp c_nzimm10hi c_nzimm10lo 1..0=1 15..13=3 11..7=2
+c.lui rd_n2 c_nzimm18hi c_nzimm18lo 1..0=1 15..13=3
+c.andi rd_rs1_p c_imm6hi c_imm6lo 1..0=1 15..13=4 11..10=2
+c.sub rd_rs1_p rs2_p 1..0=1 15..13=4 12..10=0b011 6..5=0
+c.xor rd_rs1_p rs2_p 1..0=1 15..13=4 12..10=0b011 6..5=1
+c.or rd_rs1_p rs2_p 1..0=1 15..13=4 12..10=0b011 6..5=2
+c.and rd_rs1_p rs2_p 1..0=1 15..13=4 12..10=0b011 6..5=3
+c.j c_imm12 1..0=1 15..13=5
+c.beqz rs1_p c_bimm9lo c_bimm9hi 1..0=1 15..13=6
+c.bnez rs1_p c_bimm9lo c_bimm9hi 1..0=1 15..13=7
+
+#quadrant 2
+c.lwsp rd_n0 c_uimm8sphi c_uimm8splo 1..0=2 15..13=2
+c.jr rs1_n0 1..0=2 15..13=4 12=0 6..2=0
+c.mv rd c_rs2_n0 1..0=2 15..13=4 12=0
+c.ebreak 1..0=2 15..13=4 12=1 11..2=0
+c.jalr c_rs1_n0 1..0=2 15..13=4 12=1 6..2=0
+c.add rd_rs1 c_rs2_n0 1..0=2 15..13=4 12=1
+c.swsp c_rs2 c_uimm8sp_s 1..0=2 15..13=6
+
+
+
+