--- upstream/dynamips-0.2.7-RC1/mips64.c 2007/10/06 16:23:47 7 +++ upstream/dynamips-0.2.7-RC2/mips64.c 2007/10/06 16:24:54 8 @@ -68,7 +68,7 @@ memset(&cpu->cp0.tlb,0,MIPS64_TLB_MAX_ENTRIES*sizeof(tlb_entry_t)); /* Restart the MTS subsystem */ - mips64_set_addr_mode(cpu,64); + mips64_set_addr_mode(cpu,32/*64*/); /* zzz */ cpu->gen->mts_rebuild(cpu->gen); /* Flush JIT structures */ @@ -94,6 +94,9 @@ /* Enable fast memory operations */ cpu->fast_memop = TRUE; + /* Enable/Disable direct block jump */ + cpu->exec_blk_direct_jump = cpu->vm->exec_blk_direct_jump; + /* Create the IRQ lock (for non-jit architectures) */ pthread_mutex_init(&cpu->irq_lock,NULL); @@ -270,6 +273,20 @@ cpu->idle_pc_prop[0].pc); } else { printf("Done. No suggestion for idling PC\n"); + + for(i=0;inext) { + printf(" 0x%16.16llx (%3u)\n",p->pc,p->count); + + if (cpu->idle_pc_prop_count < CPU_IDLE_PC_MAX_RES) { + res = &cpu->idle_pc_prop[cpu->idle_pc_prop_count++]; + + res->pc = p->pc; + res->count = p->count; + } + } + + printf("\n"); } /* Re-enable IRQ */ @@ -622,6 +639,7 @@ printf(" Timer IRQ count: %llu, pending: %u, timer drift: %u\n\n", mcpu->timer_irq_count,mcpu->timer_irq_pending,mcpu->timer_drift); + printf(" Device access count: %llu\n",cpu->dev_access_counter); printf("\n"); }