Browse Source

Merge pull request #2193 from mslijepc/mslijepc_20251224_zicclsm

added support for zicclsm
pull/1999/merge
Andrew Waterman 7 months ago
committed by GitHub
parent
commit
59b2c834a4
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 2
      disasm/isa_parser.cc
  2. 1
      riscv/cfg.cc
  3. 1
      riscv/cfg.h
  4. 1
      riscv/isa_parser.h
  5. 2
      riscv/mmu.h
  6. 2
      spike_main/spike.cc

2
disasm/isa_parser.cc

@ -278,6 +278,8 @@ isa_parser_t::isa_parser_t(const char* str, const char *priv)
} else if (ext_str == "zicboz") {
extension_table[EXT_ZICBOZ] = true;
} else if (ext_str == "zicbop") {
} else if (ext_str == "zicclsm") {
extension_table[EXT_ZICCLSM] = true;
} else if (ext_str == "zicntr") {
extension_table[EXT_ZICNTR] = true;
} else if (ext_str == "zicond") {

1
riscv/cfg.cc

@ -38,7 +38,6 @@ cfg_t::cfg_t()
bootargs = nullptr;
isa = DEFAULT_ISA;
priv = DEFAULT_PRIV;
misaligned = false;
endianness = endianness_little;
pmpregions = 16;
pmpgranularity = (1 << PMP_SHIFT);

1
riscv/cfg.h

@ -68,7 +68,6 @@ public:
const char * bootargs;
const char * isa;
const char * priv;
bool misaligned;
endianness_t endianness;
reg_t pmpregions;
reg_t pmpgranularity;

1
riscv/isa_parser.h

@ -60,6 +60,7 @@ typedef enum {
EXT_ZICCID,
EXT_ZICBOM,
EXT_ZICBOZ,
EXT_ZICCLSM,
EXT_ZICNTR,
EXT_ZICOND,
EXT_ZIHPM,

2
riscv/mmu.h

@ -352,7 +352,7 @@ public:
int is_misaligned_enabled()
{
return proc && proc->get_cfg().misaligned;
return proc && proc->extension_enabled(EXT_ZICCLSM);
}
bool is_target_big_endian()

2
spike_main/spike.cc

@ -51,7 +51,6 @@ static void help(int exit_code = 1)
fprintf(stderr, " --dc=<S>:<W>:<B> W ways, and B-byte blocks (with S and\n");
fprintf(stderr, " --l2=<S>:<W>:<B> B both powers of 2).\n");
fprintf(stderr, " --big-endian Use a big-endian memory system.\n");
fprintf(stderr, " --misaligned Support misaligned memory accesses\n");
fprintf(stderr, " --device=<name> Attach MMIO plugin device from an --extlib library,\n");
fprintf(stderr, " specify --device=<name>,<args> to pass down extra args.\n");
fprintf(stderr, " --log-cache-miss Generate a log of cache miss\n");
@ -390,7 +389,6 @@ int main(int argc, char** argv)
parser.option(0, "dc", 1, [&](const char* s){dc.reset(new dcache_sim_t(s));});
parser.option(0, "l2", 1, [&](const char* s){l2.reset(cache_sim_t::construct(s, "L2$"));});
parser.option(0, "big-endian", 0, [&](const char UNUSED *s){cfg.endianness = endianness_big;});
parser.option(0, "misaligned", 0, [&](const char UNUSED *s){cfg.misaligned = true;});
parser.option(0, "log-cache-miss", 0, [&](const char UNUSED *s){log_cache = true;});
parser.option(0, "isa", 1, [&](const char* s){cfg.isa = s;});
parser.option(0, "pmpregions", 1, [&](const char* s){cfg.pmpregions = atoul_safe(s);});

Loading…
Cancel
Save