Billy Laws
085cf027dc
ImageTracker: Do not generate codemaps when generating code caches
2025-12-29 16:25:55 +00:00
Billy Laws
ecc16033be
ImageTracker: Track loaded PE images for LookupExecutableFileSection
2025-12-28 00:31:50 +00:00
Billy Laws
86211e18d7
ALookupExecutableFileSection: Take thread argument as an optional pointer
2025-12-23 23:44:58 +00:00
Billy Laws
a94a9eb268
WOW64: Use ImageTracker for volatile metadata handling
2025-12-22 17:19:38 +00:00
Billy Laws
cd934b73ca
Windows: Switch GetSection/ExecutableFilePath to returning full paths
2025-12-15 17:23:23 +00:00
Billy Laws
24d61e1125
Windows: Enable downstream kernel-side unaligned atomic handling
2025-11-20 12:04:59 -08:00
Ryan Houdek
e862c904a9
FEX: Implements support for JIT CodeBuffer guard page restart
...
When the JIT CodeBuffer overflows, we will now catch accesses to the
guard page and longjump while restarting the JIT with a larger buffer
request.
Fixes #4877
2025-11-10 11:55:21 -08:00
Ryan Houdek
8d20d1dae3
Wow64: Disable AVX
...
It's unsupported.
2025-11-04 11:29:04 -08:00
Ryan Houdek
b40e707771
wow64/arm64ec: Call GetTLS less frequently
...
If called back-to-back, the compiler can't optimize the object creation
resulting in multiple indirections. Save the creation and pass it
around, allowing the compiler to merge loadstores, and remove redundant
loads.
NFC
2025-10-20 15:45:31 -07: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
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
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
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
Tony Wasserka
0749477eb9
CodeCache: Introduce revamped interfaces
2025-09-11 17:03:50 +02:00
Tony Wasserka
fee9e91c4f
Core: Drop support for TSO auto migration
2025-09-10 15:36:23 +02:00
Billy Laws
782952d55d
WOW64: Fix CsSeg initialization
2025-09-09 19:10:07 +01:00
Ryan Houdek
80cacc462e
X86Tables: Move x87 tables to be constexpr
2025-08-27 12:24:25 -07:00
Ryan Houdek
f050571696
Implement support for additional provided volatile metadata
...
Only wired up for wow64 and arm64ec. Gives more granular control over
TSO enabling and disabling. Matches arm64ec volatile metadata except
with one more additional feature that whole modules can be disabled at a
time.
Once we know the mapped size of files in Linux then we'll be able to do
the same thing there, but there's not a full mechanism wired up for that
yet.
2025-08-22 15:03:56 -07:00
Ryan Houdek
83e44961fc
Merge pull request #4784 from Sonicadvance1/more_ldt_gdt
...
FEXCore: Move LDT/GDT management to the frontend
2025-08-20 13:22:08 -07:00
Ryan Houdek
25a0752e58
FEXCore: Move LDT/GDT management to the frontend
...
This will allow the frontend to manage LDT and GDT so that Linux will be
able to install 32-bit code segments.
2025-08-18 14:03:51 -07:00
Paulo Matos
3bf323aa2b
Clear IE flag on fninit
2025-08-18 15:40:46 +02:00
Ryan Houdek
26b4195f1f
Merge pull request #4779 from asLody/environ
...
Windows: Support EnvLoader via _environ
2025-08-14 11:22:23 -07:00
Lody
cd31a79f41
Windows: Support EnvLoader via _environ
2025-08-14 10:41:11 +08:00
LC
c8810557c1
Merge pull request #4777 from Sonicadvance1/move_gdt_up
...
FEXCore: Split GDT and LDT prep work
2025-08-13 12:06:41 -04:00
Ryan Houdek
3f9df49e3e
FEXCore: Split GDT and LDT prep work
...
Taking this very slowly because this is very fickle code. The frontend
needs to manage GDT and LDT, but before we get there, we need to
actually add support for LDT in the backend. Split the segments to two
arrays so the JIT can actually update their cached values correctly.
Still treats GDT and LDT as mirrors like how the JIT previously did (By
it ignoring the selector's TI bit).
2025-08-11 20:45:51 -07:00
Billy Laws
1ac3d3c5a6
Windows: Extend user handle access masks in callbacks where necessary
...
While most applications will just create ALL_ACCESS handles which
support the additional operations FEX needs over the regular windows syscall
(usually just QUERY_INFORMATION to lookup the thread object), it is
valid for them to pass in the minimal set required for each operation
and windows/wine will reject any other operations (e.g. querying the TEB
base on a handle with only the SUSPEND right). Windows permits
duplicating handles to extend their permissions given the process itself
has such permissions, so do that as necessary for the operations FEX
needs.
2025-08-12 03:19:20 +01:00
Billy Laws
b2b5ccf69c
Windows: Validate any user handle permissions for syscall callbacks
...
In the terminate case, if we don't return early then we will delete the
FEX thread object but the actual terminate call that follows will
fail, leaving the thread in a bad state.
2025-08-12 00:51:00 +01:00
Billy Laws
6f5d4fbf30
Windows: Avoid potential deadlocks is a thread is terminated while in the JIT
...
Try to suspend the thread before termination to ensure no important JIT locks
are held that could be left locked if the thread is compiling code etc.
2025-08-12 00:51:00 +01:00
Billy Laws
8ad1ea499d
Windows: Avoid a double-free if a thread is terminated twice
...
Unlikely to show up in any real code, but if an attempt is made to terminate
a terminated thread we should handle this gracefully.
2025-08-12 00:51:00 +01:00
Billy Laws
4df17abea7
Windows: Avoid potential race between thread init and termination
...
With the prior locking, we could try to terminate a thread while it
was initializing and perhaps holding global locks leading to deadlock.
2025-08-12 00:51:00 +01:00
Billy Laws
52af0aceea
Windows: Ignore MEM_RESET(_UNDO) allocation protection notifications
...
When these are set the allocation permissions aren't actually updated.
2025-08-07 02:05:35 +01:00
Billy Laws
fddc86c2b1
Windows: Opportunistically detect and replace the mono backpatcher
2025-08-06 22:39:17 +01:00
Billy Laws
8d1d3fe12b
Windows: Implement SyscallHandler code range invalidation
2025-08-06 22:39:17 +01:00
Billy Laws
37ac46273d
Windows: Print extra debug info on image map
2025-08-06 22:39:17 +01:00
Ryan Houdek
369ca5cb72
Merge pull request #4719 from Sonicadvance1/runtime_mode_switch_take2
...
Runtime mode switch take 2
2025-07-30 11:47:54 -07:00
Ryan Houdek
91598d5178
WOW64: Update for GDT
2025-07-29 12:02:37 -07:00
Ryan Houdek
153d20ca59
Rename SHMStats
2025-07-29 12:02:19 -07:00
Ryan Houdek
f6fd9e18d9
Merge pull request #4727 from bylaws/meopd
...
Windows: Lock invalidation tracking for the entire duration of memory ops
2025-07-28 11:59:23 -07:00
Billy Laws
a5d6d8c928
Windows: Lock invalidation tracking for the entire duration of memory ops
2025-07-28 17:46:14 +01:00
Billy Laws
561ee6601b
WOW64: Wrap BTCpuSimulate to ensure correct unwinding
...
Some compiler versions generated FP-relative operations before loading
it from the stack, which would crash wine when APCs were used.
2025-07-28 17:24:49 +01:00
Ryan Houdek
b0c61e2b69
ArchHelpers: Remove pair usage in unaligned handler
...
It's being treated like optional, where a value means it has been
handled, and no value means it hasn't been handled. Stop using pair in
this case.
2025-07-25 13:01:18 -07:00
Billy Laws
c604893944
WOW64: Implement call-ret stack management
2025-07-24 14:53:09 +01:00
Billy Laws
b15e49910a
WOW64: Support inline SMC
...
Matches the ARM64EC handling
2025-07-23 18:46:28 +01:00
Billy Laws
c3c2789cdf
Windows: Specify the single-inst argument when calling the dispatcher
2025-07-23 18:46:28 +01:00
Billy Laws
0361274366
Windows: Support enabling hardware TSO on Asahi
...
Relies on a wine-side patch to expose the prctl to the PE-side
2025-07-15 17:45:21 +01:00
Billy Laws
96bd6ce3e5
Windows: Implement SyscallHandler executable mapping queries
2025-07-10 16:00:24 +01:00
Billy Laws
1a2398d2ce
Windows: Call the protection callback for executable FEX mappings
2025-04-19 14:09:48 +01:00
Billy Laws
0f0e969d8f
Windows: Call the image map callback for ntdll
2025-04-19 14:09:48 +01:00
Billy Laws
05be9e9c37
Windows: Process cross-process notifications before code compilation
2025-04-11 12:07:16 +01:00