Commit 0cadcbbe authored by aurel32's avatar aurel32

target-ppc: fix computation of XER.{CA, OV} in addme, subfme

(Jocelyn Mayer)

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5380 c046a42c-6fe2-441c-8c8c-71466251a162
parent 5bf06a95
......@@ -640,8 +640,6 @@ void OPPROTO op_add_me (void)
T0 += xer_ca + (-1);
if (likely((uint32_t)T1 != 0))
xer_ca = 1;
else
xer_ca = 0;
RETURN();
}
......@@ -651,8 +649,6 @@ void OPPROTO op_add_me_64 (void)
T0 += xer_ca + (-1);
if (likely((uint64_t)T1 != 0))
xer_ca = 1;
else
xer_ca = 0;
RETURN();
}
#endif
......@@ -930,8 +926,6 @@ void OPPROTO op_subfme (void)
T0 = ~T0 + xer_ca - 1;
if (likely((uint32_t)T0 != UINT32_MAX))
xer_ca = 1;
else
xer_ca = 0;
RETURN();
}
......@@ -941,8 +935,6 @@ void OPPROTO op_subfme_64 (void)
T0 = ~T0 + xer_ca - 1;
if (likely((uint64_t)T0 != UINT64_MAX))
xer_ca = 1;
else
xer_ca = 0;
RETURN();
}
#endif
......
......@@ -151,10 +151,8 @@ void do_addmeo (void)
T0 += xer_ca + (-1);
xer_ov = ((uint32_t)T1 & ((uint32_t)T1 ^ (uint32_t)T0)) >> 31;
xer_so |= xer_ov;
if (likely(T1 != 0))
if (likely((uint32_t)T1 != 0))
xer_ca = 1;
else
xer_ca = 0;
}
#if defined(TARGET_PPC64)
......@@ -164,10 +162,8 @@ void do_addmeo_64 (void)
T0 += xer_ca + (-1);
xer_ov = ((uint64_t)T1 & ((uint64_t)T1 ^ (uint64_t)T0)) >> 63;
xer_so |= xer_ov;
if (likely(T1 != 0))
if (likely((uint64_t)T1 != 0))
xer_ca = 1;
else
xer_ca = 0;
}
#endif
......@@ -312,8 +308,6 @@ void do_subfmeo (void)
xer_so |= xer_ov;
if (likely((uint32_t)T1 != UINT32_MAX))
xer_ca = 1;
else
xer_ca = 0;
}
#if defined(TARGET_PPC64)
......@@ -325,8 +319,6 @@ void do_subfmeo_64 (void)
xer_so |= xer_ov;
if (likely((uint64_t)T1 != UINT64_MAX))
xer_ca = 1;
else
xer_ca = 0;
}
#endif
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment