aboutsummaryrefslogtreecommitdiff
path: root/riscv/encoding.h
diff options
context:
space:
mode:
authorClifford Wolf <clifford@clifford.at>2019-11-08 17:49:36 +0100
committerAndrew Waterman <andrew@sifive.com>2020-10-22 17:00:11 -0700
commit147aef1628dca043e4b3de8a3b586f07ab46ae46 (patch)
tree67a60e55b407b47da7f51341d93a9b88e054ccd4 /riscv/encoding.h
parenta4a2ce20caf756e39e109f5cc047238c35e03857 (diff)
downloadspike-147aef1628dca043e4b3de8a3b586f07ab46ae46.zip
spike-147aef1628dca043e4b3de8a3b586f07ab46ae46.tar.gz
spike-147aef1628dca043e4b3de8a3b586f07ab46ae46.tar.bz2
[riscv-bitmanip] Changes for RISC-V Bitmanip Spec 0.92
Signed-off-by: Clifford Wolf <clifford@clifford.at>
Diffstat (limited to 'riscv/encoding.h')
-rw-r--r--riscv/encoding.h31
1 files changed, 23 insertions, 8 deletions
diff --git a/riscv/encoding.h b/riscv/encoding.h
index ee0a184..6654183 100644
--- a/riscv/encoding.h
+++ b/riscv/encoding.h
@@ -508,6 +508,10 @@
#define MASK_CTZ 0xfff0707f
#define MATCH_PCNT 0x60201013
#define MASK_PCNT 0xfff0707f
+#define MATCH_SEXT_B 0x60401013
+#define MASK_SEXT_B 0xfff0707f
+#define MATCH_SEXT_H 0x60501013
+#define MASK_SEXT_H 0xfff0707f
#define MATCH_CRC32_B 0x61001013
#define MASK_CRC32_B 0xfff0707f
#define MATCH_CRC32_H 0x61101013
@@ -538,13 +542,17 @@
#define MASK_SHFL 0xfe00707f
#define MATCH_UNSHFL 0x8005033
#define MASK_UNSHFL 0xfe00707f
-#define MATCH_BDEP 0x8002033
-#define MASK_BDEP 0xfe00707f
#define MATCH_BEXT 0x8006033
#define MASK_BEXT 0xfe00707f
+#define MATCH_BDEP 0x48006033
+#define MASK_BDEP 0xfe00707f
#define MATCH_PACK 0x8004033
#define MASK_PACK 0xfe00707f
-#define MATCH_BFP 0x8007033
+#define MATCH_PACKU 0x48004033
+#define MASK_PACKU 0xfe00707f
+#define MATCH_PACKH 0x8007033
+#define MASK_PACKH 0xfe00707f
+#define MATCH_BFP 0x48007033
#define MASK_BFP 0xfe00707f
#define MATCH_SHFLI 0x8001013
#define MASK_SHFLI 0xfe00707f
@@ -630,13 +638,15 @@
#define MASK_SHFLW 0xfe00707f
#define MATCH_UNSHFLW 0x800503b
#define MASK_UNSHFLW 0xfe00707f
-#define MATCH_BDEPW 0x800203b
-#define MASK_BDEPW 0xfe00707f
#define MATCH_BEXTW 0x800603b
#define MASK_BEXTW 0xfe00707f
+#define MATCH_BDEPW 0x4800603b
+#define MASK_BDEPW 0xfe00707f
#define MATCH_PACKW 0x800403b
#define MASK_PACKW 0xfe00707f
-#define MATCH_BFPW 0x800703b
+#define MATCH_PACKUW 0x4800403b
+#define MASK_PACKUW 0xfe00707f
+#define MATCH_BFPW 0x4800703b
#define MASK_BFPW 0xfe00707f
#define MATCH_AMOADD_W 0x202f
#define MASK_AMOADD_W 0xf800707f
@@ -2443,6 +2453,8 @@ DECLARE_INSN(fsri, MATCH_FSRI, MASK_FSRI)
DECLARE_INSN(clz, MATCH_CLZ, MASK_CLZ)
DECLARE_INSN(ctz, MATCH_CTZ, MASK_CTZ)
DECLARE_INSN(pcnt, MATCH_PCNT, MASK_PCNT)
+DECLARE_INSN(sext_b, MATCH_SEXT_B, MASK_SEXT_B)
+DECLARE_INSN(sext_h, MATCH_SEXT_H, MASK_SEXT_H)
DECLARE_INSN(crc32_b, MATCH_CRC32_B, MASK_CRC32_B)
DECLARE_INSN(crc32_h, MATCH_CRC32_H, MASK_CRC32_H)
DECLARE_INSN(crc32_w, MATCH_CRC32_W, MASK_CRC32_W)
@@ -2458,9 +2470,11 @@ DECLARE_INSN(minu, MATCH_MINU, MASK_MINU)
DECLARE_INSN(maxu, MATCH_MAXU, MASK_MAXU)
DECLARE_INSN(shfl, MATCH_SHFL, MASK_SHFL)
DECLARE_INSN(unshfl, MATCH_UNSHFL, MASK_UNSHFL)
-DECLARE_INSN(bdep, MATCH_BDEP, MASK_BDEP)
DECLARE_INSN(bext, MATCH_BEXT, MASK_BEXT)
+DECLARE_INSN(bdep, MATCH_BDEP, MASK_BDEP)
DECLARE_INSN(pack, MATCH_PACK, MASK_PACK)
+DECLARE_INSN(packu, MATCH_PACKU, MASK_PACKU)
+DECLARE_INSN(packh, MATCH_PACKH, MASK_PACKH)
DECLARE_INSN(bfp, MATCH_BFP, MASK_BFP)
DECLARE_INSN(shfli, MATCH_SHFLI, MASK_SHFLI)
DECLARE_INSN(unshfli, MATCH_UNSHFLI, MASK_UNSHFLI)
@@ -2504,9 +2518,10 @@ DECLARE_INSN(clmulrw, MATCH_CLMULRW, MASK_CLMULRW)
DECLARE_INSN(clmulhw, MATCH_CLMULHW, MASK_CLMULHW)
DECLARE_INSN(shflw, MATCH_SHFLW, MASK_SHFLW)
DECLARE_INSN(unshflw, MATCH_UNSHFLW, MASK_UNSHFLW)
-DECLARE_INSN(bdepw, MATCH_BDEPW, MASK_BDEPW)
DECLARE_INSN(bextw, MATCH_BEXTW, MASK_BEXTW)
+DECLARE_INSN(bdepw, MATCH_BDEPW, MASK_BDEPW)
DECLARE_INSN(packw, MATCH_PACKW, MASK_PACKW)
+DECLARE_INSN(packuw, MATCH_PACKUW, MASK_PACKUW)
DECLARE_INSN(bfpw, MATCH_BFPW, MASK_BFPW)
DECLARE_INSN(amoadd_w, MATCH_AMOADD_W, MASK_AMOADD_W)
DECLARE_INSN(amoxor_w, MATCH_AMOXOR_W, MASK_AMOXOR_W)