[PowerPC] Generate Power9 extswsli extend sign and shift immediate instruction
[llvm-core.git] / lib / Target / PowerPC / PPCCCState.h
blob9be9f11dbea38a47619e102e68f91be6ec33f1e2
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 //===----------------------------------------------------------------------===//
10 #ifndef PPCCCSTATE_H
11 #define PPCCCSTATE_H
13 #include "PPCISelLowering.h"
14 #include "llvm/ADT/SmallVector.h"
15 #include "llvm/CodeGen/CallingConvLower.h"
17 namespace llvm {
19 class PPCCCState : public CCState {
20 public:
22 void
23 PreAnalyzeCallOperands(const SmallVectorImpl<ISD::OutputArg> &Outs);
24 void
25 PreAnalyzeFormalArguments(const SmallVectorImpl<ISD::InputArg> &Ins);
27 private:
29 // Records whether the value has been lowered from an ppcf128.
30 SmallVector<bool, 4> OriginalArgWasPPCF128;
32 public:
33 PPCCCState(CallingConv::ID CC, bool isVarArg, MachineFunction &MF,
34 SmallVectorImpl<CCValAssign> &locs, LLVMContext &C)
35 : CCState(CC, isVarArg, MF, locs, C) {}
37 bool WasOriginalArgPPCF128(unsigned ValNo) { return OriginalArgWasPPCF128[ValNo]; }
38 void clearWasPPCF128() { OriginalArgWasPPCF128.clear(); }
42 #endif