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 | 788 | |
789 | 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 | 794 | #ifdef TARGET_X86_64 |
... | ... | @@ -810,7 +810,7 @@ void OPPROTO op_movsbw_AX_AL(void) |
810 | 810 | |
811 | 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 | 816 | void OPPROTO op_movswl_DX_AX(void) | ... | ... |