Commit 6ad7365a81ef9b0857e0964190e34e21814bd3b0

Authored by aurel32
1 parent 30e7a22e

target-ppc: fix fsel instruction

Fix fsel instruction.  Eliminate unneeded temporaries while we're at it,
too.

Signed-off-by: Nathan Froyd <froydnj@codesourcery.com>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6026 c046a42c-6fe2-441c-8c8c-71466251a162
Showing 1 changed file with 3 additions and 5 deletions
target-ppc/op_helper.c
@@ -1592,16 +1592,14 @@ uint64_t helper_frsqrte (uint64_t arg) @@ -1592,16 +1592,14 @@ uint64_t helper_frsqrte (uint64_t arg)
1592 /* fsel - fsel. */ 1592 /* fsel - fsel. */
1593 uint64_t helper_fsel (uint64_t arg1, uint64_t arg2, uint64_t arg3) 1593 uint64_t helper_fsel (uint64_t arg1, uint64_t arg2, uint64_t arg3)
1594 { 1594 {
1595 - CPU_DoubleU farg1, farg2, farg3; 1595 + CPU_DoubleU farg1;
1596 1596
1597 farg1.ll = arg1; 1597 farg1.ll = arg1;
1598 - farg2.ll = arg2;  
1599 - farg3.ll = arg3;  
1600 1598
1601 if (!fpisneg(farg1.d) || iszero(farg1.d)) 1599 if (!fpisneg(farg1.d) || iszero(farg1.d))
1602 - return farg2.ll; 1600 + return arg2;
1603 else 1601 else
1604 - return farg2.ll; 1602 + return arg3;
1605 } 1603 }
1606 1604
1607 uint32_t helper_fcmpu (uint64_t arg1, uint64_t arg2) 1605 uint32_t helper_fcmpu (uint64_t arg1, uint64_t arg2)