Commit Graph
15287 Commits
Author SHA1 Message Date
LC eeb99027c7 Merge pull request #6046 from Sonicadvance1/278
HostFeatures: clang-format
2026-10-20 14:19:57 -04:00
Ryan Houdek 14b3021d1c HostFeatures: clang-format
Somehow this was missed and now it is showing up.
2026-10-20 09:53:20 -07:00
LC fd8a601772 Merge pull request #6042 from Sonicadvance1/275
OpcodeDispatcher: Add undefined flags acid test
2026-10-20 12:27:42 -04:00
LC a36ca807c8 Merge pull request #6044 from mstorsjo/libcxx-24-strtof
Add another function stub for libc++ 24 on Windows
2026-10-20 12:27:28 -04:00
Martin Storsjö 04f078e265 Add another function stub for libc++ 24 on Windows
This is needed by libc++ on mingw targets since
https://github.com/llvm/llvm-project/commit/c7da05f9828542daaf634a6f4277212b5f6194d5,
which will be included in libc++ 24.
2026-10-20 14:50:36 +03:00
LC d7b8e1497a Merge pull request #6043 from Sonicadvance1/276
FEXCore: Wire up support for SERIALIZE
2026-10-19 17:47:03 -04:00
Ryan Houdek 25eb85f80e HostRunner: Support checking for SERIALIZE 2026-10-19 14:29:03 -07:00
Ryan Houdek 47de7e352d InstcountCI: Update 2026-10-19 14:11:45 -07:00
Ryan Houdek f256d97ddb FEXCore: Wire up support for SERIALIZE
Trivial instruction.
2026-10-19 14:11:06 -07:00
Ryan Houdek 651b94f435 OpcodeDispatcher: Add undefined flags acid test
Useful debug feature to make sure FEX returns consistent flag data for
instructions that have undefined flags. Just sets everything that is
undefined to zero always.

Manually walked through all the instructions in the architecture manual
to check for ones doing undefined flag setting, then glued the handler
on to the end.

Also fixes a comment that has incorrect information about undefined
flags.
2026-10-19 13:50:34 -07:00
Ryan Houdek 741e146fdf Merge pull request #6039 from Sonicadvance1/274
arm64ec: Have synchronous faults skip fault overhead
2026-10-17 18:53:39 -07:00
Ryan Houdek 761369f590 InstcountCI: Update 2026-10-13 20:06:49 -07:00
Ryan Houdek 27cfd41bf9 FEXCore: Wire up the fault free synchronous fault handling
Changes the code generation on arm64ec so the version needs to bump.
2026-10-13 19:55:36 -07:00
Ryan Houdek 07abec317c Arm64ec: Wire up non-faulting synchronous faults 2026-10-13 19:55:33 -07:00
Ryan Houdek 461b286a8a Dispatcher: Adds unused synchronous dispatch handler 2026-10-13 18:07:22 -07:00
Ryan Houdek 5285020de0 Merge pull request #6037 from javelina-pkwy/fix/rpmalloc-vmdata
Allocator: Commit rpmalloc memory on demand due to RLIMIT_DATA
2026-10-13 13:02:50 -07:00
Justin Becker 679d6c7be6 Allocator: Commit rpmalloc memory on demand for RLIMIT_DATA 2026-10-13 12:33:06 -07:00
LC 7780a436b7 Merge pull request #6036 from Sonicadvance1/272
unittests: Also fix LLVM 23
2026-10-13 15:16:21 -04:00
Ryan Houdek d1d772c05e Merge pull request #6035 from junknewera/test/sar-sign-extension
unittests/ASM: Test SAR sign extension for 8 and 16 bit
2026-10-13 11:47:58 -07:00
Ryan Houdek a3104f4f84 unittests: Also fix LLVM 23 2026-10-13 11:44:38 -07:00
oleg 8c0044f914 unittests/ASM: Test SAR sign extension for 8 and 16 bit 2026-10-13 20:50:15 +03:00
Ryan Houdek e9c103412a Merge pull request #6032 from javelina-pkwy/tests/slim-python-runners
Tests: Reduce wall clock time spent in "ninja tests"
2026-10-12 18:52:39 -07:00
Ryan Houdek cb508dfbfe Merge pull request #6031 from Sonicadvance1/269
Thunks: Fixes LLVM 23
2026-10-12 18:52:26 -07:00
LC eef303f69a Merge pull request #6033 from Sonicadvance1/271
DiskCache: Fixes a race condition on the data blob
2026-10-12 20:38:34 -04:00
Ryan Houdek b49837f0c3 DiskCache: Fixes a race condition on the data blob
Found this through introspection, only a real problem with -O0.
We were moving a fextl::vector in to a shared pointer so it can be long
living, this causes a change in ownership which was causing the
`BlobData` pointer to be stale. This was then passed to the work queue
to be consumed. In -O1 and above a std::move of a fextl::vector is a
proper move, but -O0 it turns in to a copy.

Easy fix is to just create the shared_ptr early and reference that, so
the pointer is long lived and no references become stale.
2026-10-12 15:57:06 -07:00
LC fb925d6fc5 Merge pull request #6030 from Sonicadvance1/268
Linux/SignalDelegator: Support SA_RESETHAND
2026-10-12 18:53:32 -04:00
Justin Becker 9f610975ea Tests: Reduce wall clock time spent in "ninja tests" 2026-10-12 13:08:52 -07:00
Ryan Houdek dab12ae78e Merge pull request #6020 from javelina-pkwy/fix/main-stack-growth
Linux: Track main stack usage more accurately in VmData
2026-10-12 12:51:37 -07:00
Ryan Houdek e3c1c1e425 Merge pull request #6024 from javelina-pkwy/fix/stat-nullptr
Linux: Return EFAULT for stat() of a null path
2026-10-12 12:49:14 -07:00
Ryan Houdek 94ff2b0c66 Merge pull request #6021 from tarikbc/arm64ec-lutsize-ldr
ARM64EC: Fix the NtDllRedirectionLUT bounds check in CheckCall
2026-10-12 12:48:44 -07:00
Ryan Houdek 896a869122 Thunks: Fixes LLVM 23
Fixes #6025
2026-10-12 12:37:56 -07:00
Ryan Houdek f96bf07a10 FEXLinuxTests: Adds SA_RESETHAND test 2026-10-12 12:13:05 -07:00
Ryan Houdek 0152660af2 Linux/SignalDelegator: Support SA_RESETHAND
This is fairly trivial to support.

Fixes #6028
2026-10-12 12:12:44 -07:00
Justin Becker 30398c371d Clang format 2026-10-09 11:25:10 -07:00
Justin Becker e94ad12400 NIT 2026-10-09 11:24:50 -07:00
Justin Becker 3e2b2aadff Also add ENOENT tests 2026-10-09 11:03:12 -07:00
Justin Becker 13bc7faee3 Syscall: stat of nullptr shouldn't abort() 2026-10-08 17:01:36 -07:00
Tarik Caramanico 3a2b1c0b43 ARM64EC: Don't read past the end of NtDllRedirectionLUT in CheckCall
NtDllRedirectionLUT has NtDllRedirectionLUTSize entries, so valid
offsets are 0 to NtDllRedirectionLUTSize - 1. The bounds check used
b.hi, which let an offset equal to the size through and read one entry
past the end of the allocation.
2026-10-08 09:35:05 -03:00
Tarik Caramanico 4dbb046d62 ARM64EC: Load NtDllRedirectionLUTSize as 32-bit in CheckCall
NtDllRedirectionLUTSize is a uint32_t, but CheckCall loaded it with a
64-bit ldr. The upper half of the bound then comes from whatever follows
the variable in memory, and the :lo12: offset of a 64-bit ldr needs an
8-byte aligned symbol, so the link fails with "misaligned ldr/str offset"
when the variable ends up on a 4-byte boundary.

Load it with a 32-bit ldr, which zero-extends into x17 for the compare.
2026-10-08 09:24:45 -03:00
Ryan Houdek 14c92681f4 Docs: Update for release FEX-2610 FEX-2610 2026-10-07 11:42:33 -07:00
Justin Becker 62580ceba0 Linux: Track stack usage more accurately in VmData for RLIMIT_DATA 2026-10-07 11:40:24 -07:00
Ryan Houdek 992349f555 Merge pull request #6019 from Sonicadvance1/267
Scripts/InstallFEX: Add new ubuntu versions
2026-10-07 09:44:57 -07:00
Ryan Houdek 2fd969cbe7 Scripts/InstallFEX: Add new ubuntu versions
Fixes #6016
2026-10-07 09:15:23 -07:00
Ryan Houdek e9373bfaec Merge pull request #6011 from javelina-pkwy/perf/gather-all-ones
Peephole optimization for VPCMPEQD + VGATHERDPS
2026-10-07 09:13:24 -07:00
Ryan Houdek d58a4e0da2 Merge pull request #6017 from javelina-pkwy/fix/avx-required-test-python
Tests: Enable a handful of tests, and fix small bug in python test runner script
2026-10-07 05:17:03 -07:00
Justin Becker eed344e869 Tests: enable some tests that were disabled, and small fix to guest_test_runner.py 2026-10-06 12:16:07 -07:00
Justin Becker e638b8ef37 clang format 2026-10-06 10:59:36 -07:00
LC 7d3090f782 Merge pull request #6010 from Sonicadvance1/266
FEXCore: Update readme with supported ISAs
2026-10-05 18:50:28 -04:00
Justin Becker b2dffb5a8a InstCountCI: Bump DiskCache version 2026-10-05 15:17:58 -07:00
Justin Becker 5ec147109e Implement peephole optimization for vpcmpeqd + vgatherdps
This peephole removes unnecessary masking operations when the mask is
provably all 1s. This improves performance in GB7 'Asset Compression' by
about 2% with SVE and about 4% without SVE.
2026-10-05 15:17:58 -07:00