Commit Graph

65 Commits

Author SHA1 Message Date
OBattler
40fd79aeb9 FPU: Properly implement INT 10h FPU exception, fixes #5162. 2025-01-19 09:06:39 +01:00
OBattler
1d9603fa7e Fixed a very stupid mistake made in cpu/386_common.c last night, fixes #4773. 2024-08-30 17:44:47 +02:00
OBattler
54ab778d4a Fixed a compile-breaking typo in cpu/386_common.c. 2024-08-30 05:32:26 +02:00
OBattler
3c209818ae P6: Fix the restoration of the A20 state when exiting SMM, fixes #4771. 2024-08-30 05:18:34 +02:00
OBattler
bbe035b62a Implement special selector pushing behavior and improve the opcode length heuristic for CS limit checks, fixes #4552. 2024-06-23 02:28:22 +02:00
OBattler
a369bc2d05 Reimplement S3 ViRGE reset and move PCI TRC CPU reset to outside the recompiled block, fixes #2903. 2024-06-12 20:46:27 +02:00
OBattler
2273f563a5 Moved the offending SoftFloat-related stuff to x87_sf.h, fixes warnings. 2024-06-10 00:08:48 +02:00
OBattler
4b77ef6823 286: Make LOCK legal with all instructions, per the Programmers' Reference Manual. 2024-06-09 19:58:16 +02: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
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
19f6954410 Reverted some CPU-related changes. 2024-02-19 15:20:59 +01:00
OBattler
2ab99dda0b Made LOCK instruction legality more accurate on 386, closes #4132. 2024-02-10 03:05:56 +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
1e4455d98c Add comments with MSR and CPUID flag names
Reorganize the MSR struct
2024-02-07 12:31:38 +05: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
55f03f63e5 More oversight fixing 2024-01-14 20:12:53 +06:00
Cacodemon345
f4f252c0b7 Implement x86 debug registers 2024-01-14 15:26:40 +06:00
OBattler
1d48363803 The 286/386 interpreter now has its own variant of x86seg.c. 2023-08-21 02:56:33 +02:00
Jasmine Iwanek
5cd18f3fbb Clang-formatting in src/cpu 2023-08-11 19:11:37 -04:00
Jasmine Iwanek
be79ea78c7 sonarlinting and formatting in src/cpu 2023-08-11 19:11:32 -04:00
OBattler
b1c5cbaf47 Split the 286/386 interpreter away from the 486+ one (the 286/386 interpreter does not use the pccache's, readlookup's, and writelookup's as the emulated CPU's are too slow for them to be required, and also has more accurate FPU timings), also added a LPT status read function for future-proofing. 2023-08-08 19:39:52 +02:00
OBattler
e4d860c025 Replaced calls to flushmmucache_cr3() to direct calls to flushmmucache_nopc() and removed the #define. 2023-06-11 22:12:18 +02:00
RichardG867
4253c7bae7 386_common: Handle IOPB segment limit corner case more like the old code 2023-04-22 22:28:18 -03:00
RichardG867
c076406450 386_common: Optimize I/O permission checking for word and dword operations (based on qemu) 2023-04-22 18:41:42 -03:00
OBattler
19d155cdd7 Keyboard controller file split and assorted clean-ups and fixes 2023-04-19 23:34:32 +02:00
Jasmine Iwanek
83b220cb03 clang format in cpu 2022-11-19 11:53:09 -05:00
OBattler
27ebb27db7 Makefile.mingw corrections and made the code pass much stricter checks (now mandated by Makefile.mignw) to ensure GCC 14 readiness. 2022-11-17 22:44:06 +01:00
OBattler
2a6a061556 nmi_raise() actually raises NMI, should fix ES1371 legacy device and other stuff. 2022-08-09 04:34:48 +02:00
OBattler
754058e2e5 AAM and AAD instruction fixes, fixes #2551. 2022-08-01 23:40:11 +02:00
OBattler
c6d7f4a95b Do not disable the timer in cpu_fast_off_reset() because the timers have already been reinitialized at this point. 2022-07-21 19:51:34 +02:00
OBattler
645c4e6902 ALi M6117-related CPU fixes. 2022-07-18 23:38:06 +02:00
OBattler
63e52cb832 Fixes to cpu/386_common.c. 2022-07-16 04:06:46 +02:00
OBattler
27713f6557 More CPU. 2022-07-16 03:22:41 +02:00
OBattler
a35c4aa674 CPU changes. 2022-07-16 03:21:21 +02:00
OBattler
2fd712d092 CPU changes. 2022-07-16 03:12:24 +02:00
OBattler
2c9bfa979f ALi M1489 and a CPU fix. 2022-07-16 02:47:39 +02:00
OBattler
da5d451386 Preparation for SMI# and NMI# changes. 2022-07-16 02:45:46 +02:00
Jasmine Iwanek
4674756664 More newline and whitespace cleanups 2022-02-20 16:26:40 -05:00
OBattler
5ad606a8f2 UMC HB4 shadow RAM overhaul and SMRAM fixes, slight changes to SiS 85c4xx, a fix for SiS 85c50x, fixed SMBASE on 486 (it should *NOT* zero the most significant 8 bits!), various improvements to mem.c (eg. mem_invalidate_range() is now faster), fixed resetting PCI on soft reset, and made the KBC soft reset again. 2021-09-25 15:30:06 +02:00
OBattler
ddc7c5b78a Reorganized some CPU structures a bit and fixed inappropriate behavior of some mem.c functions on 64-bit binaries (and made mem.c aware of ARM64 as well), fixes both 64-bit recompilers, closes #1215. 2021-08-27 13:31:47 +02:00
OBattler
fe5955e477 Removed excess logging from 386_common.c. 2021-08-20 17:31:18 +02:00
OBattler
b384f58a8b The relocated SMBASE read from the SMM saved state now has bits 24-31 cleared. 2021-08-20 17:27:56 +02:00
OBattler
79ad6568f8 Disabled excess CPU logging. 2021-08-10 16:24:18 +02:00
OBattler
f0e84f7f13 More fixes, fixes CMOS Setup on the Acrosses AR-B4179. 2021-08-09 16:10:55 +02:00
OBattler
136e6323fc Removed another unused function from cpu/386_common.c. 2021-04-29 22:10:53 +02:00
OBattler
6ff172b833 Entry into SMM now cases flags to be rebuilt. 2021-04-21 01:09:48 +02:00
OBattler
8b6f9707d5 More CPU fixes, and SMM now implemented on Cyrix Cx486 and Cx5x86 CPU's as well as on Intel/AMI SX, DX, and SX2 CPU's. 2021-04-11 07:25:08 +02:00