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
Ryan Houdek
4731a5ace4
OpcodeDispatcher: Removes DST/SRC_RAX from SALC
2026-09-14 14:40:23 -07:00
Ryan Houdek
8201228c0d
OpcodeDispatcher: Removes SRC_RAX from clzero
2026-09-14 14:34:52 -07:00
Ryan Houdek
4170d9d50c
OpcodeDispatcher: Removes SRC_RAX from CPUID
2026-09-14 14:33:40 -07:00
Ryan Houdek
cb9eb00339
Frontend: Remove DST_RDX flag
...
Easiest initial one to remove. Adds a helper that matches behaviour of
previous StoreResult around zero-extend mechanics to make things easier.
2026-09-14 10:55:44 -07:00
Pierre-Loup A. Griffais
aa9ae27932
Frontend: mark more (all?) imm32s for DiskCache patching
...
Including big C7 who was very prevalent.
2026-09-13 17:37:49 -07:00
Pierre-Loup A. Griffais
f9623af073
Frontend: mark a bunch of disp32s for DiskCache patching
...
Only when at the end for now, could improve with multi-field tracking.
2026-09-13 17:36:42 -07:00
Ryan Houdek
4b652eb91b
Merge pull request #5947 from javelina-pkwy/feature/vnni
...
Implement ISA extension AVX-VNNI
2026-09-11 17:41:32 -07:00
Ryan Houdek
f18599d097
Merge pull request #5943 from cjacek/wow64-chpe
...
WOW64: Use CHPEv2 for suspend and exception support
2026-09-10 16:07:11 -07:00
Justin Becker
480308c021
Bump DiskCache version
2026-09-10 15:59:52 -07:00
Justin Becker
89a13cd5fd
AVX-VNNI
2026-09-10 15:56:03 -07:00
Ryan Houdek
91bbce5a96
FEXCore/OpcodeDispatcher: Fixes syscall instruction on Linux
...
I forgot on Linux by default we didn't have the syscall instructions
count as block end. Change this so that it counts as block end now.
This has the additional benefit that now the frontend needs to modify
the RIP manually as well which is fine as it's what arm64ec and wow64
does.
Also add back the UnimplementedOp in RDPID that accidentally got caught
up. Also increment DiskCache version as both changes will change
codegen.
Fixes #5942
2026-09-10 09:50:07 -07:00
Jacek Caban
af04940466
WOW64: Use CHPEv2 for suspend and exception support
...
CHPE_V2_CPU_AREA_INFO is the mechanism used on ARM64EC to coordinate
thread state, suspension and exception handling with the kernel.
It's typically set up by ntdll for ARM64EC processes, but Wine uses
the TEB pointer without restricting where it's coming from. Set
ChpeV2CpuAreaInfo in FEX WOW64 thread initialization.
Fixes 32-bit debug events and a number of CPU context handling tests.
Reduces the number of wineserver round-trips required for suspend and
avoids the need for remote thread creation for inter-process suspends.
2026-09-10 15:30:51 +02:00
LC
e431bfe0fa
Merge pull request #5941 from Plagman/plagman/relaxrelocfilter_mr
...
DiskCache: allow relocations within the same ELF image
2026-09-10 02:49:57 -04:00
Pierre-Loup A. Griffais
b5ac608fc5
DiskCache: allow relocations within the same ELF image
...
We would check the FileID of mapped sections, but BSS is an anonymous mapping.
Grab the ELF image extents when we parse the file, and add an additional check
to the relocation filter to bail out additional relocs if we know that size.
2026-09-09 22:39:50 -07:00
Justin Becker
8b01071e05
Woops: formatting
2026-09-09 16:59:15 -07:00
Justin Becker
a9403db9a5
Fix preexisting disown bug
2026-09-09 16:53:03 -07:00