wasmtime/runtime/vm/arch/
x86.rs1#[inline]
5#[allow(missing_docs)]
6pub fn get_stack_pointer() -> usize {
7 let stack_pointer: usize;
8 unsafe {
9 core::arch::asm!(
10 "mov {}, rsp",
11 out(reg) stack_pointer,
12 options(nostack,nomem),
13 );
14 }
15 stack_pointer
16}
17
18pub unsafe fn get_next_older_pc_from_fp(fp: usize) -> usize {
19 *(fp as *mut usize).offset(1)
22}
23
24pub const NEXT_OLDER_FP_FROM_FP_OFFSET: usize = 0;
26
27pub fn assert_fp_is_aligned(fp: usize) {
30 let align = 2 * size_of::<usize>();
31 assert_eq!(fp % align, 0, "stack should always be aligned to {align}");
32}