//===-- 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