diff options
Diffstat (limited to 'sim')
-rw-r--r-- | sim/cris/ChangeLog | 6 | ||||
-rw-r--r-- | sim/cris/traps.c | 77 |
2 files changed, 43 insertions, 40 deletions
diff --git a/sim/cris/ChangeLog b/sim/cris/ChangeLog index ad25fc4..7f2b465 100644 --- a/sim/cris/ChangeLog +++ b/sim/cris/ChangeLog @@ -1,5 +1,11 @@ 2021-06-20 Mike Frysinger <vapier@gentoo.org> + * traps.c (dump_statistics): Clean up sim_io_eprintf calls, and + replace raw abort with sim engine abort. + (cris_break_13_handler): Likewise. + +2021-06-20 Mike Frysinger <vapier@gentoo.org> + * configure.ac (SIM_AC_COMMON): Delete. * aclocal.m4, configure: Regenerate. diff --git a/sim/cris/traps.c b/sim/cris/traps.c index 130a380..f92bb7c 100644 --- a/sim/cris/traps.c +++ b/sim/cris/traps.c @@ -804,7 +804,10 @@ dump_statistics (SIM_CPU *current_cpu) CRIS_MISC_PROFILE *profp = CPU_CRIS_MISC_PROFILE (current_cpu); unsigned64 total = profp->basic_cycle_count; - const char *textmsg = "Basic clock cycles, total @: %llu\n"; + + /* Historically, these messages have gone to stderr, so we'll keep it + that way. It's also easier to then tell it from normal program + output. FIXME: Add redirect option like "run -e file". */ /* The --cris-stats={basic|unaligned|schedulable|all} counts affect what's included in the "total" count only. */ @@ -812,16 +815,18 @@ dump_statistics (SIM_CPU *current_cpu) & FLAG_CRIS_MISC_PROFILE_ALL) { case FLAG_CRIS_MISC_PROFILE_SIMPLE: + sim_io_eprintf (sd, "Basic clock cycles, total @: %" PRIu64 "\n", total); break; case (FLAG_CRIS_MISC_PROFILE_UNALIGNED | FLAG_CRIS_MISC_PROFILE_SIMPLE): - textmsg - = "Clock cycles including stall cycles for unaligned accesses @: %llu\n"; total += profp->unaligned_mem_dword_count; + sim_io_eprintf (sd, + "Clock cycles including stall cycles for unaligned " + "accesses @: %" PRIu64 "\n", + total); break; case (FLAG_CRIS_MISC_PROFILE_SCHEDULABLE | FLAG_CRIS_MISC_PROFILE_SIMPLE): - textmsg = "Schedulable clock cycles, total @: %llu\n"; total += (profp->memsrc_stall_count + profp->memraw_stall_count @@ -830,10 +835,11 @@ dump_statistics (SIM_CPU *current_cpu) + profp->mulsrc_stall_count + profp->jumpsrc_stall_count + profp->unaligned_mem_dword_count); + sim_io_eprintf (sd, "Schedulable clock cycles, total @: %" PRIu64 "\n", + total); break; case FLAG_CRIS_MISC_PROFILE_ALL: - textmsg = "All accounted clock cycles, total @: %llu\n"; total += (profp->memsrc_stall_count + profp->memraw_stall_count @@ -845,44 +851,36 @@ dump_statistics (SIM_CPU *current_cpu) + profp->branch_stall_count + profp->jumptarget_stall_count + profp->unaligned_mem_dword_count); + sim_io_eprintf (sd, "All accounted clock cycles, total @: %" PRIu64 "\n", + total); break; default: - abort (); - - sim_io_eprintf (sd, - "Internal inconsistency at %s:%d", - __FILE__, __LINE__); - sim_engine_halt (sd, current_cpu, NULL, 0, - sim_stopped, SIM_SIGILL); + sim_engine_abort (sd, current_cpu, 0, + "Internal inconsistency at %s:%d", + __FILE__, __LINE__); } - /* Historically, these messages have gone to stderr, so we'll keep it - that way. It's also easier to then tell it from normal program - output. FIXME: Add redirect option like "run -e file". */ - sim_io_eprintf (sd, textmsg, total); - /* For v32, unaligned_mem_dword_count should always be 0. For v10, memsrc_stall_count should always be 0. */ - sim_io_eprintf (sd, "Memory source stall cycles: %llu\n", - (unsigned long long) (profp->memsrc_stall_count - + profp->unaligned_mem_dword_count)); - sim_io_eprintf (sd, "Memory read-after-write stall cycles: %llu\n", - (unsigned long long) profp->memraw_stall_count); - sim_io_eprintf (sd, "Movem source stall cycles: %llu\n", - (unsigned long long) profp->movemsrc_stall_count); - sim_io_eprintf (sd, "Movem destination stall cycles: %llu\n", - (unsigned long long) profp->movemdst_stall_count); - sim_io_eprintf (sd, "Movem address stall cycles: %llu\n", - (unsigned long long) profp->movemaddr_stall_count); - sim_io_eprintf (sd, "Multiplication source stall cycles: %llu\n", - (unsigned long long) profp->mulsrc_stall_count); - sim_io_eprintf (sd, "Jump source stall cycles: %llu\n", - (unsigned long long) profp->jumpsrc_stall_count); - sim_io_eprintf (sd, "Branch misprediction stall cycles: %llu\n", - (unsigned long long) profp->branch_stall_count); - sim_io_eprintf (sd, "Jump target stall cycles: %llu\n", - (unsigned long long) profp->jumptarget_stall_count); + sim_io_eprintf (sd, "Memory source stall cycles: %" PRIu64 "\n", + profp->memsrc_stall_count + profp->unaligned_mem_dword_count); + sim_io_eprintf (sd, "Memory read-after-write stall cycles: %" PRIu64 "\n", + profp->memraw_stall_count); + sim_io_eprintf (sd, "Movem source stall cycles: %" PRIu64 "\n", + profp->movemsrc_stall_count); + sim_io_eprintf (sd, "Movem destination stall cycles: %" PRIu64 "\n", + profp->movemdst_stall_count); + sim_io_eprintf (sd, "Movem address stall cycles: %" PRIu64 "\n", + profp->movemaddr_stall_count); + sim_io_eprintf (sd, "Multiplication source stall cycles: %" PRIu64 "\n", + profp->mulsrc_stall_count); + sim_io_eprintf (sd, "Jump source stall cycles: %" PRIu64 "\n", + profp->jumpsrc_stall_count); + sim_io_eprintf (sd, "Branch misprediction stall cycles: %" PRIu64 "\n", + profp->branch_stall_count); + sim_io_eprintf (sd, "Jump target stall cycles: %" PRIu64 "\n", + profp->jumptarget_stall_count); } /* Check whether any part of [addr .. addr + len - 1] is already mapped. @@ -1481,10 +1479,9 @@ cris_break_13_handler (SIM_CPU *current_cpu, USI callnum, USI arg1, if (cb_syscall (cb, &s) != CB_RC_OK) { - abort (); - sim_io_eprintf (sd, "Break 13: invalid %d? Returned %ld\n", callnum, - s.result); - sim_engine_halt (sd, current_cpu, NULL, pc, sim_stopped, SIM_SIGILL); + sim_engine_abort (sd, current_cpu, pc, + "Break 13: invalid %d? Returned %ld\n", callnum, + s.result); } retval = s.result == -1 ? -s.errcode : s.result; |