aboutsummaryrefslogtreecommitdiff
path: root/opcodes-rv32zbb
diff options
context:
space:
mode:
authorAndrew Waterman <andrew@sifive.com>2022-02-13 05:12:46 -0800
committerAndrew Waterman <andrew@sifive.com>2022-02-13 05:12:46 -0800
commit2497a8cc120a9d30d0cc9bf01372dc2efbefbc25 (patch)
tree0c3c894abe4131379d0dc0cf247ba564b6dc7ae2 /opcodes-rv32zbb
parent9780234be4e34702f69d7bcce503f488cf14b327 (diff)
downloadriscv-opcodes-2497a8cc120a9d30d0cc9bf01372dc2efbefbc25.zip
riscv-opcodes-2497a8cc120a9d30d0cc9bf01372dc2efbefbc25.tar.gz
riscv-opcodes-2497a8cc120a9d30d0cc9bf01372dc2efbefbc25.tar.bz2
Clean up handling of bitmanip extensions
There's no such thing as "B", which continues to be a source of confusion. Time to fix that. cc @ben-marshall since I added Zbkb/Zbkx. Resolves #101
Diffstat (limited to 'opcodes-rv32zbb')
-rw-r--r--opcodes-rv32zbb24
1 files changed, 24 insertions, 0 deletions
diff --git a/opcodes-rv32zbb b/opcodes-rv32zbb
new file mode 100644
index 0000000..ed80dfe
--- /dev/null
+++ b/opcodes-rv32zbb
@@ -0,0 +1,24 @@
+andn rd rs1 rs2 31..25=32 14..12=7 6..2=0x0C 1..0=3
+orn rd rs1 rs2 31..25=32 14..12=6 6..2=0x0C 1..0=3
+xnor rd rs1 rs2 31..25=32 14..12=4 6..2=0x0C 1..0=3
+
+rol rd rs1 rs2 31..25=48 14..12=1 6..2=0x0C 1..0=3
+ror rd rs1 rs2 31..25=48 14..12=5 6..2=0x0C 1..0=3
+
+rori rd rs1 31..26=24 shamt 14..12=5 6..2=0x04 1..0=3
+
+clz rd rs1 31..20=0x600 14..12=1 6..2=0x04 1..0=3
+ctz rd rs1 31..20=0x601 14..12=1 6..2=0x04 1..0=3
+cpop rd rs1 31..20=0x602 14..12=1 6..2=0x04 1..0=3
+sext.b rd rs1 31..20=0x604 14..12=1 6..2=0x04 1..0=3
+sext.h rd rs1 31..20=0x605 14..12=1 6..2=0x04 1..0=3
+
+min rd rs1 rs2 31..25=5 14..12=4 6..2=0x0C 1..0=3
+minu rd rs1 rs2 31..25=5 14..12=5 6..2=0x0C 1..0=3
+max rd rs1 rs2 31..25=5 14..12=6 6..2=0x0C 1..0=3
+maxu rd rs1 rs2 31..25=5 14..12=7 6..2=0x0C 1..0=3
+
+orc.b rd rs1 31..26=10 25..20=7 14..12=5 6..2=0x04 1..0=3
+
+@rev8.rv32 rd rs1 31..26=26 25..20=24 14..12=5 6..2=0x04 1..0=3
+@zext.h.rv32 rd rs1 31..25=4 24..20=0 14..12=4 6..2=0x0C 1..0=3