From: Jacek Caban jacek@codeweavers.com
Also fix unused dummy_object_vtbl variable warnings on targets skipping the test. --- dlls/d3d9/tests/device.c | 46 ++++++++++++++++++++++------------------ 1 file changed, 25 insertions(+), 21 deletions(-)
diff --git a/dlls/d3d9/tests/device.c b/dlls/d3d9/tests/device.c index 9d92b248dd9..53dc9ee55ed 100644 --- a/dlls/d3d9/tests/device.c +++ b/dlls/d3d9/tests/device.c @@ -4906,28 +4906,34 @@ cleanup: }
+static const GUID d3d9_private_data_test_guid = +{ + 0xfdb37466, + 0x428f, + 0x4edf, + {0xa3,0x7f,0x9b,0x1d,0xf4,0x88,0xc5,0xfc} +}; + +#if defined(__i386__) || (defined(__x86_64__) && !defined(__arm64ec__) && (defined(__GNUC__) || defined(__clang__))) + static inline void set_fpu_cw(WORD cw) { -#if defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__)) -#define D3D9_TEST_SET_FPU_CW 1 - __asm__ volatile ("fnclex"); - __asm__ volatile ("fldcw %0" : : "m" (cw)); -#elif defined(__i386__) && defined(_MSC_VER) -#define D3D9_TEST_SET_FPU_CW 1 +#if defined(_MSC_VER) && defined(__i386__) __asm fnclex; __asm fldcw cw; +#else + __asm__ volatile ("fnclex"); + __asm__ volatile ("fldcw %0" : : "m" (cw)); #endif }
static inline WORD get_fpu_cw(void) { WORD cw = 0; -#if defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__)) -#define D3D9_TEST_GET_FPU_CW 1 - __asm__ volatile ("fnstcw %0" : "=m" (cw)); -#elif defined(__i386__) && defined(_MSC_VER) -#define D3D9_TEST_GET_FPU_CW 1 +#if defined(_MSC_VER) && defined(__i386__) __asm fnstcw cw; +#else + __asm__ volatile ("fnstcw %0" : "=m" (cw)); #endif return cw; } @@ -4964,17 +4970,8 @@ static const IUnknownVtbl dummy_object_vtbl = dummy_object_Release, };
-static const GUID d3d9_private_data_test_guid = -{ - 0xfdb37466, - 0x428f, - 0x4edf, - {0xa3,0x7f,0x9b,0x1d,0xf4,0x88,0xc5,0xfc} -}; - static void test_fpu_setup(void) { -#if defined(D3D9_TEST_SET_FPU_CW) && defined(D3D9_TEST_GET_FPU_CW) static const BOOL is_64bit = sizeof(void *) > sizeof(int); IUnknown dummy_object = {&dummy_object_vtbl}; struct device_desc device_desc; @@ -5079,9 +5076,16 @@ static void test_fpu_setup(void) done: IDirect3D9_Release(d3d9); DestroyWindow(window); -#endif }
+#else + +static void test_fpu_setup(void) +{ +} + +#endif + static void test_window_style(void) { RECT focus_rect, device_rect, fullscreen_rect, r, r2;