From 2990a9f484ce9ff796d68d6fbfdad7e8a2ea61b8 Mon Sep 17 00:00:00 2001 From: Stephane Carrez Date: Sat, 9 Sep 2000 21:00:39 +0000 Subject: * sim-main.h: Define cycle_to_string. * dv-m68hc11tim.c (cycle_to_string): New function to translate the cpu cycle into some formatted time string. (m68hc11tim_print_timer): Use it. * dv-m68hc11sio.c (m68hc11sio_info): Use cycle_to_string. * dv-m68hc11spi.c (m68hc11spi_info): Likewise. * interrupts.c (interrupts_info): Likewise. * m68hc11_sim.c (cpu_info): Likewise. --- sim/m68hc11/dv-m68hc11tim.c | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) (limited to 'sim/m68hc11/dv-m68hc11tim.c') diff --git a/sim/m68hc11/dv-m68hc11tim.c b/sim/m68hc11/dv-m68hc11tim.c index c830c05..355139f 100644 --- a/sim/m68hc11/dv-m68hc11tim.c +++ b/sim/m68hc11/dv-m68hc11tim.c @@ -407,6 +407,24 @@ to_realtime (sim_cpu *cpu, signed64 t) return (double) (t) / (double) (cpu->cpu_frequency / 4); } +const char* +cycle_to_string (sim_cpu *cpu, signed64 t) +{ + double dt; + static char buf[64]; + + dt = to_realtime (cpu, t); + if (dt < 0.001) + sprintf (buf, "%llu cycle%s (%3.1f us)", t, + (t > 1 ? "s" : ""), dt * 1000000.0); + else if (dt < 1.0) + sprintf (buf, "%llu cycles (%3.1f ms)", t, dt * 1000.0); + else + sprintf (buf, "%llu cycles (%3.1f s)", t, dt); + + return buf; +} + static void m68hc11tim_print_timer (struct hw *me, const char *name, struct hw_event *event) @@ -421,15 +439,13 @@ m68hc11tim_print_timer (struct hw *me, const char *name, else { signed64 t; - double dt; sim_cpu* cpu; cpu = STATE_CPU (sd, 0); t = hw_event_remain_time (me, event); - dt = to_realtime (cpu, t) * 1000.0; - sim_io_printf (sd, " Next %s interrupt in %ld cycles (%3.3f ms)\n", - name, (long) t, dt); + sim_io_printf (sd, " Next %s interrupt in %s\n", + name, cycle_to_string (cpu, t)); } } -- cgit v1.1