OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [tags/] [nog_patch_34/] [or1ksim/] [cpu/] [or32/] [execute.c] - Diff between revs 641 and 672

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 641 Rev 672
Line 535... Line 535...
inline void dump_exe_log()
inline void dump_exe_log()
{
{
  unsigned long i = iqueue[0].insn_addr;
  unsigned long i = iqueue[0].insn_addr;
 
 
  if (i == 0xffffffff) return;
  if (i == 0xffffffff) return;
 
  if (config.sim.exe_log_marker && instructions % config.sim.exe_log_marker == 0) {
 
    fprintf (runtime.sim.fexe_log, "--------------------- %8i instruction ---------------------\n");
 
  }
 
  if (config.sim.exe_log_start <= instructions && (config.sim.exe_log_end <= 0 || instructions <= config.sim.exe_log_end)) {
 
    switch (config.sim.exe_log_type) {
 
    case EXE_LOG_HARDWARE:
  fprintf(runtime.sim.fexe_log, "\nEXECUTED(): %.8lx:  ", i);
  fprintf(runtime.sim.fexe_log, "\nEXECUTED(): %.8lx:  ", i);
  fprintf(runtime.sim.fexe_log, "%.2x%.2x", evalsim_mem8(i), evalsim_mem8(i + 1));
  fprintf(runtime.sim.fexe_log, "%.2x%.2x", evalsim_mem8(i), evalsim_mem8(i + 1));
  fprintf(runtime.sim.fexe_log, "%.2x%.2x", evalsim_mem8(i + 2), evalsim_mem8(i + 3));
  fprintf(runtime.sim.fexe_log, "%.2x%.2x", evalsim_mem8(i + 2), evalsim_mem8(i + 3));
  for(i = 0; i < MAX_GPRS; i++) {
  for(i = 0; i < MAX_GPRS; i++) {
    if (i % 4 == 0)
    if (i % 4 == 0)
Line 548... Line 554...
  fprintf(runtime.sim.fexe_log, "\n");
  fprintf(runtime.sim.fexe_log, "\n");
  fprintf(runtime.sim.fexe_log, "SR   : %.8lx  ", mfspr(SPR_SR));
  fprintf(runtime.sim.fexe_log, "SR   : %.8lx  ", mfspr(SPR_SR));
  fprintf(runtime.sim.fexe_log, "EPCR0: %.8lx  ", mfspr(SPR_EPCR_BASE));
  fprintf(runtime.sim.fexe_log, "EPCR0: %.8lx  ", mfspr(SPR_EPCR_BASE));
  fprintf(runtime.sim.fexe_log, "EEAR0: %.8lx  ", mfspr(SPR_EEAR_BASE));
  fprintf(runtime.sim.fexe_log, "EEAR0: %.8lx  ", mfspr(SPR_EEAR_BASE));
  fprintf(runtime.sim.fexe_log, "ESR0 : %.8lx\n", mfspr(SPR_ESR_BASE));
  fprintf(runtime.sim.fexe_log, "ESR0 : %.8lx\n", mfspr(SPR_ESR_BASE));
 
      break;
 
    case EXE_LOG_SOFTWARE:
 
      {
 
        int labels = 0;
 
        if (verify_memoryarea(i)) {
 
          struct label_entry *entry;
 
          entry = get_label(i);
 
          if (entry) {
 
            printf("%s: ", entry->name);
 
            labels++;
 
          }
 
        } else {
 
          printf("<invalid addr>: ");
 
          labels++;
 
        }
 
        if (labels) fprintf (runtime.sim.fexe_log, "\n");
 
        fprintf (runtime.sim.fexe_log, "%.8lx ", i);
 
        if (index >= 0) {
 
          extern char *disassembled;
 
          disassemble_insn (iqueue[0].insn_index);
 
          printf(" %s", disassembled);
 
        } else
 
          printf("<invalid>");
 
      }
 
    }
 
  }
}
}
 
 
#if 0
#if 0
void print_time (int cycles, char *output)
void print_time (int cycles, char *output)
{
{

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.