summaryrefslogtreecommitdiff
path: root/target-arm/op_helper.c
diff options
context:
space:
mode:
authorpbrook <pbrook@c046a42c-6fe2-441c-8c8c-71466251a162>2008-04-01 17:19:11 +0000
committerpbrook <pbrook@c046a42c-6fe2-441c-8c8c-71466251a162>2008-04-01 17:19:11 +0000
commit6fbe23d50ed24044ac2d12281b0e7d580a2374d9 (patch)
treec0f0da6a5cfa9d9b18d851abecb74c603a0d3346 /target-arm/op_helper.c
parentf5d28393ca6303c7470d95c2360d8c76b5bbdfdc (diff)
downloadqemu-6fbe23d50ed24044ac2d12281b0e7d580a2374d9.tar.gz
ARM N=Z=1 flag fix.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4156 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'target-arm/op_helper.c')
-rw-r--r--target-arm/op_helper.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/target-arm/op_helper.c b/target-arm/op_helper.c
index 20dafae8a4..555b55c6bb 100644
--- a/target-arm/op_helper.c
+++ b/target-arm/op_helper.c
@@ -315,7 +315,7 @@ uint32_t HELPER (add_cc)(uint32_t a, uint32_t b)
{
uint32_t result;
result = T0 + T1;
- env->NZF = result;
+ env->NF = env->ZF = result;
env->CF = result < a;
env->VF = (a ^ b ^ -1) & (a ^ result);
return result;
@@ -332,7 +332,7 @@ uint32_t HELPER(adc_cc)(uint32_t a, uint32_t b)
env->CF = result <= a;
}
env->VF = (a ^ b ^ -1) & (a ^ result);
- env->NZF = result;
+ env->NF = env->ZF = result;
return result;
}
@@ -340,7 +340,7 @@ uint32_t HELPER(sub_cc)(uint32_t a, uint32_t b)
{
uint32_t result;
result = a - b;
- env->NZF = result;
+ env->NF = env->ZF = result;
env->CF = a >= b;
env->VF = (a ^ b) & (a ^ result);
return result;
@@ -357,7 +357,7 @@ uint32_t HELPER(sbc_cc)(uint32_t a, uint32_t b)
env->CF = a >= b;
}
env->VF = (a ^ b) & (a ^ result);
- env->NZF = result;
+ env->NF = env->ZF = result;
return result;
}