LazyPointerAtom(ld::passes::stubs::Pass& pass, const ld::Atom& stubTo, bool forLazyDylib, bool for64, bool weakImport) : ld::Atom( forLazyDylib ? _s_sectionLazy : _s_section, ld::Atom::definitionRegular, ld::Atom::combineNever, ld::Atom::scopeTranslationUnit, forLazyDylib ? ld::Atom::typeLazyDylibPointer : ld::Atom::typeLazyPointer, symbolTableNotIn, false, false, false, for64 ? ld::Atom::Alignment(3) : ld::Atom::Alignment(2)), _stubTo(stubTo), _fixup1(0, ld::Fixup::k1of1, for64 ? ld::Fixup::kindStoreTargetAddressBigEndian64 : ld::Fixup::kindStoreTargetAddressBigEndian32, forLazyDylib ? pass.internal()->lazyBindingHelper : pass.internal()->classicBindingHelper), _fixup2(0, ld::Fixup::k1of1, ld::Fixup::kindLazyTarget, &stubTo), _for64(for64) { _fixup2.weakImport = weakImport; pass.addAtom(*this); }
FastBindingPointerAtom(ld::passes::stubs::Pass& pass) : ld::Atom(_s_section, ld::Atom::definitionRegular, ld::Atom::combineNever, ld::Atom::scopeLinkageUnit, ld::Atom::typeNonLazyPointer, symbolTableNotIn, false, false, false, ld::Atom::Alignment(2)), _fixup(0, ld::Fixup::k1of1, ld::Fixup::kindStoreTargetAddressLittleEndian32, pass.internal()->compressedFastBinderProxy) { pass.addAtom(*this); }