1 //===-- Compile time architecture detection -------------------------------===//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
8 
9 #if defined(__pnacl__) || defined(__CLR_VER)
10 #define LLVM_LIBC_ARCH_VM
11 #endif
12 
13 #if (defined(_M_IX86) || defined(__i386__)) && !defined(LLVM_LIBC_ARCH_VM)
14 #define LLVM_LIBC_ARCH_X86_32
15 #endif
16 
17 #if (defined(_M_X64) || defined(__x86_64__)) && !defined(LLVM_LIBC_ARCH_VM)
18 #define LLVM_LIBC_ARCH_X86_64
19 #endif
20 
21 #if defined(LLVM_LIBC_ARCH_X86_32) || defined(LLVM_LIBC_ARCH_X86_64)
22 #define LLVM_LIBC_ARCH_X86
23 #endif
24 
25 #if (defined(__arm__) || defined(_M_ARM))
26 #define LLVM_LIBC_ARCH_ARM
27 #endif
28 
29 #if defined(__aarch64__) || defined(__arm64__) || defined(_M_ARM64)
30 #define LLVM_LIBC_ARCH_AARCH64
31 #endif
32 
33 #if (defined(LLVM_LIBC_ARCH_AARCH64) || defined(LLVM_LIBC_ARCH_ARM))
34 #define LLVM_LIBC_ARCH_ANY_ARM
35 #endif
36