Add likely/unlikely defines for using built-in function provided by GCC

This commit is contained in:
KaidoRen 2019-05-31 10:07:29 +05:00
parent 5cc2725229
commit 94cee479ed
5 changed files with 16 additions and 1 deletions

View File

@ -43,7 +43,7 @@ static cell AMX_NATIVE_CALL get_xvar_id(AMX *amx, cell *params)
for (auto var : g_sInaccessibleXVars)
{
if (!strcmp(sName, var))
if (likely(!strcmp(sName, var)))
{
return -1;
}

View File

@ -53,6 +53,7 @@
#include "CFrameAction.h"
#include <amxmodx_version.h>
#include <HLTypeConversion.h>
#include "extdef.h"
#define AMXXLOG_Log g_log.Log
#define AMXXLOG_Error g_log.LogError

10
amxmodx/extdef.h Normal file
View File

@ -0,0 +1,10 @@
#pragma once
// Manual branch optimization for GCC 3.0.0 and newer
#if !defined(__GNUC__) || __GNUC__ < 3
#define likely(x) (x)
#define unlikely(x) (x)
#else
#define likely(x) __builtin_expect(!!(x), 1)
#define unlikely(x) __builtin_expect(!!(x), 0)
#endif

View File

@ -429,6 +429,7 @@ md -p JIT 2&gt;NUL
<ClInclude Include="..\CVault.h" />
<ClInclude Include="..\datastructs.h" />
<ClInclude Include="..\debugger.h" />
<ClInclude Include="..\extdef.h" />
<ClInclude Include="..\fakemeta.h" />
<ClInclude Include="..\format.h" />
<ClInclude Include="..\gameconfigs.h" />

View File

@ -584,6 +584,9 @@
<ClInclude Include="..\CFrameAction.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\extdef.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="..\version.rc">