diff options
author | bellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162> | 2004-01-18 21:44:40 +0000 |
---|---|---|
committer | bellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162> | 2004-01-18 21:44:40 +0000 |
commit | 1e4fe7cee25d12d1ecbf9bc2790246b90fede0b1 (patch) | |
tree | 012a9075ebf19e790f0a25a135b9205c010d7da1 /target-i386 | |
parent | debf7a7c7e16a271b413e886c11224aa9e20f034 (diff) | |
download | qemu-1e4fe7cee25d12d1ecbf9bc2790246b90fede0b1.zip qemu-1e4fe7cee25d12d1ecbf9bc2790246b90fede0b1.tar.gz qemu-1e4fe7cee25d12d1ecbf9bc2790246b90fede0b1.tar.bz2 |
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')
-rw-r--r-- | target-i386/ops_template_mem.h | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/target-i386/ops_template_mem.h b/target-i386/ops_template_mem.h index 1b83536..ea73c96 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(); |