Commit Graph
4020 Commits
Author SHA1 Message Date
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
Ryan Houdek 516ce6b15c Threads: Support setting thread names through creation
Gives the DiskCache a thread name so it's easier to find.
2026-09-08 19:11:52 -07:00