/[dynamips]/trunk/mips64_jit.c
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /trunk/mips64_jit.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

upstream/dynamips-0.2.6-RC1/mips64_jit.c revision 2 by dpavlin, Sat Oct 6 16:03:58 2007 UTC upstream/dynamips-0.2.6-RC4/mips64_jit.c revision 5 by dpavlin, Sat Oct 6 16:08:03 2007 UTC
# Line 309  struct insn_tag *insn_fetch_and_emit(cpu Line 309  struct insn_tag *insn_fetch_and_emit(cpu
309     if (delay_slot != 2)     if (delay_slot != 2)
310        block->mips_trans_pos++;        block->mips_trans_pos++;
311    
312  #if DEBUG_PERF_COUNTER  #if DEBUG_INSN_PERF_CNT
313     mips64_inc_perf_counter(block);     mips64_inc_perf_counter(block);
314  #endif  #endif
315    
# Line 675  void *insn_block_execute(cpu_mips_t *cpu Line 675  void *insn_block_execute(cpu_mips_t *cpu
675     pthread_t timer_irq_thread;     pthread_t timer_irq_thread;
676     insn_block_t *block;     insn_block_t *block;
677     m_uint32_t phys_page;     m_uint32_t phys_page;
    int idle_count = 0;  
678     int timer_irq_check = 0;     int timer_irq_check = 0;
679    
680     if (pthread_create(&timer_irq_thread,NULL,     if (pthread_create(&timer_irq_thread,NULL,
681                        (void *)mips64_timer_irq_run,cpu))                        (void *)mips64_timer_irq_run,cpu))
682     {     {
683        fprintf(stderr,"VM '%s': unable to create Timer IRQ thread for CPU%u.\n",        fprintf(stderr,
684                  "VM '%s': unable to create Timer IRQ thread for CPU%u.\n",
685                cpu->vm->name,cpu->id);                cpu->vm->name,cpu->id);
686        cpu_stop(cpu);        cpu_stop(cpu);
687        return NULL;        return NULL;
688     }     }
689    
690     cpu->cpu_thread_running = TRUE;     cpu->cpu_thread_running = TRUE;
691    
692   start_cpu:     start_cpu:  
693       cpu->idle_count = 0;
694    
695     for(;;) {     for(;;) {
696        if (unlikely(cpu->state != MIPS_CPU_RUNNING))        if (unlikely(cpu->state != MIPS_CPU_RUNNING))
697           break;           break;
698    
699    #if DEBUG_BLOCK_PERF_CNT
700          cpu->perf_counter++;
701    #endif
702        /* Handle virtual idle loop */        /* Handle virtual idle loop */
703        if (unlikely(cpu->pc == cpu->idle_pc)) {        if (unlikely(cpu->pc == cpu->idle_pc)) {
704           if (++idle_count == cpu->idle_max) {           if (++cpu->idle_count == cpu->idle_max) {
705              mips64_idle_loop(cpu);              mips64_idle_loop(cpu);
706              idle_count = 0;              cpu->idle_count = 0;
707           }           }
708        }        }
709    

Legend:
Removed from v.2  
changed lines
  Added in v.5

  ViewVC Help
Powered by ViewVC 1.1.26