Skip to content

Commit 862f1de

Browse files
committed
[Xtensa] Minor fixes in lowering VASTART/VAARG.
1 parent 3998c2f commit 862f1de

File tree

1 file changed

+8
-8
lines changed

1 file changed

+8
-8
lines changed

llvm/lib/Target/Xtensa/XtensaISelLowering.cpp

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -947,19 +947,19 @@ SDValue XtensaTargetLowering::LowerVASTART(SDValue Op,
947947
// Store pointer to arguments given on stack (va_stk)
948948
SDValue StackPtr = DAG.getNode(ISD::SUB, DL, PtrVT, StackOffsetFI,
949949
DAG.getConstant(32, DL, PtrVT));
950+
950951
SDValue StoreStackPtr =
951952
DAG.getStore(Chain, DL, StackPtr, Addr, MachinePointerInfo(SV));
952953

953954
uint64_t NextOffset = FrameOffset;
954-
SDValue NextPtr = DAG.getNode(ISD::ADD, DL, PtrVT, Addr,
955-
DAG.getConstant(NextOffset, DL, PtrVT));
955+
SDValue NextPtr =
956+
DAG.getObjectPtrOffset(DL, Addr, TypeSize::getFixed(NextOffset));
956957

957958
// Store pointer to arguments given on registers (va_reg)
958959
SDValue StoreRegPtr = DAG.getStore(StoreStackPtr, DL, FrameIndex, NextPtr,
959960
MachinePointerInfo(SV, NextOffset));
960961
NextOffset += FrameOffset;
961-
NextPtr = DAG.getNode(ISD::ADD, DL, PtrVT, Addr,
962-
DAG.getConstant(NextOffset, DL, PtrVT));
962+
NextPtr = DAG.getObjectPtrOffset(DL, Addr, TypeSize::getFixed(NextOffset));
963963

964964
// Store third word : position in bytes of the first VA argument (va_ndx)
965965
return DAG.getStore(StoreRegPtr, DL, VAIndex, NextPtr,
@@ -997,15 +997,15 @@ SDValue XtensaTargetLowering::LowerVAARG(SDValue Op, SelectionDAG &DAG) const {
997997
InChain = VAStack.getValue(1);
998998

999999
// va_reg
1000-
SDValue VARegPtr = DAG.getNode(ISD::ADD, DL, PtrVT, VAListPtr,
1001-
DAG.getConstant(4, DL, MVT::i32));
1000+
SDValue VARegPtr =
1001+
DAG.getObjectPtrOffset(DL, VAListPtr, TypeSize::getFixed(4));
10021002
SDValue VAReg =
10031003
DAG.getLoad(MVT::i32, DL, InChain, VARegPtr, MachinePointerInfo());
10041004
InChain = VAReg.getValue(1);
10051005

10061006
// va_ndx
1007-
SDValue VarArgIndexPtr = DAG.getNode(ISD::ADD, DL, PtrVT, VARegPtr,
1008-
DAG.getConstant(4, DL, MVT::i32));
1007+
SDValue VarArgIndexPtr =
1008+
DAG.getObjectPtrOffset(DL, VARegPtr, TypeSize::getFixed(4));
10091009
SDValue VAIndex =
10101010
DAG.getLoad(MVT::i32, DL, InChain, VarArgIndexPtr, MachinePointerInfo());
10111011
InChain = VAIndex.getValue(1);

0 commit comments

Comments
 (0)