mirror of
https://github.com/qemu/qemu.git
synced 2024-11-28 14:24:02 +08:00
fixed potential exception pb on cmpxchg
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@552 c046a42c-6fe2-441c-8c8c-71466251a162
This commit is contained in:
parent
debf7a7c7e
commit
1e4fe7cee2
@ -442,12 +442,12 @@ void OPPROTO glue(glue(op_cmpxchg, MEM_SUFFIX), _T0_T1_EAX_cc)(void)
|
|||||||
dst = EAX - T0;
|
dst = EAX - T0;
|
||||||
if ((DATA_TYPE)dst == 0) {
|
if ((DATA_TYPE)dst == 0) {
|
||||||
T0 = T1;
|
T0 = T1;
|
||||||
|
#ifdef MEM_WRITE
|
||||||
|
glue(st, MEM_SUFFIX)((uint8_t *)A0, T0);
|
||||||
|
#endif
|
||||||
} else {
|
} else {
|
||||||
EAX = (EAX & ~DATA_MASK) | (T0 & DATA_MASK);
|
EAX = (EAX & ~DATA_MASK) | (T0 & DATA_MASK);
|
||||||
}
|
}
|
||||||
#ifdef MEM_WRITE
|
|
||||||
glue(st, MEM_SUFFIX)((uint8_t *)A0, T0);
|
|
||||||
#endif
|
|
||||||
CC_SRC = src;
|
CC_SRC = src;
|
||||||
CC_DST = dst;
|
CC_DST = dst;
|
||||||
FORCE_RET();
|
FORCE_RET();
|
||||||
|
Loading…
Reference in New Issue
Block a user