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