Commit Graph

666 Commits

Author SHA1 Message Date
OBattler
12e4d1b083 SoftFloat: Correctly treat +INF and -INF as equal on 8087 and 287, fixes 287 detection in MCPDiag. 2024-03-26 23:29:06 +01:00
OBattler
0b0cb84bf7 FPU: Re-enabled SoftFloat on 808x and implement the missing FBLD instruction, closes #4300. 2024-03-25 19:59:26 +01:00
OBattler
244038b84c LOCK: It is sometimes legal when cpu_mod == 3, fixes hangs with Compaq Portable III 386 TEST. 2024-03-03 21:24:00 +01:00
OBattler
71ecdc1b55 No longer raise TS# when (CS & 0xFFF8) is zero and (CS & 0x0004) is not, fixes #4214. 2024-02-29 06:52:45 +01:00
OBattler
6de7c7cd5e Fixed LOCK legality with prefixes, closes #4189. 2024-02-23 07:10:15 +01:00
OBattler
fcabd353d9 Check IOPL on 286 task segments. 2024-02-22 00:56:28 +01:00
OBattler
733c26d04a Return no mask when the TSS type is 286, closes #4177. 2024-02-19 19:09:35 +01:00
OBattler
e3e30e7536 Fixed a very stupid typo in the 286/386 version of the LOCK instruction that was breaking OS/2 Warp 3.0. 2024-02-19 15:41:49 +01:00
OBattler
19f6954410 Reverted some CPU-related changes. 2024-02-19 15:20:59 +01:00
Miran Grča
f7c995738c Fixed a bug in the 386 implementation of LOCK. 2024-02-14 02:29:31 +01:00
OBattler
2ab99dda0b Made LOCK instruction legality more accurate on 386, closes #4132. 2024-02-10 03:05:56 +01:00
OBattler
3f8952a558 More (S)VGA horizontal blanking fixes and CPU CR0 bit 4 fixes. 2024-02-09 18:02:33 +01:00
OBattler
30e7a49558 Fix compile-breaking mistakes in cpu/386.c. 2024-02-09 12:15:28 +01:00
OBattler
5a3d74d64f 286/386 interpreter fixes - the correct opcode arrays are now used and fixed the debug registers. 2024-02-09 12:14:35 +01:00
Alexander Babikov
996769095b Implement most missing P6 MSRs
Remove the 6 extraneous performance counter MSRs which
haven't existed on P6
2024-02-07 12:31:43 +05:00
Alexander Babikov
e54b57641c Implement missing IBM, AMD and Cyrix MSRs 2024-02-07 12:31:42 +05:00
Alexander Babikov
65f40ca71d Implement missing WinChip C6/2 and Cyrix III MSRs 2024-02-07 12:31:42 +05:00
Alexander Babikov
1b9bf568f2 Implement missing Pentium MSRs
Includes obscure behavior, like undocumented "high" MSRs
2024-02-07 12:31:41 +05:00
Alexander Babikov
8143ccdc9b K5 reorganization
Rename SSA/5 to Model 0 and 5k86 to Model 1/2/3 and swap their ordering
Remove the Model 0 CPUs from the Model 1 (5k86) table
2024-02-07 12:31:40 +05:00
Alexander Babikov
8520e6be85 Show actual clocks for CPUs w/ Performance Ratings 2024-02-07 12:31:40 +05:00
Alexander Babikov
2a3d13d306 Various consistency changes 2024-02-07 12:31:39 +05:00
Alexander Babikov
1e4455d98c Add comments with MSR and CPUID flag names
Reorganize the MSR struct
2024-02-07 12:31:38 +05:00
Alexander Babikov
b860156350 Remove an accidentally committed duplicate file 2024-02-07 12:31:38 +05:00
Alexander Babikov
1bb31f3937 Remove the AP61 hack completely
It's no longer needed
2024-02-07 12:31:37 +05:00
Alexander Babikov
963525ff2e Correct the CPUID SEP bit on AMD K6-2 and later
They use the standard bit 11, not he AMD-specific bit 10
2024-02-07 12:31:37 +05:00
Alexander Babikov
aef257378e Add PGE to AMD K5 and K6-2C/III/2+/III+ 2024-02-07 12:31:36 +05:00
Alexander Babikov
37cf0b6845 Separate Pentium and Cx6x86 MSR handling 2024-02-07 12:31:35 +05:00
Alexander Babikov
a1540eee92 Remove the machine check CPUID flag from the P24T 2024-02-07 12:31:35 +05:00
Alexander Babikov
032a161c4a Implement IDT/VIA FCR2 CPUID family/model spoofing 2024-02-07 12:31:34 +05:00
Alexander Babikov
2da7b196ac Rename unnamed MSR vars to real names where known 2024-02-07 12:31:34 +05:00
OBattler
ecd90616f1 Removed an unnecessary CPU operations table. 2024-02-06 19:51:02 +01:00
OBattler
cbf1749a25 Fixed the reported CPU inacuracies, closes #4121. 2024-02-06 19:50:21 +01:00
Alexander Babikov
68a73dffe0 Give the Compaq Deskpro 386 its own set of CPUs
Both BIOSes can now take a 16, 20 or 25 MHz 386DX,
with the 16 MHz one paired with a 287 FPU.

Also remove unused CPU packages from the enum
2024-02-05 03:22:54 +05:00
Alexander Babikov
795e1bce23 Change CR0 bit 4 behavior:
Now it's always hardcoded to 1, unless the CPU
is 386DX with no or 287 FPU
2024-02-05 03:22:52 +05:00
Alexander Babikov
d7e125c16e Migrate configs for the Gigabyte Socket 4/5 machines (#4111)
* Bring back machine migration

And add migration for the Gigabyte Socket 4 and 5 machines

* Fix the GA-586IS's internal name

* Remove legacy CPU tables for very old builds

Since backward compatibility with pre-build 2654 configs has been
removed, remove forward compatibility with these builds as well
2024-02-03 16:08:18 -03:00
OBattler
91494bab97 808x: Fix the flags at the end of the ADC and SBB instructions, fixes #4103. 2024-02-03 04:33:42 +01:00
OBattler
3ceda105ef ALi M6117 CPU fixes. 2024-02-02 05:31:33 +01:00
OBattler
0a5d25fdde Memory: Disable _mem_exec in phys() accesses when not using the 486+ interpreter or dynamic recompiler, and write protect support in preparation for the WD76C10 rewrite. 2024-02-02 05:25:40 +01:00
OBattler
cd03b6a31c Packard Bell machines: PS/2 mouse commands now suspend dynamic recompilation until the response byte is read, fixes #552. 2024-01-25 21:47:15 +01:00
OBattler
9107c2fa25 Added the AOpen AP61 and fixed floppies on the LG IBM 440 FX. 2024-01-24 04:56:31 +01:00
OBattler
bd2ef6855a A CPU change in preparation for the AOpen AP61. 2024-01-21 20:21:52 +01:00
OBattler
2cbfc8e047 808x: Clear prefetch queue on soft reset, fixes the CTRL+ALT+DEL hang on Amstrad 808x machines, fixes #408. 2024-01-15 04:32:52 +01:00
OBattler
f2971a132f Disable the debug registers on 486+. 2024-01-14 21:47:52 +01:00
Cacodemon345
d8330a0c46 No need to translate EIP 2024-01-15 02:14:00 +06:00
Cacodemon345
a7be107e9b Fix address compare 2024-01-15 01:22:50 +06:00
Cacodemon345
911deeab1a Fix single-step trap flag setting 2024-01-15 01:09:52 +06:00
Cacodemon345
8c6fc11bb2 Fix TSS trap-bit handling 2024-01-15 00:05:48 +06:00
Cacodemon345
128a2f2b5d And finally exec386 2024-01-14 21:21:02 +06:00
Cacodemon345
b884ef825c And 386.c 2024-01-14 20:58:29 +06:00
Cacodemon345
55f03f63e5 More oversight fixing 2024-01-14 20:12:53 +06:00