Commit 0499e4a02a5f7b53f48777de1e04b8440c740d85

Authored by bellard
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)