aboutsummaryrefslogtreecommitdiff
path: root/unratified
diff options
context:
space:
mode:
authorPhilipp Tomsich <philipp.tomsich@vrull.eu>2023-03-17 00:10:56 +0100
committerPhilipp Tomsich <philipp.tomsich@vrull.eu>2023-03-17 01:21:27 +0100
commite77307f37e7538622d48a5a43560d60d27e318da (patch)
tree7aadf1b08ae4c1e9edd041a946f1125bdb1ad89e /unratified
parent32453565a7772b5771627bb5165c153bfb2b81cd (diff)
downloadriscv-opcodes-e77307f37e7538622d48a5a43560d60d27e318da.zip
riscv-opcodes-e77307f37e7538622d48a5a43560d60d27e318da.tar.gz
riscv-opcodes-e77307f37e7538622d48a5a43560d60d27e318da.tar.bz2
Add (unratified) Zfa extension
Zfa adds 'missing' floating-point functionality: - fli.[hsdq]: floating-point load-immediate - fminm/fmaxm.[hsdq]: IEEE 754-2019 minimum and maximum - fround(nx)?.[hsdq]: IEEE 754-2019 roundToIntegral(Exact)? - fcvtmod.w.d: ECMAScript modular float->integer conversion - move instructions for XLEN < FLEN - comparisons that support quiet NaN inputs This adds a surprisingly large number of files, as the instructions added with Zfa depend on context (e.g., .h-variants become available only if Zfh is present).
Diffstat (limited to 'unratified')
-rw-r--r--unratified/rv32_d_zfa2
-rw-r--r--unratified/rv64_q_zfa2
-rw-r--r--unratified/rv_d_zfa8
-rw-r--r--unratified/rv_f_zfa7
-rw-r--r--unratified/rv_q_zfa7
-rw-r--r--unratified/rv_zfh_zfa7
6 files changed, 33 insertions, 0 deletions
diff --git a/unratified/rv32_d_zfa b/unratified/rv32_d_zfa
new file mode 100644
index 0000000..2b7c89f
--- /dev/null
+++ b/unratified/rv32_d_zfa
@@ -0,0 +1,2 @@
+fmvh.x.d rd rs1 24..20=1 31..27=0x1C 14..12=0 26..25=1 6..2=0x14 1..0=3
+fmvp.d.x rd rs1 24..20=1 31..27=0x16 14..12=0 26..25=1 6..2=0x14 1..0=3
diff --git a/unratified/rv64_q_zfa b/unratified/rv64_q_zfa
new file mode 100644
index 0000000..b9ec80d
--- /dev/null
+++ b/unratified/rv64_q_zfa
@@ -0,0 +1,2 @@
+fmvh.x.q rd rs1 24..20=1 31..27=0x1C 14..12=0 26..25=3 6..2=0x14 1..0=3
+fmvp.q.x rd rs1 24..20=1 31..27=0x16 14..12=0 26..25=3 6..2=0x14 1..0=3 \ No newline at end of file
diff --git a/unratified/rv_d_zfa b/unratified/rv_d_zfa
new file mode 100644
index 0000000..7158eef
--- /dev/null
+++ b/unratified/rv_d_zfa
@@ -0,0 +1,8 @@
+fli.d rd rs1 24..20=1 31..27=0x1E 14..12=0 26..25=1 6..2=0x14 1..0=3
+fminm.d rd rs1 rs2 31..27=0x05 14..12=2 26..25=1 6..2=0x14 1..0=3
+fmaxm.d rd rs1 rs2 31..27=0x05 14..12=3 26..25=1 6..2=0x14 1..0=3
+fround.d rd rs1 24..20=4 31..27=0x08 rm 26..25=1 6..2=0x14 1..0=3
+froundnx.d rd rs1 24..20=5 31..27=0x08 rm 26..25=1 6..2=0x14 1..0=3
+fcvtmod.w.d rd rs1 24..20=8 31..27=0x18 14..12=1 26..25=1 6..2=0x14 1..0=3
+fleq.d rd rs1 rs2 31..27=0x14 14..12=4 26..25=1 6..2=0x14 1..0=3
+fltq.d rd rs1 rs2 31..27=0x14 14..12=5 26..25=1 6..2=0x14 1..0=3
diff --git a/unratified/rv_f_zfa b/unratified/rv_f_zfa
new file mode 100644
index 0000000..045fc27
--- /dev/null
+++ b/unratified/rv_f_zfa
@@ -0,0 +1,7 @@
+fli.s rd rs1 24..20=1 31..27=0x1E 14..12=0 26..25=0 6..2=0x14 1..0=3
+fminm.s rd rs1 rs2 31..27=0x05 14..12=2 26..25=0 6..2=0x14 1..0=3
+fmaxm.s rd rs1 rs2 31..27=0x05 14..12=3 26..25=0 6..2=0x14 1..0=3
+fround.s rd rs1 24..20=4 31..27=0x08 rm 26..25=0 6..2=0x14 1..0=3
+froundnx.s rd rs1 24..20=5 31..27=0x08 rm 26..25=0 6..2=0x14 1..0=3
+fleq.s rd rs1 rs2 31..27=0x14 14..12=4 26..25=0 6..2=0x14 1..0=3
+fltq.s rd rs1 rs2 31..27=0x14 14..12=5 26..25=0 6..2=0x14 1..0=3
diff --git a/unratified/rv_q_zfa b/unratified/rv_q_zfa
new file mode 100644
index 0000000..da45f9d
--- /dev/null
+++ b/unratified/rv_q_zfa
@@ -0,0 +1,7 @@
+fli.q rd rs1 24..20=1 31..27=0x1E 14..12=0 26..25=3 6..2=0x14 1..0=3
+fminm.q rd rs1 rs2 31..27=0x05 14..12=2 26..25=3 6..2=0x14 1..0=3
+fmaxm.q rd rs1 rs2 31..27=0x05 14..12=3 26..25=3 6..2=0x14 1..0=3
+fround.q rd rs1 24..20=4 31..27=0x08 rm 26..25=3 6..2=0x14 1..0=3
+froundnx.q rd rs1 24..20=5 31..27=0x08 rm 26..25=3 6..2=0x14 1..0=3
+fleq.q rd rs1 rs2 31..27=0x14 14..12=4 26..25=3 6..2=0x14 1..0=3
+fltq.q rd rs1 rs2 31..27=0x14 14..12=5 26..25=3 6..2=0x14 1..0=3
diff --git a/unratified/rv_zfh_zfa b/unratified/rv_zfh_zfa
new file mode 100644
index 0000000..f92d7a9
--- /dev/null
+++ b/unratified/rv_zfh_zfa
@@ -0,0 +1,7 @@
+fli.h rd rs1 24..20=1 31..27=0x1E 14..12=0 26..25=2 6..2=0x14 1..0=3
+fminm.h rd rs1 rs2 31..27=0x05 14..12=2 26..25=2 6..2=0x14 1..0=3
+fmaxm.h rd rs1 rs2 31..27=0x05 14..12=3 26..25=2 6..2=0x14 1..0=3
+fround.h rd rs1 24..20=4 31..27=0x08 rm 26..25=2 6..2=0x14 1..0=3
+froundnx.h rd rs1 24..20=5 31..27=0x08 rm 26..25=2 6..2=0x14 1..0=3
+fleq.h rd rs1 rs2 31..27=0x14 14..12=4 26..25=2 6..2=0x14 1..0=3
+fltq.h rd rs1 rs2 31..27=0x14 14..12=5 26..25=2 6..2=0x14 1..0=3