Diff for /qemu/exec.c between versions 1.1.1.4 and 1.1.1.5

version 1.1.1.4, 2018/04/24 16:42:48 version 1.1.1.5, 2018/04/24 16:45:02
Line 41 Line 41
 //#define DEBUG_TB_INVALIDATE  //#define DEBUG_TB_INVALIDATE
 //#define DEBUG_FLUSH  //#define DEBUG_FLUSH
 //#define DEBUG_TLB  //#define DEBUG_TLB
   //#define DEBUG_UNASSIGNED
   
 /* make various TB consistency checks */  /* make various TB consistency checks */
 //#define DEBUG_TB_CHECK   //#define DEBUG_TB_CHECK 
Line 1288  void tlb_flush_page(CPUState *env, targe Line 1289  void tlb_flush_page(CPUState *env, targe
     tlb_flush_entry(&env->tlb_table[0][i], addr);      tlb_flush_entry(&env->tlb_table[0][i], addr);
     tlb_flush_entry(&env->tlb_table[1][i], addr);      tlb_flush_entry(&env->tlb_table[1][i], addr);
   
     for(i = 0; i < TB_JMP_CACHE_SIZE; i++) {      /* Discard jump cache entries for any tb which might potentially
         tb = env->tb_jmp_cache[i];         overlap the flushed page.  */
         if (tb &&       i = tb_jmp_cache_hash_page(addr - TARGET_PAGE_SIZE);
             ((tb->pc & TARGET_PAGE_MASK) == addr ||      memset (&env->tb_jmp_cache[i], 0, TB_JMP_PAGE_SIZE * sizeof(tb));
              ((tb->pc + tb->size - 1) & TARGET_PAGE_MASK) == addr)) {  
             env->tb_jmp_cache[i] = NULL;      i = tb_jmp_cache_hash_page(addr);
         }      memset (&env->tb_jmp_cache[i], 0, TB_JMP_PAGE_SIZE * sizeof(tb));
     }  
   
 #if !defined(CONFIG_SOFTMMU)  #if !defined(CONFIG_SOFTMMU)
     if (addr < MMAP_AREA_END)      if (addr < MMAP_AREA_END)
Line 1801  void cpu_register_physical_memory(target Line 1801  void cpu_register_physical_memory(target
     }      }
 }  }
   
   /* XXX: temporary until new memory mapping API */
   uint32_t cpu_get_physical_page_desc(target_phys_addr_t addr)
   {
       PhysPageDesc *p;
   
       p = phys_page_find(addr >> TARGET_PAGE_BITS);
       if (!p)
           return IO_MEM_UNASSIGNED;
       return p->phys_offset;
   }
   
 static uint32_t unassigned_mem_readb(void *opaque, target_phys_addr_t addr)  static uint32_t unassigned_mem_readb(void *opaque, target_phys_addr_t addr)
 {  {
   #ifdef DEBUG_UNASSIGNED
       printf("Unassigned mem read  0x%08x\n", (int)addr);
   #endif
     return 0;      return 0;
 }  }
   
 static void unassigned_mem_writeb(void *opaque, target_phys_addr_t addr, uint32_t val)  static void unassigned_mem_writeb(void *opaque, target_phys_addr_t addr, uint32_t val)
 {  {
   #ifdef DEBUG_UNASSIGNED
       printf("Unassigned mem write 0x%08x = 0x%x\n", (int)addr, val);
   #endif
 }  }
   
 static CPUReadMemoryFunc *unassigned_mem_read[3] = {  static CPUReadMemoryFunc *unassigned_mem_read[3] = {

Removed from v.1.1.1.4  
changed lines
  Added in v.1.1.1.5


unix.superglobalmegacorp.com