@@ -432,7 +432,7 @@ HexagonTargetLowering::LowerCall(TargetLowering::CallLoweringInfo &CLI,
432
432
DAG.getCopyFromReg (Chain, dl, HRI.getStackRegister (), PtrVT);
433
433
434
434
bool NeedsArgAlign = false ;
435
- unsigned LargestAlignSeen = 0 ;
435
+ Align LargestAlignSeen;
436
436
// Walk the register/memloc assignments, inserting copies/loads.
437
437
for (unsigned i = 0 , e = ArgLocs.size (); i != e; ++i) {
438
438
CCValAssign &VA = ArgLocs[i];
@@ -469,8 +469,8 @@ HexagonTargetLowering::LowerCall(TargetLowering::CallLoweringInfo &CLI,
469
469
StackPtr.getValueType ());
470
470
MemAddr = DAG.getNode (ISD::ADD, dl, MVT::i32, StackPtr, MemAddr);
471
471
if (ArgAlign)
472
- LargestAlignSeen = std::max (LargestAlignSeen,
473
- ( unsigned ) VA.getLocVT ().getStoreSizeInBits () >> 3 );
472
+ LargestAlignSeen = std::max (
473
+ LargestAlignSeen, Align ( VA.getLocVT ().getStoreSizeInBits () / 8 ) );
474
474
if (Flags.isByVal ()) {
475
475
// The argument is a struct passed by value. According to LLVM, "Arg"
476
476
// is a pointer.
@@ -493,7 +493,7 @@ HexagonTargetLowering::LowerCall(TargetLowering::CallLoweringInfo &CLI,
493
493
494
494
if (NeedsArgAlign && Subtarget.hasV60Ops ()) {
495
495
LLVM_DEBUG (dbgs () << " Function needs byte stack align due to call args\n " );
496
- unsigned VecAlign = HRI.getSpillAlignment (Hexagon::HvxVRRegClass);
496
+ Align VecAlign ( HRI.getSpillAlignment (Hexagon::HvxVRRegClass) );
497
497
LargestAlignSeen = std::max (LargestAlignSeen, VecAlign);
498
498
MFI.ensureMaxAlignment (LargestAlignSeen);
499
499
}
0 commit comments