Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WOW64 backend code invalidation fixes #3589

Merged
merged 4 commits into from
Apr 23, 2024
Merged

Conversation

bylaws
Copy link
Collaborator

@bylaws bylaws commented Apr 18, 2024

  • An invalidation event on one thread will now invalidate the cache across all threads.
  • The entire section is now invalidated on section unmap events, rather than just the region of the section that contained the unmap address - this fixes msacm32 setup in wine.

bylaws added 3 commits April 18, 2024 15:00
This is necessary so that code can be invalidated across all threads
rather than just the initiator on any event that triggers invalidation.
When thread management was moved to the frontend, invalidation moved
from being a global operation to per-thread but the WOW64 backend wasn't
updated to account for this. Now for any invalidation event loop over
all threads tracked by the frontend and invalidate the appropriate
range.
Unmapping a section will unmap the whole size initially allocated,
irrespective of how their protections are changed afterwards. Make sure
to follow this logic for invalidation too.
@Sonicadvance1 Sonicadvance1 merged commit 81c219c into FEX-Emu:main Apr 23, 2024
11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants