//= LoongArchBaseInfo.cpp - 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 implements helper functions for the LoongArch target useful for the // compiler back-end and the MC libraries. // //===----------------------------------------------------------------------===// #include "LoongArchBaseInfo.h" #include "llvm/ADT/ArrayRef.h" #include "llvm/ADT/Triple.h" #include "llvm/MC/MCSubtargetInfo.h" namespace llvm { namespace LoongArchABI { ABI getTargetABI(StringRef ABIName) { auto TargetABI = StringSwitch(ABIName) .Case("ilp32s", ABI_ILP32S) .Case("ilp32f", ABI_ILP32F) .Case("ilp32d", ABI_ILP32D) .Case("lp64s", ABI_LP64S) .Case("lp64f", ABI_LP64F) .Case("lp64d", ABI_LP64D) .Default(ABI_Unknown); return TargetABI; } // FIXME: other register? MCRegister getBPReg() { return LoongArch::R31; } } // end namespace LoongArchABI } // end namespace llvm