aboutsummaryrefslogtreecommitdiff
path: root/target-ppc
diff options
context:
space:
mode:
authoraurel32 <aurel32@c046a42c-6fe2-441c-8c8c-71466251a162>2008-05-06 14:58:23 +0000
committeraurel32 <aurel32@c046a42c-6fe2-441c-8c8c-71466251a162>2008-05-06 14:58:23 +0000
commit894efddb50a4531cbeaf2e2b0a1832133d1ef34d (patch)
treecda44a75401d75a3eb15f17bca68b33711fbb80a /target-ppc
parentf9320410e1c3bc0c2bdd6ea97c5c0c57212cec19 (diff)
PPC: fix efstst* instructions
(Tristan Gingold) git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4362 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'target-ppc')
-rw-r--r--target-ppc/op_helper.h12
1 files changed, 6 insertions, 6 deletions
diff --git a/target-ppc/op_helper.h b/target-ppc/op_helper.h
index 1d5fc0a252..8c8c812051 100644
--- a/target-ppc/op_helper.h
+++ b/target-ppc/op_helper.h
@@ -332,21 +332,21 @@ static always_inline int _do_efststlt (uint32_t op1, uint32_t op2)
CPU_FloatU u1, u2;
u1.l = op1;
u2.l = op2;
- return float32_lt(u1.f, u2.f, &env->spe_status) ? 1 : 0;
+ return float32_lt(u1.f, u2.f, &env->spe_status) ? 4 : 0;
}
static always_inline int _do_efststgt (uint32_t op1, uint32_t op2)
{
CPU_FloatU u1, u2;
u1.l = op1;
u2.l = op2;
- return float32_le(u1.f, u2.f, &env->spe_status) ? 0 : 1;
+ return float32_le(u1.f, u2.f, &env->spe_status) ? 0 : 4;
}
static always_inline int _do_efststeq (uint32_t op1, uint32_t op2)
{
CPU_FloatU u1, u2;
u1.l = op1;
u2.l = op2;
- return float32_eq(u1.f, u2.f, &env->spe_status) ? 1 : 0;
+ return float32_eq(u1.f, u2.f, &env->spe_status) ? 4 : 0;
}
/* Double precision floating-point helpers */
static always_inline int _do_efdtstlt (uint64_t op1, uint64_t op2)
@@ -354,20 +354,20 @@ static always_inline int _do_efdtstlt (uint64_t op1, uint64_t op2)
CPU_DoubleU u1, u2;
u1.ll = op1;
u2.ll = op2;
- return float64_lt(u1.d, u2.d, &env->spe_status) ? 1 : 0;
+ return float64_lt(u1.d, u2.d, &env->spe_status) ? 4 : 0;
}
static always_inline int _do_efdtstgt (uint64_t op1, uint64_t op2)
{
CPU_DoubleU u1, u2;
u1.ll = op1;
u2.ll = op2;
- return float64_le(u1.d, u2.d, &env->spe_status) ? 0 : 1;
+ return float64_le(u1.d, u2.d, &env->spe_status) ? 0 : 4;
}
static always_inline int _do_efdtsteq (uint64_t op1, uint64_t op2)
{
CPU_DoubleU u1, u2;
u1.ll = op1;
u2.ll = op2;
- return float64_eq(u1.d, u2.d, &env->spe_status) ? 1 : 0;
+ return float64_eq(u1.d, u2.d, &env->spe_status) ? 4 : 0;
}
#endif