llvm/llvm/lib/Target/ARM/MCTargetDesc/ARMBaseInfo.h

//===-- ARMBaseInfo.h - Top level definitions for ARM -------- --*- C++ -*-===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//
//
// This file contains small standalone helper functions and enum definitions for
// the ARM target useful for the compiler back-end and the MC libraries.
// As such, it deliberately does not include references to LLVM core
// code gen types, passes, etc..
//
//===----------------------------------------------------------------------===//

#ifndef LLVM_LIB_TARGET_ARM_MCTARGETDESC_ARMBASEINFO_H
#define LLVM_LIB_TARGET_ARM_MCTARGETDESC_ARMBASEINFO_H

#include "ARMMCTargetDesc.h"
#include "llvm/Support/ErrorHandling.h"
#include "Utils/ARMBaseInfo.h"

namespace llvm {

namespace ARM_PROC {
  enum IMod {};

  enum IFlags {};

  inline static const char *IFlagsToString(unsigned val) {}

  inline static const char *IModToString(unsigned val) {}
}

namespace ARM_MB {
  // The Memory Barrier Option constants map directly to the 4-bit encoding of
  // the option field for memory barrier operations.
  enum MemBOpt {};

  inline static const char *MemBOptToString(unsigned val, bool HasV8) {}
} // namespace ARM_MB

namespace ARM_TSB {
  enum TraceSyncBOpt {};

  inline static const char *TraceSyncBOptToString(unsigned val) {}
} // namespace ARM_TSB

namespace ARM_ISB {
  enum InstSyncBOpt {};

  inline static const char *InstSyncBOptToString(unsigned val) {}
} // namespace ARM_ISB

/// isARMLowRegister - Returns true if the register is a low register (r0-r7).
///
static inline bool isARMLowRegister(MCRegister Reg) {}

/// ARMII - This namespace holds all of the target specific flags that
/// instruction info tracks.
///
namespace ARMII {

  /// ARM Index Modes
  enum IndexMode {};

  /// ARM Addressing Modes
  enum AddrMode {};

  inline static const char *AddrModeToString(AddrMode addrmode) {}

  /// Target Operand Flag enum.
  enum TOF {};

  enum {};

} // end namespace ARMII

} // end namespace llvm;

#endif