Initial work to build for Windows ARM64 (#4990)
* Make wasmtime build for windows-aarch64 * Add check for win arm64 build. * Fix checks for winarm64 key in workflows. * Add target in windows arm64 build. * Add tracking issue for Windows ARM64 trap handling
This commit is contained in:
@@ -5,6 +5,9 @@ cfg_if::cfg_if! {
|
||||
} else if #[cfg(all(windows, target_arch = "x86"))] {
|
||||
mod winx32;
|
||||
pub use self::winx32::*;
|
||||
} else if #[cfg(all(windows, target_arch = "aarch64"))] {
|
||||
mod winx64;
|
||||
pub use self::winx64::*;
|
||||
} else if #[cfg(unix)] {
|
||||
mod systemv;
|
||||
pub use self::systemv::*;
|
||||
|
||||
@@ -21,7 +21,7 @@ impl UnwindRegistration {
|
||||
if RtlAddFunctionTable(
|
||||
unwind_info as *mut _,
|
||||
(unwind_len / unit_len) as u32,
|
||||
base_address as u64,
|
||||
base_address as _,
|
||||
) == 0
|
||||
{
|
||||
bail!("failed to register function table");
|
||||
|
||||
@@ -58,6 +58,9 @@ unsafe extern "system" fn exception_handler(exception_info: *mut EXCEPTION_POINT
|
||||
} else if #[cfg(target_arch = "x86")] {
|
||||
let ip = (*(*exception_info).ContextRecord).Eip as *const u8;
|
||||
let fp = (*(*exception_info).ContextRecord).Ebp as usize;
|
||||
} else if #[cfg(target_arch = "aarch64")] {
|
||||
let ip = (*(*exception_info).ContextRecord).Pc as *const u8;
|
||||
let fp = (*(*exception_info).ContextRecord).Anonymous.Anonymous.Fp as usize;
|
||||
} else {
|
||||
compile_error!("unsupported platform");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user