Commit Graph
4037 Commits
Author SHA1 Message Date
LC 08f451d3bc Merge pull request #5980 from Plagman/plagman/maxrwsize_mr
DiskCache: configurable max file size
2026-09-22 11:10:40 -04:00
Pierre-Loup A. Griffais 83d8317dae DiskCache: configurable max file size 2026-09-22 00:05:10 -07:00
Ryan Houdek 4b418a81aa FEXCore: Have ThreadRemoveCodeEntry IR op jump to dispatcher
In order to reuse code buffers, when invalidating we will no longer be
able to invalidate code while inside the code we are invalidating.

Changes the IR operation to be a block ender itself and control jumping
to the new RIP. This way it can invalidate from the dispatcher and just
restart JIT execution.
2026-09-21 20:53:27 -07:00
Ryan Houdek 229151f878 FEXCore: Have the Syscall IR op jump to the dispatcher
Have it treated as a block terminator IR and instead of doing
syscall+exitfunction, just do syscall and jump in to the dispatcher.

This is necessary for code invalidation and reuse for code that is stuck
in long running syscalls. We'll need to do something similar for thunks
later, although the recursive nature of thunk+callback can make that a
little squirrely.
2026-09-21 14:46:34 -07:00
Ryan Houdek 5006e02498 Dispatcher: Fixes range check of InterruptFaultPage
This one wasn't updated and it's right at the limit of what it can
handle.
2026-09-21 14:45:56 -07:00
Ryan Houdek 9c871c51c9 Config: Add check to see if a config option is default
Either the option missing entirely or it's set to the default.
2026-09-20 14:58:48 -07:00
Ryan Houdek a0ba36eb1b SharedCodeBuffer: Skip VMA naming when JITSymbols are enabled
For some reason `perf top` prefers VMA names over perf symbols. So
disable them when any JIT symbol option is enabled. Breaks WTF tracking
for those buffers but because it's debug, we kind of have to.
2026-09-18 17:01:26 -07:00
Ryan Houdek 69a3da4f31 JITSymbols: Grab PID from the frontend
This is necessary to get JIT Symbols working under arm64ec/wow64
2026-09-18 17:00:17 -07:00
Ryan Houdek ec502b99d8 FEXCore: Support passing process pid to the backend 2026-09-18 16:59:35 -07:00
Ryan Houdek 1405755a31 Merge pull request #5968 from javelina-pkwy/feat/rdrand-fallback
Add software fallback for RDRAND/RDSEED
2026-09-18 13:33:09 -07:00
Pierre-Loup A. Griffais 7a82b07bfd DiskCache: optional memory buffer for faster lookups
May reserve a tiny area for small blocks in general, but will also be useful
for LuaJIT in anon-diskless mode.
2026-09-17 21:21:28 -07:00
Justin Becker 54b178d151 InstrCountCI: Bump disk cache version and regen 2026-09-17 11:25:52 -07:00
Justin Becker 26f0e5017f Fix Linux test failure, and formatting 2026-09-17 11:25:38 -07:00
Justin Becker 9243efc241 Default RDRAND fallback to false 2026-09-17 10:47:09 -07:00
Justin Becker c91c6efc87 Software fallback for RDRAND/RDSEED 2026-09-16 16:08:40 -07:00
Lioncache df9141ee7b Externals: Update vixl
Updates vixl so that the patches we upstreamed are tracked instead of us
needing to manually carry some of the more unnecessary ones forward.

We can also re-enable the tests that were disabled in #5915
2026-09-13 14:26:11 -04:00
Ryan Houdek 37eaff93cb FEXCore: Migrate internal DiskCache header to internal
Leave the smaller public header that is required to get the current
DiskCache version variable still.

NFC
2026-09-15 19:43:27 -07:00
Ryan Houdek d06e98ed84 InstcountCI: Update 2026-09-15 16:40:55 -07:00
Simon Scherer 93def42061 OpcodeDispatcher: Fix RestoreX87State to rotate MM regs by Top of Stack 2026-09-15 16:38:36 -07:00
LC 2790f89949 Merge pull request #5957 from Sonicadvance1/245
Frontend: Remove DST_RAX subflag
2026-09-15 19:02:05 -04:00
Ryan Houdek 0309bc3d90 Frontend: Removes DST_RAX subflag
Shifts the last subflag down
2026-09-15 15:00:03 -07:00
Ryan Houdek 1523142540 OpcodeDispatcher: Removes DST_RAX from CMP/TEST 2026-09-15 15:00:03 -07:00
Ryan Houdek 5743282944 OpcodeDispatcher: Removes DST_RAX from SBB 2026-09-15 15:00:02 -07:00
Ryan Houdek 9d936a8989 OpcodeDispatcher: Removes DST_RAX from ADC 2026-09-15 15:00:02 -07:00
Ryan Houdek 1e95181b34 OpcodeDispatcher: Removes DST_RAX from ALUOp operations. 2026-09-15 15:00:01 -07:00
Ryan Houdek d85f5b4398 OpcodeDispatcher: Remove DST_RAX from LODS
This was already handled.
2026-09-15 15:00:01 -07:00
Ryan Houdek ed6d7092a2 OpcodeDispatcher: Removes DST_RAX from moffset instructions
I had already removed the use here.
2026-09-15 15:00:01 -07:00
Ryan Houdek a164315b7d OpcodeDispatcher: Removes DST_RAX from BCD ops
These already didn't use the flag actually.
2026-09-15 15:00:00 -07:00
Ryan Houdek e8084e3f11 OpcodeDispatcher: Remove DST_RAX from FNSTSW 2026-09-15 15:00:00 -07:00
Ryan Houdek 17ebb38ebd FEXCore/Utils: Make crc32 match between architectures
I forgot that we actually need this to match arm64 behaviour on x86.
Implement the pseudocodefor the instruction.
2026-09-15 14:21:08 -07:00
LC fd7b749e47 Merge pull request #5959 from Sonicadvance1/246
FEXCore: Moves crc32 helper to a shared location
2026-09-15 16:35:43 -04:00
Ryan Houdek 6efbc2ba0b FEXCore: Moves crc32 helper to a shared location 2026-09-15 13:01:53 -07:00
LC f2e8f580a4 Merge pull request #5956 from Sonicadvance1/244
Frontend: Remove SRC_RCX subflag
2026-09-15 15:26:18 -04:00
Ryan Houdek 5a24152672 Merge pull request #5953 from Plagman/plagman/crc_patching_mr
JIT: Let DiskCache patch ValidateCode guest CRC (and other small fixes 👼)
2026-09-15 12:17:02 -07:00
Ryan Houdek cad4cb9b64 Frontend: Remove SRC_RCX subflag 2026-09-15 11:56:10 -07:00
Ryan Houdek ea263166c5 OpcodeDispatcher: Removes SRC_RCX from shift/rotate ops
These are all similar to each other with similar code. Hit them at the
same time.
2026-09-15 11:56:09 -07:00
Ryan Houdek 3f66c6754d OpcodeDispatcher: Remove SRC_RCX from LOOP 2026-09-15 11:56:09 -07:00
Ryan Houdek 242f17eca9 OpcodeDispatcher: Remove SRC_RCX from SHLD/SHRD 2026-09-15 11:56:09 -07:00
Davide Cunial 7403789d8b Update functional.h
Update move_only_function to use std::invoke instead of regular C++ call syntax which is invalid for pointer-to-member-function call.
2026-09-15 17:00:11 +02:00
Pierre-Loup A. Griffais 3f8f886f65 Frontend: patch cmp imm8 for cache
Usually imm8 seem more likely to be a function of the code around them, but
this one seems used by Mono for varying data over execution of same code.
Maybe an ID of some kind.
2026-09-14 21:57:54 -07:00
Pierre-Loup A. Griffais 56a4f11ddb Frontend: avoid cache patching for certain cases with data unlikely to change
The MOV heuristic shaves off a ton of patch sites (storage and overhead on
Lookup) where the data doesn't seem to change in practice.
2026-09-14 21:52:14 -07:00
Pierre-Loup A. Griffais 1695d742b1 DiskCache: on Store, make unaccounted-for DataMasks non-fatal
By going through relocations before computing/hashing extents, we can simply
undo datamasks that haven't been claimed by the backend instead of failing
the whole Store. They fall back to being part of the normal hashed extents.
2026-09-14 21:52:06 -07:00
Pierre-Loup A. Griffais 5efc3212d2 JIT: Let DiskCache patch ValidateCode guest CRC
So we can cache blocks with FullSMCTracking finally.
2026-09-14 21:51:59 -07:00
Ryan Houdek 7917f43720 Frontend: Removes SRC_RAX subflag 2026-09-14 16:03:31 -07:00
Ryan Houdek 58e0e1a03a OpcodeDispatcher: Removes SRC_RAX from XCHG 2026-09-14 16:03:31 -07:00
Ryan Houdek 8b469313f9 OpcodeDispatcher: Fixes hardcoded register in StoreGPRResultWithZExtSemantics
Oops
2026-09-14 15:47:32 -07:00
Ryan Houdek 5f8a7a18f0 OpcodeDispatcher: Removes SRC_RAX from CQO/CDQE 2026-09-14 15:40:03 -07:00
Ryan Houdek b3fe634c8b OpcodeDispatcher: Remove SRC_RAX from moffset MOV 2026-09-14 15:40:03 -07:00
Ryan Houdek 6f395885cb OpcodeDispatcher: Removes SRC_RAX from SCAS 2026-09-14 14:56:36 -07:00
Ryan Houdek 8cfbc44482 OpcodeDispatcher: Removes SRC_RAX from STOS 2026-09-14 14:54:58 -07:00