Enum SimErr

Source
pub enum SimErr {
Show 15 variants IllegalOpcode, InvalidInstrFormat, PrivilegeViolation, AccessViolation, UnresolvedExternal(String), Interrupt(ExternalInterrupt), StrictRegSetUninit, StrictMemSetUninit, StrictIOSetUninit, StrictJmpAddrUninit, StrictSRAddrUninit, StrictMemAddrUninit, StrictPCCurrUninit, StrictPCNextUninit, StrictPSRSetUninit,
}
Expand description

Errors that can occur during simulation.

Variants§

§

IllegalOpcode

Word was decoded, but the opcode was invalid.

§

InvalidInstrFormat

Word was decoded, and the opcode is recognized, but the instruction’s format is invalid.

§

PrivilegeViolation

A privileged instruction was called in user mode.

§

AccessViolation

A supervisor region was accessed in user mode.

§

UnresolvedExternal(String)

Object file contained unresolved external symbols.

§

Interrupt(ExternalInterrupt)

Interrupt raised.

§

StrictRegSetUninit

A register was loaded with a partially uninitialized value.

This will ignore loads from the stack (R6), because it is convention to push registers (including uninitialized registers). This also ignores loads from allocated (.blkw) memory in case the program writer uses those as register stores.

§

StrictMemSetUninit

Memory was loaded with a partially uninitialized value.

This will ignore loads from the stack (R6), because it is convention to push registers (including uninitialized registers). This also ignores loads from allocated (.blkw) memory in case the program writer uses those as register stores.

§

StrictIOSetUninit

Data was stored into MMIO with a partially uninitialized value.

§

StrictJmpAddrUninit

Address to jump to is coming from an uninitialized value.

§

StrictSRAddrUninit

Address to jump to (which is a subroutine or trap call) is coming from an uninitialized value.

§

StrictMemAddrUninit

Address to read from memory is coming from an uninitialized value.

§

StrictPCCurrUninit

PC is pointing to an uninitialized value.

§

StrictPCNextUninit

PC was set to an address that has an uninitialized value and will read from it next cycle.

§

StrictPSRSetUninit

The PSR was loaded with a partially uninitialized value (by RTI).

Trait Implementations§

Source§

impl Debug for SimErr

Source§

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

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

impl Display for SimErr

Source§

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

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

impl Error for SimErr

1.30.0 · Source§

fn source(&self) -> Option<&(dyn Error + 'static)>

Returns the lower-level source of this error, if any. Read more
1.0.0 · Source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · Source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
Source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type-based access to context intended for error reports. Read more

Auto Trait Implementations§

§

impl Freeze for SimErr

§

impl !RefUnwindSafe for SimErr

§

impl Send for SimErr

§

impl Sync for SimErr

§

impl Unpin for SimErr

§

impl !UnwindSafe for SimErr

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> 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 = 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<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V