• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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:
PPCCCState(CallingConv::ID CC,bool isVarArg,MachineFunction & MF,SmallVectorImpl<CCValAssign> & locs,LLVMContext & C)33   PPCCCState(CallingConv::ID CC, bool isVarArg, MachineFunction &MF,
34              SmallVectorImpl<CCValAssign> &locs, LLVMContext &C)
35         : CCState(CC, isVarArg, MF, locs, C) {}
36 
WasOriginalArgPPCF128(unsigned ValNo)37   bool WasOriginalArgPPCF128(unsigned ValNo) { return OriginalArgWasPPCF128[ValNo]; }
clearWasPPCF128()38   void clearWasPPCF128() { OriginalArgWasPPCF128.clear(); }
39 };
40 }
41 
42 #endif
43