From 86bd287af50d296f3c83b7d0b524e3aaee073f78 Mon Sep 17 00:00:00 2001 From: Prashanth Mundkur Date: Wed, 10 Jun 2020 01:03:15 -0700 Subject: Enable sailcov support in c_emulator if SAILCOV is set in the environment. --- c_emulator/riscv_sim.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'c_emulator/riscv_sim.c') diff --git a/c_emulator/riscv_sim.c b/c_emulator/riscv_sim.c index ebd3b9d..4d6a4c0 100644 --- a/c_emulator/riscv_sim.c +++ b/c_emulator/riscv_sim.c @@ -14,6 +14,7 @@ #include "elf.h" #include "sail.h" #include "rts.h" +#include "sail_coverage.h" #include "riscv_platform.h" #include "riscv_platform_impl.h" #include "riscv_sail.h" @@ -551,6 +552,15 @@ void write_signature(const char *file) fclose(f); } +void close_logs(void) { +#ifdef SAILCOV + if (sail_coverage_exit() != 0) { + fprintf(stderr, "Could not write coverage information!\n"); + exit(EXIT_FAILURE); + } +#endif +} + void finish(int ec) { if (sig_file) write_signature(sig_file); @@ -572,6 +582,7 @@ void finish(int ec) fprintf(stderr, "Instructions: %d\n", total_insns); fprintf(stderr, "Perf: %.3f Kips\n", Kips); } + close_logs(); exit(ec); } @@ -903,4 +914,5 @@ int main(int argc, char **argv) #endif model_fini(); flush_logs(); + close_logs(); } -- cgit v1.1