Software 44357 Published by

FEX-2605 delivers major performance gains for legacy x87 and SSE math routines while patching flag and segment register bugs that previously caused game stutters or crashes. The release also fixes a race condition on ARM64ec systems that triggered controller input failures when running WINE or Proton. Early Snapdragon X2 Elite support is included, with developers adjusting for hardware quirks like non-standard cycle counters and disabled RNG features. Most importantly, the update refines split-lock emulation by raising cache line thresholds to prevent SIGBUS crashes during atomic memory operations on Qualcomm processors.



FEX-2605 Release Brings Faster x87 Math and Snapdragon X2 Elite Support

The latest FEX-2605 release finally tackles some stubborn JIT bugs while adding early support for the new Snapdragon X2 Elite platform. Emulators usually lag behind hardware, but this update actually optimizes legacy math instructions and fixes a race condition that crashes controller input on ARM64ec systems. Users running WINE or Proton on Qualcomm silicon will notice smoother performance across several older titles.

x87 and SSE Math Optimizations That Actually Matter

The development team spent time digging into the reduced precision path for legacy floating point operations. ATAN, FYL2X, FSCALE, and F2XM1 now run two to four times faster because the JIT compiler skips unnecessary table lookups and handles denormal results correctly. SSE MAXPS and MAXPD instructions also get proper tie breaking behavior when dealing with infinity or NaN values. These changes might sound like academic tweaks, but they directly stop games from stuttering during physics calculations or audio processing. The MMX PSHUFW instruction got similar treatment, collapsing heavy lookup tables into single instructions where possible. Even the FIST family of operations now bypasses TSO emulation when accessing memory, which cuts down on unnecessary synchronization overhead.

Flag Corrections and Segment Register Fixes

A recent contributor spotted that cmpxchg8b and cmpxchg16b were setting CPU flags incorrectly after execution. That mistake forces applications to spin aggressively while waiting for memory operations to settle, which explains why some older titles would freeze or lag under heavy load. The fix also covers sixteen bit segment register push and pop routines on modern sixty four bit processors. Nobody really uses those legacy registers anymore, but keeping the emulation accurate prevents obscure crashes in compatibility layers that still rely on them.

ARM64ec Controller Crash and CLZERO Support

The update resolves a nasty race condition involving the suspend doorbell feature on ARM64ec processors. WINE uses this mechanism to pause emulated threads safely, but FEX previously crashed when SDL triggered frequent thread suspensions with controllers like the DualSense plugged in. The fix stabilizes input handling without adding noticeable latency. Developers also added proper DCZID_EL0 querying so CLZERO instructions execute correctly instead of crashing applications that unconditionally call them. Microbenchmarks caught this oversight early, and it keeps compatibility layers from breaking on edge cases.

Snapdragon X2 Elite Hardware Quirks and Atomic Operations

Testing the new Qualcomm platform revealed several hardware deviations that required immediate adjustments. The RNG feature stays disabled because RNDRRS remains broken just like on the previous generation. Cycle counters run at nineteen point two megahertz, which aligns with ARMv9.0-a compliance rather than the mandated gigahertz rate for ARMv9.1-a. SVE2 and SME support finally work alongside KVM virtualization, making the chip much more viable for desktop emulation. The real headline involves how the processor handles split locks on atomic memory operations. x86 allows unaligned accesses up to a sixty four byte cache line boundary without penalty, but ARM raises a SIGBUS signal when crossing sixteen bytes. Qualcomm partially fixed this by raising the threshold back to sixty four bytes for RMW operations, though acquire loads and release stores still trip the error at sixteen bytes. FEX now catches those signals and emulates the split lock behavior safely, preventing crashes in games that rely on hand coded memory routines.

Release FEX Release FEX-2605

Read the blog post at FEX-Emu's Site! We're not even going to do an intro this month, we got ourselves some new hardware this month to play with let's go!

Release FEX Release FEX-2605 ยท FEX-Emu/FEX

Keep an eye on kernel updates since Qualcomm is pushing GPU support with each release. The emulator should handle most daily tasks without breaking a sweat once the drivers stabilize.