1//=- LoongArchCallingConv.td - Calling Conventions LoongArch -*- tablegen -*-=// 2// 3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4// See https://llvm.org/LICENSE.txt for license information. 5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6// 7//===----------------------------------------------------------------------===// 8// 9// This describes the calling conventions for the LoongArch architecture. 10// 11//===----------------------------------------------------------------------===// 12 13def CSR_ILP32S_LP64S 14 : CalleeSavedRegs<(add R1, (sequence "R%u", 22, 31))>; 15 16def CSR_ILP32F_LP64F 17 : CalleeSavedRegs<(add CSR_ILP32S_LP64S, (sequence "F%u", 24, 31))>; 18 19def CSR_ILP32D_LP64D 20 : CalleeSavedRegs<(add CSR_ILP32S_LP64S, (sequence "F%u_64", 24, 31))>; 21 22// Needed for implementation of LoongArchRegisterInfo::getNoPreservedMask() 23def CSR_NoRegs : CalleeSavedRegs<(add)>; 24