1
0
Fork 0

release eax when fstsw is called

Imported-from: https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk@2199
This commit is contained in:
Peter Veenstra 2005-04-28 18:54:25 +00:00
parent 2d4f6f39b7
commit 2146cae4ef

View file

@ -25,7 +25,7 @@
dyn_fill_ea(); \
gen_call_function((void*)&FPU_ESC ## code ## _EA,"%Id%Dd",decode.modrm.val,DREG(EA)); \
gen_releasereg(DREG(EA)); \
} \
} \
}
enum REP_Type {
@ -1362,7 +1362,15 @@ restart_prefix:
DYN_FPU_ESC(6);
break;
case 0xdf:
DYN_FPU_ESC(7);
dyn_get_modrm();
if (decode.modrm.val >= 0xc0) {
if (decode.modrm.val == 0xe0) gen_releasereg(DREG(EAX)); /* FSTSW */
gen_call_function((void*)&FPU_ESC7_Normal,"%Id",decode.modrm.val);
} else {
dyn_fill_ea();
gen_call_function((void*)&FPU_ESC7_EA,"%Id%Dd",decode.modrm.val,DREG(EA));
gen_releasereg(DREG(EA));
}
break;
#endif
//Loop's