aboutsummaryrefslogtreecommitdiff
path: root/riscv/encoding.h
diff options
context:
space:
mode:
authorClifford Wolf <clifford@clifford.at>2019-12-05 17:27:14 -0800
committerAndrew Waterman <andrew@sifive.com>2020-10-22 17:00:11 -0700
commit2622defd0cca6cc59a80227f5fa909926f44d42e (patch)
tree7492d6b8ac4b093df336d5acf2703e851b29579b /riscv/encoding.h
parent672c50ca1605949aaa82992746ba7011f571aa89 (diff)
downloadspike-2622defd0cca6cc59a80227f5fa909926f44d42e.zip
spike-2622defd0cca6cc59a80227f5fa909926f44d42e.tar.gz
spike-2622defd0cca6cc59a80227f5fa909926f44d42e.tar.bz2
[riscv-bitmanip] Add sh[123]add[u.w] instruction
Signed-off-by: Clifford Wolf <clifford@clifford.at>
Diffstat (limited to 'riscv/encoding.h')
-rw-r--r--riscv/encoding.h18
1 files changed, 18 insertions, 0 deletions
diff --git a/riscv/encoding.h b/riscv/encoding.h
index 6654183..158a622 100644
--- a/riscv/encoding.h
+++ b/riscv/encoding.h
@@ -524,6 +524,12 @@
#define MASK_CRC32C_H 0xfff0707f
#define MATCH_CRC32C_W 0x61a01013
#define MASK_CRC32C_W 0xfff0707f
+#define MATCH_SH1ADD 0x20002033
+#define MASK_SH1ADD 0xfe00707f
+#define MATCH_SH2ADD 0x20004033
+#define MASK_SH2ADD 0xfe00707f
+#define MATCH_SH3ADD 0x20006033
+#define MASK_SH3ADD 0xfe00707f
#define MATCH_CLMUL 0xa001033
#define MASK_CLMUL 0xfe00707f
#define MATCH_CLMULR 0xa002033
@@ -628,6 +634,12 @@
#define MASK_CTZW 0xfff0707f
#define MATCH_PCNTW 0x6020101b
#define MASK_PCNTW 0xfff0707f
+#define MATCH_SH1ADDU_W 0x2000203b
+#define MASK_SH1ADDU_W 0xfe00707f
+#define MATCH_SH2ADDU_W 0x2000403b
+#define MASK_SH2ADDU_W 0xfe00707f
+#define MATCH_SH3ADDU_W 0x2000603b
+#define MASK_SH3ADDU_W 0xfe00707f
#define MATCH_CLMULW 0xa00103b
#define MASK_CLMULW 0xfe00707f
#define MATCH_CLMULRW 0xa00203b
@@ -2461,6 +2473,9 @@ DECLARE_INSN(crc32_w, MATCH_CRC32_W, MASK_CRC32_W)
DECLARE_INSN(crc32c_b, MATCH_CRC32C_B, MASK_CRC32C_B)
DECLARE_INSN(crc32c_h, MATCH_CRC32C_H, MASK_CRC32C_H)
DECLARE_INSN(crc32c_w, MATCH_CRC32C_W, MASK_CRC32C_W)
+DECLARE_INSN(sh1add, MATCH_SH1ADD, MASK_SH1ADD)
+DECLARE_INSN(sh2add, MATCH_SH2ADD, MASK_SH2ADD)
+DECLARE_INSN(sh3add, MATCH_SH3ADD, MASK_SH3ADD)
DECLARE_INSN(clmul, MATCH_CLMUL, MASK_CLMUL)
DECLARE_INSN(clmulr, MATCH_CLMULR, MASK_CLMULR)
DECLARE_INSN(clmulh, MATCH_CLMULH, MASK_CLMULH)
@@ -2513,6 +2528,9 @@ DECLARE_INSN(fsriw, MATCH_FSRIW, MASK_FSRIW)
DECLARE_INSN(clzw, MATCH_CLZW, MASK_CLZW)
DECLARE_INSN(ctzw, MATCH_CTZW, MASK_CTZW)
DECLARE_INSN(pcntw, MATCH_PCNTW, MASK_PCNTW)
+DECLARE_INSN(sh1addu_w, MATCH_SH1ADDU_W, MASK_SH1ADDU_W)
+DECLARE_INSN(sh2addu_w, MATCH_SH2ADDU_W, MASK_SH2ADDU_W)
+DECLARE_INSN(sh3addu_w, MATCH_SH3ADDU_W, MASK_SH3ADDU_W)
DECLARE_INSN(clmulw, MATCH_CLMULW, MASK_CLMULW)
DECLARE_INSN(clmulrw, MATCH_CLMULRW, MASK_CLMULRW)
DECLARE_INSN(clmulhw, MATCH_CLMULHW, MASK_CLMULHW)