• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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