diff options
author | Peter Rugg <pdr32@cam.ac.uk> | 2021-03-17 13:36:34 +0000 |
---|---|---|
committer | Robert Norton <robert.m.norton@gmail.com> | 2021-06-29 13:12:03 +0100 |
commit | 83718b6984fc06b3a88df0b4106614091cc28e3b (patch) | |
tree | 7e8a6b0578cdd17f5b84797fef6065ff50e1b9fe /c_emulator/riscv_sim.c | |
parent | 545d1c9aecfc15c2dd4b0bb188c5c74eb9857506 (diff) | |
download | sail-riscv-83718b6984fc06b3a88df0b4106614091cc28e3b.zip sail-riscv-83718b6984fc06b3a88df0b4106614091cc28e3b.tar.gz sail-riscv-83718b6984fc06b3a88df0b4106614091cc28e3b.tar.bz2 |
Add option to specify SAILCOV output file
Diffstat (limited to 'c_emulator/riscv_sim.c')
-rw-r--r-- | c_emulator/riscv_sim.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/c_emulator/riscv_sim.c b/c_emulator/riscv_sim.c index 4fbeb07..1967c2f 100644 --- a/c_emulator/riscv_sim.c +++ b/c_emulator/riscv_sim.c @@ -101,6 +101,9 @@ void set_config_print(char *var, bool val) { struct timeval init_start, init_end, run_end; int total_insns = 0; int insn_limit = 0; +#ifdef SAILCOV +char *sailcov_file = NULL; +#endif static struct option options[] = { {"enable-dirty-update", no_argument, 0, 'd'}, @@ -124,6 +127,9 @@ static struct option options[] = { {"trace", optional_argument, 0, 'v'}, {"no-trace", optional_argument, 0, 'V'}, {"inst-limit", required_argument, 0, 'l'}, +#ifdef SAILCOV + {"sailcov-file", required_argument, 0, 'c'}, +#endif {0, 0, 0, 0} }; @@ -228,6 +234,7 @@ char *process_args(int argc, char **argv) "V::" "v::" "l:" + "c:" , options, NULL); if (c == -1) break; switch (c) { @@ -314,6 +321,11 @@ char *process_args(int argc, char **argv) case 'l': insn_limit = atoi(optarg); break; +#ifdef SAILCOV + case 'c': + sailcov_file = strdup(optarg); + break; +#endif case '?': print_usage(argv[0], 1); break; @@ -935,6 +947,12 @@ void init_logs() fprintf(stderr, "Cannot create terminal log '%s': %s\n", term_log, strerror(errno)); exit(1); } + +#ifdef SAILCOV + if (sailcov_file != NULL) { + sail_set_coverage_file(sailcov_file); + } +#endif } int main(int argc, char **argv) |