#![allow(clippy::eq_op)]
#[cfg_attr(all(unix, target_arch = "aarch64"), path = "aarch64_unix.rs")]
#[cfg_attr(all(unix, target_arch = "arm"), path = "arm_unix.rs")]
#[cfg_attr(all(unix, target_arch = "x86_64"), path = "x86_64_unix.rs")]
#[cfg_attr(all(windows, target_arch = "x86_64"), path = "x86_64_windows.rs")]
#[cfg_attr(all(windows, target_arch = "aarch64"), path = "aarch64_windows.rs")]
#[cfg_attr(all(unix, target_arch = "loongarch64"), path = "loongarch64_unix.rs")]
#[cfg_attr(all(unix, target_arch = "riscv64"), path = "riscv64_unix.rs")]
pub mod asm;
mod gen;
pub use self::asm::{gen_init, initialize_call_frame, swap_registers, InitFn, Registers};
#[inline]
fn align_down(sp: *mut usize) -> *mut usize {
let sp = (sp as usize) & !(16 - 1);
sp as *mut usize
}
#[inline]
#[allow(unused)]
fn mut_offset<T>(ptr: *mut T, count: isize) -> *mut T {
unsafe { ptr.offset(count) }
}