Browse Source

Splitted K-ext to zeds

pull/800/head
Mark Fedorov 5 years ago
committed by Andrew Waterman
parent
commit
bd93d29025
  1. 2
      riscv/insns/aes32dsi.h
  2. 2
      riscv/insns/aes32dsmi.h
  3. 2
      riscv/insns/aes32esi.h
  4. 2
      riscv/insns/aes32esmi.h
  5. 2
      riscv/insns/aes64ds.h
  6. 2
      riscv/insns/aes64dsm.h
  7. 2
      riscv/insns/aes64es.h
  8. 2
      riscv/insns/aes64esm.h
  9. 2
      riscv/insns/aes64im.h
  10. 2
      riscv/insns/aes64ks1i.h
  11. 2
      riscv/insns/aes64ks2.h
  12. 2
      riscv/insns/sha256sig0.h
  13. 2
      riscv/insns/sha256sig1.h
  14. 2
      riscv/insns/sha256sum0.h
  15. 2
      riscv/insns/sha256sum1.h
  16. 2
      riscv/insns/sha512sig0.h
  17. 2
      riscv/insns/sha512sig0h.h
  18. 2
      riscv/insns/sha512sig0l.h
  19. 2
      riscv/insns/sha512sig1.h
  20. 2
      riscv/insns/sha512sig1h.h
  21. 2
      riscv/insns/sha512sig1l.h
  22. 2
      riscv/insns/sha512sum0.h
  23. 2
      riscv/insns/sha512sum0r.h
  24. 2
      riscv/insns/sha512sum1.h
  25. 2
      riscv/insns/sha512sum1r.h
  26. 2
      riscv/insns/sm3p0.h
  27. 2
      riscv/insns/sm3p1.h
  28. 2
      riscv/insns/sm4ed.h
  29. 2
      riscv/insns/sm4ks.h
  30. 36
      riscv/processor.cc
  31. 9
      riscv/processor.h

2
riscv/insns/aes32dsi.h

@ -2,7 +2,7 @@
#include "aes_common.h"
require_rv32;
require_extension('K');
require_extension(EXT_ZKND);
uint8_t bs = insn.bs();

2
riscv/insns/aes32dsmi.h

@ -2,7 +2,7 @@
#include "aes_common.h"
require_rv32;
require_extension('K');
require_extension(EXT_ZKND);
uint8_t bs = insn.bs();

2
riscv/insns/aes32esi.h

@ -2,7 +2,7 @@
#include "aes_common.h"
require_rv32;
require_extension('K');
require_extension(EXT_ZKNE);
uint8_t bs = insn.bs();

2
riscv/insns/aes32esmi.h

@ -2,7 +2,7 @@
#include "aes_common.h"
require_rv32;
require_extension('K');
require_extension(EXT_ZKNE);
uint8_t bs = insn.bs();

2
riscv/insns/aes64ds.h

@ -2,7 +2,7 @@
#include "aes_common.h"
require_rv64;
require_extension('K');
require_extension(EXT_ZKND);
uint64_t temp = AES_INVSHIFROWS_LO(RS1,RS2);

2
riscv/insns/aes64dsm.h

@ -2,7 +2,7 @@
#include "aes_common.h"
require_rv64;
require_extension('K');
require_extension(EXT_ZKND);
uint64_t temp = AES_INVSHIFROWS_LO(RS1,RS2);

2
riscv/insns/aes64es.h

@ -2,7 +2,7 @@
#include "aes_common.h"
require_rv64;
require_extension('K');
require_extension(EXT_ZKNE);
uint64_t temp = AES_SHIFROWS_LO(RS1,RS2);

2
riscv/insns/aes64esm.h

@ -2,7 +2,7 @@
#include "aes_common.h"
require_rv64;
require_extension('K');
require_extension(EXT_ZKNE);
uint64_t temp = AES_SHIFROWS_LO(RS1,RS2);

2
riscv/insns/aes64im.h

@ -2,7 +2,7 @@
#include "aes_common.h"
require_rv64;
require_extension('K');
require_extension(EXT_ZKND);
uint32_t col_0 = RS1 & 0xFFFFFFFF;
uint32_t col_1 = RS1 >> 32 ;

2
riscv/insns/aes64ks1i.h

@ -2,7 +2,7 @@
#include "aes_common.h"
require_rv64;
require_extension('K');
require_either_extension(EXT_ZKND, EXT_ZKNE);
uint8_t round_consts [10] = {
0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36

2
riscv/insns/aes64ks2.h

@ -2,7 +2,7 @@
#include "aes_common.h"
require_rv64;
require_extension('K');
require_either_extension(EXT_ZKND, EXT_ZKNE);
uint32_t rs1_hi = RS1 >> 32;
uint32_t rs2_lo = RS2 ;

2
riscv/insns/sha256sig0.h

@ -1,5 +1,5 @@
require_extension('K');
require_extension(EXT_ZKNH);
#define ROR32(a,amt) ((a << (-amt & (32-1))) | (a >> (amt & (32-1))))

2
riscv/insns/sha256sig1.h

@ -1,5 +1,5 @@
require_extension('K');
require_extension(EXT_ZKNH);
#define ROR32(a,amt) ((a << (-amt & (32-1))) | (a >> (amt & (32-1))))

2
riscv/insns/sha256sum0.h

@ -1,5 +1,5 @@
require_extension('K');
require_extension(EXT_ZKNH);
#define ROR32(a,amt) ((a << (-amt & (32-1))) | (a >> (amt & (32-1))))

2
riscv/insns/sha256sum1.h

@ -1,5 +1,5 @@
require_extension('K');
require_extension(EXT_ZKNH);
#define ROR32(a,amt) ((a << (-amt & (32-1))) | (a >> (amt & (32-1))))

2
riscv/insns/sha512sig0.h

@ -1,5 +1,5 @@
require_rv64;
require_extension('K');
require_extension(EXT_ZKNH);
#define ROR64(a,amt) ((a << (-amt & (64-1))) | (a >> (amt & (64-1))))

2
riscv/insns/sha512sig0h.h

@ -1,6 +1,6 @@
require_rv32;
require_extension('K');
require_extension(EXT_ZKNH);
reg_t result =
(zext32(RS1) >> 1) ^ (zext32(RS1) >> 7) ^ (zext32(RS1) >> 8) ^

2
riscv/insns/sha512sig0l.h

@ -1,6 +1,6 @@
require_rv32;
require_extension('K');
require_extension(EXT_ZKNH);
reg_t result =
(zext32(RS1) >> 1) ^ (zext32(RS1) >> 7) ^ (zext32(RS1) >> 8) ^

2
riscv/insns/sha512sig1.h

@ -1,5 +1,5 @@
require_rv64;
require_extension('K');
require_extension(EXT_ZKNH);
#define ROR64(a,amt) ((a << (-amt & (64-1))) | (a >> (amt & (64-1))))

2
riscv/insns/sha512sig1h.h

@ -1,6 +1,6 @@
require_rv32;
require_extension('K');
require_extension(EXT_ZKNH);
reg_t result =
(zext32(RS1) << 3) ^ (zext32(RS1) >> 6) ^ (zext32(RS1) >> 19) ^

2
riscv/insns/sha512sig1l.h

@ -1,6 +1,6 @@
require_rv32;
require_extension('K');
require_extension(EXT_ZKNH);
reg_t result =
(zext32(RS1) << 3) ^ (zext32(RS1) >> 6) ^ (zext32(RS1) >> 19) ^

2
riscv/insns/sha512sum0.h

@ -1,5 +1,5 @@
require_rv64;
require_extension('K');
require_extension(EXT_ZKNH);
#define ROR64(a,amt) ((a << (-amt & (64-1))) | (a >> (amt & (64-1))))

2
riscv/insns/sha512sum0r.h

@ -1,6 +1,6 @@
require_rv32;
require_extension('K');
require_extension(EXT_ZKNH);
reg_t result =
(zext32(RS1) << 25) ^ (zext32(RS1) << 30) ^ (zext32(RS1) >> 28) ^

2
riscv/insns/sha512sum1.h

@ -1,5 +1,5 @@
require_rv64;
require_extension('K');
require_extension(EXT_ZKNH);
#define ROR64(a,amt) ((a << (-amt & (64-1))) | (a >> (amt & (64-1))))

2
riscv/insns/sha512sum1r.h

@ -1,6 +1,6 @@
require_rv32;
require_extension('K');
require_extension(EXT_ZKNH);
reg_t result =
(zext32(RS1) << 23) ^ (zext32(RS1) >> 14) ^ (zext32(RS1) >> 18) ^

2
riscv/insns/sm3p0.h

@ -1,5 +1,5 @@
require_extension('K');
require_extension(EXT_ZKSH);
#define ROL32(a,amt) ((a >> (-amt & (32-1))) | (a << (amt & (32-1))))

2
riscv/insns/sm3p1.h

@ -1,5 +1,5 @@
require_extension('K');
require_extension(EXT_ZKSH);
#define ROL32(a,amt) ((a >> (-amt & (32-1))) | (a << (amt & (32-1))))

2
riscv/insns/sm4ed.h

@ -1,5 +1,5 @@
require_extension('K');
require_extension(EXT_ZKSED);
#include "sm4_common.h"

2
riscv/insns/sm4ks.h

@ -1,5 +1,5 @@
require_extension('K');
require_extension(EXT_ZKSED);
#include "sm4_common.h"

36
riscv/processor.cc

@ -221,7 +221,7 @@ void processor_t::parse_isa_string(const char* str)
char error_msg[256];
const char* p = lowercase.c_str();
const char* all_subsets = "imafdqckhp"
const char* all_subsets = "imafdqchp"
#ifdef __SIZEOF_INT128__
"v"
#endif
@ -290,6 +290,38 @@ void processor_t::parse_isa_string(const char* str)
extension_table[EXT_ZBC] = true;
} else if (ext_str == "zbs") {
extension_table[EXT_ZBS] = true;
} else if (ext_str == "zbkb") {
extension_table[EXT_ZBKB] = true;
} else if (ext_str == "zbkc") {
extension_table[EXT_ZBKC] = true;
} else if (ext_str == "zbkx") {
extension_table[EXT_ZBKX] = true;
} else if (ext_str == "zkn") {
extension_table[EXT_ZBKB] = true;
extension_table[EXT_ZBKC] = true;
extension_table[EXT_ZBKX] = true;
extension_table[EXT_ZKND] = true;
extension_table[EXT_ZKNE] = true;
extension_table[EXT_ZKNH] = true;
} else if (ext_str == "zknd") {
extension_table[EXT_ZKND] = true;
} else if (ext_str == "zkne") {
extension_table[EXT_ZKNE] = true;
} else if (ext_str == "zknh") {
extension_table[EXT_ZKNH] = true;
} else if (ext_str == "zks") {
extension_table[EXT_ZBKB] = true;
extension_table[EXT_ZBKC] = true;
extension_table[EXT_ZBKX] = true;
extension_table[EXT_ZKSED] = true;
extension_table[EXT_ZKSH] = true;
} else if (ext_str == "zksed") {
extension_table[EXT_ZKSED] = true;
} else if (ext_str == "zksh") {
extension_table[EXT_ZKSH] = true;
} else if (ext_str == "zkr") {
extension_table[EXT_ZKR] = true;
} else if (ext_str == "zkt") {
} else if (ext_str == "SVNAPOT") {
extension_table[EXT_SVNAPOT] = true;
} else if (ext_str == "SVPBMT") {
@ -1170,7 +1202,7 @@ reg_t processor_t::get_csr(int which, insn_t insn, bool write, bool peek)
switch (which)
{
case CSR_SENTROPY:
if (!extension_enabled('K'))
if (!extension_enabled(EXT_ZKR))
break;
/* Read-only access disallowed due to wipe-on-read side effect */
if (!write)

9
riscv/processor.h

@ -250,6 +250,15 @@ typedef enum {
EXT_ZBB,
EXT_ZBC,
EXT_ZBS,
EXT_ZBKB,
EXT_ZBKC,
EXT_ZBKX,
EXT_ZKND,
EXT_ZKNE,
EXT_ZKNH,
EXT_ZKSED,
EXT_ZKSH,
EXT_ZKR,
EXT_SVNAPOT,
EXT_SVPBMT,
EXT_SVINVAL,

Loading…
Cancel
Save