1 /*===- llvm/Config/Targets.def - LLVM Target Architectures ------*- C++ -*-===*\ 2 |* *| 3 |* The LLVM Compiler Infrastructure *| 4 |* *| 5 |* This file is distributed under the University of Illinois Open Source *| 6 |* License. See LICENSE.TXT for details. *| 7 |* *| 8 |*===----------------------------------------------------------------------===*| 9 |* *| 10 |* This file enumerates all of the target architectures supported by *| 11 |* this build of LLVM. Clients of this file should define the *| 12 |* LLVM_TARGET macro to be a function-like macro with a single *| 13 |* parameter (the name of the target); including this file will then *| 14 |* enumerate all of the targets. *| 15 |* *| 16 |* The set of targets supported by LLVM is generated at configuration *| 17 |* time, at which point this header is generated. Do not modify this *| 18 |* header directly. *| 19 |* *| 20 \*===----------------------------------------------------------------------===*/ 21 22 #ifndef LLVM_TARGET 23 # error Please define the macro LLVM_TARGET(TargetName) 24 #endif 25 26 #if defined(__arm__) 27 LLVM_TARGET(ARM) 28 #elif defined(__mips__) 29 LLVM_TARGET(Mips) 30 #elif defined(__i386__) || defined(__x86_64__) 31 LLVM_TARGET(X86) 32 33 #if defined(FORCE_BUILD_ARM) 34 LLVM_TARGET(ARM) 35 LLVM_TARGET(AArch64) 36 #endif 37 38 #elif defined(__aarch64__) 39 LLVM_TARGET(ARM) 40 LLVM_TARGET(AArch64) 41 #else 42 # error Unsupported TARGET_ARCH for LLVM_TARGET 43 #endif 44 45 #undef LLVM_TARGET 46