summaryrefslogtreecommitdiff
path: root/opcodes-rvc
diff options
context:
space:
mode:
authorGravatar Andrew Waterman <waterman@cs.berkeley.edu>2015-05-31 23:23:36 -0700
committerGravatar Andrew Waterman <waterman@cs.berkeley.edu>2015-05-31 23:23:36 -0700
commita5f329c88265a09674d47ef89db4ad2188c88636 (patch)
tree2608f8e3e2c2791b392a013ffac626e53540d9c7 /opcodes-rvc
parentc177bd3efcfc88596b99f4c90bfc5ffe0ae764e5 (diff)
RVC v1.7 encoding
Diffstat (limited to 'opcodes-rvc')
-rw-r--r--opcodes-rvc55
1 files changed, 34 insertions, 21 deletions
diff --git a/opcodes-rvc b/opcodes-rvc
index 720d1ba..36dcdd4 100644
--- a/opcodes-rvc
+++ b/opcodes-rvc
@@ -1,24 +1,37 @@
# compressed instructions
-c.li 1..0=0 15..13=0 12=ignore 11..2=ignore
-c.lui 1..0=0 15..13=1 12=ignore 11..2=ignore
-c.addi 1..0=0 15..13=4 12=ignore 11..2=ignore
-c.addiw 1..0=0 15..13=7 12=ignore 11..2=ignore
-c.slli 1..0=0 15..13=6 12=ignore 11..2=ignore
-c.addi4 1..0=0 15..13=5 12=ignore 11..2=ignore
-c.mv 1..0=0 15..13=2 12=0 11..2=ignore
-c.jalr 1..0=0 15..13=2 12=1 11..2=ignore
-c.add 1..0=0 15..13=3 12=0 11..2=ignore
-c.addw 1..0=0 15..13=3 12=1 11..2=ignore
-c.lw 1..0=1 15..13=0 12=ignore 11..2=ignore
-c.sw 1..0=1 15..13=2 12=ignore 11..2=ignore
-c.ld 1..0=1 15..13=1 12=ignore 11..2=ignore
-c.sd 1..0=1 15..13=3 12=ignore 11..2=ignore
-c.lwsp 1..0=1 15..13=4 12=ignore 11..2=ignore
-c.ldsp 1..0=1 15..13=6 12=ignore 11..2=ignore
-c.swsp 1..0=1 15..13=5 12=ignore 11..2=ignore
-c.sdsp 1..0=1 15..13=7 12=ignore 11..2=ignore
+# C0 encoding space
+c.mv 1..0=0 15..13=0 12=0 11..2=ignore
+c.add 1..0=0 15..13=0 12=1 11..2=ignore # c.ebreak when rd=0, rs2=0
+c.srai 1..0=0 15..13=1 12=ignore 11..2=ignore
+c.sw 1..0=0 15..13=2 12=ignore 11..2=ignore
+c.sd 1..0=0 15..13=3 12=ignore 11..2=ignore
+c.sub 1..0=0 15..13=4 12=0 11..2=ignore
+c.addw 1..0=0 15..13=4 12=1 11..2=ignore
+c.add3 1..0=0 15..13=5 12..7=ignore 6..5=0 4..2=ignore
+c.sub3 1..0=0 15..13=5 12..7=ignore 6..5=1 4..2=ignore
+c.or3 1..0=0 15..13=5 12..7=ignore 6..5=2 4..2=ignore
+c.and3 1..0=0 15..13=5 12..7=ignore 6..5=3 4..2=ignore
+c.lw 1..0=0 15..13=6 12=ignore 11..2=ignore
+c.ld 1..0=0 15..13=7 12=ignore 11..2=ignore
-c.beqz 1..0=2 15..13=1 12=ignore 11..2=ignore
-c.bnez 1..0=2 15..13=3 12=ignore 11..2=ignore
-c.j 1..0=2 15..13=5 12=ignore 11..2=ignore
+
+# C1 encoding space
+c.slli 1..0=1 15..13=0 12=ignore 11..2=ignore
+c.srli 1..0=1 15..13=1 12=ignore 11..2=ignore
+c.swsp 1..0=1 15..13=2 12=ignore 11..2=ignore
+c.sdsp 1..0=1 15..13=3 12=ignore 11..2=ignore
+c.slliw 1..0=1 15..13=4 12=ignore 11..2=ignore
+c.addi4spn 1..0=1 15..13=5 12=ignore 11..2=ignore
+c.lwsp 1..0=1 15..13=6 12=ignore 11..2=ignore
+c.ldsp 1..0=1 15..13=7 12=ignore 11..2=ignore
+
+# C2 encoding space
+c.j 1..0=2 15..13=0 12=ignore 11..2=ignore
+c.jal 1..0=2 15..13=1 12=ignore 11..2=ignore
+c.beqz 1..0=2 15..13=2 12=ignore 11..2=ignore
+c.bnez 1..0=2 15..13=3 12=ignore 11..2=ignore
+c.li 1..0=2 15..13=4 12=ignore 11..2=ignore # c.jr when simm=0
+c.lui 1..0=2 15..13=5 12=ignore 11..2=ignore # c.jalr when simm=0
+c.addi 1..0=2 15..13=6 12=ignore 11..2=ignore # c.addi16sp when rd=0
+c.addiw 1..0=2 15..13=7 12=ignore 11..2=ignore