From b8952942aed77473d3b44a17112cbf6a9e83eff3 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Thu, 15 Aug 2013 06:56:49 -0700 Subject: qemu: Fix bit extraction for MTFSFI and MTFSF Power ISA 2.05 enhancements introduced regression in mtfsfi implementation. Fixed thusly [YOCTO #4854] Signed-off-by: Khem Raj Signed-off-by: Richard Purdie --- .../qemu/files/target-ppc_fix_bit_extraction.patch | 70 ++++++++++++++++++++++ meta/recipes-devtools/qemu/qemu_1.5.0.bb | 4 +- 2 files changed, 73 insertions(+), 1 deletion(-) create mode 100644 meta/recipes-devtools/qemu/files/target-ppc_fix_bit_extraction.patch diff --git a/meta/recipes-devtools/qemu/files/target-ppc_fix_bit_extraction.patch b/meta/recipes-devtools/qemu/files/target-ppc_fix_bit_extraction.patch new file mode 100644 index 0000000000..631d23b191 --- /dev/null +++ b/meta/recipes-devtools/qemu/files/target-ppc_fix_bit_extraction.patch @@ -0,0 +1,70 @@ +Delivered-To: raj.khem@gmail.com +Received: by 10.50.216.195 with SMTP id os3csp11191igc; + Thu, 15 Aug 2013 04:32:45 -0700 (PDT) +X-Received: by 10.180.98.3 with SMTP id ee3mr1508103wib.48.1376566364872; + Thu, 15 Aug 2013 04:32:44 -0700 (PDT) +Return-Path: +Received: from hall.aurel32.net (hall.aurel32.net. [2001:470:1f0b:4a8::1]) + by mx.google.com with ESMTPS id vv5si15578100wjc.49.2013.08.15.04.32.44 + for + (version=TLSv1.2 cipher=RC4-SHA bits=128/128); + Thu, 15 Aug 2013 04:32:44 -0700 (PDT) +Received-SPF: pass (google.com: best guess record for domain of aurelien@aurel32.net designates 2001:470:1f0b:4a8::1 as permitted sender) client-ip=2001:470:1f0b:4a8::1; +Authentication-Results: mx.google.com; + spf=pass (google.com: best guess record for domain of aurelien@aurel32.net designates 2001:470:1f0b:4a8::1 as permitted sender) smtp.mail=aurelien@aurel32.net +Received: from [2001:470:d4ed:1:2db:dfff:fe14:52d] (helo=ohm.aurel32.net) + by hall.aurel32.net with esmtpsa (TLS1.2:DHE_RSA_AES_128_CBC_SHA1:128) + (Exim 4.80) + (envelope-from ) + id 1V9vnG-0006cO-NN; Thu, 15 Aug 2013 13:32:42 +0200 +Received: from aurel32 by ohm.aurel32.net with local (Exim 4.80) + (envelope-from ) + id 1V9vnF-0002Lw-7L; Thu, 15 Aug 2013 13:32:41 +0200 +From: Aurelien Jarno +To: qemu-devel@nongnu.org +Cc: Khem Raj , + Alexander Graf , + qemu-stable@nongnu.org, + qemu-ppc@nongnu.org, + Aurelien Jarno +Subject: [PATCH] target-ppc: fix bit extraction for FPBF and FPL +Date: Thu, 15 Aug 2013 13:32:38 +0200 +Message-Id: <1376566358-8989-1-git-send-email-aurelien@aurel32.net> +X-Mailer: git-send-email 1.7.10.4 + +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 +Signed-off-by: Aurelien Jarno + +Upstream-Status: Backport + +--- + 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. + +Index: qemu-1.5.0/target-ppc/translate.c +=================================================================== +--- qemu-1.5.0.orig/target-ppc/translate.c 2013-05-20 08:34:40.000000000 -0700 ++++ qemu-1.5.0/target-ppc/translate.c 2013-08-15 06:49:25.028144352 -0700 +@@ -428,9 +428,9 @@ + 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); + diff --git a/meta/recipes-devtools/qemu/qemu_1.5.0.bb b/meta/recipes-devtools/qemu/qemu_1.5.0.bb index 91b8120cc3..d6dd743bb0 100644 --- a/meta/recipes-devtools/qemu/qemu_1.5.0.bb +++ b/meta/recipes-devtools/qemu/qemu_1.5.0.bb @@ -4,7 +4,9 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=441c28d2cf86e15a37fa47e15a72fbac \ file://COPYING.LIB;endline=24;md5=c04def7ae38850e7d3ef548588159913" SRC_URI += "file://fdt_header.patch \ - file://target-i386-Fix-aflag-logic-for-CODE64-and-the-0x67-.patch" + file://target-i386-Fix-aflag-logic-for-CODE64-and-the-0x67-.patch \ + file://target-ppc_fix_bit_extraction.patch \ + " SRC_URI_prepend = "http://wiki.qemu.org/download/qemu-${PV}.tar.bz2" SRC_URI[md5sum] = "b6f3265b8ed39d77e8f354f35cc26e16" -- cgit v1.2.3