aboutsummaryrefslogtreecommitdiff
path: root/extensions/rv64_i
diff options
context:
space:
mode:
Diffstat (limited to 'extensions/rv64_i')
-rw-r--r--extensions/rv64_i22
1 files changed, 22 insertions, 0 deletions
diff --git a/extensions/rv64_i b/extensions/rv64_i
new file mode 100644
index 0000000..dea3d38
--- /dev/null
+++ b/extensions/rv64_i
@@ -0,0 +1,22 @@
+# RV64I additions to RV32I
+
+lwu rd rs1 imm12 14..12=6 6..2=0x00 1..0=3
+ld rd rs1 imm12 14..12=3 6..2=0x00 1..0=3
+sd imm12hi rs1 rs2 imm12lo 14..12=3 6..2=0x08 1..0=3
+
+slli rd rs1 31..26=0 shamtd 14..12=1 6..2=0x04 1..0=3
+srli rd rs1 31..26=0 shamtd 14..12=5 6..2=0x04 1..0=3
+srai rd rs1 31..26=16 shamtd 14..12=5 6..2=0x04 1..0=3
+
+addiw rd rs1 imm12 14..12=0 6..2=0x06 1..0=3
+slliw rd rs1 31..25=0 shamtw 14..12=1 6..2=0x06 1..0=3
+srliw rd rs1 31..25=0 shamtw 14..12=5 6..2=0x06 1..0=3
+sraiw rd rs1 31..25=32 shamtw 14..12=5 6..2=0x06 1..0=3
+
+addw rd rs1 rs2 31..25=0 14..12=0 6..2=0x0E 1..0=3
+subw rd rs1 rs2 31..25=32 14..12=0 6..2=0x0E 1..0=3
+sllw rd rs1 rs2 31..25=0 14..12=1 6..2=0x0E 1..0=3
+srlw rd rs1 rs2 31..25=0 14..12=5 6..2=0x0E 1..0=3
+sraw rd rs1 rs2 31..25=32 14..12=5 6..2=0x0E 1..0=3
+
+$pseudo_op rv64_i::addiw sext.w rd rs1 31..20=0 14..12=0 6..2=0x06 1..0=3