Skip to main content

Indexed

Struct Indexed 

Source
pub struct Indexed {
    pub index: &'static str,
    pub load: &'static str,
    pub segment: Segment,
    pub at: i32,
    pub add: &'static str,
}
Expand description

The instructions a thread-local variable is reached with on Windows.

Every thread keeps an array of pointers, one for each image’s copy of its .tls section. The thread block holds the array, the image’s _tls_index says which slot is its own, and the variable is as far into the copy as it is into the section.

movl  _tls_index(%rip), %idx
movq  %gs:88, %arr
movq  (%arr,%idx,8), %blk
leaq  x@SECREL32(%blk), %x

Fields§

§index: &'static str

A 32-bit load, zero extended, which reads _tls_index.

§load: &'static str

A load of a whole word, which reads the array out of the thread block and the block out of the array.

§segment: Segment

The segment the thread block is in, and how far into it the array is.

§at: i32

The same.

§add: &'static str

The instruction that adds an offset to a register, which takes the variable’s offset in its section as its displacement.

Trait Implementations§

Source§

impl Debug for Indexed

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.