From: Dale Johannesen Date: Wed, 12 Mar 2008 23:40:01 +0000 (+0000) Subject: Do not promote float params to double in varargs X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=d75686a471ee6ed5260e29d22d54f15152bbc9b4;p=oota-llvm.git Do not promote float params to double in varargs calls here. This was done earlier for params in the varargs part of the params; any float params that survive to here are in the non-varargs part, and must not be promoted. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48310 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Target/PowerPC/PPCISelLowering.cpp b/lib/Target/PowerPC/PPCISelLowering.cpp index cd87bba7b25..8138b78d5e3 100644 --- a/lib/Target/PowerPC/PPCISelLowering.cpp +++ b/lib/Target/PowerPC/PPCISelLowering.cpp @@ -1898,12 +1898,6 @@ SDOperand PPCTargetLowering::LowerCALL(SDOperand Op, SelectionDAG &DAG, break; case MVT::f32: case MVT::f64: - if (isVarArg) { - // Float varargs need to be promoted to double. - if (Arg.getValueType() == MVT::f32) - Arg = DAG.getNode(ISD::FP_EXTEND, MVT::f64, Arg); - } - if (FPR_idx != NumFPRs) { RegsToPass.push_back(std::make_pair(FPR[FPR_idx++], Arg));