-
aaa73dd5
by Jinoh Kang at 2025-02-18T12:06:13+01:00
include: Fix ReadNoFence64 on i386.
64-bit volatile loads are not atomic on i386. Both i686-w64-mingw32-gcc
and x86 MSVC splits 64-bit loads into a pair of load ops.
Fix this by using a FILD/FISTP pair, which is also used to implement C11
atomic_load() by i686-w64-mingw32-gcc.
Fixes: f82b1c1fcf770a5d6fa02c3f286282be79a201b8
-
45563dd1
by Jinoh Kang at 2025-02-18T12:06:16+01:00
server: Fix incorrect usage of __WINE_ATOMIC_STORE_RELEASE in SHARED_WRITE_BEGIN/SHARED_WRITE_END.
64-bit volatile stores are not atomic on i386. Both
i686-w64-mingw32-gcc and x86 MSVC splits 64-bit stores into a pair of
store ops.
Fix this by using a FILD/FISTP pair, which is also used to implement C11
atomic_store() by i686-w64-mingw32-gcc.
Fixes: fac940dfac314c2b1c120cf9ff8503259153c5a0
-
14cb2782
by Jinoh Kang at 2025-02-18T12:06:17+01:00
include: Prevent misuse of __WINE_ATOMIC_* helper macros for non-atomic large accesses.