31 ELF_IsSignature_Shift = 10,
34 ELF_WeakrefUsedInReloc_Shift = 11,
37 ELF_BindingSet_Shift = 12
63 setFlags(OtherFlags | (Val << ELF_STB_Shift));
124 setFlags(OtherFlags | (Val << ELF_STT_Shift));
154 setFlags(OtherFlags | (Visibility << ELF_STV_Shift));
158 unsigned Visibility = (
Flags >> ELF_STV_Shift) & 3;
163 assert((Other & 0x1f) == 0);
167 setFlags(OtherFlags | (Other << ELF_STO_Shift));
171 unsigned Other = (
Flags >> ELF_STO_Shift) & 7;
177 setFlags(OtherFlags | (1 << ELF_WeakrefUsedInReloc_Shift));
181 return getFlags() & (0x1 << ELF_WeakrefUsedInReloc_Shift);
186 setFlags(OtherFlags | (1 << ELF_IsSignature_Shift));
190 return getFlags() & (0x1 << ELF_IsSignature_Shift);
193 void MCSymbolELF::setIsBindingSet()
const {
195 setFlags(OtherFlags | (1 << ELF_BindingSet_Shift));
199 return getFlags() & (0x1 << ELF_BindingSet_Shift);
This class represents lattice values for constants.
unsigned getVisibility() const
unsigned getBinding() const
void setVisibility(unsigned Visibility)
Optional< std::vector< StOtherPiece > > Other
bool isBindingSet() const
unsigned getOther() const
void setIsSignature() const
The instances of the Type class are immutable: once they are created, they are never changed...
void setOther(unsigned Other)
void setFlags(uint32_t Value) const
Set the (implementation defined) symbol flags.
#define llvm_unreachable(msg)
Marks that the current location is not supposed to be reachable.
void setType(unsigned Type) const
bool isWeakrefUsedInReloc() const
void setBinding(unsigned Binding) const
bool isDefined() const
isDefined - Check if this symbol is defined (i.e., it has an address).
bool isUsedInReloc() const
void setIsWeakrefUsedInReloc() const
assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())
uint32_t getFlags() const
Get the (implementation defined) symbol flags.