aboutsummaryrefslogtreecommitdiff
path: root/riscv/encoding.h
diff options
context:
space:
mode:
authorAndrew Waterman <andrew@sifive.com>2021-03-08 14:38:34 -0800
committerGitHub <noreply@github.com>2021-03-08 14:38:34 -0800
commit06f630cb30c60c32452058710e98c7b05106b7f5 (patch)
tree237c8e359116d06056a742bd7b7868e8c10f5fcf /riscv/encoding.h
parent6d5a351a9833cf7555e6b91019c481b9e55b47bf (diff)
parentda7748e6d88c75559e8f3c09067a502fe950136e (diff)
downloadspike-06f630cb30c60c32452058710e98c7b05106b7f5.zip
spike-06f630cb30c60c32452058710e98c7b05106b7f5.tar.gz
spike-06f630cb30c60c32452058710e98c7b05106b7f5.tar.bz2
Merge pull request #649 from ben-marshall/scalar-crypto-fix
Scalar crypto fixes
Diffstat (limited to 'riscv/encoding.h')
-rw-r--r--riscv/encoding.h63
1 files changed, 51 insertions, 12 deletions
diff --git a/riscv/encoding.h b/riscv/encoding.h
index 881ed7d..3c5a473 100644
--- a/riscv/encoding.h
+++ b/riscv/encoding.h
@@ -967,14 +967,28 @@
#define MATCH_AES64IM 0x30001013
#define MASK_AES64KS2 0xfe00707f
#define MATCH_AES64KS2 0x7e000033
-#define MASK_AESESM 0x3e00707f
-#define MATCH_AESESM 0x36000033
-#define MASK_AESES 0x3e00707f
-#define MATCH_AESES 0x32000033
-#define MASK_AESDSM 0x3e00707f
-#define MATCH_AESDSM 0x3e000033
-#define MASK_AESDS 0x3e00707f
-#define MATCH_AESDS 0x3a000033
+#define MASK_AES32ESMI 0x3e007fff
+#define MATCH_AES32ESMI 0x36000033
+#define MASK_AES32ESI 0x3e007fff
+#define MATCH_AES32ESI 0x32000033
+#define MASK_AES32DSMI 0x3e007fff
+#define MATCH_AES32DSMI 0x3e000033
+#define MASK_AES32DSI 0x3e007fff
+#define MATCH_AES32DSI 0x3a000033
+#define MASK_AES64KS1I 0xff00707f
+#define MATCH_AES64KS1I 0x31001013
+#define MASK_AES64IM 0xfff0707f
+#define MATCH_AES64IM 0x30001013
+#define MASK_AES64KS2 0xfe00707f
+#define MATCH_AES64KS2 0x7e000033
+#define MASK_AES64ESM 0xfe00707f
+#define MATCH_AES64ESM 0x36000033
+#define MASK_AES64ES 0xfe00707f
+#define MATCH_AES64ES 0x32000033
+#define MASK_AES64DSM 0xfe00707f
+#define MATCH_AES64DSM 0x3e000033
+#define MASK_AES64DS 0xfe00707f
+#define MATCH_AES64DS 0x3a000033
#define MASK_SHA512SUM0 0xfff0707f
#define MATCH_SHA512SUM0 0x10401013
#define MASK_SHA512SUM1 0xfff0707f
@@ -2752,10 +2766,25 @@ DECLARE_INSN(sm4ks, MATCH_SM4KS, MASK_SM4KS)
DECLARE_INSN(aes64ks1i, MATCH_AES64KS1I, MASK_AES64KS1I)
DECLARE_INSN(aes64ks2, MATCH_AES64KS2, MASK_AES64KS2)
DECLARE_INSN(aes64im, MATCH_AES64IM, MASK_AES64IM)
-DECLARE_INSN(aesesm, MATCH_AESESM, MASK_AESESM)
-DECLARE_INSN(aeses, MATCH_AESES, MASK_AESES)
-DECLARE_INSN(aesdsm, MATCH_AESDSM, MASK_AESDSM)
-DECLARE_INSN(aesds, MATCH_AESDS, MASK_AESDS)
+DECLARE_INSN(aes64es, MATCH_AES64ES, MASK_AES64ES)
+DECLARE_INSN(aes64esm, MATCH_AES64ESM, MASK_AES64ESM)
+DECLARE_INSN(aes64ds, MATCH_AES64DS, MASK_AES64DS)
+DECLARE_INSN(aes64dsm, MATCH_AES64DSM, MASK_AES64DSM)
+DECLARE_RV64_ONLY(aes64ks1i)
+DECLARE_RV64_ONLY(aes64ks2)
+DECLARE_RV64_ONLY(aes64im)
+DECLARE_RV64_ONLY(aes64es)
+DECLARE_RV64_ONLY(aes64esm)
+DECLARE_RV64_ONLY(aes64ds)
+DECLARE_RV64_ONLY(aes64dsm)
+DECLARE_INSN(aes32esi, MATCH_AES32ESI, MASK_AES32ESI)
+DECLARE_INSN(aes32esmi, MATCH_AES32ESMI, MASK_AES32ESMI)
+DECLARE_INSN(aes32dsi, MATCH_AES32DSI, MASK_AES32DSI)
+DECLARE_INSN(aes32dsmi, MATCH_AES32DSMI, MASK_AES32DSMI)
+DECLARE_RV32_ONLY(aes32esi)
+DECLARE_RV32_ONLY(aes32esmi)
+DECLARE_RV32_ONLY(aes32dsi)
+DECLARE_RV32_ONLY(aes32dsmi)
DECLARE_INSN(sha256sig0, MATCH_SHA256SIG0, MASK_SHA256SIG0)
DECLARE_INSN(sha256sig1, MATCH_SHA256SIG1, MASK_SHA256SIG1)
DECLARE_INSN(sha256sum0, MATCH_SHA256SUM0, MASK_SHA256SUM0)
@@ -2768,10 +2797,20 @@ DECLARE_INSN(sha512sig1l, MATCH_SHA512SIG1L, MASK_SHA512SIG1L)
DECLARE_INSN(sha512sig1h, MATCH_SHA512SIG1H, MASK_SHA512SIG1H)
DECLARE_INSN(sha512sum0r, MATCH_SHA512SUM0R, MASK_SHA512SUM0R)
DECLARE_INSN(sha512sum1r, MATCH_SHA512SUM1R, MASK_SHA512SUM1R)
+DECLARE_RV32_ONLY(sha512sig0l)
+DECLARE_RV32_ONLY(sha512sig0h)
+DECLARE_RV32_ONLY(sha512sig1l)
+DECLARE_RV32_ONLY(sha512sig1h)
+DECLARE_RV32_ONLY(sha512sum0r)
+DECLARE_RV32_ONLY(sha512sum1r)
DECLARE_INSN(sha512sig0, MATCH_SHA512SIG0, MASK_SHA512SIG0)
DECLARE_INSN(sha512sig1, MATCH_SHA512SIG1, MASK_SHA512SIG1)
DECLARE_INSN(sha512sum0, MATCH_SHA512SUM0, MASK_SHA512SUM0)
DECLARE_INSN(sha512sum1, MATCH_SHA512SUM1, MASK_SHA512SUM1)
+DECLARE_RV64_ONLY(sha512sig0)
+DECLARE_RV64_ONLY(sha512sig1)
+DECLARE_RV64_ONLY(sha512sum0)
+DECLARE_RV64_ONLY(sha512sum1)
DECLARE_INSN(pollentropy, MATCH_POLLENTROPY, MASK_POLLENTROPY)
DECLARE_INSN(getnoise, MATCH_GETNOISE, MASK_GETNOISE)
DECLARE_INSN(ecall, MATCH_ECALL, MASK_ECALL)