Fixed x86-32 recompiler MMX entry code

Fixed FPU tag resetting in EMMS instruction
Clear MMX state in FINIT
Reset FPU state in FSAVE/FNSAVE
Fixes issues with MMX when more than one MMX program is running
This commit is contained in:
SarahW 2017-01-13 21:31:42 +00:00
commit 9167b3a71f
3 changed files with 13 additions and 4 deletions

View file

@ -3460,13 +3460,13 @@ static void MMX_ENTER()
addbyte(0x45);
addbyte(cpu_state_offset(ismmx));
addbyte(1);
addbyte(0x8b); /*MOV TOP, EAX*/
addbyte(0x89); /*MOV TOP, EAX*/
addbyte(0x45);
addbyte(cpu_state_offset(TOP));
addbyte(0x8b); /*MOV tag, EAX*/
addbyte(0x89); /*MOV tag, EAX*/
addbyte(0x45);
addbyte(cpu_state_offset(tag[0]));
addbyte(0x8b); /*MOV tag+4, EAX*/
addbyte(0x89); /*MOV tag+4, EAX*/
addbyte(0x45);
addbyte(cpu_state_offset(tag[4]));