From: aurel32 Date: Sun, 14 Dec 2008 11:12:10 +0000 (+0000) Subject: target-ppc: fix fsel instruction X-Git-Tag: release_0_10_0~660 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6ad7365a81ef9b0857e0964190e34e21814bd3b0;p=thirdparty%2Fqemu.git target-ppc: fix fsel instruction Fix fsel instruction. Eliminate unneeded temporaries while we're at it, too. Signed-off-by: Nathan Froyd Signed-off-by: Aurelien Jarno git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6026 c046a42c-6fe2-441c-8c8c-71466251a162 --- diff --git a/target-ppc/op_helper.c b/target-ppc/op_helper.c index a9b7f73bb03..cd88bb60756 100644 --- a/target-ppc/op_helper.c +++ b/target-ppc/op_helper.c @@ -1592,16 +1592,14 @@ uint64_t helper_frsqrte (uint64_t arg) /* fsel - fsel. */ uint64_t helper_fsel (uint64_t arg1, uint64_t arg2, uint64_t arg3) { - CPU_DoubleU farg1, farg2, farg3; + CPU_DoubleU farg1; farg1.ll = arg1; - farg2.ll = arg2; - farg3.ll = arg3; if (!fpisneg(farg1.d) || iszero(farg1.d)) - return farg2.ll; + return arg2; else - return farg2.ll; + return arg3; } uint32_t helper_fcmpu (uint64_t arg1, uint64_t arg2)