From 0f4d0dff1445714c9b5a8ad256b03de914b1ca14 Mon Sep 17 00:00:00 2001 From: Lucas Steuernagel Date: Mon, 29 Jan 2024 12:27:05 -0300 Subject: [PATCH] Use size of pointer for offset --- llvm/lib/Target/SBF/SBFISelLowering.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/llvm/lib/Target/SBF/SBFISelLowering.cpp b/llvm/lib/Target/SBF/SBFISelLowering.cpp index 6e79e9679dad8e1..a297ff8c507a876 100644 --- a/llvm/lib/Target/SBF/SBFISelLowering.cpp +++ b/llvm/lib/Target/SBF/SBFISelLowering.cpp @@ -465,7 +465,7 @@ SDValue SBFTargetLowering::LowerFormalArguments( unsigned Offset; if (Subtarget->getHasDynamicFrames()) { // In SBFv2, the arguments are stored on the start of the frame. - Offset = VA.getLocMemOffset() + 8; + Offset = VA.getLocMemOffset() + PtrVT.getFixedSizeInBits() / 8; } else { Offset = SBFRegisterInfo::FrameLength - VA.getLocMemOffset(); } @@ -614,7 +614,8 @@ SDValue SBFTargetLowering::LowerCall(TargetLowering::CallLoweringInfo &CLI, // When dynamic frames are enabled, the frame size is only calculated // after lowering instructions, so we must place arguments at the start // of the frame. - int64_t Offset = -(int64_t)VA.getLocMemOffset() - 8; + int64_t Offset = + -(int64_t)VA.getLocMemOffset() - (PtrVT.getFixedSizeInBits() / 8); int FrameIndex = MF.getFrameInfo().CreateFixedObject( VA.getLocVT().getFixedSizeInBits() / 8, Offset, false); DstAddr = DAG.getFrameIndex(FrameIndex, PtrVT);