Home | History | Annotate | Download | only in PowerPC
      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
     43