1*3ca95b02SDimitry Andric //===---- PPCCCState.cpp - CCState with PowerPC specific extensions ---------===// 2*3ca95b02SDimitry Andric // 3*3ca95b02SDimitry Andric // The LLVM Compiler Infrastructure 4*3ca95b02SDimitry Andric // 5*3ca95b02SDimitry Andric // This file is distributed under the University of Illinois Open Source 6*3ca95b02SDimitry Andric // License. See LICENSE.TXT for details. 7*3ca95b02SDimitry Andric // 8*3ca95b02SDimitry Andric //===----------------------------------------------------------------------===// 9*3ca95b02SDimitry Andric 10*3ca95b02SDimitry Andric #include "PPCCCState.h" 11*3ca95b02SDimitry Andric #include "PPCSubtarget.h" 12*3ca95b02SDimitry Andric #include "llvm/IR/Module.h" 13*3ca95b02SDimitry Andric using namespace llvm; 14*3ca95b02SDimitry Andric 15*3ca95b02SDimitry Andric // Identify lowered values that originated from ppcf128 arguments and record 16*3ca95b02SDimitry Andric // this. PreAnalyzeCallOperands(const SmallVectorImpl<ISD::OutputArg> & Outs)17*3ca95b02SDimitry Andricvoid PPCCCState::PreAnalyzeCallOperands( 18*3ca95b02SDimitry Andric const SmallVectorImpl<ISD::OutputArg> &Outs) { 19*3ca95b02SDimitry Andric for (const auto &I : Outs) { 20*3ca95b02SDimitry Andric if (I.ArgVT == llvm::MVT::ppcf128) 21*3ca95b02SDimitry Andric OriginalArgWasPPCF128.push_back(true); 22*3ca95b02SDimitry Andric else 23*3ca95b02SDimitry Andric OriginalArgWasPPCF128.push_back(false); 24*3ca95b02SDimitry Andric } 25*3ca95b02SDimitry Andric } 26*3ca95b02SDimitry Andric PreAnalyzeFormalArguments(const SmallVectorImpl<ISD::InputArg> & Ins)27*3ca95b02SDimitry Andricvoid PPCCCState::PreAnalyzeFormalArguments( 28*3ca95b02SDimitry Andric const SmallVectorImpl<ISD::InputArg> &Ins) { 29*3ca95b02SDimitry Andric for (const auto &I : Ins) { 30*3ca95b02SDimitry Andric if (I.ArgVT == llvm::MVT::ppcf128) { 31*3ca95b02SDimitry Andric OriginalArgWasPPCF128.push_back(true); 32*3ca95b02SDimitry Andric } else { 33*3ca95b02SDimitry Andric OriginalArgWasPPCF128.push_back(false); 34*3ca95b02SDimitry Andric } 35*3ca95b02SDimitry Andric } 36*3ca95b02SDimitry Andric }