diff options
Diffstat (limited to 'mips')
| -rw-r--r-- | mips/main.sail | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/mips/main.sail b/mips/main.sail index f0360870..8790cf66 100644 --- a/mips/main.sail +++ b/mips/main.sail @@ -62,14 +62,27 @@ function dump_mips_state () : unit -> unit = { } } -val "load_raw" : (bits(64), string) -> unit +val "cycle_count" : unit -> unit val main : unit -> unit effect {barr, eamem, escape, rmem, rreg, undef, wmv, wreg, rmemt, wmvt} function main () = { init_registers(to_bits(64, elf_entry())); startTime = get_time_ns(); - while (fetch_and_execute()) do (); + while (fetch_and_execute()) do { + cycle_count(); + /* uncomment to print IPS every 10M instructions (~10s) + if (instCount == 10000000) then { + endTime = get_time_ns(); + elapsed = endTime - startTime; + inst_1e9 = instCount * 1000000000; + ips = inst_1e9 / elapsed; + print_int("*IPS*: ", ips); + startTime = get_time_ns(); + instCount = 0; + };*/ + }; + endTime = get_time_ns(); elapsed = endTime - startTime; inst_1e9 = instCount * 1000000000; |
