aboutsummaryrefslogtreecommitdiff
path: root/contrib/llvm-project/compiler-rt/lib/builtins/cpu_model/aarch64/lse_atomics/fuchsia.inc
blob: 91eac70ae6c5e9a1fdce7832763f8175f7c93ff1 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
#include <zircon/features.h>
#include <zircon/syscalls.h>

static void CONSTRUCTOR_ATTRIBUTE init_have_lse_atomics(void) {
  // This ensures the vDSO is a direct link-time dependency of anything that
  // needs this initializer code.
#pragma comment(lib, "zircon")
  uint32_t features;
  zx_status_t status = _zx_system_get_features(ZX_FEATURE_KIND_CPU, &features);
  __aarch64_have_lse_atomics =
      status == ZX_OK && (features & ZX_ARM64_FEATURE_ISA_ATOMICS) != 0;
}