//===- llvm/Config/Disassemblers.def - LLVM Assembly Parsers ----*- C++ -*-===//
//
//                     The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
// This file enumerates all of the assembly-language parsers
// supported by this build of LLVM. Clients of this file should define
// the LLVM_ASM_PARSER macro to be a function-like macro with a
// single parameter (the name of the target whose assembly can be
// generated); including this file will then enumerate all of the
// targets with assembly parsers.
//
// The set of targets supported by LLVM is generated at configuration
// time, at which point this header is generated. Do not modify this
// header directly.
//
//===----------------------------------------------------------------------===//

#ifndef LLVM_DISASSEMBLER
#  error Please define the macro LLVM_DISASSEMBLER(TargetName)
#endif

#if defined(__arm__)
  LLVM_DISASSEMBLER(ARM)
#elif defined(__mips__)
  LLVM_DISASSEMBLER(Mips)
#elif defined(__i386__) || defined(__x86_64__)
  LLVM_DISASSEMBLER(X86)

#if defined(FORCE_BUILD_ARM)
  LLVM_DISASSEMBLER(ARM)
  LLVM_DISASSEMBLER(AArch64)
#endif

#elif defined(__aarch64__)
  LLVM_DISASSEMBLER(ARM)
  LLVM_DISASSEMBLER(AArch64)
#else
#  error Unsupported TARGET_ARCH for LLVM_DISASSEMBLER
#endif

#undef LLVM_DISASSEMBLER
