45 lines · c
1//===-- RISCVCallingConv.h - RISC-V Custom CC Routines ----------*- C++ -*-===//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-exception6//7//===----------------------------------------------------------------------===//8//9// This file defines the custom routines for the RISC-V Calling Convention.10//11//===----------------------------------------------------------------------===//12 13#include "MCTargetDesc/RISCVBaseInfo.h"14#include "llvm/CodeGen/CallingConvLower.h"15 16namespace llvm {17 18/// RISCVCCAssignFn - This target-specific function extends the default19/// CCValAssign with additional information used to lower RISC-V calling20/// conventions.21typedef bool RISCVCCAssignFn(unsigned ValNo, MVT ValVT, MVT LocVT,22 CCValAssign::LocInfo LocInfo,23 ISD::ArgFlagsTy ArgFlags, CCState &State,24 bool IsRet, Type *OrigTy);25 26bool CC_RISCV(unsigned ValNo, MVT ValVT, MVT LocVT,27 CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags,28 CCState &State, bool IsRet, Type *OrigTy);29 30bool CC_RISCV_FastCC(unsigned ValNo, MVT ValVT, MVT LocVT,31 CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags,32 CCState &State, bool IsRet, Type *OrigTy);33 34bool CC_RISCV_GHC(unsigned ValNo, MVT ValVT, MVT LocVT,35 CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags,36 Type *OrigTy, CCState &State);37 38namespace RISCV {39 40ArrayRef<MCPhysReg> getArgGPRs(const RISCVABI::ABI ABI);41 42} // end namespace RISCV43 44} // end namespace llvm45