Commit aa78b46e authored by Martin Storsjö's avatar Martin Storsjö Committed by Alexandre Julliard

arm64: Expose information about more modern CPU extensions.

parent c9ffab46
......@@ -574,8 +574,12 @@ static void get_cpuinfo( SYSTEM_CPU_INFORMATION *info )
}
if (!strcmp( line, "Features" ))
{
if (strstr(value, "crc32")) features |= CPU_FEATURE_ARM_V8_CRC32;
if (strstr(value, "aes")) features |= CPU_FEATURE_ARM_V8_CRYPTO;
if (strstr(value, "crc32")) features |= CPU_FEATURE_ARM_V8_CRC32;
if (strstr(value, "aes")) features |= CPU_FEATURE_ARM_V8_CRYPTO;
if (strstr(value, "atomics")) features |= CPU_FEATURE_ARM_V81_ATOMIC;
if (strstr(value, "asimddp")) features |= CPU_FEATURE_ARM_V82_DP;
if (strstr(value, "jscvt")) features |= CPU_FEATURE_ARM_V83_JSCVT;
if (strstr(value, "lrcpc")) features |= CPU_FEATURE_ARM_V83_LRCPC;
continue;
}
}
......
......@@ -2693,10 +2693,14 @@ typedef struct _SYSTEM_CPU_INFORMATION {
#define CPU_FEATURE_PAE 0x00200000
#define CPU_FEATURE_DAZ 0x00400000
#define CPU_FEATURE_ARM_VFP_32 0x00000001
#define CPU_FEATURE_ARM_NEON 0x00000002
#define CPU_FEATURE_ARM_V8_CRC32 0x00000004
#define CPU_FEATURE_ARM_V8_CRYPTO 0x00000008
#define CPU_FEATURE_ARM_VFP_32 0x00000001
#define CPU_FEATURE_ARM_NEON 0x00000002
#define CPU_FEATURE_ARM_V8_CRC32 0x00000004
#define CPU_FEATURE_ARM_V8_CRYPTO 0x00000008
#define CPU_FEATURE_ARM_V81_ATOMIC 0x00000010
#define CPU_FEATURE_ARM_V82_DP 0x00000020
#define CPU_FEATURE_ARM_V83_JSCVT 0x00000040
#define CPU_FEATURE_ARM_V83_LRCPC 0x00000080
typedef struct _SYSTEM_PROCESSOR_FEATURES_INFORMATION
{
......
......@@ -440,6 +440,10 @@ static void create_user_shared_data(void)
features[PF_ARM_V8_INSTRUCTIONS_AVAILABLE] = TRUE;
features[PF_ARM_V8_CRC32_INSTRUCTIONS_AVAILABLE] = !!(sci.ProcessorFeatureBits & CPU_FEATURE_ARM_V8_CRC32);
features[PF_ARM_V8_CRYPTO_INSTRUCTIONS_AVAILABLE] = !!(sci.ProcessorFeatureBits & CPU_FEATURE_ARM_V8_CRYPTO);
features[PF_ARM_V81_ATOMIC_INSTRUCTIONS_AVAILABLE]= !!(sci.ProcessorFeatureBits & CPU_FEATURE_ARM_V81_ATOMIC);
features[PF_ARM_V82_DP_INSTRUCTIONS_AVAILABLE] = !!(sci.ProcessorFeatureBits & CPU_FEATURE_ARM_V82_DP);
features[PF_ARM_V83_JSCVT_INSTRUCTIONS_AVAILABLE] = !!(sci.ProcessorFeatureBits & CPU_FEATURE_ARM_V83_JSCVT);
features[PF_ARM_V83_LRCPC_INSTRUCTIONS_AVAILABLE] = !!(sci.ProcessorFeatureBits & CPU_FEATURE_ARM_V83_LRCPC);
features[PF_COMPARE_EXCHANGE_DOUBLE] = TRUE;
features[PF_NX_ENABLED] = TRUE;
features[PF_FASTFAIL_AVAILABLE] = TRUE;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment