blob: 7f8f5bfbd116e6fac5a792ea491d06da5d70bbf8 [file] [log] [blame]
//! Implementation for the [AArch64](https://developer.arm.com/documentation/102374)
//! ARM architecture.
//!
//! See PR [#109](https://github.com/daniel5151/gdbstub/pull/109) for more info.
//!
//! *Note*: doesn't support the AArch32 execution mode.
//! *Note*: the target XML currently advertises all system registers to the GDB
//! client.
use gdbstub::arch::Arch;
pub mod reg;
/// Implements `Arch` for ARM AArch64.
pub struct AArch64 {}
impl Arch for AArch64 {
type Usize = u64;
type Registers = reg::AArch64CoreRegs;
type RegId = reg::id::AArch64RegId;
type BreakpointKind = usize;
fn target_description_xml() -> Option<&'static str> {
static DESCRIPTION_XML: &str = concat!(
r#"<target version="1.0">"#,
"<architecture>aarch64</architecture>",
include_str!("core.xml"), // feature "org.gnu.gdb.aarch64.core"
include_str!("fpu.xml"), // feature "org.gnu.gdb.aarch64.fpu"
include_str!("sysregs.xml"),
"</target>",
);
Some(DESCRIPTION_XML)
}
}