X-Git-Url: https://git.gag.com/?a=blobdiff_plain;ds=sidebyside;f=sim%2Fucsim%2Fcmd.src%2Fcmdstat.cc;h=f3599839d6b9a32806f4be05f30fc625d08a9966;hb=90f4aedaef8a2310573eef905f95c671f84e5cde;hp=f430437c4d64ec82aa322635e1dd384eb6e6e117;hpb=0e1bba0730e55b3d40c1c644d94befc99c87270d;p=fw%2Fsdcc diff --git a/sim/ucsim/cmd.src/cmdstat.cc b/sim/ucsim/cmd.src/cmdstat.cc index f430437c..f3599839 100644 --- a/sim/ucsim/cmd.src/cmdstat.cc +++ b/sim/ucsim/cmd.src/cmdstat.cc @@ -45,17 +45,17 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA //int //cl_stat_cmd::do_work(class cl_sim *sim, -// class cl_cmdline *cmdline, class cl_console *con) +// class cl_cmdline *cmdline, class cl_console_base *con) COMMAND_DO_WORK_UC(cl_statistic_cmd) { class cl_hw *hw; - class cl_mem *mem; + class cl_address_space *mem; t_addr start= 0, end= 0; bool addresses= DD_FALSE; class cl_cmd_arg *params[4]= { cmdline->param(0), - cmdline->param(1), - cmdline->param(2), - cmdline->param(3) }; + cmdline->param(1), + cmdline->param(2), + cmdline->param(3) }; if (cmdline->syntax_match(uc, HW)) { hw= params[0]->value.hw; @@ -63,57 +63,57 @@ COMMAND_DO_WORK_UC(cl_statistic_cmd) else { mem= 0; if (cmdline->syntax_match(uc, MEMORY ADDRESS ADDRESS)) { - mem= params[0]->value.memory; + mem= params[0]->value.memory.address_space; start= params[1]->value.address; end= params[2]->value.address; addresses= DD_TRUE; } else if (cmdline->syntax_match(uc, MEMORY ADDRESS)) { - mem= params[0]->value.memory; + mem= params[0]->value.memory.address_space; start= end= params[1]->value.address; addresses= DD_TRUE; } else if (cmdline->syntax_match(uc, MEMORY)) { - mem= params[0]->value.memory; + mem= params[0]->value.memory.address_space; addresses= DD_FALSE; } else { - /*con->dd_printf("Error: wrong syntax\n" - "%s\n", short_help?short_help:"no help");*/ - int i; - unsigned long wr, ww; - for (i= 0; i < uc->mems->count; i++) - { - mem= (class cl_mem *)(uc->mems->at(i)); - wr= mem->get_nuof_reads(); - ww= mem->get_nuof_writes(); - con->dd_printf("%s writes= %10lu " - "reads= %10lu " - "(%10lu operations)\n", mem->id_string(), ww, wr, - ww+wr); - } + /*con->dd_printf("Error: wrong syntax\n" + "%s\n", short_help?short_help:"no help");*/ + int i; + unsigned long wr, ww; + for (i= 0; i < uc->address_spaces->count; i++) + { + mem= (class cl_address_space *)(uc->address_spaces->at(i)); + wr= mem->get_nuof_reads(); + ww= mem->get_nuof_writes(); + con->dd_printf("%s writes= %10lu " + "reads= %10lu " + "(%10lu operations)\n", + mem->get_name("mem"), ww, wr, ww+wr); + } } if (mem) { - t_addr i; - unsigned long wr, ww; - wr= mem->get_nuof_reads(); - ww= mem->get_nuof_writes(); - if (!addresses) - con->dd_printf("%s writes= %10lu " - "reads= %10lu\n", mem->id_string(), ww, wr); - else - for (i= start; i <= end; i++) - { - class cl_cell *c= (class cl_cell *)(mem->get_cell(i)); - unsigned long w= c->nuof_writes, r= c->nuof_reads; - double dr= wr?((double(r)*100.0)/double(wr)):0.0; - double dw= ww?((double(w)*100.0)/double(ww)):0.0; - con->dd_printf("%s[0x%06x] writes= %10lu (%6.2lf%%) " - "reads= %10lu (%6.2lf%%)\n", mem->id_string(), i, - w, dw, r, dr); - } + t_addr i; + unsigned long wr, ww; + wr= mem->get_nuof_reads(); + ww= mem->get_nuof_writes(); + if (!addresses) + con->dd_printf("%s writes= %10lu " + "reads= %10lu\n", mem->get_name("mem"), ww, wr); + else + for (i= start; i <= end; i++) + { + class cl_memory_cell *c= mem->get_cell(i); + unsigned long w= c->nuof_writes, r= c->nuof_reads; + double dr= wr?((double(r)*100.0)/double(wr)):0.0; + double dw= ww?((double(w)*100.0)/double(ww)):0.0; + con->dd_printf("%s[0x%06x] writes= %10lu (%6.2lf%%) " + "reads= %10lu (%6.2lf%%)\n", + mem->get_name("mem"), i, w, dw, r, dr); + } } }