1
0
mirror of https://github.com/FunkyFr3sh/cnc-ddraw.git synced 2025-03-15 06:04:49 +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 "ddraw.h"
#ifdef __GNUC__
#define __try
#define __except(x) if (0)
#endif
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)
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)

View File

@ -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;
}