xref: /aosp_15_r20/external/llvm/lib/Target/PowerPC/PPCCCState.h (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker //===---- PPCCCState.h - CCState with PowerPC specific extensions -----------===//
2*9880d681SAndroid Build Coastguard Worker //
3*9880d681SAndroid Build Coastguard Worker //                     The LLVM Compiler Infrastructure
4*9880d681SAndroid Build Coastguard Worker //
5*9880d681SAndroid Build Coastguard Worker // This file is distributed under the University of Illinois Open Source
6*9880d681SAndroid Build Coastguard Worker // License. See LICENSE.TXT for details.
7*9880d681SAndroid Build Coastguard Worker //
8*9880d681SAndroid Build Coastguard Worker //===----------------------------------------------------------------------===//
9*9880d681SAndroid Build Coastguard Worker 
10*9880d681SAndroid Build Coastguard Worker #ifndef PPCCCSTATE_H
11*9880d681SAndroid Build Coastguard Worker #define PPCCCSTATE_H
12*9880d681SAndroid Build Coastguard Worker 
13*9880d681SAndroid Build Coastguard Worker #include "PPCISelLowering.h"
14*9880d681SAndroid Build Coastguard Worker #include "llvm/ADT/SmallVector.h"
15*9880d681SAndroid Build Coastguard Worker #include "llvm/CodeGen/CallingConvLower.h"
16*9880d681SAndroid Build Coastguard Worker 
17*9880d681SAndroid Build Coastguard Worker namespace llvm {
18*9880d681SAndroid Build Coastguard Worker 
19*9880d681SAndroid Build Coastguard Worker class PPCCCState : public CCState {
20*9880d681SAndroid Build Coastguard Worker public:
21*9880d681SAndroid Build Coastguard Worker 
22*9880d681SAndroid Build Coastguard Worker   void
23*9880d681SAndroid Build Coastguard Worker   PreAnalyzeCallOperands(const SmallVectorImpl<ISD::OutputArg> &Outs);
24*9880d681SAndroid Build Coastguard Worker   void
25*9880d681SAndroid Build Coastguard Worker   PreAnalyzeFormalArguments(const SmallVectorImpl<ISD::InputArg> &Ins);
26*9880d681SAndroid Build Coastguard Worker 
27*9880d681SAndroid Build Coastguard Worker private:
28*9880d681SAndroid Build Coastguard Worker 
29*9880d681SAndroid Build Coastguard Worker   // Records whether the value has been lowered from an ppcf128.
30*9880d681SAndroid Build Coastguard Worker   SmallVector<bool, 4> OriginalArgWasPPCF128;
31*9880d681SAndroid Build Coastguard Worker 
32*9880d681SAndroid Build Coastguard Worker public:
PPCCCState(CallingConv::ID CC,bool isVarArg,MachineFunction & MF,SmallVectorImpl<CCValAssign> & locs,LLVMContext & C)33*9880d681SAndroid Build Coastguard Worker   PPCCCState(CallingConv::ID CC, bool isVarArg, MachineFunction &MF,
34*9880d681SAndroid Build Coastguard Worker              SmallVectorImpl<CCValAssign> &locs, LLVMContext &C)
35*9880d681SAndroid Build Coastguard Worker         : CCState(CC, isVarArg, MF, locs, C) {}
36*9880d681SAndroid Build Coastguard Worker 
WasOriginalArgPPCF128(unsigned ValNo)37*9880d681SAndroid Build Coastguard Worker   bool WasOriginalArgPPCF128(unsigned ValNo) { return OriginalArgWasPPCF128[ValNo]; }
clearWasPPCF128()38*9880d681SAndroid Build Coastguard Worker   void clearWasPPCF128() { OriginalArgWasPPCF128.clear(); }
39*9880d681SAndroid Build Coastguard Worker };
40*9880d681SAndroid Build Coastguard Worker }
41*9880d681SAndroid Build Coastguard Worker 
42*9880d681SAndroid Build Coastguard Worker #endif
43