aboutsummaryrefslogtreecommitdiff
path: root/target-ppc/op_mem.h
diff options
context:
space:
mode:
authorj_mayer <j_mayer@c046a42c-6fe2-441c-8c8c-71466251a162>2007-09-17 09:51:40 +0000
committerj_mayer <j_mayer@c046a42c-6fe2-441c-8c8c-71466251a162>2007-09-17 09:51:40 +0000
commit966439a67830239a6c520c5df6c55627b8153c8b (patch)
treef77bda4ac6380b82e92ab553a560447a43266a99 /target-ppc/op_mem.h
parent3608160206ed55c35be916df0f5d43dccc183513 (diff)
PowerPC flags update/use fixes:
- fix confusion between overflow/summary overflow, as reported by S Bansal. - reset carry in addic. optimized case (as it was already done in addic). git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3179 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'target-ppc/op_mem.h')
-rw-r--r--target-ppc/op_mem.h32
1 files changed, 16 insertions, 16 deletions
diff --git a/target-ppc/op_mem.h b/target-ppc/op_mem.h
index c1039da2d8..f1229859f3 100644
--- a/target-ppc/op_mem.h
+++ b/target-ppc/op_mem.h
@@ -610,10 +610,10 @@ void OPPROTO glue(op_stwcx, MEMSUFFIX) (void)
do_raise_exception(EXCP_ALIGN);
} else {
if (unlikely(env->reserve != (uint32_t)T0)) {
- env->crf[0] = xer_ov;
+ env->crf[0] = xer_so;
} else {
glue(stl, MEMSUFFIX)((uint32_t)T0, T1);
- env->crf[0] = xer_ov | 0x02;
+ env->crf[0] = xer_so | 0x02;
}
}
env->reserve = -1;
@@ -627,10 +627,10 @@ void OPPROTO glue(op_stwcx_64, MEMSUFFIX) (void)
do_raise_exception(EXCP_ALIGN);
} else {
if (unlikely(env->reserve != (uint64_t)T0)) {
- env->crf[0] = xer_ov;
+ env->crf[0] = xer_so;
} else {
glue(stl, MEMSUFFIX)((uint64_t)T0, T1);
- env->crf[0] = xer_ov | 0x02;
+ env->crf[0] = xer_so | 0x02;
}
}
env->reserve = -1;
@@ -643,10 +643,10 @@ void OPPROTO glue(op_stdcx, MEMSUFFIX) (void)
do_raise_exception(EXCP_ALIGN);
} else {
if (unlikely(env->reserve != (uint32_t)T0)) {
- env->crf[0] = xer_ov;
+ env->crf[0] = xer_so;
} else {
glue(stq, MEMSUFFIX)((uint32_t)T0, T1);
- env->crf[0] = xer_ov | 0x02;
+ env->crf[0] = xer_so | 0x02;
}
}
env->reserve = -1;
@@ -659,10 +659,10 @@ void OPPROTO glue(op_stdcx_64, MEMSUFFIX) (void)
do_raise_exception(EXCP_ALIGN);
} else {
if (unlikely(env->reserve != (uint64_t)T0)) {
- env->crf[0] = xer_ov;
+ env->crf[0] = xer_so;
} else {
glue(stq, MEMSUFFIX)((uint64_t)T0, T1);
- env->crf[0] = xer_ov | 0x02;
+ env->crf[0] = xer_so | 0x02;
}
}
env->reserve = -1;
@@ -676,10 +676,10 @@ void OPPROTO glue(op_stwcx_le, MEMSUFFIX) (void)
do_raise_exception(EXCP_ALIGN);
} else {
if (unlikely(env->reserve != (uint32_t)T0)) {
- env->crf[0] = xer_ov;
+ env->crf[0] = xer_so;
} else {
glue(st32r, MEMSUFFIX)((uint32_t)T0, T1);
- env->crf[0] = xer_ov | 0x02;
+ env->crf[0] = xer_so | 0x02;
}
}
env->reserve = -1;
@@ -693,10 +693,10 @@ void OPPROTO glue(op_stwcx_le_64, MEMSUFFIX) (void)
do_raise_exception(EXCP_ALIGN);
} else {
if (unlikely(env->reserve != (uint64_t)T0)) {
- env->crf[0] = xer_ov;
+ env->crf[0] = xer_so;
} else {
glue(st32r, MEMSUFFIX)((uint64_t)T0, T1);
- env->crf[0] = xer_ov | 0x02;
+ env->crf[0] = xer_so | 0x02;
}
}
env->reserve = -1;
@@ -709,10 +709,10 @@ void OPPROTO glue(op_stdcx_le, MEMSUFFIX) (void)
do_raise_exception(EXCP_ALIGN);
} else {
if (unlikely(env->reserve != (uint32_t)T0)) {
- env->crf[0] = xer_ov;
+ env->crf[0] = xer_so;
} else {
glue(st64r, MEMSUFFIX)((uint32_t)T0, T1);
- env->crf[0] = xer_ov | 0x02;
+ env->crf[0] = xer_so | 0x02;
}
}
env->reserve = -1;
@@ -725,10 +725,10 @@ void OPPROTO glue(op_stdcx_le_64, MEMSUFFIX) (void)
do_raise_exception(EXCP_ALIGN);
} else {
if (unlikely(env->reserve != (uint64_t)T0)) {
- env->crf[0] = xer_ov;
+ env->crf[0] = xer_so;
} else {
glue(st64r, MEMSUFFIX)((uint64_t)T0, T1);
- env->crf[0] = xer_ov | 0x02;
+ env->crf[0] = xer_so | 0x02;
}
}
env->reserve = -1;