]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/llvm/lib/Target/PowerPC/PPCCCState.cpp
MFV 316868
[FreeBSD/FreeBSD.git] / contrib / llvm / lib / Target / PowerPC / PPCCCState.cpp
1 //===---- PPCCCState.cpp - 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 #include "PPCCCState.h"
11 #include "PPCSubtarget.h"
12 #include "llvm/IR/Module.h"
13 using namespace llvm;
14
15 // Identify lowered values that originated from ppcf128 arguments and record
16 // this.
17 void PPCCCState::PreAnalyzeCallOperands(
18     const SmallVectorImpl<ISD::OutputArg> &Outs) {
19   for (const auto &I : Outs) {
20     if (I.ArgVT == llvm::MVT::ppcf128)
21       OriginalArgWasPPCF128.push_back(true);
22     else
23       OriginalArgWasPPCF128.push_back(false);
24   }
25 }
26
27 void PPCCCState::PreAnalyzeFormalArguments(
28     const SmallVectorImpl<ISD::InputArg> &Ins) {
29   for (const auto &I : Ins) {
30     if (I.ArgVT == llvm::MVT::ppcf128) {
31       OriginalArgWasPPCF128.push_back(true);
32     } else {
33       OriginalArgWasPPCF128.push_back(false);
34     }
35   }
36 }