diff options
author | marcfedorow <mark.fedorov@cloudbear.ru> | 2021-10-15 02:18:53 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-10-14 16:18:53 -0700 |
commit | b8d27b6ac039abc1c31b3caea4342cadfb682ea3 (patch) | |
tree | 7248a2254c803767d1670ca5478c13438398cb4f /riscv/decode.h | |
parent | 877686f4e0016819077dc1c23571c5bde770eb32 (diff) | |
download | spike-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.h | 24 |
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) \ |