From: Brendan Shanks <bshanks@codeweavers.com> Windows sets all the ARM32 features (except EXTERNAL_CACHE_AVAILABLE) even on a CPU and OS that doesn't support ARM32. --- dlls/ntdll/unix/system.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/dlls/ntdll/unix/system.c b/dlls/ntdll/unix/system.c index cf2883f05ae..85e17899df9 100644 --- a/dlls/ntdll/unix/system.c +++ b/dlls/ntdll/unix/system.c @@ -707,6 +707,12 @@ void init_shared_data_cpuinfo( KUSER_SHARED_DATA *data ) if (native_machine == IMAGE_FILE_MACHINE_ARMNT) return; + features[PF_ARM_VFP_32_REGISTERS_AVAILABLE] = TRUE; + features[PF_ARM_NEON_INSTRUCTIONS_AVAILABLE] = TRUE; + features[PF_ARM_DIVIDE_INSTRUCTION_AVAILABLE] = TRUE; + features[PF_ARM_64BIT_LOADSTORE_ATOMIC] = TRUE; + features[PF_ARM_FMAC_INSTRUCTIONS_AVAILABLE] = TRUE; + features[PF_ARM_V8_INSTRUCTIONS_AVAILABLE] = TRUE; features[PF_NX_ENABLED] = TRUE; @@ -715,11 +721,6 @@ void init_shared_data_cpuinfo( KUSER_SHARED_DATA *data ) { switch (supported_machines[i]) { - case IMAGE_FILE_MACHINE_ARMNT: - features[PF_ARM_VFP_32_REGISTERS_AVAILABLE] = TRUE; - features[PF_ARM_NEON_INSTRUCTIONS_AVAILABLE] = TRUE; - features[PF_ARM_DIVIDE_INSTRUCTION_AVAILABLE] = TRUE; - break; case IMAGE_FILE_MACHINE_I386: features[PF_MMX_INSTRUCTIONS_AVAILABLE] = TRUE; features[PF_XMMI_INSTRUCTIONS_AVAILABLE] = TRUE; -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/11267