[AArch64][compiler-rt] Add LSE support for Windows. (#116706)

This commit is contained in:
Daniel Kiss 2024-11-20 11:05:31 +01:00 committed by GitHub
parent 62bf5840a6
commit 77bf34c315
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 14 additions and 0 deletions

View File

@ -48,6 +48,8 @@ _Bool __aarch64_have_lse_atomics
#elif defined(__linux__) && __has_include(<sys/auxv.h>)
#include "aarch64/hwcap.inc"
#include "aarch64/lse_atomics/getauxval.inc"
#elif defined(_WIN32)
#include "aarch64/lse_atomics/windows.inc"
#else
// When unimplemented, we leave __aarch64_have_lse_atomics initialized to false.
#endif

View File

@ -0,0 +1,12 @@
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include <processthreadsapi.h>
#ifndef PF_ARM_V81_ATOMIC_INSTRUCTIONS_AVAILABLE
#define PF_ARM_V81_ATOMIC_INSTRUCTIONS_AVAILABLE 34
#endif
static void CONSTRUCTOR_ATTRIBUTE init_have_lse_atomics(void) {
if (IsProcessorFeaturePresent(PF_ARM_V81_ATOMIC_INSTRUCTIONS_AVAILABLE))
__aarch64_have_lse_atomics = true;
}