Browse Source

Add --[no-]misaligned command-line options

They don't do anything yet.
pull/1206/head
Andrew Waterman 3 years ago
parent
commit
a11af65d0e
  1. 1
      ci-tests/testlib.c
  2. 3
      riscv/cfg.h
  3. 1
      spike_main/spike-log-parser.cc
  4. 3
      spike_main/spike.cc

1
ci-tests/testlib.c

@ -21,6 +21,7 @@ int main()
"rv64gcv",
"MSU",
"vlen:128,elen:64",
false,
endianness_little,
16,
mem_cfg,

3
riscv/cfg.h

@ -52,6 +52,7 @@ public:
const char *default_bootargs,
const char *default_isa, const char *default_priv,
const char *default_varch,
const bool default_misaligned,
const endianness_t default_endianness,
const reg_t default_pmpregions,
const std::vector<mem_cfg_t> &default_mem_layout,
@ -62,6 +63,7 @@ public:
isa(default_isa),
priv(default_priv),
varch(default_varch),
misaligned(default_misaligned),
endianness(default_endianness),
pmpregions(default_pmpregions),
mem_layout(default_mem_layout),
@ -75,6 +77,7 @@ public:
cfg_arg_t<const char *> isa;
cfg_arg_t<const char *> priv;
cfg_arg_t<const char *> varch;
bool misaligned;
endianness_t endianness;
reg_t pmpregions;
cfg_arg_t<std::vector<mem_cfg_t>> mem_layout;

1
spike_main/spike-log-parser.cc

@ -33,6 +33,7 @@ int main(int UNUSED argc, char** argv)
/*default_isa=*/DEFAULT_ISA,
/*default_priv=*/DEFAULT_PRIV,
/*default_varch=*/DEFAULT_VARCH,
/*default_misaligned=*/false,
/*default_endianness*/endianness_little,
/*default_pmpregions=*/16,
/*default_mem_layout=*/std::vector<mem_cfg_t>(),

3
spike_main/spike.cc

@ -49,6 +49,7 @@ 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=<P,B,A> Attach MMIO plugin device from an --extlib library\n");
fprintf(stderr, " P -- Name of the MMIO plugin\n");
fprintf(stderr, " B -- Base memory address of the device\n");
@ -327,6 +328,7 @@ int main(int argc, char** argv)
/*default_isa=*/DEFAULT_ISA,
/*default_priv=*/DEFAULT_PRIV,
/*default_varch=*/DEFAULT_VARCH,
/*default_misaligned=*/false,
/*default_endianness*/endianness_little,
/*default_pmpregions=*/16,
/*default_mem_layout=*/parse_mem_layout("2048"),
@ -399,6 +401,7 @@ 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