Skip to main content

Cop1Control

Struct Cop1Control 

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

COP1 control-register state.

Deliberately only the control registers: the 32 floating-point data registers arrive with the arithmetic in Sprint 3, and putting them here now would be state nothing reads.

Implementations§

Source§

impl Cop1Control

Source

pub const fn new() -> Self

Power-on state: all zero.

The manual does not define a reset value for FCSR; ADR 0004 requires reproducibility, so it is a documented zero. Software sets it up — which is exactly what n64-systemtest does on its fourth instruction.

Source

pub const fn cfc1(&self, fs: u8) -> u32

CFC1 rt, fs — read a control register.

Only FCR0 and FCR31 exist. Every other fs reads zero, which is a choice rather than a documented fact — the manual does not say — and is recorded as such.

Source

pub const fn ctc1(&mut self, fs: u8, value: u32)

CTC1 rt, fs — write a control register.

FCR0 is read-only, so a write to it is discarded rather than stored.

Source

pub const fn fcsr(&self) -> u32

The raw FCSR value, for the arithmetic path in Sprint 3.

Source

pub const fn flush_denorm_to_zero(&self) -> bool

FS — flush denormals to zero (bit 24).

Read by nothing yet. Exposed because n64-systemtest sets it during startup, so an implementation that silently dropped the bit would look fine until the first denormal.

Source

pub const fn rounding_mode(&self) -> u8

RM — the rounding mode (bits 1..=0).

Source

pub const fn enables(&self) -> u32

The Enable field (bits 11..=7).

Trait Implementations§

Source§

impl Clone for Cop1Control

Source§

fn clone(&self) -> Cop1Control

Returns a duplicate of the value. Read more
1.0.0 · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for Cop1Control

Source§

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

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

impl Default for Cop1Control

Source§

fn default() -> Cop1Control

Returns the “default value” for a type. Read more
Source§

impl<'de> Deserialize<'de> for Cop1Control

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl PartialEq for Cop1Control

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

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

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Serialize for Cop1Control

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl Copy for Cop1Control

Source§

impl Eq for Cop1Control

Source§

impl StructuralPartialEq for Cop1Control

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, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

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.
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,