Ryan Houdek
2cab87fbd0
ThreadManager: Fix mmap usage to not take guest space
...
SHM stats and CallRet stack was accidentally using system mmap which
means it would take VA space from the guest. Ensure it uses the
Allocator helpers so that doesn't happen.
Gives 32-bit guests 8-ish megabyte of VA space back.
2025-10-06 11:20:00 -07:00
Lioncache
137aa59254
PrctlUtils: Move to include folder
...
We can group more prctl value handling in here.
2025-10-06 02:12:29 -04:00
Ryan Houdek
3baa598b9e
HostFeatures: Adds flag for SSE4a
2025-10-04 02:51:28 -07:00
Billy Laws
70cffce5eb
Windows: Avoid redeclaring strtoll as unimplemented
...
Included as part of the musl code we pull in. Fixes ARM64EC/WOW64 FEX.
2025-10-03 16:30:41 +02:00
LC
18d0dec416
Merge pull request #4911 from Sonicadvance1/evmd_linux
...
Linux: Implement support for extended volatile metadata
2025-09-30 20:01:26 -04:00
Ryan Houdek
b08e5f9821
Linux: Implement support for extended volatile metadata
...
Allows applications running entirely under Linux to use the same
extended volatile metadata as Windows.
For example `FEX_EXTENDEDVOLATILEMETADATA=iw4sp.exe\;0xe9da0-0xe9ec7`
this configuration works for both wow64 and Linux to disable the TSO
emulation on the memcpy routine in that game that consumes around 80% of
CPU time in TSO emulation.
Works with Linux native games as well of course.
2025-09-29 14:36:51 -07:00
Ryan Houdek
1758648f56
Common: Move ApplyFEXExtendedVolatileMetadata to Common
...
It is going to be used by Linux.
Also adds support for file offset handling, which is required on Linux
but not on win32.
2025-09-29 14:36:50 -07:00
Ryan Houdek
418ce0aed9
Wow64: Ensure extended volatile metadata is removed
...
Was missing this, matches the arm64ec side.
2025-09-29 14:13:44 -07:00
Billy Laws
73962402df
TestHarnessRunner: Don't attempt to build on MinGW
2025-09-24 20:28:33 +01:00
Paulo Matos
e7a47a647c
Fix quiet and signalling nan propagation
...
This adds a new mode X87StrictReducedPrecision.
The strict reduced precision is like the reduced precision but adds extra checks,
like the currently implemented nan and snan propagations.
Fix for __builtin_issignaling() test of SPEC2017 classify test.
2025-09-23 13:48:45 +02:00
Ryan Houdek
dd4f508b77
FEX: Fixes SIGILL reporting
...
Two bug fixes here.
- We weren't reporting a correctl ErrorRegister. Needs to contain
PF_INSTR at least.
- We weren't setting siginfo->si_addr in the case of `FaultToTopAndGeneratedException`
Fixes Mafia 2 (Classic)
2025-09-18 11:26:15 -07:00
Tony Wasserka
3058a825b7
Merge pull request #4889 from Sonicadvance1/fix_x87_state_saverestore
...
SignalDelegator: Correctly save and restore x87 state.
2025-09-17 11:53:42 +02:00
LC
8f47b46219
Merge pull request #4887 from Sonicadvance1/finish_v4l2
...
IoctlEmulation: Finish v4l2 implementation
2025-09-16 10:00:56 +02:00
Ryan Houdek
de6d907e27
SignalDelegator: Correctly save and restore x87 state.
...
We need to read the current x87 TOP location and rotate the values when
saving and restoring the context state on Linux. Wasn't visible in the
ASM tests since we read the FEX's CPU state directly there.
2025-09-15 13:20:43 -07:00
Ryan Houdek
85e67f92c5
FEX: Rebrand FEXInterpreter as FEX
...
Still creates a copy of FEXInterpreter from FEX for downstream projects
to have some time to get off the old name. Creating a symlink is kind of
a pain in cmake so just doing an install copy is easy.
2025-09-15 13:06:48 -07:00
Ryan Houdek
6ced309c5c
IoctlEmulation: Finish v4l2 implementation
2025-09-12 19:59:56 -07:00
Ryan Houdek
7273041314
FEXInterpreter: Remove FEXLoader
...
Doesn't /quite/ remove the ArgumentLoader because it is intertwined with
LinuxEmulation in an annoying way that will take another step to remove.
2025-09-12 10:24:58 -07:00
LC
226233ddce
Merge pull request #4874 from Sonicadvance1/testharnessrunner_args
...
TestHarnessRunner: Removes ArgumentLoader
2025-09-12 11:22:11 -04:00
Lioncache
216a37348b
VDSO_Emulation: Remove duplicate span include
...
Just an include that slipped through.
2025-09-12 03:43:12 -04:00
Tony Wasserka
964165eabe
Merge pull request #4871 from Sonicadvance1/move_fexloader
...
FEXLoader: Move to FEXInterpreter
2025-09-12 08:27:14 +02:00
Ryan Houdek
4ae04c2a9a
TestHarnessRunner: Removes ArgumentLoader
...
Only use environment variables for setting arguments here.
2025-09-11 13:45:09 -07:00
LC
7bd0789402
Merge pull request #4870 from Sonicadvance1/remove_argloader_fexbash
...
FEXBash: Remove ArgLoader usage
2025-09-11 16:17:34 -04:00
LC
eb9fb9e834
Merge pull request #4872 from Sonicadvance1/fexserver_remove_argloader
...
FEXServer: Remove usage of ArgLoader
2025-09-11 16:12:49 -04:00
LC
c0ef0a7503
Merge pull request #4873 from Sonicadvance1/fexrootfsfetch_remove_argloader
...
FEXRootFSFetcher: Removes argloader usage
2025-09-11 16:12:33 -04:00
Ryan Houdek
61719115e5
Merge pull request #4817 from neobrain/refactor_code_cache_new_interfaces
...
CodeCache: Introduce new interfaces
2025-09-11 12:59:33 -07:00
Ryan Houdek
4a8cbe2ab8
FEXBash: Remove ArgLoader usage
...
ArgLoader is going to get removed. So delete this menial usage of it.
2025-09-11 12:21:35 -07:00
Ryan Houdek
c966f44189
FEXRootFSFetcher: Removes argloader usage
...
Another case that ArgLoader was misused.
2025-09-11 12:20:28 -07:00
Ryan Houdek
193ef8b232
FEXServer: Remove usage of ArgLoader
...
This is entirely unused as FEXServer only ever reads the environment and
other configs.
There was /technically/ a weird conflict with FEXServer arguments but
that was an accident if it ever happened.
2025-09-11 12:16:47 -07:00
Ryan Houdek
ad70a60d05
FEXLoader: Move to FEXInterpreter
...
NFC
FEXInterpreter is the supported path, rename things to reflect that.
2025-09-11 12:09:23 -07:00
Ryan Houdek
8c1e9eda12
Merge pull request #4867 from neobrain/refactor_cmake_tests
...
CMake: Merge BUILD_TESTS into BUILD_TESTING
2025-09-11 10:14:26 -07:00
Ryan Houdek
0eedd55dfd
Merge pull request #4866 from neobrain/refactor_reformat
...
Update code formatting
2025-09-11 10:13:42 -07:00
Tony Wasserka
70a1d92d9f
CodeCache: Drop ComputeCodeMapId member function
2025-09-11 17:03:50 +02:00
Tony Wasserka
0749477eb9
CodeCache: Introduce revamped interfaces
2025-09-11 17:03:50 +02:00
Tony Wasserka
fb54341a1f
CMake: Merge BUILD_TESTS into BUILD_TESTING
...
BUILD_TESTING is provided by CMake, so the separate toggle is just redundant.
2025-09-11 14:08:47 +02:00
Tony Wasserka
bf1b76dcd2
LinuxSyscalls: Clean up MappedResource insertion
...
None of the call sites needed this to be a template, and the previous function
produced unreadable error messages.
2025-09-11 10:49:07 +02:00
Tony Wasserka
48787ab460
Context: Drop unneeded header includes
2025-09-11 10:49:07 +02:00
Tony Wasserka
9fdd96af61
Update code formatting
2025-09-11 10:40:29 +02:00
Tony Wasserka
0c0a1d8f12
CMake: Use consistent component naming
2025-09-11 10:31:06 +02:00
Tony Wasserka
fee9e91c4f
Core: Drop support for TSO auto migration
2025-09-10 15:36:23 +02:00
Tony Wasserka
1dc560d45a
InstCountCI: Explicitly disable TSO by default
2025-09-10 15:36:23 +02:00
Billy Laws
782952d55d
WOW64: Fix CsSeg initialization
2025-09-09 19:10:07 +01:00
Ryan Houdek
317f92f4c8
Merge pull request #4851 from lioncash/ir
...
IR: Remove unnecessary forward declarations/headers
2025-09-08 19:47:51 -07:00
Lioncache
b2407352a9
IR: Remove unnecessary forward declarations/headers
...
Pares the base IR header down to a modest size and also reveals a few indirect
reliances on the allocator facilities.
2025-09-08 22:03:25 -04:00
Lioncache
e1b5e3e112
VDSO_Emulator: Cull unnecessary includes
...
Reveals a bunch of indirect includes inside the SignalDelegator.
2025-09-08 21:43:31 -04:00
Ryan Houdek
09793d295f
Merge pull request #4849 from lioncash/config
...
Config: Remove unused Context.h include
2025-09-08 16:59:38 -07:00
Ryan Houdek
e9f8c01e04
Merge pull request #4848 from lioncash/thread
...
InternalThreadState: Remove unused includes
2025-09-08 16:59:15 -07:00
Lioncache
f69821d7db
Config: Remove unused Context.h include
...
Removes quite a heavy include from the config system and specifies any
indirect inclusion that were relied on because of it.
2025-09-08 15:23:30 -04:00
Lioncache
1e03219ca3
Syscalls/Thread: Add missing forward declarations
...
Currently we were lucky that these were being seen already when being included.
2025-09-08 14:58:30 -04:00
Lioncache
de8b4438e3
ThreadManager: Eliminate indirect inclusions
...
We had quite a bit of dependencies that were currently being indirectly relied upon.
We can forward declare the relevant ones and add the includes for the ones that are
explicit.
2025-09-08 14:58:27 -04:00
Ryan Houdek
2cfd3330f0
Merge pull request #4847 from lioncash/loader
...
CodeLoader: Tidy up interface
2025-09-08 11:50:30 -07:00