diff options
-rw-r--r-- | opcodes-rv32xbitmanip | 42 | ||||
-rw-r--r-- | opcodes-rv64xbitmanip | 35 | ||||
-rw-r--r-- | unratified/rv32_zbp | 7 | ||||
-rw-r--r-- | unratified/rv32_zbpbo | 5 | ||||
-rw-r--r-- | unratified/rv32_zbt | 2 | ||||
-rw-r--r-- | unratified/rv64_zbe | 4 | ||||
-rw-r--r-- | unratified/rv64_zbf | 3 | ||||
-rw-r--r-- | unratified/rv64_zbm | 7 | ||||
-rw-r--r-- | unratified/rv64_zbp | 17 | ||||
-rw-r--r-- | unratified/rv64_zbpbo | 2 | ||||
-rw-r--r-- | unratified/rv64_zbr | 3 | ||||
-rw-r--r-- | unratified/rv64_zbt | 6 | ||||
-rw-r--r-- | unratified/rv_zbe | 5 | ||||
-rw-r--r-- | unratified/rv_zbf | 4 | ||||
-rw-r--r-- | unratified/rv_zbr | 7 | ||||
-rw-r--r-- | unratified/rv_zbt | 6 |
16 files changed, 78 insertions, 77 deletions
diff --git a/opcodes-rv32xbitmanip b/opcodes-rv32xbitmanip deleted file mode 100644 index 173fb8c..0000000 --- a/opcodes-rv32xbitmanip +++ /dev/null @@ -1,42 +0,0 @@ -# This file contains unratified instructions that have been proposed -# by the Bit Manipulation TG but have not been ratified. (Spike -# supports them via the Xbitmanip extension, hence the filename.) - -slo rd rs1 rs2 31..25=16 14..12=1 6..2=0x0C 1..0=3 -sro rd rs1 rs2 31..25=16 14..12=5 6..2=0x0C 1..0=3 - -gorc rd rs1 rs2 31..25=20 14..12=5 6..2=0x0C 1..0=3 -grev rd rs1 rs2 31..25=52 14..12=5 6..2=0x0C 1..0=3 - -sloi rd rs1 31..26=8 shamt 14..12=1 6..2=0x04 1..0=3 -sroi rd rs1 31..26=8 shamt 14..12=5 6..2=0x04 1..0=3 - -# These are marked as pseudos to avoid conflicting with orc.b and rev8 -@gorci rd rs1 31..26=10 shamt 14..12=5 6..2=0x04 1..0=3 -@grevi rd rs1 31..26=26 shamt 14..12=5 6..2=0x04 1..0=3 - -cmix rd rs1 rs2 rs3 26..25=3 14..12=1 6..2=0x0C 1..0=3 -cmov rd rs1 rs2 rs3 26..25=3 14..12=5 6..2=0x0C 1..0=3 - -fsl rd rs1 rs2 rs3 26..25=2 14..12=1 6..2=0x0C 1..0=3 -fsr rd rs1 rs2 rs3 26..25=2 14..12=5 6..2=0x0C 1..0=3 -fsri rd rs1 shamt rs3 26=1 14..12=5 6..2=0x04 1..0=3 - -crc32.b rd rs1 31..20=0x610 14..12=1 6..2=0x04 1..0=3 -crc32.h rd rs1 31..20=0x611 14..12=1 6..2=0x04 1..0=3 -crc32.w rd rs1 31..20=0x612 14..12=1 6..2=0x04 1..0=3 -crc32c.b rd rs1 31..20=0x618 14..12=1 6..2=0x04 1..0=3 -crc32c.h rd rs1 31..20=0x619 14..12=1 6..2=0x04 1..0=3 -crc32c.w rd rs1 31..20=0x61A 14..12=1 6..2=0x04 1..0=3 - -shfl rd rs1 rs2 31..25=4 14..12=1 6..2=0x0C 1..0=3 -unshfl rd rs1 rs2 31..25=4 14..12=5 6..2=0x0C 1..0=3 -bcompress rd rs1 rs2 31..25=4 14..12=6 6..2=0x0C 1..0=3 -bdecompress rd rs1 rs2 31..25=36 14..12=6 6..2=0x0C 1..0=3 -packu rd rs1 rs2 31..25=36 14..12=4 6..2=0x0C 1..0=3 -bfp rd rs1 rs2 31..25=36 14..12=7 6..2=0x0C 1..0=3 - -shfli rd rs1 31..25=4 shamtw 14..12=1 6..2=0x04 1..0=3 -unshfli rd rs1 31..25=4 shamtw 14..12=5 6..2=0x04 1..0=3 - -xperm16 rd rs1 rs2 31..25=20 14..12=6 6..2=0x0C 1..0=3 diff --git a/opcodes-rv64xbitmanip b/opcodes-rv64xbitmanip deleted file mode 100644 index 6e6a595..0000000 --- a/opcodes-rv64xbitmanip +++ /dev/null @@ -1,35 +0,0 @@ -# This file contains unratified instructions that have been proposed -# by the Bit Manipulation TG but have not been ratified. (Spike -# supports them via the Xbitmanip extension, hence the filename.) - -bmatflip rd rs1 31..20=0x603 14..12=1 6..2=0x04 1..0=3 -crc32.d rd rs1 31..20=0x613 14..12=1 6..2=0x04 1..0=3 -crc32c.d rd rs1 31..20=0x61B 14..12=1 6..2=0x04 1..0=3 - -bmator rd rs1 rs2 31..25=4 14..12=3 6..2=0x0C 1..0=3 -bmatxor rd rs1 rs2 31..25=36 14..12=3 6..2=0x0C 1..0=3 - -slow rd rs1 rs2 31..25=16 14..12=1 6..2=0x0E 1..0=3 -srow rd rs1 rs2 31..25=16 14..12=5 6..2=0x0E 1..0=3 - -gorcw rd rs1 rs2 31..25=20 14..12=5 6..2=0x0E 1..0=3 -grevw rd rs1 rs2 31..25=52 14..12=5 6..2=0x0E 1..0=3 - -sloiw rd rs1 31..26=8 25=0 shamtw 14..12=1 6..2=0x06 1..0=3 -sroiw rd rs1 31..26=8 25=0 shamtw 14..12=5 6..2=0x06 1..0=3 - -gorciw rd rs1 31..26=10 25=0 shamtw 14..12=5 6..2=0x06 1..0=3 -greviw rd rs1 31..26=26 25=0 shamtw 14..12=5 6..2=0x06 1..0=3 - -fslw rd rs1 rs2 rs3 26..25=2 14..12=1 6..2=0x0E 1..0=3 -fsrw rd rs1 rs2 rs3 26..25=2 14..12=5 6..2=0x0E 1..0=3 -fsriw rd rs1 shamtw rs3 26..25=2 14..12=5 6..2=0x06 1..0=3 - -shflw rd rs1 rs2 31..25=4 14..12=1 6..2=0x0E 1..0=3 -unshflw rd rs1 rs2 31..25=4 14..12=5 6..2=0x0E 1..0=3 -bcompressw rd rs1 rs2 31..25=4 14..12=6 6..2=0x0E 1..0=3 -bdecompressw rd rs1 rs2 31..25=36 14..12=6 6..2=0x0E 1..0=3 -packuw rd rs1 rs2 31..25=36 14..12=4 6..2=0x0E 1..0=3 -bfpw rd rs1 rs2 31..25=36 14..12=7 6..2=0x0E 1..0=3 - -xperm32 rd rs1 rs2 31..25=20 14..12=0 6..2=0x0C 1..0=3 diff --git a/unratified/rv32_zbp b/unratified/rv32_zbp new file mode 100644 index 0000000..ac8a564 --- /dev/null +++ b/unratified/rv32_zbp @@ -0,0 +1,7 @@ +$pseudo_op rv64_zbp::grevi grevi rd rs1 31..25=0x34 shamtw 14..12=5 6..2=0x04 1..0=3 +$pseudo_op rv64_zbp::gorci gorci rd rs1 31..25=0x14 shamtw 14..12=5 6..2=0x04 1..0=3 +$pseudo_op rv64_zbp::shfli shfli rd rs1 31..25=4 24=0 shamtw4 14..12=1 6..2=0x04 1..0=3 +$pseudo_op rv64_zbp::unshfli unshfli rd rs1 31..25=4 24=0 shamtw4 14..12=5 6..2=0x04 1..0=3 +$pseudo_op rv64_zbb::rori rori rd rs1 31..25=0x30 shamtw 14..12=5 6..2=0x04 1..0=3 + + diff --git a/unratified/rv32_zbpbo b/unratified/rv32_zbpbo new file mode 100644 index 0000000..6ecc566 --- /dev/null +++ b/unratified/rv32_zbpbo @@ -0,0 +1,5 @@ +$import rv_zbb::clz +$import rv_zbt::fsr +$import rv32_zbt::fsri +$pseudo_op rv64_zbp::grevi rev rd rs1 31..20=0x69F 14..12=5 6..0=0x13 + diff --git a/unratified/rv32_zbt b/unratified/rv32_zbt new file mode 100644 index 0000000..4b5a286 --- /dev/null +++ b/unratified/rv32_zbt @@ -0,0 +1,2 @@ +$pseudo_op rv64_zbt::fsri fsri rd rs1 rs3 26=1 25=0 shamtw 14..12=5 6..2=0x04 1..0=3 + diff --git a/unratified/rv64_zbe b/unratified/rv64_zbe new file mode 100644 index 0000000..d36b80c --- /dev/null +++ b/unratified/rv64_zbe @@ -0,0 +1,4 @@ +bcompressw rd rs1 rs2 31..25=4 14..12=6 6..2=0x0E 1..0=3 +bdecompressw rd rs1 rs2 31..25=36 14..12=6 6..2=0x0E 1..0=3 +packw rd rs1 rs2 31..25=4 14..12=4 6..2=0x0E 1..0=3 + diff --git a/unratified/rv64_zbf b/unratified/rv64_zbf new file mode 100644 index 0000000..d02b59d --- /dev/null +++ b/unratified/rv64_zbf @@ -0,0 +1,3 @@ +bfpw rd rs1 rs2 31..25=36 14..12=7 6..2=0x0E 1..0=3 +$import rv64_zbe::packw + diff --git a/unratified/rv64_zbm b/unratified/rv64_zbm new file mode 100644 index 0000000..46a5ebf --- /dev/null +++ b/unratified/rv64_zbm @@ -0,0 +1,7 @@ +bmatflip rd rs1 31..20=0x603 14..12=1 6..2=0x04 1..0=3 +bmator rd rs1 rs2 31..25=4 14..12=3 6..2=0x0C 1..0=3 +bmatxor rd rs1 rs2 31..25=36 14..12=3 6..2=0x0C 1..0=3 +$pseudo_op rv64_zbp::unshfli unzip16 rd rs1 31..25=4 24..20=16 14..12=5 6..2=4 1..0=3 +$pseudo_op rv64_zbp::unshfli unzip8 rd rs1 31..25=4 24..20=24 14..12=5 6..2=4 1..0=3 +$import rv_zbe::pack +$import rv_zbp::packu diff --git a/unratified/rv64_zbp b/unratified/rv64_zbp new file mode 100644 index 0000000..f4c0bca --- /dev/null +++ b/unratified/rv64_zbp @@ -0,0 +1,17 @@ +grevi rd rs1 31..26=26 shamt 14..12=5 6..2=0x04 1..0=3 +gorci rd rs1 31..26=10 shamt 14..12=5 6..2=0x04 1..0=3 +shfli rd rs1 31..26=2 25=0 shamtw 14..12=1 6..2=0x04 1..0=3 +unshfli rd rs1 31..26=2 25=0 shamtw 14..12=5 6..2=0x04 1..0=3 +$import rv64_zbe::packw +packuw rd rs1 rs2 31..25=36 14..12=4 6..2=0x0E 1..0=3 +$import rv64_zbb::rolw +$import rv64_zbb::rorw +$import rv64_zbb::roriw +$import rv64_zbb::rori +gorcw rd rs1 rs2 31..25=20 14..12=5 6..2=0x0E 1..0=3 +grevw rd rs1 rs2 31..25=52 14..12=5 6..2=0x0E 1..0=3 +gorciw rd rs1 31..26=10 25=0 shamtw 14..12=5 6..2=0x06 1..0=3 +greviw rd rs1 31..26=26 25=0 shamtw 14..12=5 6..2=0x06 1..0=3 +shflw rd rs1 rs2 31..25=4 14..12=1 6..2=0x0E 1..0=3 +unshflw rd rs1 rs2 31..25=4 14..12=5 6..2=0x0E 1..0=3 +xperm.w rd rs1 rs2 31..25=20 14..12=0 6..2=0x0C 1..0=3 diff --git a/unratified/rv64_zbpbo b/unratified/rv64_zbpbo new file mode 100644 index 0000000..f88bd03 --- /dev/null +++ b/unratified/rv64_zbpbo @@ -0,0 +1,2 @@ +$import rv64_zbt::fsrw +$pseudo_op rv64_zbp::grevi rev rd rs1 31..20=0x6BF 14..12=5 6..0=0x13 diff --git a/unratified/rv64_zbr b/unratified/rv64_zbr new file mode 100644 index 0000000..3b470f1 --- /dev/null +++ b/unratified/rv64_zbr @@ -0,0 +1,3 @@ +crc32.d rd rs1 31..20=0x613 14..12=1 6..2=0x04 1..0=3 +crc32c.d rd rs1 31..20=0x61B 14..12=1 6..2=0x04 1..0=3 + diff --git a/unratified/rv64_zbt b/unratified/rv64_zbt new file mode 100644 index 0000000..fcb84b5 --- /dev/null +++ b/unratified/rv64_zbt @@ -0,0 +1,6 @@ +fslw rd rs1 rs2 rs3 26..25=2 14..12=1 6..2=0x0E 1..0=3 +fsrw rd rs1 rs2 rs3 26..25=2 14..12=5 6..2=0x0E 1..0=3 +fsriw rd rs1 rs3 26..25=2 shamtw 14..12=5 6..2=0x06 1..0=3 +fsri rd rs1 rs3 26=1 shamt 14..12=5 6..2=0x04 1..0=3 + + diff --git a/unratified/rv_zbe b/unratified/rv_zbe new file mode 100644 index 0000000..1e8a037 --- /dev/null +++ b/unratified/rv_zbe @@ -0,0 +1,5 @@ +bcompress rd rs1 rs2 31..25=4 14..12=6 6..2=0x0C 1..0=3 +bdecompress rd rs1 rs2 31..25=36 14..12=6 6..2=0x0C 1..0=3 +pack rd rs1 rs2 31..25=4 14..12=4 6..2=0x0C 1..0=3 +packh rd rs1 rs2 31..25=4 14..12=7 6..2=0x0C 1..0=3 + diff --git a/unratified/rv_zbf b/unratified/rv_zbf new file mode 100644 index 0000000..33dd0a6 --- /dev/null +++ b/unratified/rv_zbf @@ -0,0 +1,4 @@ +bfp rd rs1 rs2 31..25=36 14..12=7 6..2=0x0C 1..0=3 +$import rv_zbe::pack +$import rv_zbe::packh + diff --git a/unratified/rv_zbr b/unratified/rv_zbr new file mode 100644 index 0000000..3cfd5a7 --- /dev/null +++ b/unratified/rv_zbr @@ -0,0 +1,7 @@ +crc32.b rd rs1 31..20=0x610 14..12=1 6..2=0x04 1..0=3 +crc32.h rd rs1 31..20=0x611 14..12=1 6..2=0x04 1..0=3 +crc32.w rd rs1 31..20=0x612 14..12=1 6..2=0x04 1..0=3 +crc32c.b rd rs1 31..20=0x618 14..12=1 6..2=0x04 1..0=3 +crc32c.h rd rs1 31..20=0x619 14..12=1 6..2=0x04 1..0=3 +crc32c.w rd rs1 31..20=0x61A 14..12=1 6..2=0x04 1..0=3 + diff --git a/unratified/rv_zbt b/unratified/rv_zbt new file mode 100644 index 0000000..9e7b98b --- /dev/null +++ b/unratified/rv_zbt @@ -0,0 +1,6 @@ +cmix rd rs1 rs2 rs3 26..25=3 14..12=1 6..2=0x0C 1..0=3 +cmov rd rs1 rs2 rs3 26..25=3 14..12=5 6..2=0x0C 1..0=3 + +fsl rd rs1 rs2 rs3 26..25=2 14..12=1 6..2=0x0C 1..0=3 +fsr rd rs1 rs2 rs3 26..25=2 14..12=5 6..2=0x0C 1..0=3 + |