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