summaryrefslogtreecommitdiff
path: root/target-i386/ops_template_mem.h
diff options
context:
space:
mode:
authorbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>2004-01-18 21:44:40 +0000
committerbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>2004-01-18 21:44:40 +0000
commit1e4fe7cee25d12d1ecbf9bc2790246b90fede0b1 (patch)
tree012a9075ebf19e790f0a25a135b9205c010d7da1 /target-i386/ops_template_mem.h
parentdebf7a7c7e16a271b413e886c11224aa9e20f034 (diff)
downloadqemu-1e4fe7cee25d12d1ecbf9bc2790246b90fede0b1.tar.gz
fixed potential exception pb on cmpxchg
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@552 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'target-i386/ops_template_mem.h')
-rw-r--r--target-i386/ops_template_mem.h6
1 files changed, 3 insertions, 3 deletions
diff --git a/target-i386/ops_template_mem.h b/target-i386/ops_template_mem.h
index 1b83536c9f..ea73c96caa 100644
--- a/target-i386/ops_template_mem.h
+++ b/target-i386/ops_template_mem.h
@@ -442,12 +442,12 @@ void OPPROTO glue(glue(op_cmpxchg, MEM_SUFFIX), _T0_T1_EAX_cc)(void)
dst = EAX - T0;
if ((DATA_TYPE)dst == 0) {
T0 = T1;
+#ifdef MEM_WRITE
+ glue(st, MEM_SUFFIX)((uint8_t *)A0, T0);
+#endif
} else {
EAX = (EAX & ~DATA_MASK) | (T0 & DATA_MASK);
}
-#ifdef MEM_WRITE
- glue(st, MEM_SUFFIX)((uint8_t *)A0, T0);
-#endif
CC_SRC = src;
CC_DST = dst;
FORCE_RET();