1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-19 19:12:56 +02:00

fix PowerPC/2007-01-04-ArgExtension.ll, a bug handling K&R prototypes with

the recent signless changes.

llvm-svn: 32884
This commit is contained in:
Chris Lattner 2007-01-04 22:22:37 +00:00
parent 627e21e77b
commit 45c7c69c77

View File

@ -2955,10 +2955,12 @@ TargetLowering::LowerArguments(Function &F, SelectionDAG &DAG) {
case Promote: {
SDOperand Op(Result, i++);
if (MVT::isInteger(VT)) {
unsigned AssertOp = ISD::AssertSext;
if (FTy->paramHasAttr(Idx, FunctionType::ZExtAttribute))
AssertOp = ISD::AssertZext;
Op = DAG.getNode(AssertOp, Op.getValueType(), Op, DAG.getValueType(VT));
if (FTy->paramHasAttr(Idx, FunctionType::SExtAttribute))
Op = DAG.getNode(ISD::AssertSext, Op.getValueType(), Op,
DAG.getValueType(VT));
else if (FTy->paramHasAttr(Idx, FunctionType::ZExtAttribute))
Op = DAG.getNode(ISD::AssertZext, Op.getValueType(), Op,
DAG.getValueType(VT));
Op = DAG.getNode(ISD::TRUNCATE, VT, Op);
} else {
assert(MVT::isFloatingPoint(VT) && "Not int or FP?");