mirror of
https://github.com/FEX-Emu/FEX.git
synced 2026-10-14 07:00:43 +02:00
633ea045e50f3f09c6d5e9be04c54a0e285f8a50
cmpxchg/cmpxchg8b doesn't have alignment requirements on x86, which means applications rely on unaligned behaviour support with it. Steam relies on this to work for a linked list array of jobs in some internal job queueing system. It will end up always aligning by offsets of 4 since it stores a couple of pointers. Doesn't currently support the case of unaligned cmpxchg8b crossing a cacheline, which ends up being semi-broken depending on which x86 behaviour the application is expected. Intel CPUs do the "Big ring lock" or "split locks". Which means accesses across cachelines are atomic. AMD CPUs will tear the value across the cacheline, which is expected x86 behaviour by spec. If they are expecting Intel behaviour, then that application is just broken on non-Intel platforms unless they are fine with a tear.
FEX - Fast x86 emulation frontend
This is the frontend application and tooling used for development and debugging of the FEXCore library.
Dependencies
- FEXCore
- cpp-optparse
- imgui
- json-maker
- tiny-json
- boost interprocess (sadly)
- A C++17 compliant compiler (There are assumptions made about using Clang and LTO)
- clang-tidy if you want the code cleaned up
- cmake
Description
GitHub pull mirror of FEX-Emu/FEX. GitHub repository ID: 245352386. Gitea import mode: github-full.
https://github.com/FEX-Emu/FEX
Readme
MIT
58 MiB
0 Stars
1 Watchers
0 Forks
Releases
67
FEX Release FEX-2610
Latest
Languages
C++
56%
Assembly
37.8%
C
3.8%
Python
1.2%
CMake
0.9%
Other
0.2%