//! Implementations for the MIPS architecture. use crate::arch::Arch; use crate::arch::RegId; pub mod reg; /// Implements `Arch` for 32-bit MIPS. /// /// Check out the [module level docs](../index.html#whats-with-regidimpl) for /// more info about the `RegIdImpl` type parameter. pub enum Mips> { #[doc(hidden)] _Marker(core::marker::PhantomData), } /// Implements `Arch` for 64-bit MIPS. /// /// Check out the [module level docs](../index.html#whats-with-regidimpl) for /// more info about the `RegIdImpl` type parameter. pub enum Mips64> { #[doc(hidden)] _Marker(core::marker::PhantomData), } /// Implements `Arch` for 32-bit MIPS with the DSP feature enabled. pub enum MipsWithDsp {} /// Implements `Arch` for 64-bit MIPS with the DSP feature enabled. pub enum Mips64WithDsp {} impl Arch for Mips { type Usize = u32; type Registers = reg::MipsCoreRegs; type RegId = RegIdImpl; fn target_description_xml() -> Option<&'static str> { Some(r#"mips"#) } } impl Arch for Mips64 { type Usize = u64; type Registers = reg::MipsCoreRegs; type RegId = RegIdImpl; fn target_description_xml() -> Option<&'static str> { Some(r#"mips64"#) } } impl Arch for MipsWithDsp { type Usize = u32; type Registers = reg::MipsCoreRegsWithDsp; type RegId = reg::id::MipsRegId; fn target_description_xml() -> Option<&'static str> { Some( r#"mips"#, ) } } impl Arch for Mips64WithDsp { type Usize = u64; type Registers = reg::MipsCoreRegsWithDsp; type RegId = reg::id::MipsRegId; fn target_description_xml() -> Option<&'static str> { Some( r#"mips64"#, ) } }