Commit 0499e4a02a5f7b53f48777de1e04b8440c740d85
1 parent
0dcece76
cwde and cdq fix in 64 bit mode
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2373 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
1 changed file
with
2 additions
and
2 deletions
target-i386/op.c
| @@ -788,7 +788,7 @@ void OPPROTO op_movzwl_T0_T0(void) | @@ -788,7 +788,7 @@ void OPPROTO op_movzwl_T0_T0(void) | ||
| 788 | 788 | ||
| 789 | void OPPROTO op_movswl_EAX_AX(void) | 789 | void OPPROTO op_movswl_EAX_AX(void) |
| 790 | { | 790 | { |
| 791 | - EAX = (int16_t)EAX; | 791 | + EAX = (uint32_t)((int16_t)EAX); |
| 792 | } | 792 | } |
| 793 | 793 | ||
| 794 | #ifdef TARGET_X86_64 | 794 | #ifdef TARGET_X86_64 |
| @@ -810,7 +810,7 @@ void OPPROTO op_movsbw_AX_AL(void) | @@ -810,7 +810,7 @@ void OPPROTO op_movsbw_AX_AL(void) | ||
| 810 | 810 | ||
| 811 | void OPPROTO op_movslq_EDX_EAX(void) | 811 | void OPPROTO op_movslq_EDX_EAX(void) |
| 812 | { | 812 | { |
| 813 | - EDX = (int32_t)EAX >> 31; | 813 | + EDX = (uint32_t)((int32_t)EAX >> 31); |
| 814 | } | 814 | } |
| 815 | 815 | ||
| 816 | void OPPROTO op_movswl_DX_AX(void) | 816 | void OPPROTO op_movswl_DX_AX(void) |