Skip to contentSkip to conversation

qemu: Fix bit extraction for MTFSFI and MTFSF

PATCH New Khem Raj 1 participant 1 message Aug 15, 2013

lore
Share & tools
lore

Khem Raj

author
#0 lore raw

PATCH 1/1 qemu: Fix bit extraction for MTFSFI and MTFSF

Power ISA 2.05 enhancements introduced regression
in mtfsfi implementation. Fixed thusly

[YOCTO #4854]

---
 .../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
meta/recipes-devtools/qemu/files/target-ppc_fix_bit_extraction.patch new file +70 -0
new file mode 100644
index 0000000..d750923
@@ -0,0 +1,70 @@
+Delivered-To: [email protected]
+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: <[email protected]>
+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 <[email protected]>
+        (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 [email protected] 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 [email protected] designates 2001:470:1f0b:4a8::1 as permitted sender) [email protected]
+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 <[email protected]>)
+	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 <[email protected]>)
+	id 1V9vnF-0002Lw-7L; Thu, 15 Aug 2013 13:32:41 +0200
+From: Aurelien Jarno <[email protected]>
+To: [email protected]
+Cc: Khem Raj <[email protected]>,
+	Alexander Graf <[email protected]> ,
+	[email protected],
+	[email protected],
+	Aurelien Jarno <[email protected]>
+Subject: [PATCH] target-ppc: fix bit extraction for FPBF and FPL
+Date: Thu, 15 Aug 2013 13:32:38 +0200
+Message-Id: <[email protected]>
+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 <[email protected]>
+Signed-off-by: Aurelien Jarno <[email protected]>
+
+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);
+ 
meta/recipes-devtools/qemu/qemu_1.5.0.bb +3 -1
index 91b8120..d6dd743 100644
@@ -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"
Signature · 1 line
1.8.3.4