mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-11-23 16:19:52 +00:00
Parameter attributes on invoke calls were being lost due to the wrong
attribute index being used. Fix proposed by Anton Korobeynikov, who asked me to implement and commit it for him. This is PR1398. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36906 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -2787,10 +2787,12 @@ void SelectionDAGLowering::LowerCallTo(Instruction &I,
|
|||||||
Value *Arg = I.getOperand(i);
|
Value *Arg = I.getOperand(i);
|
||||||
SDOperand ArgNode = getValue(Arg);
|
SDOperand ArgNode = getValue(Arg);
|
||||||
Entry.Node = ArgNode; Entry.Ty = Arg->getType();
|
Entry.Node = ArgNode; Entry.Ty = Arg->getType();
|
||||||
Entry.isSExt = Attrs && Attrs->paramHasAttr(i, ParamAttr::SExt);
|
|
||||||
Entry.isZExt = Attrs && Attrs->paramHasAttr(i, ParamAttr::ZExt);
|
unsigned attrInd = i - OpIdx + 1;
|
||||||
Entry.isInReg = Attrs && Attrs->paramHasAttr(i, ParamAttr::InReg);
|
Entry.isSExt = Attrs && Attrs->paramHasAttr(attrInd, ParamAttr::SExt);
|
||||||
Entry.isSRet = Attrs && Attrs->paramHasAttr(i, ParamAttr::StructRet);
|
Entry.isZExt = Attrs && Attrs->paramHasAttr(attrInd, ParamAttr::ZExt);
|
||||||
|
Entry.isInReg = Attrs && Attrs->paramHasAttr(attrInd, ParamAttr::InReg);
|
||||||
|
Entry.isSRet = Attrs && Attrs->paramHasAttr(attrInd, ParamAttr::StructRet);
|
||||||
Args.push_back(Entry);
|
Args.push_back(Entry);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user