qemu-ppc
[Top][All Lists]
Advanced

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

Re: [PATCH] target/ppc: Change FPSCR_* to follow POWER ISA numbering con


From: Fabiano Rosas
Subject: Re: [PATCH] target/ppc: Change FPSCR_* to follow POWER ISA numbering convention
Date: Thu, 23 Jun 2022 11:06:36 -0300

Víctor Colombo <victor.colombo@eldorado.org.br> writes:

> FPSCR_* bit values in QEMU are in the 'inverted' order from what Power
> ISA defines (e.g. FPSCR.FI is bit 46 but is defined as 17 in cpu.h).
> Now that PPC_BIT_NR macro was introduced to fix this situation for the
> MSR bits, we can use it for the FPSCR bits too.
>
> Also, adjust the comments to make then fit in 80 columns
>
> Signed-off-by: Víctor Colombo <victor.colombo@eldorado.org.br>

Apart form the typo below.

Reviewed-by: Fabiano Rosas <farosas@linux.ibm.com>

> ---
>  target/ppc/cpu.h | 72 ++++++++++++++++++++++++------------------------
>  1 file changed, 36 insertions(+), 36 deletions(-)
>
> diff --git a/target/ppc/cpu.h b/target/ppc/cpu.h
> index 6d78078f37..c78f64cced 100644
> --- a/target/ppc/cpu.h
> +++ b/target/ppc/cpu.h
> @@ -694,42 +694,42 @@ enum {

<snip>

> +#define FPSCR_DRN2   PPC_BIT_NR(29) /* Decimal Floating-Point rounding ctrl. 
> */
> +#define FPSCR_DRN1   PPC_BIT_NR(30) /* Decimal Floating-Point rounding ctrl. 
> */
> +#define FPSCR_DRN0   PPC_BIT_NR(31) /* Decimal Floating-Point rounding ctrl. 
> */
> +#define FPSCR_FX     PPC_BIT_NR(32) /* Floating-point exception summary      
> */
> +#define FPSCR_FEX    PPC_BIT_NR(33) /* Floating-point enabled exception 
> summ.*/
> +#define FPSCR_VX     PPC_BIT_NR(34) /* Floating-point invalid op. excp. 
> summ.*/
> +#define FPSCR_OX     PPC_BIT_NR(35) /* Floating-point overflow exception     
> */
> +#define FPSCR_UX     PPC_BIT_NR(36) /* Floating-point underflow exceptio     
> */

exception

> +#define FPSCR_ZX     PPC_BIT_NR(37) /* Floating-point zero divide exception  
> */
> +#define FPSCR_XX     PPC_BIT_NR(38) /* Floating-point inexact exception      
> */
> +#define FPSCR_VXSNAN PPC_BIT_NR(39) /* Floating-point invalid op. excp 
> (sNan)*/
> +#define FPSCR_VXISI  PPC_BIT_NR(40) /* Floating-point invalid op. excp (inf) 
> */
> +#define FPSCR_VXIDI  PPC_BIT_NR(41) /* Floating-point invalid op. excp (inf) 
> */
> +#define FPSCR_VXZDZ  PPC_BIT_NR(42) /* Floating-point invalid op. excp 
> (zero)*/
> +#define FPSCR_VXIMZ  PPC_BIT_NR(43) /* Floating-point invalid op. excp (inf) 
> */
> +#define FPSCR_VXVC   PPC_BIT_NR(44) /* Floating-point invalid op. excp 
> (comp)*/
> +#define FPSCR_FR     PPC_BIT_NR(45) /* Floating-point fraction rounded       
> */
> +#define FPSCR_FI     PPC_BIT_NR(46) /* Floating-point fraction inexact       
> */
> +#define FPSCR_C      PPC_BIT_NR(47) /* Floating-point result class 
> descriptor*/
> +#define FPSCR_FL     PPC_BIT_NR(48) /* Floating-point less than or negative  
> */
> +#define FPSCR_FG     PPC_BIT_NR(49) /* Floating-point greater than or neg.   
> */
> +#define FPSCR_FE     PPC_BIT_NR(50) /* Floating-point equal or zero          
> */
> +#define FPSCR_FU     PPC_BIT_NR(51) /* Floating-point unordered or NaN       
> */
> +#define FPSCR_FPCC   PPC_BIT_NR(51) /* Floating-point condition code         
> */
> +#define FPSCR_FPRF   PPC_BIT_NR(51) /* Floating-point result flags           
> */
> +#define FPSCR_VXSOFT PPC_BIT_NR(53) /* Floating-point invalid op. excp 
> (soft)*/
> +#define FPSCR_VXSQRT PPC_BIT_NR(54) /* Floating-point invalid op. excp 
> (sqrt)*/
> +#define FPSCR_VXCVI  PPC_BIT_NR(55) /* Floating-point invalid op. excp (int) 
> */
> +#define FPSCR_VE     PPC_BIT_NR(56) /* Floating-point invalid op. excp 
> enable*/
> +#define FPSCR_OE     PPC_BIT_NR(57) /* Floating-point overflow excp. enable  
> */
> +#define FPSCR_UE     PPC_BIT_NR(58) /* Floating-point underflow excp. enable 
> */
> +#define FPSCR_ZE     PPC_BIT_NR(59) /* Floating-point zero divide excp 
> enable*/
> +#define FPSCR_XE     PPC_BIT_NR(60) /* Floating-point inexact excp. enable   
> */
> +#define FPSCR_NI     PPC_BIT_NR(61) /* Floating-point non-IEEE mode          
> */
> +#define FPSCR_RN1    PPC_BIT_NR(62)
> +#define FPSCR_RN0    PPC_BIT_NR(63) /* Floating-point rounding control       
> */
>  /* Invalid operation exception summary */
>  #define FPSCR_IX     ((1 << FPSCR_VXSNAN) | (1 << FPSCR_VXISI)  | \
>                        (1 << FPSCR_VXIDI)  | (1 << FPSCR_VXZDZ)  | \



reply via email to

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