]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/llvm/lib/Target/PowerPC/PPCCCState.h
MFV r328227: 8909 8585 can cause a use-after-free kernel panic
[FreeBSD/FreeBSD.git] / contrib / llvm / lib / Target / PowerPC / PPCCCState.h
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         : CCState(CC, isVarArg, MF, locs, C) {}
36
37   bool WasOriginalArgPPCF128(unsigned ValNo) { return OriginalArgWasPPCF128[ValNo]; }
38   void clearWasPPCF128() { OriginalArgWasPPCF128.clear(); }
39 };
40 }
41
42 #endif