1*0b57cec5SDimitry Andric //===---- PPCCCState.cpp - CCState with PowerPC specific extensions ---------===// 2*0b57cec5SDimitry Andric // 3*0b57cec5SDimitry Andric // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4*0b57cec5SDimitry Andric // See https://llvm.org/LICENSE.txt for license information. 5*0b57cec5SDimitry Andric // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6*0b57cec5SDimitry Andric // 7*0b57cec5SDimitry Andric //===----------------------------------------------------------------------===// 8*0b57cec5SDimitry Andric 9*0b57cec5SDimitry Andric #include "PPCCCState.h" 10*0b57cec5SDimitry Andric #include "PPCSubtarget.h" 11*0b57cec5SDimitry Andric #include "llvm/IR/Module.h" 12*0b57cec5SDimitry Andric using namespace llvm; 13*0b57cec5SDimitry Andric 14*0b57cec5SDimitry Andric // Identify lowered values that originated from ppcf128 arguments and record 15*0b57cec5SDimitry Andric // this. PreAnalyzeCallOperands(const SmallVectorImpl<ISD::OutputArg> & Outs)16*0b57cec5SDimitry Andricvoid PPCCCState::PreAnalyzeCallOperands( 17*0b57cec5SDimitry Andric const SmallVectorImpl<ISD::OutputArg> &Outs) { 18*0b57cec5SDimitry Andric for (const auto &I : Outs) { 19*0b57cec5SDimitry Andric if (I.ArgVT == llvm::MVT::ppcf128) 20*0b57cec5SDimitry Andric OriginalArgWasPPCF128.push_back(true); 21*0b57cec5SDimitry Andric else 22*0b57cec5SDimitry Andric OriginalArgWasPPCF128.push_back(false); 23*0b57cec5SDimitry Andric } 24*0b57cec5SDimitry Andric } 25*0b57cec5SDimitry Andric PreAnalyzeFormalArguments(const SmallVectorImpl<ISD::InputArg> & Ins)26*0b57cec5SDimitry Andricvoid PPCCCState::PreAnalyzeFormalArguments( 27*0b57cec5SDimitry Andric const SmallVectorImpl<ISD::InputArg> &Ins) { 28*0b57cec5SDimitry Andric for (const auto &I : Ins) { 29*0b57cec5SDimitry Andric if (I.ArgVT == llvm::MVT::ppcf128) { 30*0b57cec5SDimitry Andric OriginalArgWasPPCF128.push_back(true); 31*0b57cec5SDimitry Andric } else { 32*0b57cec5SDimitry Andric OriginalArgWasPPCF128.push_back(false); 33*0b57cec5SDimitry Andric } 34*0b57cec5SDimitry Andric } 35*0b57cec5SDimitry Andric } 36