diff options
author | Philipp Tomsich <philipp.tomsich@vrull.eu> | 2023-03-17 00:10:56 +0100 |
---|---|---|
committer | Philipp Tomsich <philipp.tomsich@vrull.eu> | 2023-03-17 01:21:27 +0100 |
commit | e77307f37e7538622d48a5a43560d60d27e318da (patch) | |
tree | 7aadf1b08ae4c1e9edd041a946f1125bdb1ad89e /unratified | |
parent | 32453565a7772b5771627bb5165c153bfb2b81cd (diff) | |
download | riscv-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_zfa | 2 | ||||
-rw-r--r-- | unratified/rv64_q_zfa | 2 | ||||
-rw-r--r-- | unratified/rv_d_zfa | 8 | ||||
-rw-r--r-- | unratified/rv_f_zfa | 7 | ||||
-rw-r--r-- | unratified/rv_q_zfa | 7 | ||||
-rw-r--r-- | unratified/rv_zfh_zfa | 7 |
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 |