Lioncache
aaca8772bd
Utils/File: Properly handle move assignment/construction
...
Ensures that whenever a file handle is transferred anywhere, that the
moved from instance won't end up closing the file handle when the
destructor runs.
2026-09-01 16:00:11 -04:00
LC
a6e74cdbe6
Merge pull request #5889 from Sonicadvance1/224
...
FEXCore: Removes syscall optimization
2026-08-31 22:47:00 -04:00
LC
ff4da8a620
Merge pull request #5890 from Sonicadvance1/225
...
FEXUnixlib: Removes unused variable/warning.
2026-08-31 22:43:08 -04:00
Ryan Houdek
1558a2c65d
InstcountCI: Update
2026-08-31 19:23:20 -07:00
Ryan Houdek
66cad978c3
FEXCore: Removes syscall optimization
...
The JIT was doing a bunch of additional work where it was saving and
restoring registers and then juggling the arguments back in to a stack
frame. All of this is nonsensical without the optimization where we
could call syscalls inline without a stack frame.
Instead remove this optimization entirely and behave like a "generic"
syscall path always. The Linux syscall handler now pulls the arguments
out of the CPU context directly and stores the result back in to RAX
directly as well.
This has knock-on effects where technically syscalls are
going to be slightly faster because no stack frame setup for the
arguments, but additionally we are going to be able to have syscalls be
proper serialization points where we can interrupt the syscall and
long-jump out without problems.
Bumps the DiskCache version again because it causes codegen to change.
2026-08-31 19:23:18 -07:00
Ryan Houdek
c11a0cef68
FEXUnixlib: Removes unused variable/warning.
2026-08-31 19:09:24 -07:00
Ryan Houdek
8cf2bf7ad8
Merge pull request #5884 from Plagman/plagman/lookup_opt_mr
...
DiskCache: Lookup optimizations
2026-08-31 14:05:34 -07:00
LC
ef5439e5ae
Merge pull request #5885 from Plagman/plagman/linux_writerthread_signalblock_mr
...
DiskCache: on Linux, block signals in Writer thread
2026-08-31 10:18:14 -04:00
Pierre-Loup A. Griffais
c0b24b2f2e
DiskCache: on Linux, block signals in Writer thread
...
Clean up thread flags while we're at it.
2026-08-30 22:27:05 -07:00
Pierre-Loup A. Griffais
0d3a5f96f0
InstcountCI: Update
2026-08-30 17:17:54 -07:00
LC
73dc3b3edd
Merge pull request #5883 from Sonicadvance1/223
...
Scripts/fit_native: Classify Oryon-1/3
2026-08-30 20:16:07 -04:00
Pierre-Loup A. Griffais
01bc89b82e
DiskCache: Lookup optimizations
...
- quicker misses from storing GuestHash/GuestSize in index
- use GuestSize to pull less data from disk on hit
2026-08-30 16:50:11 -07:00
Ryan Houdek
2f663db52c
Scripts/fit_native: Classify Oryon-1/3
...
If the compiler is new enough than classify Oryon-1. Clang doesn't
support Oryon-3 so just claim its Oryon-1 in that case.
2026-08-30 15:36:59 -07:00
LC
e17fdf9e90
Merge pull request #5882 from Sonicadvance1/222
...
InstCountCI: Enforce DiskCache version matching
2026-08-30 17:41:35 -04:00
Ryan Houdek
b695c5ae11
InstCountCI: Update
...
Only adds DiskCache version to json to ensure it's tracked. No asm
changes here.
2026-08-30 14:26:45 -07:00
Ryan Houdek
f5935b4006
InstCountCI: Enforce DiskCache version matching
...
Two added failure modes here. If the disk cache version has changed then
the json files must be updated to the new version to ensure correct
tracking.
Additional failure mode is that codegen actually changed but the disk
cache version hasn't. This is the expected common failure mode and we
need to do additional work before updating json results. This just means
incrementing the disk cache version before updating the instcountci
results. Have a fairly lengthy error message to showcase how much of an
impact this might have.
2026-08-30 14:26:43 -07:00
Ryan Houdek
eca6569bd3
FEXCore: Expose DiskCache version to the frontend
...
With a comment about includes currently being incorrectly shared to the
frontend and needs to get resolved.
2026-08-30 14:26:43 -07:00
LC
51c241d1f8
Merge pull request #5881 from Sonicadvance1/222
...
UnixLib: Removes old non-unixlib handling
2026-08-30 16:58:07 -04:00
Ryan Houdek
83ead40b78
UnixLib: Removes old non-unixlib handling
...
Everything that we care about supports the unixlib path now. Also turns
out we were doing `svc #0` on Windows when unixlib didn't exist which is
kind of funny.
Remove the legacy hacky path as it is no longer necessary.
2026-08-30 13:08:52 -07:00
LC
dea5c62a44
Merge pull request #5880 from Plagman/plagman/lookup_less_allocs_mr
...
DiskCache: get rid of more extra copies/allocs on Lookup
2026-08-30 07:57:30 -04:00
Pierre-Loup A. Griffais
b3f902166b
DiskCache: get rid of more extra copies/allocs on Lookup
...
Reorganize disk format a bit so that entrypoints and guest pages can be used
as is from the original blob allocation, with some in-place relocation.
2026-08-30 01:52:42 -07:00
Ryan Houdek
98964c5527
Merge pull request #5875 from lioncash/config
...
Config: Fix assertion being hit in config generation
2026-08-28 15:47:11 -07:00
LC
8ccc8dab49
Merge pull request #5865 from Sonicadvance1/221
...
FEXCore/Config: Annotate all config options that can affect codegen
2026-08-28 17:59:11 -04:00
LC
e1d8881f57
Merge pull request #5866 from Plagman/plagman/packed_applyrelocs_mr
...
DiskCache: Apply relocations from disk blob
2026-08-28 17:58:41 -04:00
Lioncache
7a8b9dd341
Config: Fix assertion being hit in config generation
2026-08-28 16:51:11 -04:00
Ryan Houdek
063af711af
Merge pull request #5869 from cjacek/wow64-syscall
...
WOW64: Update frame state ESP and EIP before unlocking context for syscall
2026-08-28 13:30:51 -07:00
Jacek Caban
aed71ed5e9
WOW64: Update frame state ESP and EIP before unlocking context for syscall
...
Fixes reported CPU context when queried while processing the syscall.
2026-08-28 18:52:12 +02:00
Pierre-Loup A. Griffais
8b9237fd52
DiskCache: Apply relocations from disk blob
...
Removes one allocation in Lookup path.
2026-08-27 22:45:09 -07:00
Ryan Houdek
fd180a16d3
Merge pull request #5861 from Plagman/plagman/cache_map_mr
...
DiskCache: use memory-mapped IO for reads when possible
2026-08-27 22:18:13 -07:00
Pierre-Loup A. Griffais
2a82f58195
DiskCache: use memory-mapped IO for reads when possible
...
On Wine, use a unixlib call to get a quality mapping that can track a growing
file.
2026-08-27 21:15:22 -07:00
Ryan Houdek
34ffd2d6e2
FEXCore/Config: Annotate all config options that can affect codegen
...
Instead serializing the world, allow the config to be data driven. A
couple host feature options aren't serialized as they get explained
elsewhere.
2026-08-27 15:08:20 -07:00
LC
62c9c130c4
Merge pull request #5864 from simon902/pf2id_saturation
...
Fix pf2id overflow saturation
2026-08-27 09:16:04 -04:00
LC
fca23d88c3
Merge pull request #5863 from simon902/vfaddp-mmx-width
...
Fix PFACC producing wrong results due to missing MMX-sized path in VFAddP
2026-08-27 09:15:30 -04:00
LC
3a179a3a40
Merge pull request #5862 from simon902/pf2iw_saturation
...
Fix pf2iw to saturate on 32-to-16-bit truncation
2026-08-27 08:47:54 -04:00
Simon Scherer
fe17c447d9
InstcountCI: Update
2026-08-27 11:50:52 +02:00
Simon Scherer
b21a8dafa7
OpcodeDispatcher: Fix pf2id overflow saturation
2026-08-27 11:50:45 +02:00
Simon Scherer
926a871dd4
unittests/ASM: Test pf2id overflow saturation
2026-08-27 11:40:20 +02:00
Simon Scherer
79ef5031eb
InstcountCI: Update
2026-08-27 10:36:31 +02:00
Simon Scherer
f0135eb332
JIT/VectorOps: Separate 64-bit VFAddP path for MMX-sized operands
2026-08-27 10:36:22 +02:00
Simon Scherer
566b25a35b
unittests/ASM: Test pfacc simple addition
2026-08-27 10:33:05 +02:00
Simon Scherer
e6748ea1ed
InstcountCI: Update
2026-08-27 09:36:28 +02:00
Simon Scherer
5ab2c723ff
OpcodeDispatcher: For PF2IWOp use VSQXTN instead of VUnZip to saturate values falling outside the 16-bit range
2026-08-27 09:36:17 +02:00
Simon Scherer
cac8785aca
unittests/ASM: Test pf2iw with values falling outside of 16-bit range
2026-08-27 09:29:40 +02:00
LC
0814780c2f
Merge pull request #5860 from Plagman/plagman/bucket_cleanup_mr
...
DiskCache: clean up bucket key building a bit
2026-08-26 21:57:02 -04:00
Pierre-Loup A. Griffais
753bce5e73
DiskCache: clean up bucket key building a bit
...
Less manual math like that.
2026-08-26 17:35:54 -07:00
Ryan Houdek
d04ad79eaf
Merge pull request #5857 from 06393993/windows-split-cmake-cxxflags
...
Windows: Split CMAKE_CXX_FLAGS before passing to execute_process
2026-08-26 16:37:35 -07:00
LC
baca86bc3f
Merge pull request #5859 from Sonicadvance1/220
...
Config: Filter the `CPUFeatureRegisters` option on serialization
2026-08-26 15:33:59 -04:00
LC
adfff26d58
Merge pull request #5858 from Sonicadvance1/219
...
LookupCache: Add L1 entry on shrink
2026-08-26 15:33:38 -04:00
Ryan Houdek
ef3a6963f3
Config: Filter the CPUFeatureRegisters option on serialization
...
This is unfiltered data that ends up in HostFeatures. If it was
serialized when set then it would effectively never allow the code
serialization to be used.
2026-08-26 12:22:08 -07:00
Ryan Houdek
19dba4a3ec
LookupCache: Add L1 entry on shrink
...
If we're shrinking the L1 cache then we just deleted the entry that we
just looked up. Add it back to ensure we don't get yet another lookup
for this entry.
2026-08-26 12:18:31 -07:00