summaryrefslogtreecommitdiff
path: root/op_string.h
diff options
context:
space:
mode:
authorbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>2003-06-30 10:11:50 +0000
committerbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>2003-06-30 10:11:50 +0000
commit5797fa5d7ef49ce4beec9586af0cc9c63f7a4b3a (patch)
tree65e1699621d97cf7a9abef99c8ff6ca644e8679d /op_string.h
parent8ef9a8ece3aa8c92eccf998aaac5f38d74acb757 (diff)
downloadqemu-5797fa5d7ef49ce4beec9586af0cc9c63f7a4b3a.tar.gz
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.h12
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;
}