//=- LoongArchBaseInfo.h - Top level definitions for LoongArch MC -*- 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 enum definitions and helper function // definitions for the LoongArch target useful for the compiler back-end and the // MC libraries. // //===----------------------------------------------------------------------===// #ifndef LLVM_LIB_TARGET_LOONGARCH_MCTARGETDESC_LOONGARCHBASEINFO_H #define LLVM_LIB_TARGET_LOONGARCH_MCTARGETDESC_LOONGARCHBASEINFO_H #include "MCTargetDesc/LoongArchMCTargetDesc.h" #include "llvm/ADT/StringRef.h" #include "llvm/ADT/StringSwitch.h" #include "llvm/MC/MCInstrDesc.h" #include "llvm/TargetParser/SubtargetFeature.h" namespace llvm { // This namespace holds all of the target specific flags that instruction info // tracks. namespace LoongArchII { enum { … }; } // end namespace LoongArchII namespace LoongArchABI { enum ABI { … }; ABI computeTargetABI(const Triple &TT, const FeatureBitset &FeatureBits, StringRef ABIName); ABI getTargetABI(StringRef ABIName); // Returns the register used to hold the stack pointer after realignment. MCRegister getBPReg(); } // end namespace LoongArchABI } // end namespace llvm #endif // LLVM_LIB_TARGET_LOONGARCH_MCTARGETDESC_LOONGARCHBASEINFO_H