aboutsummaryrefslogtreecommitdiff
path: root/riscv/decode.h
diff options
context:
space:
mode:
authormarcfedorow <mark.fedorov@cloudbear.ru>2021-10-15 02:18:53 +0300
committerGitHub <noreply@github.com>2021-10-14 16:18:53 -0700
commitb8d27b6ac039abc1c31b3caea4342cadfb682ea3 (patch)
tree7248a2254c803767d1670ca5478c13438398cb4f /riscv/decode.h
parent877686f4e0016819077dc1c23571c5bde770eb32 (diff)
downloadspike-b8d27b6ac039abc1c31b3caea4342cadfb682ea3.zip
spike-b8d27b6ac039abc1c31b3caea4342cadfb682ea3.tar.gz
spike-b8d27b6ac039abc1c31b3caea4342cadfb682ea3.tar.bz2
Split 'P' to EXT_ZPN and friends (#830)
* Added ZMMUL extension * Splitted P-ext to its zeds * Typo fix
Diffstat (limited to 'riscv/decode.h')
-rw-r--r--riscv/decode.h24
1 files changed, 12 insertions, 12 deletions
diff --git a/riscv/decode.h b/riscv/decode.h
index 3c192a5..b1780ec 100644
--- a/riscv/decode.h
+++ b/riscv/decode.h
@@ -2364,7 +2364,7 @@ reg_t index[P.VU.vlmax]; \
}
#define P_LOOP_BASE(BIT) \
- require_extension('P'); \
+ require_extension(EXT_ZPN); \
require(BIT == e8 || BIT == e16 || BIT == e32); \
reg_t rd_tmp = RD; \
reg_t rs1 = RS1; \
@@ -2373,7 +2373,7 @@ reg_t index[P.VU.vlmax]; \
for (sreg_t i = len - 1; i >= 0; --i) {
#define P_ONE_LOOP_BASE(BIT) \
- require_extension('P'); \
+ require_extension(EXT_ZPN); \
require(BIT == e8 || BIT == e16 || BIT == e32); \
reg_t rd_tmp = RD; \
reg_t rs1 = RS1; \
@@ -2381,7 +2381,7 @@ reg_t index[P.VU.vlmax]; \
for (sreg_t i = len - 1; i >= 0; --i) {
#define P_I_LOOP_BASE(BIT, IMMBIT) \
- require_extension('P'); \
+ require_extension(EXT_ZPN); \
require(BIT == e8 || BIT == e16 || BIT == e32); \
reg_t rd_tmp = RD; \
reg_t rs1 = RS1; \
@@ -2390,7 +2390,7 @@ reg_t index[P.VU.vlmax]; \
for (sreg_t i = len - 1; i >= 0; --i) {
#define P_X_LOOP_BASE(BIT, LOWBIT) \
- require_extension('P'); \
+ require_extension(EXT_ZPN); \
require(BIT == e8 || BIT == e16 || BIT == e32); \
reg_t rd_tmp = RD; \
reg_t rs1 = RS1; \
@@ -2400,7 +2400,7 @@ reg_t index[P.VU.vlmax]; \
for (sreg_t i = len - 1; i >= 0; --i) {
#define P_MUL_LOOP_BASE(BIT) \
- require_extension('P'); \
+ require_extension(EXT_ZPN); \
require(BIT == e8 || BIT == e16 || BIT == e32); \
reg_t rd_tmp = RD; \
reg_t rs1 = RS1; \
@@ -2409,7 +2409,7 @@ reg_t index[P.VU.vlmax]; \
for (sreg_t i = len - 1; i >= 0; --i) {
#define P_REDUCTION_LOOP_BASE(BIT, BIT_INNER, USE_RD) \
- require_extension('P'); \
+ require_extension(EXT_ZPN); \
require(BIT == e16 || BIT == e32 || BIT == e64); \
reg_t rd_tmp = USE_RD ? zext_xlen(RD) : 0; \
reg_t rs1 = zext_xlen(RS1); \
@@ -2421,7 +2421,7 @@ reg_t index[P.VU.vlmax]; \
for (sreg_t j = i * len_inner; j < (i + 1) * len_inner; ++j) {
#define P_REDUCTION_ULOOP_BASE(BIT, BIT_INNER, USE_RD) \
- require_extension('P'); \
+ require_extension(EXT_ZPN); \
require(BIT == e16 || BIT == e32 || BIT == e64); \
reg_t rd_tmp = USE_RD ? zext_xlen(RD) : 0; \
reg_t rs1 = zext_xlen(RS1); \
@@ -2706,7 +2706,7 @@ reg_t index[P.VU.vlmax]; \
WRITE_RD(sext_xlen(rd_tmp));
#define P_SUNPKD8(X, Y) \
- require_extension('P'); \
+ require_extension(EXT_ZPN); \
reg_t rd_tmp = 0; \
int16_t pd[4] = { \
P_SB(RS1, Y), \
@@ -2722,7 +2722,7 @@ reg_t index[P.VU.vlmax]; \
WRITE_RD(sext_xlen(rd_tmp));
#define P_ZUNPKD8(X, Y) \
- require_extension('P'); \
+ require_extension(EXT_ZPN); \
reg_t rd_tmp = 0; \
uint16_t pd[4] = { \
P_B(RS1, Y), \
@@ -2738,7 +2738,7 @@ reg_t index[P.VU.vlmax]; \
WRITE_RD(sext_xlen(rd_tmp));
#define P_PK(BIT, X, Y) \
- require_extension('P'); \
+ require_extension(EXT_ZPN); \
require(BIT == e16 || BIT == e32); \
reg_t rd_tmp = 0, rs1 = RS1, rs2 = RS2; \
for (sreg_t i = 0; i < xlen / BIT / 2; i++) { \
@@ -2750,11 +2750,11 @@ reg_t index[P.VU.vlmax]; \
WRITE_RD(sext_xlen(rd_tmp));
#define P_64_PROFILE_BASE() \
- require_extension('P'); \
+ require_extension(EXT_ZPSFOPERAND); \
sreg_t rd, rs1, rs2;
#define P_64_UPROFILE_BASE() \
- require_extension('P'); \
+ require_extension(EXT_ZPSFOPERAND); \
reg_t rd, rs1, rs2;
#define P_64_PROFILE_PARAM(USE_RD, INPUT_PAIR) \