Commit Graph

57 Commits

Author SHA1 Message Date
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
OBattler
c370ae7e18 CPU and MMU cleanups and fixes, and non-Debug builds are now stripped again. 2021-04-10 07:18:47 +02:00
David Hrdlička
10cc122925 fix Clang/WinSDK warnings 2021-03-21 03:28:37 +01:00
OBattler
9930957be3 Renamed syscall() to syscall_op() in order to avoid a conflict when compiling for Linux. 2020-12-24 13:34:22 +01:00
OBattler
7577dbab78 Finished the SiS 50x work and added the two ASUS'es. 2020-12-18 17:09:54 +01:00
TC1995
462ff300da Ported the most important patches from PCem. 2020-12-01 21:06:01 +01:00
OBattler
a5ae4cfba5 Got completely rid of readmemb386l() and writememb386l(). 2020-11-30 05:27:04 +01:00
OBattler
1d4988221f Fixed SYSENTER, SYSEXIT, SYSCALL, and SYSRET;
SYSCALL and SYSRET are now perfectly in line with AMD's specification;
Improvements to the API call to gracefully stop the emulator.
2020-11-16 17:47:05 +01:00
OBattler
0faf6692c9 WARNING: CONFIGS MIGHT PARTIALLY BREAK WHERE DEVICE NAMES HAVE CHANGED.
Changes to device_t struct to accomodate the upcoming PCI IRQ arbitration rewrite;
Added device.c/h API to obtain name from the device_t struct;
Significant changes to win/win_settings.c to clean up the code a bit and fix bugs;
Ported all the CPU and AudioPCI commits from PCem;
Added an API call to allow ACPI soft power off to gracefully stop the emulator;
Removed the Siemens PCD-2L from the Dev branch because it now works;
Removed the Socket 5 HP Vectra from the Dev branch because it now works;
Fixed the Compaq Presario and the Micronics Spitfire;
Give the IBM PC330 its own list of 486 CPU so it can have DX2's with CPUID 0x470;
SMM fixes;
Rewrote the SYSENTER, SYSEXIT, SYSCALL, and SYSRET instructions;
Changed IDE reset period to match the specification, fixes #929;
The keyboard input and output ports are now forced in front of the queue when read, fixes a number of bugs, including the AMI Apollo hanging on soft reset;
Added the Intel AN430TX but Dev branched because it does not work;
The network code no longer drops packets if the emulated network card has failed to receive them (eg. when the buffer is full);
Changes to PCI card adding and renamed some PCI slot types, also added proper AGP bridge slot types;
USB UHCI emulation is no longer a stub (still doesn't fully work, but at least Windows XP chk with Debug no longer ASSERT's on it);
Fixed NVR on the the SMC FDC37C932QF and APM variants;
A number of fixes to Intel 4x0 chipsets, including fixing every register of the 440LX and 440EX;
Some ACPI changes.
2020-11-16 00:01:21 +01:00