Skip to main content

RegFile

Struct RegFile 

Source
pub struct RegFile { /* private fields */ }
Expand description

Every register a target has.

Implementations§

Source§

impl RegFile

Source

pub const fn new(classes: &'static [ClassInfo]) -> Self

A file made of those classes, numbered in the order they are given.

Source

pub fn classes( &self, ) -> impl Iterator<Item = (RegClass, &'static ClassInfo)> + use<>

Its classes, each with the number it is known by.

Source

pub fn class(&self, class: RegClass) -> Option<&'static ClassInfo>

What is in one class.

Source

pub fn class_named(&self, name: &str) -> Option<RegClass>

The class of that name, such as gpr.

Source

pub fn len(&self, class: RegClass) -> usize

How many registers are in a class, which is one past the largest number in it.

Source

pub fn is_empty(&self) -> bool

Whether the file has no classes at all, which is a target that has not described one.

Source

pub fn name(&self, class: RegClass, reg: PhysReg) -> Option<&'static str>

What one register is called.

Source

pub fn reg_named(&self, name: &str) -> Option<(RegClass, PhysReg)>

The register of that name, and the class it is in.

The name is written without the sigil, so rax rather than $rax.

Source

pub fn duplicate(&self) -> Option<&'static str>

A name this file gives to two registers, if it gives one to two.

Reading a dump back needs every name to say which register it means, and a target that breaks that produces text that cannot be parsed rather than an error at the point of the mistake. So every target’s own test asks this, which is why it is here and public.

Trait Implementations§

Source§

impl Clone for RegFile

Source§

fn clone(&self) -> RegFile

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Copy for RegFile

Source§

impl Debug for RegFile

Source§

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

Formats the value using the given formatter. Read more
Source§

impl Display for RegFile

Source§

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

The file as a dump reads it, one class to a line.

Source§

impl Eq for RegFile

Source§

impl PartialEq for RegFile

Source§

fn eq(&self, other: &RegFile) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for RegFile

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
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.