summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAurelien Jarno2013-08-15 13:32:38 +0200
committerAlexander Graf2013-09-02 10:06:42 +0200
commit779f659021d1754117bce1aab9370dc22f37ae07 (patch)
tree462f2142352096ba8dd0e05498fd7d1fb2df910f
parentppc405_boards: Don't enforce presence of firmware for qtest (diff)
downloadqemu-779f659021d1754117bce1aab9370dc22f37ae07.tar.gz
qemu-779f659021d1754117bce1aab9370dc22f37ae07.tar.xz
qemu-779f659021d1754117bce1aab9370dc22f37ae07.zip
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>
-rw-r--r--target-ppc/translate.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/target-ppc/translate.c b/target-ppc/translate.c
index f07d70d866..41f40486eb 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);