Implemented segment limit checks on FSTP double - fixes LBA2 on Pentium.
This commit is contained in:
parent
ca67e8adba
commit
55b51a4a55
1 changed files with 2 additions and 0 deletions
|
|
@ -362,6 +362,7 @@ static int opFSTPd_a16(uint32_t fetchdat)
|
||||||
x87_td t;
|
x87_td t;
|
||||||
FP_ENTER();
|
FP_ENTER();
|
||||||
fetch_ea_16(fetchdat);
|
fetch_ea_16(fetchdat);
|
||||||
|
CHECK_WRITE(ea_seg, eaaddr, eaaddr + 7);
|
||||||
if (fplog) pclog("FSTd %08X:%08X\n", easeg, eaaddr);
|
if (fplog) pclog("FSTd %08X:%08X\n", easeg, eaaddr);
|
||||||
t.d = ST(0);
|
t.d = ST(0);
|
||||||
seteaq(t.i); if (abrt) return 1;
|
seteaq(t.i); if (abrt) return 1;
|
||||||
|
|
@ -374,6 +375,7 @@ static int opFSTPd_a32(uint32_t fetchdat)
|
||||||
x87_td t;
|
x87_td t;
|
||||||
FP_ENTER();
|
FP_ENTER();
|
||||||
fetch_ea_32(fetchdat);
|
fetch_ea_32(fetchdat);
|
||||||
|
CHECK_WRITE(ea_seg, eaaddr, eaaddr + 7);
|
||||||
if (fplog) pclog("FSTd %08X:%08X\n", easeg, eaaddr);
|
if (fplog) pclog("FSTd %08X:%08X\n", easeg, eaaddr);
|
||||||
t.d = ST(0);
|
t.d = ST(0);
|
||||||
seteaq(t.i); if (abrt) return 1;
|
seteaq(t.i); if (abrt) return 1;
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue