Add RETRO_SIMD_POPCNT and RETRO_SIMD_MOVBE

This commit is contained in:
twinaphex 2015-12-25 06:14:57 +01:00
parent 8ecae597e9
commit 8b130b3866
3 changed files with 9 additions and 3 deletions

View File

@ -421,11 +421,11 @@ static void linux_cpu_init(void)
regs[3] == VENDOR_INTEL_d);
x86_cpuid(1, regs);
if ((regs[2] & (1 << 9)) != 0)
if ((regs[2] & (1 << 9)))
g_cpuFeatures |= CPU_X86_FEATURE_SSSE3;
if ((regs[2] & (1 << 23)) != 0)
if ((regs[2] & (1 << 23)))
g_cpuFeatures |= CPU_X86_FEATURE_POPCNT;
if (vendorIsIntel && (regs[2] & (1 << 22)) != 0)
if (vendorIsIntel && (regs[2] & (1 << 22)))
g_cpuFeatures |= CPU_X86_FEATURE_MOVBE;
#endif

View File

@ -1166,6 +1166,8 @@ struct retro_log_callback
#define RETRO_SIMD_AES (1 << 15)
#define RETRO_SIMD_VFPV3 (1 << 16)
#define RETRO_SIMD_VFPV4 (1 << 17)
#define RETRO_SIMD_POPCNT (1 << 18)
#define RETRO_SIMD_MOVBE (1 << 19)
typedef uint64_t retro_perf_tick_t;
typedef int64_t retro_time_t;

View File

@ -486,6 +486,7 @@ uint64_t retro_get_cpu_features(void)
cpu |= RETRO_SIMD_MMXEXT;
}
if (flags[3] & (1 << 26))
cpu |= RETRO_SIMD_SSE2;
@ -501,6 +502,9 @@ uint64_t retro_get_cpu_features(void)
if (flags[2] & (1 << 20))
cpu |= RETRO_SIMD_SSE42;
if ((flags[2] & (1 << 23)))
cpu |= RETRO_SIMD_POPCNT;
if (flags[2] & (1 << 25))
cpu |= RETRO_SIMD_AES;