@@ -332,22 +332,22 @@ MachineBasicBlock *RISCVExpandPseudo::insertLoadOfImportTable(
332332 // Make the original basic block fall-through to the new.
333333 MBB.addSuccessor (NewMBB);
334334
335- ImportedObjects.insert ({ImportSymbol-> getName (). str (),
336- ExportSymbol->getName ().str (),
337- ImportName.str (),
338- IsLibrary ? CHERIoTImportedObject::IsLibrary
339- : CHERIoTImportedObject::IsNotLibrary,
340- IsPublic ? CHERIoTImportedObject::IsPublic
341- : CHERIoTImportedObject::IsNotPublic,
342- CHERIoTImportedObject::IsNotGlobal,
343- IsPublic ? CHERIoTImportedObject::IsCOMDAT
344- : CHERIoTImportedObject::IsNotCOMDAT,
345- IsPublic ? CHERIoTImportedObject::IsWeak
346- : CHERIoTImportedObject::IsNotWeak,
347- IsPublic ? CHERIoTImportedObject::IsGrouped
348- : CHERIoTImportedObject::IsNotGrouped,
349- CHERIoTImportedObject::IsNotWritable,
350- {} });
335+ ImportedObjects.insert (
336+ {ImportSymbol-> getName (). str (), ExportSymbol->getName ().str (),
337+ ImportName.str (),
338+ IsLibrary ? CHERIoTImportedObject::LibraryFlagValue ::IsLibrary
339+ : CHERIoTImportedObject::LibraryFlagValue ::IsNotLibrary,
340+ IsPublic ? CHERIoTImportedObject::PublicFlagValue ::IsPublic
341+ : CHERIoTImportedObject::PublicFlagValue ::IsNotPublic,
342+ CHERIoTImportedObject::GlobalFlagValue ::IsNotGlobal,
343+ IsPublic ? CHERIoTImportedObject::COMDATFlagValue ::IsCOMDAT
344+ : CHERIoTImportedObject::COMDATFlagValue ::IsNotCOMDAT,
345+ IsPublic ? CHERIoTImportedObject::WeakFlagValue ::IsWeak
346+ : CHERIoTImportedObject::WeakFlagValue ::IsNotWeak,
347+ IsPublic ? CHERIoTImportedObject::GroupedFlagValue ::IsGrouped
348+ : CHERIoTImportedObject::GroupedFlagValue ::IsNotGrouped,
349+ CHERIoTImportedObject::WritableFlagValue ::IsNotWritable,
350+ CHERIoTImportedObject::EmptySecondWordKind, 0 });
351351
352352 LivePhysRegs LiveRegs;
353353 computeAndAddLiveIns (LiveRegs, *NewMBB);
@@ -616,15 +616,19 @@ bool RISCVExpandPseudo::expandAuipccInstPair(
616616 BuildMI (NewMBB, DL, TII->get (RISCV::AUIPCC), TmpReg)
617617 .addSym (MangledImportSymbol, FlagsHi);
618618
619- uint64_t EncodedPermissions =
620- ((uint64_t )1 ) << 32 | CapAttr.encodePermissions ();
619+ auto EncodedPermissions = CapAttr.encodePermissions ();
621620
622621 ImportedObjects.insert (
623622 {MangledImportName, MangledExportName, ImportName,
624- CHERIoTImportedObject::IsNotLibrary, CHERIoTImportedObject::IsPublic,
625- CHERIoTImportedObject::IsGlobal, CHERIoTImportedObject::IsCOMDAT,
626- CHERIoTImportedObject::IsNotWeak, CHERIoTImportedObject::IsGrouped,
627- CHERIoTImportedObject::IsWritable, EncodedPermissions});
623+ CHERIoTImportedObject::LibraryFlagValue::IsNotLibrary,
624+ CHERIoTImportedObject::PublicFlagValue::IsPublic,
625+ CHERIoTImportedObject::GlobalFlagValue::IsGlobal,
626+ CHERIoTImportedObject::COMDATFlagValue::IsCOMDAT,
627+ CHERIoTImportedObject::WeakFlagValue::IsNotWeak,
628+ CHERIoTImportedObject::GroupedFlagValue::IsGrouped,
629+ CHERIoTImportedObject::WritableFlagValue::IsWritable,
630+ CHERIoTImportedObject::DiffAndPermsSecondWordKind,
631+ EncodedPermissions});
628632 } else if (CheriotSealedValueAttr.has_value ()) {
629633 // We can safely assume, here, that GV is not null.
630634 auto *GV = llvm::dyn_cast<llvm::GlobalVariable>(Symbol.getGlobal ());
@@ -638,18 +642,22 @@ bool RISCVExpandPseudo::expandAuipccInstPair(
638642 .addSym (MangledImportSymbol, FlagsHi);
639643
640644 auto DL = MBB.getParent ()->getDataLayout ();
641- uint64_t TypeSize = DL.getTypeStoreSize (GV->getValueType ());
642645
643- assert (TypeSize < std::numeric_limits<uint32_t >::max () &&
646+ assert (DL.getTypeStoreSize (GV->getValueType ()) <
647+ std::numeric_limits<uint32_t >::max () &&
644648 " Size of type should be less than uint32_t::max()" );
645- TypeSize |= ((uint64_t )2 ) << 32 ;
646649
650+ uint32_t TypeSize = DL.getTypeStoreSize (GV->getValueType ());
647651 ImportedObjects.insert (
648652 {MangledImportName, SealedObjectName, SealedObjectName,
649- CHERIoTImportedObject::IsNotLibrary, CHERIoTImportedObject::IsPublic,
650- CHERIoTImportedObject::IsNotGlobal, CHERIoTImportedObject::IsNotCOMDAT,
651- CHERIoTImportedObject::IsWeak, CHERIoTImportedObject::IsGrouped,
652- CHERIoTImportedObject::IsWritable, TypeSize});
653+ CHERIoTImportedObject::LibraryFlagValue::IsNotLibrary,
654+ CHERIoTImportedObject::PublicFlagValue::IsPublic,
655+ CHERIoTImportedObject::GlobalFlagValue::IsNotGlobal,
656+ CHERIoTImportedObject::COMDATFlagValue::IsNotCOMDAT,
657+ CHERIoTImportedObject::WeakFlagValue::IsWeak,
658+ CHERIoTImportedObject::GroupedFlagValue::IsGrouped,
659+ CHERIoTImportedObject::WritableFlagValue::IsWritable,
660+ CHERIoTImportedObject::SizeOfTypeSecondWordKind, TypeSize});
653661 } else {
654662 BuildMI (NewMBB, DL, TII->get (RISCV::AUIPCC), TmpReg)
655663 .addDisp (Symbol, 0 , FlagsHi);
0 commit comments