133388ae8SLu Weining //= LoongArchBaseInfo.cpp - Top level definitions for LoongArch MC -*- C++ -*-// 233388ae8SLu Weining // 333388ae8SLu Weining // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 433388ae8SLu Weining // See https://llvm.org/LICENSE.txt for license information. 533388ae8SLu Weining // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 633388ae8SLu Weining // 733388ae8SLu Weining //===----------------------------------------------------------------------===// 833388ae8SLu Weining // 933388ae8SLu Weining // This file implements helper functions for the LoongArch target useful for the 1033388ae8SLu Weining // compiler back-end and the MC libraries. 1133388ae8SLu Weining // 1233388ae8SLu Weining //===----------------------------------------------------------------------===// 1333388ae8SLu Weining 1433388ae8SLu Weining #include "LoongArchBaseInfo.h" 1533388ae8SLu Weining #include "llvm/ADT/ArrayRef.h" 1633388ae8SLu Weining #include "llvm/ADT/Triple.h" 1733388ae8SLu Weining #include "llvm/MC/MCSubtargetInfo.h" 1833388ae8SLu Weining 1933388ae8SLu Weining namespace llvm { 2033388ae8SLu Weining 2133388ae8SLu Weining namespace LoongArchABI { 2233388ae8SLu Weining getTargetABI(StringRef ABIName)2333388ae8SLu WeiningABI getTargetABI(StringRef ABIName) { 2433388ae8SLu Weining auto TargetABI = StringSwitch<ABI>(ABIName) 2533388ae8SLu Weining .Case("ilp32s", ABI_ILP32S) 2633388ae8SLu Weining .Case("ilp32f", ABI_ILP32F) 2733388ae8SLu Weining .Case("ilp32d", ABI_ILP32D) 2833388ae8SLu Weining .Case("lp64s", ABI_LP64S) 2933388ae8SLu Weining .Case("lp64f", ABI_LP64F) 3033388ae8SLu Weining .Case("lp64d", ABI_LP64D) 3133388ae8SLu Weining .Default(ABI_Unknown); 3233388ae8SLu Weining return TargetABI; 3333388ae8SLu Weining } 3433388ae8SLu Weining 3533388ae8SLu Weining // FIXME: other register? getBPReg()3633388ae8SLu WeiningMCRegister getBPReg() { return LoongArch::R31; } 3733388ae8SLu Weining 38*904a87acSWeining Lu } // end namespace LoongArchABI 3933388ae8SLu Weining 40*904a87acSWeining Lu } // end namespace llvm 41