Commit Graph

116 Commits

Author SHA1 Message Date
OBattler
85afd38cab Added casts to codegen_new/codegen.c. 2023-06-11 13:52:25 +02: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
d1127e68fa Even more sonarlint work 2023-06-04 23:39:14 -04:00
OBattler
a9cc8cf898 Made softfloat work on the dynamic recompiler (not yet enabled in the Settings dialog, needs MMX and FXSAVE/FXRSTOR for softfloat first). 2023-05-07 00:24:57 +02:00
Jasmine Iwanek
1860700eab Fix some small issues 2023-01-07 17:02:23 -05:00
Jasmine Iwanek
a40630ba63 Even more tabs to spaces 2023-01-07 14:09:51 -05:00
Jasmine Iwanek
537fbad564 More bits of missed formatting 2022-12-20 19:33:42 -05:00
Jasmine Iwanek
dd339ec191 more clang-formatting in codegen & codegen_new 2022-11-19 11:53:10 -05:00
Jasmine Iwanek
35fea100db clang-format markers 2022-11-19 11:53:09 -05:00
Jasmine Iwanek
9e77acf655 clang format in codegen & codegen_new 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
Jasmine Iwanek
bd75bc141a Header cleanups
Tabs to spaces
Consistency
2022-11-13 21:15:47 -05:00
Alexander Babikov
c1d97fc72a Fix some more remaining warnings 2022-04-14 07:58:22 +05:00
Alexander Babikov
710d34db97 Remove unused variables and functions 2022-04-14 07:13:50 +05:00
Alexander Babikov
4e82d93729 Fix warnings related to variable types 2022-04-14 07:13:48 +05:00
Alexander Babikov
519781ff4f Add a missing include and disable extraneous logging in codegen_backend_arm.c 2022-04-14 07:13:48 +05:00
Alexander Babikov
eba088c692 Remove trailing whitespace + indentation consistency fixes 2022-04-14 07:10:18 +05:00
RichardG867
dcd54bff3f New Dynarec: Disable 3DNow opcodes on ARM, just in case 2022-03-18 17:13:52 -03:00
RichardG867
25cb062427 New Dynarec: Disable more MMX opcodes on ARM 2022-03-18 16:07:01 -03:00
RichardG867
1da566e673 New Dynarec: Disable recompilation of some MMX opcodes on ARM, pending investigation 2022-03-18 15:06:57 -03:00
Cacodemon345
c1f9d35de8 qt: Add support for Haiku
* OpenAL backend is enabled by default on Haiku
* bswap include now makes use of builtins if they exist
* Use a local fgetws method for Haiku to avoid crashes
* OpenGL renderers are completely disabled on Haiku (they do not work)
* Software renderer is a widget, not a window on Haiku (fixes blank screen)
* Add option to disable System MIDI at compile time
2022-03-11 12:13:08 +06:00
Jasmine Iwanek
8597e4e4d7 Merge branch 'master' into more-updates 2022-02-20 16:28:50 -05:00
Jasmine Iwanek
4674756664 More newline and whitespace cleanups 2022-02-20 16:26:40 -05:00
OBattler
f19aaa14ae Fixed three instances of undefined behavior. 2022-02-20 20:30:20 +01:00
Jasmine Iwanek
4287e44824 newlines at end of file 2022-02-18 21:38:51 -05:00
Cacodemon345
2da187c0bd Fix plat_mmap on FreeBSD (#1980)
* Fix plat_mmap on FreeBSD

* Same for old codegen backend

* ...and for new codegen backend
2022-01-07 09:58:59 +01:00
David Hrdlička
52486e121e Convert CMake files to 4 spaces indentation 2021-12-20 15:08:23 +01:00
Cacodemon345
0f9dd7b970 Add missing stdlib.h include to codegen_backend_x86-64.c 2021-08-29 23:50:22 +06:00
Cacodemon345
766f321d4d Add missing string.h include on new codegen backends 2021-08-29 23:50:22 +06:00
David Hrdlička
44ccefb28a cmake: refactor the architecture detection 2021-08-29 03:55:07 +02:00
OBattler
196f0f8bdd Merge branch 'master' of https://github.com/86Box/86Box 2021-08-27 20:11:17 +02:00
OBattler
08e36e7d52 Added a sanity check to the new recompiler, prevents the emulator from dividing by zero and crashing. 2021-08-27 20:10:59 +02:00
David Hrdlička
a68ac70c47 Fix ARM64 build
There is some weird issues regarding linking `__clear_cache` under `clang-cl`, therefore we just call the Windows API instead on these builds.
2021-08-27 15:16:49 +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
87ee489f7d And now for the new recompiler. 2021-04-30 19:30:35 +02:00
OBattler
fbe2537ddd Undid the loop unrolling disable in the new recompiler. 2021-04-29 22:14:34 +02:00
qeeg
38d9724c81 Disable loop unrolling in the new dynarec. MASSIVE performance gains in XP, while negligible impact on DOS 6.22 2021-03-29 16:23:45 -05:00
David Hrdlička
96eb8d806e Add copyright headers 2021-01-12 18:26:18 +01:00
David Hrdlička
11b6604196 Add CMake build files 2021-01-12 18:22:40 +01:00
David Hrdlička
a90d03a45d codegen: fix ARM linkage 2020-12-17 12:06:36 +01:00
David Hrdlička
34422d27dd codegen: don't use inline asm on MSVC/ARM 2020-12-17 12:06:31 +01:00
David Hrdlička
251dc45048 codegen: replace asm block with an intrinsic 2020-12-17 01:24:39 +01:00
David Hrdlička
144b19b941 codegen: fix architecture detection on MSVC 2020-12-17 00:58:37 +01:00
David Hrdlička
53144ed8ec fix target architecture checks 2020-12-16 20:32:56 +01:00
David Hrdlička
fd554cbcbc fix WIN64 checks to _WIN64 2020-12-16 20:29:46 +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
Alexander Babikov
53bb559446 Fix compilation warnings. 2020-11-14 05:46:57 +05:00
qeeg
a268715893 Micro-optimizations for the AND and OR opcodes in the new dynarec 2020-09-06 23:33:05 -05:00
OBattler
d489317573 VPCEXT instructions now get fetchdat also on x64 old recompiler and on new recompiler. 2020-07-25 05:16:06 +02:00