1303231Sdim//===---- PPCCCState.h - CCState with PowerPC specific extensions -----------===// 2303231Sdim// 3353358Sdim// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4353358Sdim// See https://llvm.org/LICENSE.txt for license information. 5353358Sdim// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6303231Sdim// 7303231Sdim//===----------------------------------------------------------------------===// 8303231Sdim 9303231Sdim#ifndef PPCCCSTATE_H 10303231Sdim#define PPCCCSTATE_H 11303231Sdim 12303231Sdim#include "PPCISelLowering.h" 13303231Sdim#include "llvm/ADT/SmallVector.h" 14303231Sdim#include "llvm/CodeGen/CallingConvLower.h" 15303231Sdim 16303231Sdimnamespace llvm { 17303231Sdim 18303231Sdimclass PPCCCState : public CCState { 19303231Sdimpublic: 20303231Sdim 21303231Sdim void 22303231Sdim PreAnalyzeCallOperands(const SmallVectorImpl<ISD::OutputArg> &Outs); 23303231Sdim void 24303231Sdim PreAnalyzeFormalArguments(const SmallVectorImpl<ISD::InputArg> &Ins); 25303231Sdim 26303231Sdimprivate: 27303231Sdim 28303231Sdim // Records whether the value has been lowered from an ppcf128. 29303231Sdim SmallVector<bool, 4> OriginalArgWasPPCF128; 30303231Sdim 31303231Sdimpublic: 32303231Sdim PPCCCState(CallingConv::ID CC, bool isVarArg, MachineFunction &MF, 33303231Sdim SmallVectorImpl<CCValAssign> &locs, LLVMContext &C) 34303231Sdim : CCState(CC, isVarArg, MF, locs, C) {} 35303231Sdim 36303231Sdim bool WasOriginalArgPPCF128(unsigned ValNo) { return OriginalArgWasPPCF128[ValNo]; } 37303231Sdim void clearWasPPCF128() { OriginalArgWasPPCF128.clear(); } 38303231Sdim}; 39303231Sdim} 40303231Sdim 41303231Sdim#endif 42