1 //! Implementations for various PowerPC architectures.
2 
3 use gdbstub::arch::Arch;
4 use gdbstub::arch::RegId;
5 
6 pub mod reg;
7 
8 /// Implements `Arch` for 32-bit PowerPC + AltiVec SIMD.
9 ///
10 /// Check out the [module level docs](gdbstub::arch#whats-with-regidimpl) for
11 /// more info about the `RegIdImpl` type parameter.
12 pub enum PowerPcAltivec32<RegIdImpl: RegId> {
13     #[doc(hidden)]
14     _Marker(core::marker::PhantomData<RegIdImpl>),
15 }
16 
17 impl<RegIdImpl: RegId> Arch for PowerPcAltivec32<RegIdImpl> {
18     type Usize = u32;
19     type Registers = reg::PowerPcCommonRegs;
20     type RegId = RegIdImpl;
21     type BreakpointKind = usize;
22 
target_description_xml() -> Option<&'static str>23     fn target_description_xml() -> Option<&'static str> {
24         Some(
25             r#"<target version="1.0"><architecture>powerpc:common</architecture><feature name="org.gnu.gdb.power.core"></feature><feature name="org.gnu.gdb.power.fpu"></feature><feature name="org.gnu.gdb.power.altivec"></feature></target>"#,
26         )
27     }
28 }
29