Commit Graph

366 Commits

Author SHA1 Message Date
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
7eabebb97f More temporary reverts. 2022-02-02 02:43:40 +01:00
OBattler
b92d45125e Temporarily reverted that FPU clock cycles change. 2022-02-01 19:07:22 +01:00
David Hrdlička
8e00b37e22 Clean up the build scripts 2022-01-29 23:50:53 +01:00
Miran Grča
0545de2570 Merge pull request #2022 from goshhhy/fpu_iu_concurrency
Correctly emulate FPU concurrent execution timings
2022-01-29 22:30:50 +01:00
linear cannon
c9882c1910 fix build with dynarec 2022-01-29 13:12:46 -08:00
linear
3f9f52b7e8 Merge branch 'master' into fpu_iu_concurrency 2022-01-29 10:44:56 -08:00
linear cannon
eab711a4ed x87_ops_*.h: emulate fpu/iu concurrency for each fpu instruction 2022-01-29 07:38:53 -08: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
linear cannon
4815fcc226 add fpu_cycles variable to cpu_state to track fpu/iu concurrency 2022-01-29 07:38:29 -08:00
linear cannon
31aed306c9 x87_timings: new timings for fpu/iu concurrency 2022-01-29 07:34:58 -08:00
linear cannon
483758d827 cpu: dont build 386_dynarec_ops.c if DYNAREC=Off 2022-01-29 05:27:35 -08:00
linear cannon
693501d2b0 x86seg.c: cyrix_load_seg_descriptor: don't use codegen variables if dynarec disabled 2022-01-29 05:13:31 -08:00
Alexander Babikov
ee79348885 Implement machine check exception/architecture MSRs and CPUID flags 2021-12-22 05:33:26 +05:00
Alexander Babikov
1a04b93165 Make MSR 17h read-only and return a suitable Platform ID
Fixes some programs misidentifying Celeron Mendocinos as Slot 1 instead of Socket 370
2021-12-22 05:30:28 +05:00
David Hrdlička
52486e121e Convert CMake files to 4 spaces indentation 2021-12-20 15:08:23 +01:00
OBattler
bc90f99350 Finally got rid of the AT and PCI global variables. 2021-12-19 20:00:27 +01:00
OBattler
9ec4fd3bdd Fixed a CPU reset mess. 2021-12-19 19:14:21 +01:00
OBattler
97bbbb1090 Removed an excess pclog(). 2021-11-18 18:28:40 +01:00
OBattler
c53613deb7 Removed excess logs from cpu.c. 2021-11-14 20:25:07 +01:00
JustinJ553
41bff9f135 Add more K6/K6-2(+)/K6-III(+) out-of-spec clockrates 2021-11-14 19:33:51 +08:00
JustinJ553
79e84b276c Merge pull request #16 from 86Box/master
Merge master
2021-11-14 19:08:42 +08:00
OBattler
bfb3c0c324 Fixed the intendation mess in cpu/x86seg.c, removed port 61h handling from keyboard/keyboard_at.c, and fixed a function with undeclared type in win/win.c. 2021-11-13 23:15:28 +01:00
JustinJ553
906f856dd0 Add an leftover out of spec K6-III+/100 and change its multiplier. 2021-10-26 09:22:52 +08:00
OBattler
1c2d1e702b Assorted changes and bugfixes and added the two IMS 8848 machines. 2021-10-09 17:37:09 +02: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
2e3c2602f7 Removed the M6117 flag from the CPU and Machine CMakeLists.txt files. 2021-09-21 13:02:22 +02:00
OBattler
926fbed16a Merge remote-tracking branch 'origin/master' into feature/machine_and_kb 2021-09-21 13:00:50 +02:00
OBattler
5997f41f1c Fixed cpu/CMakeLists.txt so it passes the M6117 flag to cpu_table.c. 2021-09-21 13:00:27 +02:00
OBattler
b8a2fdfd0a KBC reset is now hard reset. 2021-09-17 02:55:43 +02:00
OBattler
2bc9e7520a Conflict resolution. 2021-09-17 02:48:18 +02:00
OBattler
d9123cad4a Fixed 16-bit and 32-bit FISTP(P) instruction, fixes OpenStep 4.2 font on interpreter and old recompiler, closes #1204. 2021-09-17 02:17:25 +02:00
Miran Grča
c5864a46d8 Merge pull request #1676 from 86Box/master
Bring the branch up to par with master.
2021-09-08 00:08:23 +02:00
OBattler
0c4003caa3 Added the C&T 82C100 chipset needed by the Victor V86P. 2021-09-07 23:41:17 +02:00
Miran Grča
88e4ad6055 Merge pull request #1665 from 86Box/master
Bring the branch up to par with master.
2021-09-06 02:06:48 +02:00
Miran Grča
7145e3aa9a Merge pull request #1662 from 86Box/master
Bring the branch up to par with master.
2021-09-05 20:31:53 +02:00
dob205
af96922c3a Adding new AMD K6 (Model 6) processor variants
Adding new 66, 100 and 133 MHz variants of the AMD K6 (Model 6) processors
2021-09-04 15:21:37 +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
Miran Grča
b0ec4e1ece Merge pull request #1652 from 86Box/master
Brought the branch up to par with master.
2021-09-03 16:41:24 +02:00
OBattler
586066d891 Made NMI's always auto-clear, will revert if it makes things worse. 2021-09-02 15:24:17 +02:00
Miran Grča
a505a6a910 Merge pull request #1640 from 86Box/master
Brought the branch up to par with master.
2021-09-01 15:03:15 +02:00
OBattler
09ff45c394 LDS, LSS, LES, LFS, and LGS instructions now perform segment limit and present bit checks. 2021-08-29 13:34:51 +02:00
Miran Grča
b60ece3d87 Merge pull request #1632 from 86Box/master
Bring the branch up to par with master.
2021-08-27 13:49:56 +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
aa3a52da3c Reordered some CPU variables and rewrote codegen emitted by the old recompiler's 64-bit version of codegen_accumulate_flush() to not assume 32-bit pointers, fixes 64-bit old recompiler, closes #1615. 2021-08-26 13:53:13 +02:00
OBattler
2f3bb38dde Implemented the UMOV instruction on a number of CPU's, needed by some Phoenix BIOS'es. 2021-08-23 17:26:40 +02:00
OBattler
fe5955e477 Removed excess logging from 386_common.c. 2021-08-20 17:31:18 +02:00