diff options
Diffstat (limited to 'c_emulator/riscv_sim.c')
-rw-r--r-- | c_emulator/riscv_sim.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/c_emulator/riscv_sim.c b/c_emulator/riscv_sim.c index 8f7f9e1..d841c6d 100644 --- a/c_emulator/riscv_sim.c +++ b/c_emulator/riscv_sim.c @@ -50,6 +50,7 @@ const char *RV32ISA = "RV32IMAC"; #define CSR_MIP 0x344 #define OPT_TRACE_OUTPUT 1000 +#define OPT_ENABLE_FIOM 1001 static bool do_dump_dts = false; static bool do_show_times = false; @@ -140,6 +141,7 @@ static struct option options[] = { {"trace-output", required_argument, 0, OPT_TRACE_OUTPUT}, {"inst-limit", required_argument, 0, 'l' }, {"enable-zfinx", no_argument, 0, 'x' }, + {"enable-fiom", no_argument, 0, OPT_ENABLE_FIOM }, #ifdef SAILCOV {"sailcov-file", required_argument, 0, 'c' }, #endif @@ -302,6 +304,11 @@ static int process_args(int argc, char **argv) fprintf(stderr, "enabling storing illegal instruction bits in mtval.\n"); rv_mtval_has_illegal_inst_bits = true; break; + case OPT_ENABLE_FIOM: + fprintf(stderr, + "enabling FIOM (Fence of I/O implies Memory) bit in menvcfg.\n"); + rv_enable_fiom = true; + break; case 's': do_dump_dts = true; break; |