qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH] exec.c: remove unnecessary #if NB_MMU_MODES


From: Edgar E. Iglesias
Subject: Re: [Qemu-devel] [PATCH] exec.c: remove unnecessary #if NB_MMU_MODES
Date: Fri, 15 May 2009 01:35:32 +0200
User-agent: Mutt/1.5.16 (2007-06-09)

On Thu, May 14, 2009 at 06:29:58PM +0900, Isaku Yamahata wrote:
> commit 54db65d0feb3906fdc6eba6539ea2878d060680f
> Author: Isaku Yamahata <address@hidden>
> Date:   Thu May 14 18:20:57 2009 +0900
> 
>     exec.c: remove unnecessary #if NB_MMU_MODES
>     
>     remove unnecessary #if NB_MMU_MODES by using loop.
>     
>     Signed-off-by: Isaku Yamahata <address@hidden>

Thanks, looks like an improvement to me.

Acked-by: Edgar E. Iglesias <address@hidden>

> 
> diff --git a/exec.c b/exec.c
> index c5c9280..feae787 100644
> --- a/exec.c
> +++ b/exec.c
> @@ -1746,28 +1746,12 @@ void tlb_flush(CPUState *env, int flush_global)
>      env->current_tb = NULL;
>  
>      for(i = 0; i < CPU_TLB_SIZE; i++) {
> -        env->tlb_table[0][i].addr_read = -1;
> -        env->tlb_table[0][i].addr_write = -1;
> -        env->tlb_table[0][i].addr_code = -1;
> -        env->tlb_table[1][i].addr_read = -1;
> -        env->tlb_table[1][i].addr_write = -1;
> -        env->tlb_table[1][i].addr_code = -1;
> -#if (NB_MMU_MODES >= 3)
> -        env->tlb_table[2][i].addr_read = -1;
> -        env->tlb_table[2][i].addr_write = -1;
> -        env->tlb_table[2][i].addr_code = -1;
> -#endif
> -#if (NB_MMU_MODES >= 4)
> -        env->tlb_table[3][i].addr_read = -1;
> -        env->tlb_table[3][i].addr_write = -1;
> -        env->tlb_table[3][i].addr_code = -1;
> -#endif
> -#if (NB_MMU_MODES >= 5)
> -        env->tlb_table[4][i].addr_read = -1;
> -        env->tlb_table[4][i].addr_write = -1;
> -        env->tlb_table[4][i].addr_code = -1;
> -#endif
> -
> +        int mmu_idx;
> +        for (mmu_idx = 0; mmu_idx < NB_MMU_MODES; mmu_idx++) {
> +            env->tlb_table[mmu_idx][i].addr_read = -1;
> +            env->tlb_table[mmu_idx][i].addr_write = -1;
> +            env->tlb_table[mmu_idx][i].addr_code = -1;
> +        }
>      }
>  
>      memset (env->tb_jmp_cache, 0, TB_JMP_CACHE_SIZE * sizeof (void *));
> @@ -1797,6 +1781,7 @@ static inline void tlb_flush_entry(CPUTLBEntry 
> *tlb_entry, target_ulong addr)
>  void tlb_flush_page(CPUState *env, target_ulong addr)
>  {
>      int i;
> +    int mmu_idx;
>  
>  #if defined(DEBUG_TLB)
>      printf("tlb_flush_page: " TARGET_FMT_lx "\n", addr);
> @@ -1807,17 +1792,8 @@ void tlb_flush_page(CPUState *env, target_ulong addr)
>  
>      addr &= TARGET_PAGE_MASK;
>      i = (addr >> TARGET_PAGE_BITS) & (CPU_TLB_SIZE - 1);
> -    tlb_flush_entry(&env->tlb_table[0][i], addr);
> -    tlb_flush_entry(&env->tlb_table[1][i], addr);
> -#if (NB_MMU_MODES >= 3)
> -    tlb_flush_entry(&env->tlb_table[2][i], addr);
> -#endif
> -#if (NB_MMU_MODES >= 4)
> -    tlb_flush_entry(&env->tlb_table[3][i], addr);
> -#endif
> -#if (NB_MMU_MODES >= 5)
> -    tlb_flush_entry(&env->tlb_table[4][i], addr);
> -#endif
> +    for (mmu_idx = 0; mmu_idx < NB_MMU_MODES; mmu_idx++)
> +        tlb_flush_entry(&env->tlb_table[mmu_idx][i], addr);
>  
>      tlb_flush_jmp_cache(env, addr);
>  
> @@ -1901,22 +1877,12 @@ void cpu_physical_memory_reset_dirty(ram_addr_t 
> start, ram_addr_t end,
>      }
>  
>      for(env = first_cpu; env != NULL; env = env->next_cpu) {
> -        for(i = 0; i < CPU_TLB_SIZE; i++)
> -            tlb_reset_dirty_range(&env->tlb_table[0][i], start1, length);
> -        for(i = 0; i < CPU_TLB_SIZE; i++)
> -            tlb_reset_dirty_range(&env->tlb_table[1][i], start1, length);
> -#if (NB_MMU_MODES >= 3)
> -        for(i = 0; i < CPU_TLB_SIZE; i++)
> -            tlb_reset_dirty_range(&env->tlb_table[2][i], start1, length);
> -#endif
> -#if (NB_MMU_MODES >= 4)
> -        for(i = 0; i < CPU_TLB_SIZE; i++)
> -            tlb_reset_dirty_range(&env->tlb_table[3][i], start1, length);
> -#endif
> -#if (NB_MMU_MODES >= 5)
> -        for(i = 0; i < CPU_TLB_SIZE; i++)
> -            tlb_reset_dirty_range(&env->tlb_table[4][i], start1, length);
> -#endif
> +        int mmu_idx;
> +        for (mmu_idx = 0; mmu_idx < NB_MMU_MODES; mmu_idx++) {
> +            for(i = 0; i < CPU_TLB_SIZE; i++)
> +                tlb_reset_dirty_range(&env->tlb_table[mmu_idx][i],
> +                                      start1, length);
> +        }
>      }
>  }
>  
> @@ -1956,22 +1922,11 @@ static inline void tlb_update_dirty(CPUTLBEntry 
> *tlb_entry)
>  void cpu_tlb_update_dirty(CPUState *env)
>  {
>      int i;
> -    for(i = 0; i < CPU_TLB_SIZE; i++)
> -        tlb_update_dirty(&env->tlb_table[0][i]);
> -    for(i = 0; i < CPU_TLB_SIZE; i++)
> -        tlb_update_dirty(&env->tlb_table[1][i]);
> -#if (NB_MMU_MODES >= 3)
> -    for(i = 0; i < CPU_TLB_SIZE; i++)
> -        tlb_update_dirty(&env->tlb_table[2][i]);
> -#endif
> -#if (NB_MMU_MODES >= 4)
> -    for(i = 0; i < CPU_TLB_SIZE; i++)
> -        tlb_update_dirty(&env->tlb_table[3][i]);
> -#endif
> -#if (NB_MMU_MODES >= 5)
> -    for(i = 0; i < CPU_TLB_SIZE; i++)
> -        tlb_update_dirty(&env->tlb_table[4][i]);
> -#endif
> +    int mmu_idx;
> +    for (mmu_idx = 0; mmu_idx < NB_MMU_MODES; mmu_idx++) {
> +        for(i = 0; i < CPU_TLB_SIZE; i++)
> +            tlb_update_dirty(&env->tlb_table[mmu_idx][i]);
> +    }
>  }
>  
>  static inline void tlb_set_dirty1(CPUTLBEntry *tlb_entry, target_ulong vaddr)
> @@ -1985,20 +1940,12 @@ static inline void tlb_set_dirty1(CPUTLBEntry 
> *tlb_entry, target_ulong vaddr)
>  static inline void tlb_set_dirty(CPUState *env, target_ulong vaddr)
>  {
>      int i;
> +    int mmu_idx;
>  
>      vaddr &= TARGET_PAGE_MASK;
>      i = (vaddr >> TARGET_PAGE_BITS) & (CPU_TLB_SIZE - 1);
> -    tlb_set_dirty1(&env->tlb_table[0][i], vaddr);
> -    tlb_set_dirty1(&env->tlb_table[1][i], vaddr);
> -#if (NB_MMU_MODES >= 3)
> -    tlb_set_dirty1(&env->tlb_table[2][i], vaddr);
> -#endif
> -#if (NB_MMU_MODES >= 4)
> -    tlb_set_dirty1(&env->tlb_table[3][i], vaddr);
> -#endif
> -#if (NB_MMU_MODES >= 5)
> -    tlb_set_dirty1(&env->tlb_table[4][i], vaddr);
> -#endif
> +    for (mmu_idx = 0; mmu_idx < NB_MMU_MODES; mmu_idx++)
> +        tlb_set_dirty1(&env->tlb_table[mmu_idx][i], vaddr);
>  }
>  
>  /* add a new TLB entry. At most one entry for a given virtual address
> 
> -- 
> yamahata
> 
> 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]