• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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