1
0
mirror of https://github.com/FunkyFr3sh/cnc-ddraw.git synced 2025-03-25 01:57:47 +01:00

add __GNUC__ defines

This commit is contained in:
FunkyFr3sh 2023-08-04 07:18:29 +02:00
parent 86fe2e5a90
commit e6b4eabe5b
3 changed files with 16 additions and 26 deletions

View File

@ -5,6 +5,10 @@
#include <windows.h> #include <windows.h>
#include "ddraw.h" #include "ddraw.h"
#ifdef __GNUC__
#define __try
#define __except(x) if (0)
#endif
typedef HRESULT(WINAPI* DIRECTDRAWCREATEPROC)(GUID FAR*, LPDIRECTDRAW FAR*, IUnknown FAR*); typedef HRESULT(WINAPI* DIRECTDRAWCREATEPROC)(GUID FAR*, LPDIRECTDRAW FAR*, IUnknown FAR*);

View File

@ -163,10 +163,8 @@ void hook_patch_obfuscated_iat_list(HMODULE hmod, BOOL unhook, HOOKLIST* hooks)
if (!hmod || hmod == INVALID_HANDLE_VALUE || !hooks) if (!hmod || hmod == INVALID_HANDLE_VALUE || !hooks)
return; return;
#ifdef _MSC_VER
__try __try
{ {
#endif
PIMAGE_DOS_HEADER dos_header = (PIMAGE_DOS_HEADER)hmod; PIMAGE_DOS_HEADER dos_header = (PIMAGE_DOS_HEADER)hmod;
if (dos_header->e_magic != IMAGE_DOS_SIGNATURE) if (dos_header->e_magic != IMAGE_DOS_SIGNATURE)
return; return;
@ -259,12 +257,10 @@ void hook_patch_obfuscated_iat_list(HMODULE hmod, BOOL unhook, HOOKLIST* hooks)
import_desc++; import_desc++;
} }
#ifdef _MSC_VER
} }
__except (EXCEPTION_EXECUTE_HANDLER) __except (EXCEPTION_EXECUTE_HANDLER)
{ {
} }
#endif
} }
void hook_patch_iat_list(HMODULE hmod, BOOL unhook, HOOKLIST* hooks) 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) if (!hmod || hmod == INVALID_HANDLE_VALUE || !hooks)
return; return;
#ifdef _MSC_VER
__try __try
{ {
#endif
PIMAGE_DOS_HEADER dos_header = (PIMAGE_DOS_HEADER)hmod; PIMAGE_DOS_HEADER dos_header = (PIMAGE_DOS_HEADER)hmod;
if (dos_header->e_magic != IMAGE_DOS_SIGNATURE) if (dos_header->e_magic != IMAGE_DOS_SIGNATURE)
return; return;
@ -362,12 +356,10 @@ void hook_patch_iat_list(HMODULE hmod, BOOL unhook, HOOKLIST* hooks)
import_desc++; import_desc++;
} }
#ifdef _MSC_VER
} }
__except (EXCEPTION_EXECUTE_HANDLER) __except (EXCEPTION_EXECUTE_HANDLER)
{ {
} }
#endif
} }
void hook_create(HOOKLIST* hooks, BOOL initial_hook) void hook_create(HOOKLIST* hooks, BOOL initial_hook)

View File

@ -24,38 +24,32 @@ BOOL util_is_avx_supported()
BOOL result = FALSE; BOOL result = FALSE;
#ifdef _MSC_VER
__try __try
{ {
#endif int info[4] = { 0 };
__cpuid(info, 0);
int info[4] = { 0 }; if (info[0] >= 1)
__cpuid(info, 0);
if (info[0] >= 1)
{
__cpuid(info, 1);
if ((info[2] & CPU_AVX_BITS) == CPU_AVX_BITS)
{ {
unsigned int xcr0 = 0; __cpuid(info, 1);
if ((info[2] & CPU_AVX_BITS) == CPU_AVX_BITS)
{
unsigned int xcr0 = 0;
#ifdef _MSC_VER #ifdef _MSC_VER
xcr0 = (unsigned int)_xgetbv(_XCR_XFEATURE_ENABLED_MASK); xcr0 = (unsigned int)_xgetbv(_XCR_XFEATURE_ENABLED_MASK);
#elif __AVX__ #elif __AVX__
__asm__("xgetbv" : "=a" (xcr0) : "c" (0) : "%edx"); __asm__("xgetbv" : "=a" (xcr0) : "c" (0) : "%edx");
#endif #endif
result = (xcr0 & OS_AVX_BITS) == OS_AVX_BITS; result = (xcr0 & OS_AVX_BITS) == OS_AVX_BITS;
}
} }
} }
#ifdef _MSC_VER
}
__except (EXCEPTION_EXECUTE_HANDLER) __except (EXCEPTION_EXECUTE_HANDLER)
{ {
} }
#endif
return result; return result;
} }