diff mbox

target-ppc: fix bit extraction for FPBF and FPL

Message ID 1376566358-8989-1-git-send-email-aurelien@aurel32.net
State New
Headers show

Commit Message

Aurelien Jarno Aug. 15, 2013, 11:32 a.m. UTC
Bit extraction for the FP BF and L field of the MTFSFI and MTFSF
instructions is wrong and doesn't match the reference manual (which
explain the bit number in big endian format). It has been broken in
commit 7d08d85645def18eac2a9d672c1868a35e0bcf79.

This patch fixes this, which in turn fixes the problem reported by
Khem Raj about the floor() function of libm.

Reported-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
---
 target-ppc/translate.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

I don't know if we still have time to get this into 1.6, hence the Cc:
to stable. In anycase it also needs to be fixed in 1.5.

Comments

Alexander Graf Aug. 15, 2013, 11:36 a.m. UTC | #1
On 15.08.2013, at 13:32, Aurelien Jarno wrote:

> Bit extraction for the FP BF and L field of the MTFSFI and MTFSF
> instructions is wrong and doesn't match the reference manual (which
> explain the bit number in big endian format). It has been broken in
> commit 7d08d85645def18eac2a9d672c1868a35e0bcf79.
> 
> This patch fixes this, which in turn fixes the problem reported by
> Khem Raj about the floor() function of libm.
> 
> Reported-by: Khem Raj <raj.khem@gmail.com>
> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>

Thanks, applied to ppc-next.


Alex
Khem Raj Aug. 15, 2013, 1:58 p.m. UTC | #2
On Aug 15, 2013, at 4:32 AM, Aurelien Jarno <aurelien@aurel32.net> wrote:

> Bit extraction for the FP BF and L field of the MTFSFI and MTFSF
> instructions is wrong and doesn't match the reference manual (which
> explain the bit number in big endian format). It has been broken in
> commit 7d08d85645def18eac2a9d672c1868a35e0bcf79.
> 
> This patch fixes this, which in turn fixes the problem reported by
> Khem Raj about the floor() function of libm.
> 
> Reported-by: Khem Raj <raj.khem@gmail.com>
> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
> ---
> target-ppc/translate.c |    4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
> 
> I don't know if we still have time to get this into 1.6, hence the Cc:
> to stable. In anycase it also needs to be fixed in 1.5.
> 
> diff --git a/target-ppc/translate.c b/target-ppc/translate.c
> index f07d70d..41f4048 100644
> --- a/target-ppc/translate.c
> +++ b/target-ppc/translate.c
> @@ -428,9 +428,9 @@ EXTRACT_HELPER(CRM, 12, 8);
> EXTRACT_HELPER(SR, 16, 4);
> 
> /* mtfsf/mtfsfi */
> -EXTRACT_HELPER(FPBF, 19, 3);
> +EXTRACT_HELPER(FPBF, 23, 3);
> EXTRACT_HELPER(FPIMM, 12, 4);
> -EXTRACT_HELPER(FPL, 21, 1);
> +EXTRACT_HELPER(FPL, 25, 1);
> EXTRACT_HELPER(FPFLM, 17, 8);
> EXTRACT_HELPER(FPW, 16, 1);
> 
> -- 
> 1.7.10.4
> 


Thanks for quick turnaround, I have tested this patch and fixes the said issue.
diff mbox

Patch

diff --git a/target-ppc/translate.c b/target-ppc/translate.c
index f07d70d..41f4048 100644
--- a/target-ppc/translate.c
+++ b/target-ppc/translate.c
@@ -428,9 +428,9 @@  EXTRACT_HELPER(CRM, 12, 8);
 EXTRACT_HELPER(SR, 16, 4);
 
 /* mtfsf/mtfsfi */
-EXTRACT_HELPER(FPBF, 19, 3);
+EXTRACT_HELPER(FPBF, 23, 3);
 EXTRACT_HELPER(FPIMM, 12, 4);
-EXTRACT_HELPER(FPL, 21, 1);
+EXTRACT_HELPER(FPL, 25, 1);
 EXTRACT_HELPER(FPFLM, 17, 8);
 EXTRACT_HELPER(FPW, 16, 1);