aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>2007-02-01 22:11:07 +0000
committerbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>2007-02-01 22:11:07 +0000
commit0499e4a02a5f7b53f48777de1e04b8440c740d85 (patch)
treee8c5462d2110841f92151f7decc4c015a0bcff3c
parent0dcece76f0766d3be3f6e2023e91fb221bec20cc (diff)
cwde and cdq fix in 64 bit mode
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2373 c046a42c-6fe2-441c-8c8c-71466251a162
-rw-r--r--target-i386/op.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/target-i386/op.c b/target-i386/op.c
index 7c20f524fe..a8cfce271b 100644
--- a/target-i386/op.c
+++ b/target-i386/op.c
@@ -788,7 +788,7 @@ void OPPROTO op_movzwl_T0_T0(void)
void OPPROTO op_movswl_EAX_AX(void)
{
- EAX = (int16_t)EAX;
+ EAX = (uint32_t)((int16_t)EAX);
}
#ifdef TARGET_X86_64
@@ -810,7 +810,7 @@ void OPPROTO op_movsbw_AX_AL(void)
void OPPROTO op_movslq_EDX_EAX(void)
{
- EDX = (int32_t)EAX >> 31;
+ EDX = (uint32_t)((int32_t)EAX >> 31);
}
void OPPROTO op_movswl_DX_AX(void)