1 //! Implementations for various x86 architectures. 2 3 use gdbstub::arch::Arch; 4 5 pub mod reg; 6 7 /// Implements `Arch` for 64-bit x86 + SSE Extensions. 8 #[allow(non_camel_case_types, clippy::upper_case_acronyms)] 9 pub enum X86_64_SSE {} 10 11 impl Arch for X86_64_SSE { 12 type Usize = u64; 13 type Registers = reg::X86_64CoreRegs; 14 type RegId = reg::id::X86_64CoreRegId; 15 type BreakpointKind = usize; 16 target_description_xml() -> Option<&'static str>17 fn target_description_xml() -> Option<&'static str> { 18 Some( 19 r#"<target version="1.0"><architecture>i386:x86-64</architecture><feature name="org.gnu.gdb.i386.sse"></feature></target>"#, 20 ) 21 } 22 } 23 24 /// Implements `Arch` for 32-bit x86 + SSE Extensions. 25 #[allow(non_camel_case_types, clippy::upper_case_acronyms)] 26 pub enum X86_SSE {} 27 28 impl Arch for X86_SSE { 29 type Usize = u32; 30 type Registers = reg::X86CoreRegs; 31 type RegId = reg::id::X86CoreRegId; 32 type BreakpointKind = usize; 33 target_description_xml() -> Option<&'static str>34 fn target_description_xml() -> Option<&'static str> { 35 Some( 36 r#"<target version="1.0"><architecture>i386:intel</architecture><feature name="org.gnu.gdb.i386.sse"></feature></target>"#, 37 ) 38 } 39 } 40