linux-mips
[Top] [All Lists]

Re: [MIPS] CP0 PRId and CP1 FPIR register access masks

To: "Maciej W. Rozycki" <macro@linux-mips.org>
Subject: Re: [MIPS] CP0 PRId and CP1 FPIR register access masks
From: Ralf Baechle <ralf@linux-mips.org>
Date: Tue, 17 Sep 2013 18:19:57 +0200
Cc: linux-mips@linux-mips.org
In-reply-to: <alpine.LFD.2.03.1309171641260.5967@linux-mips.org>
List-archive: <http://www.linux-mips.org/archives/linux-mips/>
List-help: <mailto:ecartis@linux-mips.org?Subject=help>
List-id: linux-mips <linux-mips.eddie.linux-mips.org>
List-owner: <mailto:ralf@linux-mips.org>
List-post: <mailto:linux-mips@linux-mips.org>
List-software: Ecartis version 1.0.0
List-subscribe: <mailto:ecartis@linux-mips.org?subject=subscribe%20linux-mips>
List-unsubscribe: <mailto:ecartis@linux-mips.org?subject=unsubscribe%20linux-mips>
Original-recipient: rfc822;linux-mips@linux-mips.org
References: <alpine.LFD.2.03.1309171641260.5967@linux-mips.org>
Sender: linux-mips-bounce@linux-mips.org
User-agent: Mutt/1.5.21 (2010-09-15)
On Tue, Sep 17, 2013 at 04:58:10PM +0100, Maciej W. Rozycki wrote:

> Replace hardcoded CP0 PRId and CP1 FPIR register access masks throughout.  
> The change does not touch places that use shifted or partial masks.
> 
> Signed-off-by: Maciej W. Rozycki <macro@linux-mips.org>
> ---
> Ralf,
> 
>  Please apply.  I think the places ignored by this change should be 
> further reviewed, especially the shifted masks that can likely remove the 
> shifts and rely on compiler optimisation instead.  I decided to make this 
> change as straightforward as possible to avoid accidental breakage in code 
> I have no way to test.  Also partial masks are probably better handled 
> with macros rather than hardcoded constants scattered throughout.  I can 
> see steps have been taken towards this already (PRID_REV_ENCODE_*).

Looks ok, queud for 3.13.

But while it's cleaner, I think the idiom read_c0_prid() & some_MASK is
so common that maybe something like

  #define read_c0_prid_imp()    (read_c0_prid() & PRID_IMP_MASK)
  #define read_c0_prid_rev()    (read_c0_prid() & PRID_REV_MASK)
  #define read_c0_prid_comp()   (read_c0_prid() & PRID_COMP_MASK)

should be introduced as a next step.

  Ralf

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