llvm/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonBaseInfo.h

//===- HexagonBaseInfo.h - Top level definitions for Hexagon ----*- 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 Hexagon 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_HEXAGON_MCTARGETDESC_HEXAGONBASEINFO_H
#define LLVM_LIB_TARGET_HEXAGON_MCTARGETDESC_HEXAGONBASEINFO_H

#include "HexagonDepITypes.h"
#include "MCTargetDesc/HexagonMCTargetDesc.h"

namespace llvm {

/// HexagonII - This namespace holds all of the target specific flags that
/// instruction info tracks.
namespace HexagonII {
  unsigned const TypeCVI_FIRST =;
  unsigned const TypeCVI_LAST =;

  enum AddrMode {};

  enum MemAccessSize {};

  // MCInstrDesc TSFlags
  // *** Must match HexagonInstrFormat*.td ***
  enum {};

  // *** The code above must match HexagonInstrFormat*.td *** //

  // Hexagon specific MO operand flag mask.
  enum HexagonMOTargetFlagVal {};

  // Hexagon Sub-instruction classes.
  enum SubInstructionGroup {};

  // Hexagon Compound classes.
  enum CompoundGroup {};

  enum InstParseBits {};

  enum InstIClassBits : unsigned {};

  LLVM_ATTRIBUTE_UNUSED
  static unsigned getMemAccessSizeInBytes(MemAccessSize S) {}
} // end namespace HexagonII

} // end namespace llvm

#endif // LLVM_LIB_TARGET_HEXAGON_MCTARGETDESC_HEXAGONBASEINFO_H