41 lines
1.4 KiB
Diff
41 lines
1.4 KiB
Diff
|
From 52f99b02e5ff1004fb3b41846d2c34f190127456 Mon Sep 17 00:00:00 2001
|
||
|
From: Aurelien Jarno <aurelien@aurel32.net>
|
||
|
Date: Thu, 15 Aug 2013 13:32:38 +0200
|
||
|
Subject: [PATCH] target-ppc: fix bit extraction for FPBF and FPL
|
||
|
|
||
|
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>
|
||
|
CC: qemu-stable@nongnu.org (1.6)
|
||
|
Signed-off-by: Alexander Graf <agraf@suse.de>
|
||
|
(cherry picked from commit 779f659021d1754117bce1aab9370dc22f37ae07)
|
||
|
|
||
|
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
|
||
|
---
|
||
|
target-ppc/translate.c | 4 ++--
|
||
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
||
|
|
||
|
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);
|
||
|
|