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
Tony Wasserka
f7e99678b4
Merge pull request #4730 from Sonicadvance1/fix_thunk_functional_path
...
unittests: Fixes thunk unittest path
2025-07-30 10:20:46 +02:00
Ryan Houdek
2a8f4dbbb6
Arm64EC: Update for GDT
2025-07-29 12:02:38 -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
af3918491c
unittests: Fixes thunk unittest path
...
This hasn't been run in CI for awhile so this was missed when I was
testing it. I need to see what I can do to get this going in CI again.
2025-07-29 11:46:30 -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
Ryan Houdek
d226331ccc
Merge pull request #4726 from bylaws/ijwidjn
...
WOW64: Wrap BTCpuSimulate to ensure correct unwinding
2025-07-28 11:50:34 -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
Billy Laws
f44a7c95f6
Windows: Force-disable SVE usage for now
2025-07-28 17:21:57 +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
56b6b96def
InvalidationTracker: Fix queries in the non-intersecting RWX case
...
This needs to return the base of the non-RWX interval, with a size
that when added to the base is the start of the RWX interval.
2025-07-24 22:58:02 +01:00
Billy Laws
c604893944
WOW64: Implement call-ret stack management
2025-07-24 14:53:09 +01:00
Billy Laws
2f16d25ab8
ARM64EC: Implement call-ret stack management
2025-07-24 14:53:09 +01:00
Billy Laws
132de3160a
Windows: Implement common call-ret stack helpers
...
Allocate the stack with uncommited guard pages on either side, if
any faulting accesses to these occur then the call-ret SP value is
reset to the default and execution resumed.
2025-07-24 14:53:09 +01:00
Billy Laws
7e5c0d7174
LookupCache: Move CodePages to GuestToHostMap
...
Prevents invalidations being missed under the following circumstances:
Thread A JITs block A into the global codebuffer, adding the guest to host
mapping to its CodePages, thread A is then killed.
Thread B then performs SMC on block A. An exception will be triggered but
as CodePages was stored per-thread, and thread A is now killed when all
threads are iterated over by the frontend to perform invalidations it
will be missed.
The accumulator is introduced to handle the case where multiple threads
have the same code entry in their local caches but share the same codebuffer.
Consider a thread C in the above example that also has block A in its cache,
without an accumulator, when invalidating thread B the entrypoint of A is erased
from the shared guest to host map. So when C is invalidated, the local cache entry
for A is not removed since it was removed from CodePages when invalidating B.
2025-07-24 14:52:54 +01:00
Billy Laws
b15e49910a
WOW64: Support inline SMC
...
Matches the ARM64EC handling
2025-07-23 18:46:28 +01:00
Billy Laws
573d0858ac
ARM64EC: Fix inline SMC handling for writes in the same page as the current block
...
Consider a page with two blocks in it, A and B. Block A performs SMC on B then A.
With the previous logic, the SMC write of B would unprotect the page and then
the inline SMC touching A would not be detected and a single-step would not be forced.
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
287344986c
FEXCore: Switch ENTRY_FILL_SRA_SINGLE_INST_REG to TMP2
...
Will allow this to be taken as the second dispatcher argument
2025-07-23 18:29:12 +01:00
Ryan Houdek
fe61aabc52
Merge pull request #4701 from bylaws/noexecwin
...
Windows: Correctly report noexec faults
2025-07-22 12:54:28 -07:00
Billy Laws
8e6fbe7615
Windows: Correctly report noexec faults
2025-07-22 19:30:31 +01:00
Alexandre Julliard
a71a0ed137
WinAPI: Avoid sign-extension of processor count in GetSystemInfo
2025-07-22 19:28:36 +01:00
Paulo Matos
5267cde60e
Whole-tree reformat with clang-format-19
2025-07-17 08:10:00 +02: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
793e3adbb4
ARM64EC: Rely on syscall export sorting for deriving their IDs
...
Rather than relying on wine-specific alphabetical behaviour, that
has since been changed. Rely on their addresses being sorted which
is more stable behaviour also present in Windows.
2025-07-10 16:00:07 +01:00
Tony Wasserka
23b69271eb
Use consistent log message formatting for all modules
2025-06-16 13:54:03 +02:00
Tony Wasserka
992d86bbc1
LogManager: Shorten debug level strings to a single letter
2025-06-13 14:31:25 +02:00
Jacek Caban
ec0a2a8671
Use -print-libgcc-file-name to get the compiler-rt file name
...
Avoid hardcoding the file name. Upstream Clang currently expects the aarch64 variant of
compiler-rt. Changing this to use arm64ec in the file name could be problematic in the future,
if the MinGW toolchain gains support for ARM64X. Querying Clang for the correct file name is
the most forward-compatible approach.
2025-05-16 11:24:57 +02:00
Sasha Finkelstein
b1bbc37c59
Windows: Fix building with llvm-libcxx
...
Libcxx uses GetSystemTimePreciseAsFileTime if _WIN32_WINNT specifies
a version new enough to have it.
2025-05-07 23:47:24 +02:00
Billy Laws
e3088686db
InvalidationTracker: Track executable mappings
2025-04-19 14:09:48 +01:00
Billy Laws
771162cf14
InvalidationTracker: Track the protection of regions mapped at startup
...
Code can be injected into a process by e.g. the chromium sandbox before
FEX is loaded.
2025-04-19 14:09:48 +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
Billy Laws
890653ae39
WOW64: Handle the image mapped callback
2025-04-11 12:07:16 +01:00
Billy Laws
8644fdd595
ARM64EC: Slight cleanup
2025-04-11 12:07:16 +01:00
Ryan Houdek
7ca757bb6d
FEXCore: Move CPUInfo to FEX
...
This is only ever used in the frontend now.
2025-04-08 22:54:43 -07:00
Tony Wasserka
7efd827e78
Merge pull request #4378 from bylaws/volmd
...
Implement PE volatile metadata support
2025-03-25 10:23:53 +01:00
Ryan Houdek
2f6f8b93e9
Merge pull request #4424 from Sonicadvance1/converted_options
...
Convert config options once
2025-03-24 19:49:32 -07:00
Billy Laws
51281f6a3a
ARM64EC: Load volatile metadata
2025-03-24 22:01:49 +00:00
Billy Laws
f51fd6c78d
Move IntervalList to FEXCore
2025-03-24 22:01:49 +00:00
Billy Laws
03cf15a9e1
Windows: Add IntervalList batch Insert and Contains methods
2025-03-24 22:01:49 +00:00
Ryan Houdek
9bf47b3f23
Convert config options once
...
Instead of keeping the vlaue as a string array in the MetaLayer, convert
the value to its final type once.
Improves performance in some hotpaths that were doing config based
string conversion in a relatively high frequency.
2025-03-22 17:32:10 -07:00
Ryan Houdek
c8437d2303
WINE: Support sleeping a process
...
Support using an app profile for putting a process to sleep at the
start. Useful for getting a debugger attached early.
2025-03-21 12:48:38 -07:00
Billy Laws
7097532ddf
Windows: Support newer mingw toolchains
2025-03-05 21:24:30 +00:00