@@ -389,6 +389,7 @@ SDValue XtensaTargetLowering::LowerFormalArguments(
389389 MachineRegisterInfo &RegInfo = MF.getRegInfo ();
390390 unsigned RegSize = 4 ;
391391 MVT RegTy = MVT::i32 ;
392+ MVT FITy = getFrameIndexTy (DAG.getDataLayout ());
392393
393394 XtensaFI->setVarArgsFirstGPR (Idx + 2 ); // 2 - number of a2 register
394395
@@ -422,8 +423,7 @@ SDValue XtensaTargetLowering::LowerFormalArguments(
422423
423424 SDValue ArgValue = DAG.getCopyFromReg (Chain, DL, Reg, RegTy);
424425 FI = MFI.CreateFixedObject (RegSize, VaArgOffset, true );
425- SDValue PtrOff =
426- DAG.getFrameIndex (FI, getPointerTy (DAG.getDataLayout ()));
426+ SDValue PtrOff = DAG.getFrameIndex (FI, FITy);
427427 SDValue Store = DAG.getStore (Chain, DL, ArgValue, PtrOff,
428428 MachinePointerInfo::getFixedStack (MF, FI));
429429 OutChains.push_back (Store);
@@ -1022,8 +1022,9 @@ SDValue XtensaTargetLowering::LowerVAARG(SDValue Op, SelectionDAG &DAG) const {
10221022 if (ArgAlignInBytes > 4 ) {
10231023 OrigIndex = DAG.getNode (ISD::ADD, DL, PtrVT, OrigIndex,
10241024 DAG.getConstant (ArgAlignInBytes - 1 , DL, MVT::i32 ));
1025- OrigIndex = DAG.getNode (ISD::AND, DL, PtrVT, OrigIndex,
1026- DAG.getConstant (-ArgAlignInBytes, DL, MVT::i32 ));
1025+ OrigIndex =
1026+ DAG.getNode (ISD::AND, DL, PtrVT, OrigIndex,
1027+ DAG.getSignedConstant (-ArgAlignInBytes, DL, MVT::i32 ));
10271028 }
10281029
10291030 VAIndex = DAG.getNode (ISD::ADD, DL, PtrVT, OrigIndex,
0 commit comments