linux-mips
[Top] [All Lists]

Re: [PATCH] Fix build_store_reg()

To: linux-mips@linux-mips.org
Subject: Re: [PATCH] Fix build_store_reg()
From: Atsushi Nemoto <anemo@mba.ocn.ne.jp>
Date: Fri, 22 Dec 2006 01:03:16 +0900 (JST)
Cc: ralf@linux-mips.org
In-reply-to: <20061218.003821.96686517.anemo@mba.ocn.ne.jp>
Original-recipient: rfc822;linux-mips@linux-mips.org
References: <20061218.003821.96686517.anemo@mba.ocn.ne.jp>
Sender: linux-mips-bounce@linux-mips.org
On Mon, 18 Dec 2006 00:38:21 +0900 (JST), Atsushi Nemoto <anemo@mba.ocn.ne.jp> 
wrote:
> The commit a923660d786a53e78834b19062f7af2535f7f8ad accidently
> prevents TX49 from using CDEX.  Use build_dst_pref() only if prefetch
> for store was really available.
> 
> Signed-off-by: Atsushi Nemoto <anemo@mba.ocn.ne.jp>
> ---
> diff --git a/arch/mips/mm/pg-r4k.c b/arch/mips/mm/pg-r4k.c
> index d41fc58..dc795be 100644
> --- a/arch/mips/mm/pg-r4k.c
> +++ b/arch/mips/mm/pg-r4k.c
> @@ -243,11 +243,10 @@ static void __init __build_store_reg(int
>  
>  static inline void build_store_reg(int reg)
>  {
> -     if (cpu_has_prefetch)
> -             if (reg)
> -                     build_dst_pref(pref_offset_copy);
> -             else
> -                     build_dst_pref(pref_offset_clear);
> +     int pref_off = cpu_has_prefetch ?
> +             (reg ? pref_offset_copy : pref_offset_clear) : 0;
> +     if (pref_off)
> +             build_dst_pref(pref_off);
>       else if (cpu_has_cache_cdex_s)
>               build_cdex_s();
>       else if (cpu_has_cache_cdex_p)

BTW, why prefetch is preferred than cache_cdex?  I feel cdex is better
while it avoids unnecessary load...

---
Atsushi Nemoto

<Prev in Thread] Current Thread [Next in Thread>