Lioncache
3e741df77b
SyscallHandler: Avoid self-referencing global
...
We don't need to indirect through the handler global inside of the class
itself for instance member functions.
2025-10-10 15:29:29 -04:00
Ryan Houdek
31d4b4a201
Merge pull request #4960 from Sonicadvance1/enable_avx_32bit
...
HostFeatures: Enable AVX for 32-bit by default
2025-10-10 10:31:55 -07:00
Lioncache
e83e9cb6b3
JSONPool: Make allocator funcs internally linked
...
Makes it a little more explicit that these aren't used outside of this
TU.
2025-10-10 00:11:17 -04:00
Lioncache
987fc925ee
FileManagement: Use emplace instead of insert for set
...
These are cases where the string can be directly constructed internally
instead of being copied/moved.
2025-10-09 22:02:06 -04:00
Lioncache
b6cbb23781
FileManagement: Make use of std::string_view in LoadThunkDatabase()
...
Same behavior, but avoids allocating except for the case where its
necessary.
2025-10-09 22:02:03 -04:00
Ryan Houdek
832d1e8d2c
HostFeatures: Enable AVX for 32-bit by default
...
With the gather overflow fixes in place, I've been having this running
for a while. Now that we just kicked out a release, enable AVX even on
32-bit.
We'll need to eventually create a list of games that explode with AVX
enabled, but that same list would match what happens on real x86 hosts,
so there can be some collaboration there.
2025-10-09 15:18:26 -07:00
Jacek Caban
5fd3852fd3
ARM64EC: Emulate unaligned atomic access in non-JIT EC code
2025-10-10 00:13:56 +02:00
Lioncache
55c43229ca
Config: Remove unnecessary check in GetConfigDirectory()
...
This is already checked for in the outer if.
2025-10-09 14:57:00 -04:00
Lioncache
dbc4daaaa4
Config: std::move string into EnvMap
...
Same behavior, but without a reallocation.
2025-10-09 14:57:00 -04:00
Lioncache
acdbbec78d
Config: Prevent duplicate lookup in EnvLoader::Load()
...
We can check the iterator itself instead of doing the lookup again.
2025-10-09 14:56:57 -04:00
Lioncache
17d110575c
BPFEmitter: Remove unused SeccopEmulator include
2025-10-09 00:57:49 -04:00
Lioncache
a967976420
BPFEmitter: Simplify iterator declarations
...
Makes the jump labels a little quicker to read.
2025-10-09 00:57:49 -04:00
Lioncache
7e1e1ccccc
BPFEmitter: Move private API into implementation
...
Keeps some internals fully private (and also avoids dumping
some defines into other headers).
2025-10-09 00:57:49 -04:00
Lioncache
8513c02ec1
ELFParser: Avoid unnecessary copies
...
Gets rid of a few 56 byte copies.
2025-10-08 21:20:46 -04:00
Ryan Houdek
673e826e46
FEX: Remove InlineSyscall and related flags
...
FEXCore no longer optimizes syscalls to be inline.
NFC, just avoids passing around a bunch of data structures for no
reason.
2025-10-08 19:33:58 -07:00
Ryan Houdek
3b88947cbe
Merge pull request #4950 from lioncash/syscall
...
SyscallHandler: Shrink definition struct from 24 to 16 bytes
2025-10-08 14:03:57 -07:00
Lioncache
10c3b2fb5d
SyscallHandler: Shrink definition struct from 24 to 16 bytes
...
Just a minor space saving, given how many syscall definitions we'll
have.
2025-10-08 16:40:20 -04:00
Lioncache
74ae89865c
SHMStats: Add missing virtual destructor
...
This should be present for universally consistent behavior, regardless
of how the class is used.
2025-10-08 16:17:42 -04:00
Lioncache
a2445904e7
ThreadManager: Make StatAlloc instance private
...
This doesn't need to be public.
2025-10-08 16:13:23 -04:00
Lioncache
d94b9fae94
SourceCodeResolver: Pass string_view by value for GenerateMap()
...
Generally this should be passed as a value type unless there's a good
reason not to.
2025-10-07 01:27:15 -04:00
Lioncache
05fcaaa758
Syscalls: Remove unimplemented prototypes
2025-10-07 01:27:11 -04:00
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