On 02/24/2017 06:56 AM, Nikunj A Dadhania wrote:
@@ -320,22 +320,24 @@ target_ulong helper_divo(CPUPPCState *env, target_ulong
arg1,
target_ulong arg2)
{
uint64_t tmp = (uint64_t)arg1 << 32 | env->spr[SPR_MQ];
+ int ov;
if (((int32_t)tmp == INT32_MIN && (int32_t)arg2 == (int32_t)-1) ||
(int32_t)arg2 == 0) {
- env->so = env->ov = 1;
+ ov = 1;
env->spr[SPR_MQ] = 0;
return INT32_MIN;
} else {
env->spr[SPR_MQ] = tmp % arg2;
tmp /= (int32_t)arg2;
if ((int32_t)tmp != tmp) {
- env->so = env->ov = 1;
+ ov = 1;
} else {
- env->ov = 0;
+ ov = 0;
}
return tmp;
}
+ helper_update_ov_legacy(env, ov);
}
You're attempting to run the helper after "return".
r~