#pragma once
#include "BuildSettings.h"
OPENMPT_NAMESPACE_BEGIN
#ifdef ENABLE_ASM
#define PROCSUPPORT_LM 0x00001
#define PROCSUPPORT_CMOV 0x00004
#define PROCSUPPORT_MMX 0x00010
#define PROCSUPPORT_AMD_MMXEXT 0x00020
#define PROCSUPPORT_AMD_3DNOW 0x00040
#define PROCSUPPORT_AMD_3DNOWEXT 0x00080
#define PROCSUPPORT_SSE 0x00100
#define PROCSUPPORT_SSE2 0x00200
#define PROCSUPPORT_SSE3 0x00400
#define PROCSUPPORT_SSSE3 0x00800
#define PROCSUPPORT_SSE4_1 0x01000
#define PROCSUPPORT_SSE4_2 0x02000
static const uint32 PROCSUPPORT_i586 = 0u ;
static const uint32 PROCSUPPORT_i686 = 0u | PROCSUPPORT_CMOV ;
static const uint32 PROCSUPPORT_x86_SSE = 0u | PROCSUPPORT_CMOV | PROCSUPPORT_SSE ;
static const uint32 PROCSUPPORT_x86_SSE2 = 0u | PROCSUPPORT_CMOV | PROCSUPPORT_SSE | PROCSUPPORT_SSE2 ;
static const uint32 PROCSUPPORT_AMD64 = 0u | PROCSUPPORT_CMOV | PROCSUPPORT_SSE | PROCSUPPORT_SSE2 | PROCSUPPORT_LM;
extern uint32 RealProcSupport;
extern uint32 ProcSupport;
extern char ProcVendorID[16+1];
extern char ProcBrandID[4*4*3+1];
extern uint16 ProcFamily;
extern uint8 ProcModel;
extern uint8 ProcStepping;
void InitProcSupport();
static inline uint32 GetProcSupport()
{
return ProcSupport;
}
static inline uint32 GetRealProcSupport()
{
return RealProcSupport;
}
#endif
#ifdef MODPLUG_TRACKER
uint32 GetMinimumProcSupportFlags();
int GetMinimumSSEVersion();
int GetMinimumAVXVersion();
#endif
OPENMPT_NAMESPACE_END