diff options
author | bellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162> | 2003-06-30 10:11:50 +0000 |
---|---|---|
committer | bellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162> | 2003-06-30 10:11:50 +0000 |
commit | 5797fa5d7ef49ce4beec9586af0cc9c63f7a4b3a (patch) | |
tree | 65e1699621d97cf7a9abef99c8ff6ca644e8679d /op_string.h | |
parent | 8ef9a8ece3aa8c92eccf998aaac5f38d74acb757 (diff) |
first step to fix precise eflags update in case of exception
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@293 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'op_string.h')
-rw-r--r-- | op_string.h | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/op_string.h b/op_string.h index c7ff74c05c..66945b92e9 100644 --- a/op_string.h +++ b/op_string.h @@ -86,7 +86,7 @@ void OPPROTO glue(glue(op_scas, SUFFIX), STRING_SUFFIX)(void) v = glue(ldu, SUFFIX)(DI_ADDR); inc = (DF << SHIFT); INC_DI(); - CC_SRC = EAX; + CC_SRC = v; CC_DST = EAX - v; } @@ -105,7 +105,7 @@ void OPPROTO glue(glue(op_repz_scas, SUFFIX), STRING_SUFFIX)(void) if (v1 != v2) break; } while (CX != 0); - CC_SRC = v1; + CC_SRC = v2; CC_DST = v1 - v2; CC_OP = CC_OP_SUBB + SHIFT; } @@ -127,7 +127,7 @@ void OPPROTO glue(glue(op_repnz_scas, SUFFIX), STRING_SUFFIX)(void) if (v1 == v2) break; } while (CX != 0); - CC_SRC = v1; + CC_SRC = v2; CC_DST = v1 - v2; CC_OP = CC_OP_SUBB + SHIFT; } @@ -142,7 +142,7 @@ void OPPROTO glue(glue(op_cmps, SUFFIX), STRING_SUFFIX)(void) inc = (DF << SHIFT); INC_SI(); INC_DI(); - CC_SRC = v1; + CC_SRC = v2; CC_DST = v1 - v2; } @@ -160,7 +160,7 @@ void OPPROTO glue(glue(op_repz_cmps, SUFFIX), STRING_SUFFIX)(void) if (v1 != v2) break; } while (CX != 0); - CC_SRC = v1; + CC_SRC = v2; CC_DST = v1 - v2; CC_OP = CC_OP_SUBB + SHIFT; } @@ -181,7 +181,7 @@ void OPPROTO glue(glue(op_repnz_cmps, SUFFIX), STRING_SUFFIX)(void) if (v1 == v2) break; } while (CX != 0); - CC_SRC = v1; + CC_SRC = v2; CC_DST = v1 - v2; CC_OP = CC_OP_SUBB + SHIFT; } |