15436 Commits
Author SHA1 Message Date
LC ae495b971b Merge pull request #6106 from Sonicadvance1/310
Minor fixes
2026-11-06 09:52:49 -05:00
Ryan Houdek feee41a768 ImageTracker: Actually wire up config option for Volatile Metadata
I forgot to wire this up, so you couldn't turn off an application's
volatile metadata for testing.
2026-11-06 00:12:26 -08:00
Ryan Houdek cf2f831ad9 Windows: Fixes forced assert
This wasn't ever wired up for Windows.
2026-11-05 20:26:44 -08:00
Ryan Houdek b9fc587ac8 CPUID: Fixes crash in CPUID
When affinity changes are in play this can cause a crash because core
index is larger than the number of cores known about.

Happens on Frame.
2026-11-05 20:25:03 -08:00
LC c985199ed5 Merge pull request #6104 from Sonicadvance1/308
FEX: Implement support for CPUID faulting
2026-11-05 19:49:40 -05:00
LC e67bbd3ecf Merge pull request #6105 from Sonicadvance1/309
DiskCache: Moves SVE/AVX from HostFeatureHash to ProcessHash
2026-11-05 18:55:39 -05:00
Ryan Houdek 02e932d9f4 InstcountCI: Remove CPUID with constant. This no longer optimizes 2026-11-05 15:04:25 -08:00
Ryan Houdek a3f5700c33 InstcountCI: Update 2026-11-05 14:48:10 -08:00
Ryan Houdek a2b15c8e0f FEXLinuxTests: Adds a unittest for CPUID fault testing
Tests various instruction lengths to ensure it works robustly.
2026-11-05 14:48:08 -08:00
Ryan Houdek 05293166ce FEX: Implement support for CPUID faulting 2026-11-05 14:31:03 -08:00
Ryan Houdek ef586f03a8 Arm64Emitter: Add a way to query SRA x86 registers to their arm64 mapping 2026-11-05 14:31:03 -08:00
Ryan Houdek 6a3d85a26f InstcountCI: Update 2026-11-05 13:45:15 -08:00
Ryan Houdek 36aec0d54d DiskCache: Moves SVE/AVX from HostFeatureHash to ProcessHash
Annoyingly these are technically host features but they end up being
process feature hash bits because they change between Linux, wow64, and
arm64ec.

This now makes the HostFeaturesHash match between the three which is
what we want. While the process feature bits change between them.

Adds an info log to the DiskCache startup for confirmation.
2026-11-05 13:45:13 -08:00
Ryan Houdek 8f92e80dcc Docs: Update for release FEX-2611 FEX-2611 2026-11-05 09:36:54 -08:00
LC eff9f459d8 Merge pull request #6103 from Sonicadvance1/307
FEXServerManager: Stop leaving stale FEXServer sockets around
2026-11-04 18:31:44 -05:00
LC a8c901622b Merge pull request #6102 from Sonicadvance1/306
OpcodeDispatcher: Make sure xsetbv works correctly
2026-11-04 18:30:03 -05:00
Ryan Houdek da92583307 InstcountCI: Update 2026-11-04 15:08:43 -08:00
Ryan Houdek 7a6d04e309 FEXServerManager: Stop leaving stale FEXServer sockets around
Usually doesn't matter but can cause moving directories with Steam's
"Move install folder" to fail.
2026-11-04 14:47:37 -08:00
Ryan Houdek 61523a6db1 OpcodeDispatcher: Make sure xsetbv works correctly
I had missed testing this instruction because it doesn't show up in the
regular instruction tables that I was checking for system instructions.
2026-11-04 14:42:03 -08:00
LC a81762caed Merge pull request #6101 from Sonicadvance1/305
Tools: Fixes a couple throws that leaked
2026-11-04 15:25:37 -05:00
LC d6ec067592 Merge pull request #6100 from Sonicadvance1/304
CMake: Disable async unwind tables on mingw+preserve_all
2026-11-04 15:25:03 -05:00
Ryan Houdek 3f6d7a73b4 Tools: Fixes a couple throws that leaked
I just saw we managed to catch a few throws in the source. Chop them
out.
2026-11-04 11:17:16 -08:00
Ryan Houdek ef006bdb10 CMake: Disable async unwind tables on mingw+preserve_all
From the comment
[here](https://github.com/FEX-Emu/FEX/pull/6094#issuecomment-6626133724)
apparently there is a bug where async unwind tables and preserve_all
conflicts under mingw. So...just disable it. Easy.
2026-11-04 10:40:29 -08:00
LC 75df0f815b Merge pull request #6096 from Sonicadvance1/303
FEXMingwTests: Adds the ability to run the mingw tests
2026-11-03 20:36:07 -05:00
Ryan Houdek 25d91355f9 FEXMingwTests: Adds the ability to run the mingw tests
With a simple `ninja fex_mingw_tests` the tests can now be run with the
currently installed wine. This is useful for building tests and
running them on an x86 host.

Once paired with a CI job that installs the FEX Wine DLLs, this can also
be used to run these against the current FEX build as well.

For the two tests duplicated between 32-bit and 64-bit it takes about
0.94 seconds. So these are relatively heavy compared to our ASM or Linux
tests, so we should try and keep most tests there if possible.
2026-11-03 16:30:59 -08:00
Ryan Houdek 8f0f22cfb4 Scripts: Fixes guest mode check in guest test runner
This is supposed to be used for checking if FEX needs to have AVX
enabled. This was never wired up.
2026-11-03 16:25:33 -08:00
Ryan Houdek fc770b368c Merge pull request #6095 from lioncash/vixlup
Externals: Update vixl
2026-11-03 12:22:58 -08:00
Lioncache 6e4d95c630 Externals: Update vixl
Keeps it up to date with recent changes.
2026-11-03 14:59:55 -05:00
LC effbda64ca Merge pull request #6094 from Sonicadvance1/302
Feature flag fixes and alignment between targets
2026-11-03 13:29:51 -05:00
Ryan Houdek 61086cc81a HostFeatures: Tag the bit positions of each flag
There's enough of them now that it's kind of annoying to track by
counting.
2026-11-03 10:03:51 -08:00
Ryan Houdek c76fccf256 CMake: Add an llvm-mingw clang version check to preserve_all
llvm has supported preserve_all abi on Windows ABI since
https://github.com/llvm/llvm-project/pull/166436.
This has been in a clang release since 22.1. Do a clang version check to
ensure the compiler is >= 22.1 to enabled preserve_all under
wow64/arm64ec.

This will give a performance boost to applications that require x87 full
precision and a couple other minor things.
2026-11-03 10:00:54 -08:00
Ryan Houdek c69f2bf042 arm64ec: Fixes copy-paste failure
Accidentally changed the host type from arm64ec to wow64 which disabled
AVX.
2026-11-03 09:43:26 -08:00
Ryan Houdek 7d0cf9b166 Windows/CPUFeatures: Fixes disabled cache instruct operations on wine
This check was inverted. We were accidentally disabling cache operations
on Wine, but enabling on Windows when it should be the opposite.
2026-11-03 09:24:27 -08:00
LC fb68b0e9a8 Merge pull request #6093 from mstorsjo/wsetlocale-wcsdup
Implement _wsetlocale and _wcsdup for libc++ 24
2026-11-03 08:00:12 -05:00
Martin Storsjö c7ad33c15f Implement _wsetlocale and _wcsdup for libc++ 24
These are needed by libc++ on Windows, since
https://github.com/llvm/llvm-project/commit/12f572979922ca10b9c66d6264826f9cbc78f5de,
which will be included in libc++ 24.
2026-11-03 11:13:24 +02:00
Ryan Houdek 4a4669a078 Merge pull request #6092 from Claudemirovsky/fix/build/libcxx-moment
fix(CMakeLists): Fix build flags when LIBCXX is enabled
2026-11-02 23:24:53 -08:00
Claudemirovsky db09e95e7d fix(CMakeLists): Fix build flags when LIBCXX is enabled 2026-11-03 01:33:40 -03:00
LC 2b1082060d Merge pull request #6045 from Sonicadvance1/277
Debug register instruction breakpoint support
2026-11-02 21:38:34 -05:00
LC b1f27cfa9d Merge pull request #6090 from Sonicadvance1/300
InstcountCI: Disable tpidrro in rdpid/rdtsc files.
2026-11-02 21:19:50 -05:00
LC 24da3ae7c7 Merge pull request #6091 from Sonicadvance1/301
Config: Fixes typo in man page. NFC
2026-11-02 21:18:03 -05:00
Ryan Houdek 524a37c7af Merge pull request #6077 from javelina-pkwy/perf/sha256-peephole
Crypto: SHA256 Peephole
2026-11-02 18:00:19 -08:00
Ryan Houdek f9b2f1382d Config: Fixes typo in man page. NFC 2026-11-02 17:41:50 -08:00
Ryan Houdek 55bdb16e6a InstcountCI: Update 2026-11-02 17:30:15 -08:00
Ryan Houdek b7b039c24d InstcountCI: Disable tpidrro in rdpid/rdtsc files. 2026-11-02 17:28:20 -08:00
Ryan Houdek 0c59ad2e28 Arm64EC: Try to control debug registers
Currently fails as it needs WINE integration.
2026-11-02 17:19:24 -08:00
Ryan Houdek 18cc74cae2 Wow64: Implement support for breakpoints
Passes my instruction breakpoint test properly.
2026-11-02 17:19:24 -08:00
Ryan Houdek c2181679c9 FEXCore/OpcodeDispatcher: Implement support for breakpoints on instructions
Working well enough for partial support.
2026-11-02 17:19:24 -08:00
Ryan Houdek c5352bf18a FEXCore/CoreState: Add debug registers to core state. 2026-11-02 17:19:23 -08:00
Ryan Houdek a6ba3e2fbd Merge pull request #6089 from Sonicadvance1/299
unittests/FEXMingwTests: Adds breakpoint unittest
2026-11-02 17:19:13 -08:00
Ryan Houdek 5c45366cdf unittests/FEXMingwTests: Adds breakpoint unittest
With #6045 this unittest passes on the 32-bit version, but doesn't yet
on the arm64ec version. Data breakpoints are disabled currently because
there's no support for wine passing our x86 data breakpoints over to
arm64 data breakpoints atm.

This test will get further extended with mid-instruction and mid-block
unittests as I continue hammering the details.
2026-11-02 15:40:02 -08:00