Made MixSounds be marked as hot

Signed-off-by: Gabriel Ravier <gabrielravier@gabrielAncientIBMv2>
This commit is contained in:
Gabriel Ravier 2020-01-29 17:59:56 +01:00 committed by Gabriel Ravier
parent c15ecbf728
commit 1442299924
2 changed files with 7 additions and 1 deletions

View file

@ -12,6 +12,7 @@
#include "../../Organya.h"
#include "../../WindowsWrapper.h"
#include "../../CommonDefines.h"
#define MIN(a, b) ((a) < (b) ? (a) : (b))
#define MAX(a, b) ((a) > (b) ? (a) : (b))
@ -70,7 +71,8 @@ static void SetSoundPan(AudioBackend_Sound *sound, long pan)
sound->volume_r = sound->pan_r * sound->volume;
}
static void MixSounds(float *stream, unsigned int frames_total)
// Most CPU-intensive function in the game (2/3rd CPU time consumption in my experience), so marked with attrHot so the compiler considers it a hot spot (as it is) when optimizing
attrHot static void MixSounds(float *stream, unsigned int frames_total)
{
for (AudioBackend_Sound *sound = sound_list_head; sound != NULL; sound = sound->next)
{

View file

@ -10,6 +10,10 @@
#define TILES_TO_UNITS(x) ((int)((x) * (0x200 * 0x10)))
#define UNITS_TO_TILES(x) ((int)((x) / (0x200 * 0x10)))
#ifdef __GNUC__
#define attrHot __attribute__((hot))
#endif
enum Collisions
{
COLL_LEFT_WALL = 1, // Touching a left wall