From e6b4eabe5b87dbff7326622526da702fd7f28196 Mon Sep 17 00:00:00 2001 From: FunkyFr3sh Date: Fri, 4 Aug 2023 07:18:29 +0200 Subject: [PATCH] add __GNUC__ defines --- inc/dd.h | 4 ++++ src/hook.c | 8 -------- src/utils.c | 30 ++++++++++++------------------ 3 files changed, 16 insertions(+), 26 deletions(-) diff --git a/inc/dd.h b/inc/dd.h index 290886d..0a85966 100644 --- a/inc/dd.h +++ b/inc/dd.h @@ -5,6 +5,10 @@ #include #include "ddraw.h" +#ifdef __GNUC__ +#define __try +#define __except(x) if (0) +#endif typedef HRESULT(WINAPI* DIRECTDRAWCREATEPROC)(GUID FAR*, LPDIRECTDRAW FAR*, IUnknown FAR*); diff --git a/src/hook.c b/src/hook.c index 8add6b2..3ed0b4a 100644 --- a/src/hook.c +++ b/src/hook.c @@ -163,10 +163,8 @@ void hook_patch_obfuscated_iat_list(HMODULE hmod, BOOL unhook, HOOKLIST* hooks) if (!hmod || hmod == INVALID_HANDLE_VALUE || !hooks) return; -#ifdef _MSC_VER __try { -#endif PIMAGE_DOS_HEADER dos_header = (PIMAGE_DOS_HEADER)hmod; if (dos_header->e_magic != IMAGE_DOS_SIGNATURE) return; @@ -259,12 +257,10 @@ void hook_patch_obfuscated_iat_list(HMODULE hmod, BOOL unhook, HOOKLIST* hooks) import_desc++; } -#ifdef _MSC_VER } __except (EXCEPTION_EXECUTE_HANDLER) { } -#endif } void hook_patch_iat_list(HMODULE hmod, BOOL unhook, HOOKLIST* hooks) @@ -274,10 +270,8 @@ void hook_patch_iat_list(HMODULE hmod, BOOL unhook, HOOKLIST* hooks) if (!hmod || hmod == INVALID_HANDLE_VALUE || !hooks) return; -#ifdef _MSC_VER __try { -#endif PIMAGE_DOS_HEADER dos_header = (PIMAGE_DOS_HEADER)hmod; if (dos_header->e_magic != IMAGE_DOS_SIGNATURE) return; @@ -362,12 +356,10 @@ void hook_patch_iat_list(HMODULE hmod, BOOL unhook, HOOKLIST* hooks) import_desc++; } -#ifdef _MSC_VER } __except (EXCEPTION_EXECUTE_HANDLER) { } -#endif } void hook_create(HOOKLIST* hooks, BOOL initial_hook) diff --git a/src/utils.c b/src/utils.c index e995da0..b6f1486 100644 --- a/src/utils.c +++ b/src/utils.c @@ -24,38 +24,32 @@ BOOL util_is_avx_supported() BOOL result = FALSE; -#ifdef _MSC_VER __try { -#endif + int info[4] = { 0 }; + __cpuid(info, 0); - int info[4] = { 0 }; - __cpuid(info, 0); - - if (info[0] >= 1) - { - __cpuid(info, 1); - - if ((info[2] & CPU_AVX_BITS) == CPU_AVX_BITS) + if (info[0] >= 1) { - unsigned int xcr0 = 0; + __cpuid(info, 1); + + if ((info[2] & CPU_AVX_BITS) == CPU_AVX_BITS) + { + unsigned int xcr0 = 0; #ifdef _MSC_VER - xcr0 = (unsigned int)_xgetbv(_XCR_XFEATURE_ENABLED_MASK); + xcr0 = (unsigned int)_xgetbv(_XCR_XFEATURE_ENABLED_MASK); #elif __AVX__ - __asm__("xgetbv" : "=a" (xcr0) : "c" (0) : "%edx"); + __asm__("xgetbv" : "=a" (xcr0) : "c" (0) : "%edx"); #endif - result = (xcr0 & OS_AVX_BITS) == OS_AVX_BITS; + result = (xcr0 & OS_AVX_BITS) == OS_AVX_BITS; + } } } - -#ifdef _MSC_VER - } __except (EXCEPTION_EXECUTE_HANDLER) { } -#endif return result; }