OBattler
7c7cc921ee
Non-808x interpreters: fetch the next instruction after a CR0 paging bit toggle with the old CR0 paging bit value, fixes SCO Unix.
2024-08-27 02:34:59 +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
969830ad83
New recompiler: Add a sanity check, fixes crash with RapidCAD, fixes #4487 .
2024-06-12 01:58:44 +02:00
OBattler
2273f563a5
Moved the offending SoftFloat-related stuff to x87_sf.h, fixes warnings.
2024-06-10 00:08:48 +02:00
Alexander Babikov
a07ffdecab
Restore the debug register operation on 486+
...
But put it behind a compile-time option due to performance hits
Also add the DE flag to CPUID on supported CPUs
2024-05-24 03:35:08 +05: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
Cacodemon345
a13a8efb39
Implement TSS debug trap bit
2024-01-14 04:04:04 +06:00
Jasmine Iwanek
f6a5229a98
Future support for higher clocked CPU's
2023-10-13 17:55:18 -04:00
OBattler
1d48363803
The 286/386 interpreter now has its own variant of x86seg.c.
2023-08-21 02:56:33 +02:00
OBattler
6c4a4be6be
Timer clean-ups.
2023-08-19 05:26:49 +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
cold-brewed
3795016a82
Clean up some clang warnings on macOS
2023-08-09 07:37:45 -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
Jasmine Iwanek
922c4335ae
Next round of sonarlint cleanups
2023-06-27 21:17:13 -04:00
OBattler
c76e8ff06c
Replaced the codegen_ops_NULL table references with NULL pointers, as it has the same effect without requiring an extra table of opcodes, also made the new recompiler clear codegen_flags_changed after every interpreted instruction to prevent conditional jumps from occasionally taking the wrong turn (fixes CL-GD 54x6 driver glitches in 24bpp mode on Windows 98 SE), and added instruction length heuristics on fetching the instruction, fixes Jane's US Navy Fighters.
2023-06-09 14:55:13 +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
535b19a027
Do not raise CPU trap if an exception has occurred, fixes #2577 .
2022-10-28 04:12:31 +02:00
Cacodemon345
c743d36028
386: Set BS flag in DR6 other interpreter as well
2022-08-04 18:04:40 +06:00
OBattler
da5d451386
Preparation for SMI# and NMI# changes.
2022-07-16 02:45:46 +02:00
OBattler
1f144f1885
Fixed some #define's, as pointed out by lemondrops.
2022-04-13 02:47:37 +02:00
OBattler
3a40d9a807
Phase 1.
2022-04-13 02:03:48 +02:00
RichardG867
f57cbe36b1
GDB Stub: More progress
2022-03-16 00:33:01 -03:00
Jasmine Iwanek
4674756664
More newline and whitespace cleanups
2022-02-20 16:26:40 -05:00
OBattler
b3a8d0aaed
And more.
2022-02-02 02:51:18 +01:00
OBattler
25e8801ede
And more.
2022-02-02 02:46:11 +01:00
OBattler
b92d45125e
Temporarily reverted that FPU clock cycles change.
2022-02-01 19:07:22 +01:00
linear cannon
04c89959f8
adjust CLOCK_CYCLES and related macros to handle fpu/iu concurrency
...
add CLOCK_CYCLES_FPU, which does exactly what CLOCK_CYCLES already did.
add CONCURRENCY_CYCLES, which sets fpu_cycles, which is the number of
available concurrent execution cycles that the integer unit can do
"free" work in while the fpu is executing.
adjust CLOCK_CYCLES so that if there are fpu_cycles, the cycle count is
subtracted from fpu_cycles instead of cycles, emulating the behavior of
these concurrent cycles being "free" as on real hardware.
2022-01-29 07:38:41 -08:00
OBattler
bc90f99350
Finally got rid of the AT and PCI global variables.
2021-12-19 20:00:27 +01:00
OBattler
4bf3c88a26
Reverted the peformance "improving" CPU change.
2021-09-05 23:59:52 +02:00
OBattler
ead818c5bd
Disabled 286/386 prefetch queue timings emulation on 486+, improves performance.
2021-09-05 23:20:58 +02:00
OBattler
85a9aa4904
Merge branch 'master' of https://github.com/86Box/86Box
2021-09-03 19:24:01 +02:00
OBattler
136c136608
Ported some more Apple-related fixes from PCem.
2021-09-03 19:23:50 +02:00
Daniel Gurney
bd1117a13f
Add missing include for arm64 macOS
2021-09-03 19:58:08 +03:00
OBattler
586066d891
Made NMI's always auto-clear, will revert if it makes things worse.
2021-09-02 15:24:17 +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
c370ae7e18
CPU and MMU cleanups and fixes, and non-Debug builds are now stripped again.
2021-04-10 07:18:47 +02:00
OBattler
b83a32ccf8
Improved STI fix.
2020-11-21 04:02:58 +01:00
OBattler
c10fc05ea6
Ported the CPU fixes from PCem.
2020-11-20 01:28:36 +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
OBattler
795a6017d2
PIC rewrite, proper SMRAM API, complete SiS 471 rewrite and addition of 40x, 460, and 461, changes to mem.c/h, disabled Voodoo memory dumping on exit, bumped SDL Hardware scale quality to 2, bumped IDE/ATAPI drives to ATA-6, finally bumped emulator version to 3.0, redid the bus type ID's to allow for planned ATAPI hard disks, made SST flash set its high mappings to the correct address if the CPU is 16-bit, and added the SiS 401 AMI 486 Clone, AOpen Vi15G, and the Soyo 4SA2 (486 with SiS 496/497 that can boot from CD-ROM), assorted 286+ protected mode fixes (for slightly more accuracy), and fixes to 808x emulation (MS Word 1.0 and 1.10 for DOS now work correctly from floppy).
2020-10-14 23:15:01 +02:00
OBattler
0b4b2b4d2f
A number of recompiler fixes and put some of the timer/cycle-related changes behind #ifdef's as they are no longer used but someone may want to still try them out.
2020-07-15 18:30:27 +02:00
OBattler
a862bda04c
Rewrote the recompiler interrupt checking in assembly (and removed it for the new dynamic compiler because the requires uops are not present), brings performance back up, and also did a number of CPU-related clean-ups (mostly removal of dead variables and associated code).
2020-07-13 19:46:19 +02:00
OBattler
0cd0d83cee
Both recompilers now check for interrupt after every instruction and exit the block if one has happened.
2020-07-13 01:23:40 +02:00
OBattler
099fd2fc34
Properly fixed update_tsc().
2020-07-12 23:51:56 +02:00
OBattler
38828bdc3b
TSC update cycle fixes.
2020-07-12 21:05:46 +02:00
OBattler
974a7ae4f1
Fixed cycles accumulation in update_tsc() when cache is enabled (and the actual recompiler kicks in), and also fixed a warning in the 82091AA code.
2020-07-12 20:01:16 +02:00
OBattler
60ba71cb4b
Renamed the three CPU folders to their final names.
2020-06-13 10:54:05 +02:00