diff --git a/dlls/d3d8/device.c b/dlls/d3d8/device.c index 9be6436f8b4..401677e8261 100644 --- a/dlls/d3d8/device.c +++ b/dlls/d3d8/device.c @@ -3649,16 +3649,16 @@ static const struct wined3d_device_parent_ops d3d8_wined3d_device_parent_ops = static void setup_fpu(void) { -#if defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__)) - WORD cw; - __asm__ volatile ("fnstcw %0" : "=m" (cw)); - cw = (cw & ~0xf3f) | 0x3f; - __asm__ volatile ("fldcw %0" : : "m" (cw)); -#elif defined(__i386__) && defined(_MSC_VER) +#if defined(__i386__) && defined(_MSC_VER) WORD cw; __asm fnstcw cw; cw = (cw & ~0xf3f) | 0x3f; __asm fldcw cw; +#elif defined(__i386__) || (defined(__x86_64__) && !defined(__arm64ec__) && (defined(__GNUC__) || defined(__clang__))) + WORD cw; + __asm__ volatile ("fnstcw %0" : "=m" (cw)); + cw = (cw & ~0xf3f) | 0x3f; + __asm__ volatile ("fldcw %0" : : "m" (cw)); #else FIXME("FPU setup not implemented for this platform.\n"); #endif