1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- #[cfg(target_arch = "x86_64")]
- mod x86_64 {
- use gimli::{Register, X86_64};
- pub struct Arch;
- #[allow(unused)]
- impl Arch {
- pub const SP: Register = X86_64::RSP;
- pub const RA: Register = X86_64::RA;
- pub const UNWIND_DATA_REG: (Register, Register) = (X86_64::RAX, X86_64::RDX);
- pub const UNWIND_PRIVATE_DATA_SIZE: usize = 6;
- }
- }
- #[cfg(target_arch = "x86_64")]
- pub use x86_64::*;
- #[cfg(target_arch = "x86")]
- mod x86 {
- use gimli::{Register, X86};
- pub struct Arch;
- #[allow(unused)]
- impl Arch {
- pub const SP: Register = X86::ESP;
- pub const RA: Register = X86::RA;
- pub const UNWIND_DATA_REG: (Register, Register) = (X86::EAX, X86::EDX);
- pub const UNWIND_PRIVATE_DATA_SIZE: usize = 5;
- }
- }
- #[cfg(target_arch = "x86")]
- pub use x86::*;
- #[cfg(any(target_arch = "riscv64", target_arch = "riscv32"))]
- mod riscv {
- use gimli::{Register, RiscV};
- pub struct Arch;
- #[allow(unused)]
- impl Arch {
- pub const SP: Register = RiscV::SP;
- pub const RA: Register = RiscV::RA;
- pub const UNWIND_DATA_REG: (Register, Register) = (RiscV::A0, RiscV::A1);
- pub const UNWIND_PRIVATE_DATA_SIZE: usize = 2;
- }
- }
- #[cfg(any(target_arch = "riscv64", target_arch = "riscv32"))]
- pub use riscv::*;
- #[cfg(target_arch = "aarch64")]
- mod aarch64 {
- use gimli::{AArch64, Register};
- pub struct Arch;
- #[allow(unused)]
- impl Arch {
- pub const SP: Register = AArch64::SP;
- pub const RA: Register = AArch64::X30;
- pub const UNWIND_DATA_REG: (Register, Register) = (AArch64::X0, AArch64::X1);
- pub const UNWIND_PRIVATE_DATA_SIZE: usize = 2;
- }
- }
- #[cfg(target_arch = "aarch64")]
- pub use aarch64::*;
- #[cfg(not(any(
- target_arch = "x86_64",
- target_arch = "x86",
- target_arch = "riscv64",
- target_arch = "riscv32",
- target_arch = "aarch64"
- )))]
- compile_error!("Current architecture is not supported");
|