From 66d2e5ca97ff1f52bcc1e8c7f421444dcaf90d98 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sa=C3=BAl=20Cabrera?= Date: Fri, 28 Feb 2025 16:25:09 -0500 Subject: [PATCH 1/2] winch(aarch64): ABI integration This commit finalizes the ABI integration between Winch and Cranelift, notably: * Updates the Cranelift ABI to ensure that all the Winch register clobbers are taken into account. * Updates the Winch ABI to treat x28 as callee-saved, since it's used as the shadow stack pointer. The alternative to treating x28 as callee-saved is to treat it as caller-saved and save it when required e.g., at call-sites, even though this approach works, it's probably more efficient to perform a store/pop once per function, to minimize the number of move instructions required. There are still some changes needed in order to fully enable running spec tests for aarch64, however, this change is one step further. If interested, you can run the call.wast test via: cargo run -- wast -Ccompiler=winch tests/spec_testsuite/call_indirect.wast --- cranelift/codegen/src/isa/aarch64/abi.rs | 78 +++++++++++++++++++++++- winch/codegen/src/abi/mod.rs | 6 ++ winch/codegen/src/isa/aarch64/abi.rs | 47 ++++++++++++++ winch/codegen/src/isa/aarch64/masm.rs | 30 +++++++-- winch/codegen/src/isa/x64/abi.rs | 6 ++ winch/codegen/src/isa/x64/masm.rs | 2 +- 6 files changed, 160 insertions(+), 9 deletions(-) diff --git a/cranelift/codegen/src/isa/aarch64/abi.rs b/cranelift/codegen/src/isa/aarch64/abi.rs index 3008a42f687d..9ade3ebea363 100644 --- a/cranelift/codegen/src/isa/aarch64/abi.rs +++ b/cranelift/codegen/src/isa/aarch64/abi.rs @@ -1123,8 +1123,11 @@ impl ABIMachineSpec for AArch64MachineDeps { } } - fn get_regs_clobbered_by_call(_call_conv: isa::CallConv) -> PRegSet { - DEFAULT_AAPCS_CLOBBERS + fn get_regs_clobbered_by_call(call_conv: isa::CallConv) -> PRegSet { + match call_conv { + isa::CallConv::Winch => WINCH_CLOBBERS, + _ => DEFAULT_AAPCS_CLOBBERS, + } } fn get_ext_mode( @@ -1438,7 +1441,78 @@ const fn default_aapcs_clobbers() -> PRegSet { .with(vreg_preg(31)) } +const fn winch_clobbers() -> PRegSet { + PRegSet::empty() + .with(xreg_preg(0)) + .with(xreg_preg(1)) + .with(xreg_preg(2)) + .with(xreg_preg(3)) + .with(xreg_preg(4)) + .with(xreg_preg(5)) + .with(xreg_preg(6)) + .with(xreg_preg(7)) + .with(xreg_preg(8)) + .with(xreg_preg(9)) + .with(xreg_preg(10)) + .with(xreg_preg(11)) + .with(xreg_preg(12)) + .with(xreg_preg(13)) + .with(xreg_preg(14)) + .with(xreg_preg(15)) + .with(xreg_preg(16)) + .with(xreg_preg(17)) + // x18 is used to carry platform state and is not allocatable by Winch. + // + // x19 - x27 are considered caller-saved in Winch's calling convention. + .with(xreg_preg(19)) + .with(xreg_preg(20)) + .with(xreg_preg(21)) + .with(xreg_preg(22)) + .with(xreg_preg(23)) + .with(xreg_preg(24)) + .with(xreg_preg(25)) + .with(xreg_preg(26)) + .with(xreg_preg(27)) + // x28 is used as the shadow stack pointer and is considered + // callee-saved. + // + // All vregs are considered caller-saved. + .with(vreg_preg(0)) + .with(vreg_preg(1)) + .with(vreg_preg(2)) + .with(vreg_preg(3)) + .with(vreg_preg(4)) + .with(vreg_preg(5)) + .with(vreg_preg(6)) + .with(vreg_preg(7)) + .with(vreg_preg(8)) + .with(vreg_preg(9)) + .with(vreg_preg(10)) + .with(vreg_preg(11)) + .with(vreg_preg(12)) + .with(vreg_preg(13)) + .with(vreg_preg(14)) + .with(vreg_preg(15)) + .with(vreg_preg(16)) + .with(vreg_preg(17)) + .with(vreg_preg(18)) + .with(vreg_preg(19)) + .with(vreg_preg(20)) + .with(vreg_preg(21)) + .with(vreg_preg(22)) + .with(vreg_preg(23)) + .with(vreg_preg(24)) + .with(vreg_preg(25)) + .with(vreg_preg(26)) + .with(vreg_preg(27)) + .with(vreg_preg(28)) + .with(vreg_preg(29)) + .with(vreg_preg(30)) + .with(vreg_preg(31)) +} + const DEFAULT_AAPCS_CLOBBERS: PRegSet = default_aapcs_clobbers(); +const WINCH_CLOBBERS: PRegSet = winch_clobbers(); fn create_reg_env(enable_pinned_reg: bool) -> MachineEnv { fn preg(r: Reg) -> PReg { diff --git a/winch/codegen/src/abi/mod.rs b/winch/codegen/src/abi/mod.rs index 1a3eee578af7..00b78df4a6ce 100644 --- a/winch/codegen/src/abi/mod.rs +++ b/winch/codegen/src/abi/mod.rs @@ -114,6 +114,12 @@ pub(crate) trait ABI { /// The offset to the argument base, relative to the frame pointer. fn arg_base_offset() -> u8; + /// The initial size in bytes of the function's frame. + /// + /// This amount is constant and accounts for all the stack space allocated + /// at the frame setup. + fn initial_frame_size() -> u8; + /// Construct the ABI-specific signature from a WebAssembly /// function type. #[cfg(test)] diff --git a/winch/codegen/src/isa/aarch64/abi.rs b/winch/codegen/src/isa/aarch64/abi.rs index 0617b9568dea..eb9d3b6cc625 100644 --- a/winch/codegen/src/isa/aarch64/abi.rs +++ b/winch/codegen/src/isa/aarch64/abi.rs @@ -9,6 +9,20 @@ use wasmtime_environ::{WasmHeapType, WasmRefType, WasmValType}; #[derive(Default)] pub(crate) struct Aarch64ABI; +/// The x28 register serves as the shadow stack pointer. For further details, +/// please refer to [`crate::isa::aarch64::regs::shadow_sp`]. +/// +/// This register is designated as callee-saved to prevent corruption during +/// function calls. This is especially important for Wasm-to-Wasm calls in +/// Winch-generated code, as Winch's default calling convention does not define +/// any callee-saved registers. +/// +/// Note that 16 bytes are used to save the shadow stack pointer register even +/// though only 8 are needed. 16 is used for simplicitly to ensure that the +/// 16-byte alignment requirement for memory addressing is met at the function's +/// prologue and epilogue. +pub const SHADOW_STACK_POINTER_SLOT_SIZE: u8 = 16; + impl ABI for Aarch64ABI { // TODO change to 16 once SIMD is supported fn stack_align() -> u8 { @@ -20,9 +34,42 @@ impl ABI for Aarch64ABI { } fn arg_base_offset() -> u8 { + // Two 8-byte slots: + // * One for link register + // * One for the frame pointer + // + // ┌──────────┬───────── Argument base + // │ LR │ + // │ │ + // ├──────────┼ + // │ │ + // │ FP │ + // └──────────┴ -> 16 16 } + fn initial_frame_size() -> u8 { + // The initial frame size is composed of 4 8-byte slots: + // * Two slots for the link register and the frame pointer. See + // [`Self::arg_base_offset`] + // * Two for the shadow stack pointer register. See + // [`SHADOW_STACK_POINTER_SIZE`] + // + // ┌──────────┬───────── Argument base + // │ LR │ + // │ │ + // ├──────────┼ + // │ │ + // │ FP │ + // ┌──────────┬ + // │ │ + // │ │ + // │ │ + // │ x28 │ + // └──────────┴ -> 32 + Self::arg_base_offset() + SHADOW_STACK_POINTER_SLOT_SIZE + } + fn word_bits() -> u8 { 64 } diff --git a/winch/codegen/src/isa/aarch64/masm.rs b/winch/codegen/src/isa/aarch64/masm.rs index 30cd8f509e69..fe3dcb75ae0a 100644 --- a/winch/codegen/src/isa/aarch64/masm.rs +++ b/winch/codegen/src/isa/aarch64/masm.rs @@ -9,6 +9,7 @@ use crate::{ abi::{self, align_to, calculate_frame_adjustment, local::LocalSlot, vmctx}, codegen::{ptr_type_from_ptr_size, CodeGenContext, CodeGenError, Emission, FuncEnv}, isa::{ + aarch64::abi::SHADOW_STACK_POINTER_SLOT_SIZE, reg::{writable, Reg, WritableReg}, CallingConvention, }, @@ -65,7 +66,7 @@ impl MacroAssembler { { let mut aligned = false; let alignment: u32 = ::call_stack_align().into(); - let addend: u32 = ::arg_base_offset().into(); + let addend: u32 = ::initial_frame_size().into(); let delta = calculate_frame_adjustment(self.sp_offset()?.as_u32(), addend, alignment); if delta != 0 { self.asm.sub_ir( @@ -106,10 +107,15 @@ impl Masm for MacroAssembler { let lr = regs::lr(); let fp = regs::fp(); let sp = regs::sp(); - let addr = Address::pre_indexed_from_sp(-16); + let addr = Address::pre_indexed_from_sp(-16); self.asm.stp(fp, lr, addr); self.asm.mov_rr(sp, writable!(fp), OperandSize::S64); + + let addr = Address::pre_indexed_from_sp(-(SHADOW_STACK_POINTER_SLOT_SIZE as i64)); + self.asm + .str(regs::shadow_sp(), addr, OperandSize::S64, TRUSTED_FLAGS); + self.move_sp_to_shadow_sp(); Ok(()) } @@ -122,12 +128,24 @@ impl Masm for MacroAssembler { fn frame_restore(&mut self) -> Result<()> { debug_assert_eq!(self.sp_offset, 0); - let lr = regs::lr(); - let fp = regs::fp(); - // Sync the real stack pointer with the value of the shadow stack // pointer. self.move_shadow_sp_to_sp(); + + // Pop the shadow stack pointer. It's assumed that at this point + // `sp_offset` is 0 and therfore the real stack pointer should be + // 16-byte aligned. + let addr = Address::post_indexed_from_sp(SHADOW_STACK_POINTER_SLOT_SIZE as i64); + self.asm.uload( + addr, + writable!(regs::shadow_sp()), + OperandSize::S64, + TRUSTED_FLAGS, + ); + + // Restore the link register and frame pointer. + let lr = regs::lr(); + let fp = regs::fp(); let addr = Address::post_indexed_from_sp(16); self.asm.ldp(fp, lr, addr); @@ -263,7 +281,7 @@ impl Masm for MacroAssembler { mut load_callee: impl FnMut(&mut Self) -> Result<(CalleeKind, CallingConvention)>, ) -> Result { let alignment: u32 = ::call_stack_align().into(); - let addend: u32 = ::arg_base_offset().into(); + let addend: u32 = ::initial_frame_size().into(); let delta = calculate_frame_adjustment(self.sp_offset()?.as_u32(), addend, alignment); let aligned_args_size = align_to(stack_args_size, alignment); let total_stack = delta + aligned_args_size; diff --git a/winch/codegen/src/isa/x64/abi.rs b/winch/codegen/src/isa/x64/abi.rs index d310a4dd32c9..5b13d3566930 100644 --- a/winch/codegen/src/isa/x64/abi.rs +++ b/winch/codegen/src/isa/x64/abi.rs @@ -33,6 +33,12 @@ impl ABI for X64ABI { 16 } + fn initial_frame_size() -> u8 { + // The initial frame size is equal to the space allocated to save the + // return address and the frame pointer. + Self::arg_base_offset() + } + fn word_bits() -> u8 { 64 } diff --git a/winch/codegen/src/isa/x64/masm.rs b/winch/codegen/src/isa/x64/masm.rs index 0466e5bf3f45..a94ba0ca3e4e 100644 --- a/winch/codegen/src/isa/x64/masm.rs +++ b/winch/codegen/src/isa/x64/masm.rs @@ -310,7 +310,7 @@ impl Masm for MacroAssembler { mut load_callee: impl FnMut(&mut Self) -> Result<(CalleeKind, CallingConvention)>, ) -> Result { let alignment: u32 = ::call_stack_align().into(); - let addend: u32 = ::arg_base_offset().into(); + let addend: u32 = ::initial_frame_size().into(); let delta = calculate_frame_adjustment(self.sp_offset()?.as_u32(), addend, alignment); let aligned_args_size = align_to(stack_args_size, alignment); let total_stack = delta + aligned_args_size; From 84f13c93ed9b23d6c71475ac227afc0ce4db2968 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sa=C3=BAl=20Cabrera?= Date: Fri, 28 Feb 2025 16:49:55 -0500 Subject: [PATCH 2/2] Update disas tests --- .../disas/winch/aarch64/br/as_br_if_cond.wat | 2 + tests/disas/winch/aarch64/br/as_br_value.wat | 2 + tests/disas/winch/aarch64/br/as_if_cond.wat | 2 + tests/disas/winch/aarch64/br/as_if_else.wat | 12 ++-- tests/disas/winch/aarch64/br/as_if_then.wat | 12 ++-- .../disas/winch/aarch64/br/as_loop_first.wat | 2 + tests/disas/winch/aarch64/br/br_jump.wat | 6 +- .../winch/aarch64/br_if/as_br_if_cond.wat | 14 ++-- .../disas/winch/aarch64/br_if/as_br_value.wat | 8 ++- .../disas/winch/aarch64/br_if/as_if_cond.wat | 18 ++--- .../aarch64/br_if/as_local_set_value.wat | 8 ++- tests/disas/winch/aarch64/br_table/large.wat | 14 ++-- .../br_table/nested_br_table_loop_block.wat | 22 +++--- tests/disas/winch/aarch64/call/multi.wat | 6 +- tests/disas/winch/aarch64/call/params.wat | 8 ++- tests/disas/winch/aarch64/call/recursive.wat | 16 +++-- .../disas/winch/aarch64/call/reg_on_stack.wat | 16 +++-- tests/disas/winch/aarch64/call/simple.wat | 8 ++- .../aarch64/call_indirect/call_indirect.wat | 72 ++++++++++--------- .../winch/aarch64/call_indirect/local_arg.wat | 36 +++++----- .../winch/aarch64/f32_abs/f32_abs_const.wat | 2 + .../winch/aarch64/f32_abs/f32_abs_param.wat | 2 + tests/disas/winch/aarch64/f32_add/const.wat | 2 + tests/disas/winch/aarch64/f32_add/locals.wat | 2 + tests/disas/winch/aarch64/f32_add/params.wat | 2 + .../winch/aarch64/f32_ceil/f32_ceil_const.wat | 2 + .../winch/aarch64/f32_ceil/f32_ceil_param.wat | 2 + .../winch/aarch64/f32_convert_i32_s/const.wat | 2 + .../aarch64/f32_convert_i32_s/locals.wat | 2 + .../aarch64/f32_convert_i32_s/params.wat | 2 + .../aarch64/f32_convert_i32_s/spilled.wat | 2 + .../winch/aarch64/f32_convert_i32_u/const.wat | 2 + .../aarch64/f32_convert_i32_u/locals.wat | 2 + .../aarch64/f32_convert_i32_u/params.wat | 2 + .../aarch64/f32_convert_i32_u/spilled.wat | 2 + .../winch/aarch64/f32_convert_i64_s/const.wat | 2 + .../aarch64/f32_convert_i64_s/locals.wat | 2 + .../aarch64/f32_convert_i64_s/params.wat | 2 + .../aarch64/f32_convert_i64_s/spilled.wat | 2 + .../winch/aarch64/f32_convert_i64_u/const.wat | 2 + .../aarch64/f32_convert_i64_u/locals.wat | 2 + .../aarch64/f32_convert_i64_u/params.wat | 2 + .../aarch64/f32_convert_i64_u/spilled.wat | 2 + .../winch/aarch64/f32_copysign/const.wat | 2 + .../winch/aarch64/f32_copysign/locals.wat | 2 + .../winch/aarch64/f32_copysign/params.wat | 2 + .../winch/aarch64/f32_demote_f64/const.wat | 2 + .../winch/aarch64/f32_demote_f64/locals.wat | 2 + .../winch/aarch64/f32_demote_f64/params.wat | 2 + tests/disas/winch/aarch64/f32_div/const.wat | 2 + tests/disas/winch/aarch64/f32_div/locals.wat | 2 + tests/disas/winch/aarch64/f32_div/params.wat | 2 + tests/disas/winch/aarch64/f32_eq/const.wat | 2 + tests/disas/winch/aarch64/f32_eq/locals.wat | 2 + tests/disas/winch/aarch64/f32_eq/params.wat | 2 + .../aarch64/f32_floor/f32_floor_const.wat | 2 + .../aarch64/f32_floor/f32_floor_param.wat | 2 + tests/disas/winch/aarch64/f32_ge/const.wat | 2 + tests/disas/winch/aarch64/f32_ge/locals.wat | 2 + tests/disas/winch/aarch64/f32_ge/params.wat | 2 + tests/disas/winch/aarch64/f32_gt/const.wat | 2 + tests/disas/winch/aarch64/f32_gt/locals.wat | 2 + tests/disas/winch/aarch64/f32_gt/params.wat | 2 + tests/disas/winch/aarch64/f32_le/const.wat | 2 + tests/disas/winch/aarch64/f32_le/locals.wat | 2 + tests/disas/winch/aarch64/f32_le/params.wat | 2 + tests/disas/winch/aarch64/f32_lt/const.wat | 2 + tests/disas/winch/aarch64/f32_lt/locals.wat | 2 + tests/disas/winch/aarch64/f32_lt/params.wat | 2 + tests/disas/winch/aarch64/f32_max/const.wat | 2 + tests/disas/winch/aarch64/f32_max/locals.wat | 2 + tests/disas/winch/aarch64/f32_max/params.wat | 2 + tests/disas/winch/aarch64/f32_min/const.wat | 2 + tests/disas/winch/aarch64/f32_min/locals.wat | 2 + tests/disas/winch/aarch64/f32_min/params.wat | 2 + tests/disas/winch/aarch64/f32_mul/const.wat | 2 + tests/disas/winch/aarch64/f32_mul/locals.wat | 2 + tests/disas/winch/aarch64/f32_mul/params.wat | 2 + tests/disas/winch/aarch64/f32_ne/const.wat | 2 + tests/disas/winch/aarch64/f32_ne/locals.wat | 2 + tests/disas/winch/aarch64/f32_ne/params.wat | 2 + .../aarch64/f32_nearest/f32_nearest_const.wat | 2 + .../aarch64/f32_nearest/f32_nearest_param.wat | 2 + .../winch/aarch64/f32_neg/f32_neg_const.wat | 2 + .../winch/aarch64/f32_neg/f32_neg_param.wat | 2 + .../aarch64/f32_reinterpret_i32/const.wat | 2 + .../aarch64/f32_reinterpret_i32/locals.wat | 2 + .../aarch64/f32_reinterpret_i32/params.wat | 2 + .../aarch64/f32_reinterpret_i32/ret_int.wat | 2 + .../aarch64/f32_reinterpret_i32/spilled.wat | 2 + .../winch/aarch64/f32_sqrt/f32_sqrt_const.wat | 2 + .../winch/aarch64/f32_sqrt/f32_sqrt_param.wat | 2 + tests/disas/winch/aarch64/f32_sub/const.wat | 2 + tests/disas/winch/aarch64/f32_sub/locals.wat | 2 + tests/disas/winch/aarch64/f32_sub/params.wat | 2 + .../aarch64/f32_trunc/f32_trunc_const.wat | 2 + .../aarch64/f32_trunc/f32_trunc_param.wat | 2 + .../winch/aarch64/f64_abs/f64_abs_const.wat | 2 + .../winch/aarch64/f64_abs/f64_abs_param.wat | 2 + tests/disas/winch/aarch64/f64_add/const.wat | 2 + tests/disas/winch/aarch64/f64_add/locals.wat | 2 + tests/disas/winch/aarch64/f64_add/params.wat | 2 + .../winch/aarch64/f64_ceil/f64_ceil_const.wat | 2 + .../winch/aarch64/f64_ceil/f64_ceil_param.wat | 2 + .../winch/aarch64/f64_convert_i32_s/const.wat | 2 + .../aarch64/f64_convert_i32_s/locals.wat | 2 + .../aarch64/f64_convert_i32_s/params.wat | 2 + .../aarch64/f64_convert_i32_s/spilled.wat | 2 + .../winch/aarch64/f64_convert_i32_u/const.wat | 2 + .../aarch64/f64_convert_i32_u/locals.wat | 2 + .../aarch64/f64_convert_i32_u/params.wat | 2 + .../aarch64/f64_convert_i32_u/spilled.wat | 2 + .../winch/aarch64/f64_convert_i64_s/const.wat | 2 + .../aarch64/f64_convert_i64_s/locals.wat | 2 + .../aarch64/f64_convert_i64_s/params.wat | 2 + .../aarch64/f64_convert_i64_s/spilled.wat | 2 + .../winch/aarch64/f64_convert_i64_u/const.wat | 2 + .../aarch64/f64_convert_i64_u/locals.wat | 2 + .../aarch64/f64_convert_i64_u/params.wat | 2 + .../aarch64/f64_convert_i64_u/spilled.wat | 2 + .../winch/aarch64/f64_copysign/const.wat | 2 + .../winch/aarch64/f64_copysign/locals.wat | 2 + .../winch/aarch64/f64_copysign/params.wat | 2 + tests/disas/winch/aarch64/f64_div/const.wat | 2 + tests/disas/winch/aarch64/f64_div/locals.wat | 2 + tests/disas/winch/aarch64/f64_div/params.wat | 2 + tests/disas/winch/aarch64/f64_eq/const.wat | 2 + tests/disas/winch/aarch64/f64_eq/locals.wat | 2 + tests/disas/winch/aarch64/f64_eq/params.wat | 2 + .../aarch64/f64_floor/f64_floor_const.wat | 2 + .../aarch64/f64_floor/f64_floor_param.wat | 2 + tests/disas/winch/aarch64/f64_ge/const.wat | 2 + tests/disas/winch/aarch64/f64_ge/locals.wat | 2 + tests/disas/winch/aarch64/f64_ge/params.wat | 2 + tests/disas/winch/aarch64/f64_gt/const.wat | 2 + tests/disas/winch/aarch64/f64_gt/locals.wat | 2 + tests/disas/winch/aarch64/f64_gt/params.wat | 2 + tests/disas/winch/aarch64/f64_le/const.wat | 2 + tests/disas/winch/aarch64/f64_le/locals.wat | 2 + tests/disas/winch/aarch64/f64_le/params.wat | 2 + tests/disas/winch/aarch64/f64_lt/const.wat | 2 + tests/disas/winch/aarch64/f64_lt/locals.wat | 2 + tests/disas/winch/aarch64/f64_lt/params.wat | 2 + tests/disas/winch/aarch64/f64_max/const.wat | 2 + tests/disas/winch/aarch64/f64_max/locals.wat | 2 + tests/disas/winch/aarch64/f64_max/params.wat | 2 + tests/disas/winch/aarch64/f64_min/const.wat | 2 + tests/disas/winch/aarch64/f64_min/locals.wat | 2 + tests/disas/winch/aarch64/f64_min/params.wat | 2 + tests/disas/winch/aarch64/f64_mul/const.wat | 2 + tests/disas/winch/aarch64/f64_mul/locals.wat | 2 + tests/disas/winch/aarch64/f64_mul/params.wat | 2 + tests/disas/winch/aarch64/f64_ne/const.wat | 2 + tests/disas/winch/aarch64/f64_ne/locals.wat | 2 + tests/disas/winch/aarch64/f64_ne/params.wat | 2 + .../aarch64/f64_nearest/f64_nearest_const.wat | 2 + .../aarch64/f64_nearest/f64_nearest_param.wat | 2 + .../winch/aarch64/f64_neg/f64_neg_const.wat | 2 + .../winch/aarch64/f64_neg/f64_neg_param.wat | 2 + .../winch/aarch64/f64_promote_f32/const.wat | 2 + .../winch/aarch64/f64_promote_f32/locals.wat | 2 + .../winch/aarch64/f64_promote_f32/params.wat | 2 + .../aarch64/f64_reinterpret_i64/const.wat | 2 + .../aarch64/f64_reinterpret_i64/locals.wat | 2 + .../aarch64/f64_reinterpret_i64/params.wat | 2 + .../aarch64/f64_reinterpret_i64/ret_int.wat | 2 + .../aarch64/f64_reinterpret_i64/spilled.wat | 2 + .../winch/aarch64/f64_sqrt/f64_sqrt_const.wat | 2 + .../winch/aarch64/f64_sqrt/f64_sqrt_param.wat | 2 + tests/disas/winch/aarch64/f64_sub/const.wat | 2 + tests/disas/winch/aarch64/f64_sub/locals.wat | 2 + tests/disas/winch/aarch64/f64_sub/params.wat | 2 + .../aarch64/f64_trunc/f64_trunc_const.wat | 2 + .../aarch64/f64_trunc/f64_trunc_param.wat | 2 + tests/disas/winch/aarch64/i32_add/const.wat | 2 + tests/disas/winch/aarch64/i32_add/locals.wat | 2 + tests/disas/winch/aarch64/i32_add/max.wat | 2 + tests/disas/winch/aarch64/i32_add/max_one.wat | 2 + tests/disas/winch/aarch64/i32_add/mixed.wat | 2 + tests/disas/winch/aarch64/i32_add/params.wat | 2 + tests/disas/winch/aarch64/i32_add/signed.wat | 2 + .../aarch64/i32_add/unsigned_with_zero.wat | 2 + tests/disas/winch/aarch64/i32_and/const.wat | 2 + tests/disas/winch/aarch64/i32_and/locals.wat | 2 + tests/disas/winch/aarch64/i32_and/params.wat | 2 + tests/disas/winch/aarch64/i32_clz/const.wat | 2 + tests/disas/winch/aarch64/i32_clz/locals.wat | 2 + tests/disas/winch/aarch64/i32_clz/params.wat | 2 + tests/disas/winch/aarch64/i32_ctz/const.wat | 2 + tests/disas/winch/aarch64/i32_ctz/locals.wat | 2 + tests/disas/winch/aarch64/i32_ctz/params.wat | 2 + tests/disas/winch/aarch64/i32_divs/const.wat | 14 ++-- .../disas/winch/aarch64/i32_divs/one_zero.wat | 14 ++-- .../disas/winch/aarch64/i32_divs/overflow.wat | 14 ++-- tests/disas/winch/aarch64/i32_divs/params.wat | 14 ++-- .../winch/aarch64/i32_divs/zero_zero.wat | 14 ++-- tests/disas/winch/aarch64/i32_divu/const.wat | 8 ++- .../disas/winch/aarch64/i32_divu/one_zero.wat | 8 ++- tests/disas/winch/aarch64/i32_divu/params.wat | 8 ++- tests/disas/winch/aarch64/i32_divu/signed.wat | 8 ++- .../winch/aarch64/i32_divu/zero_zero.wat | 8 ++- tests/disas/winch/aarch64/i32_eq/const.wat | 2 + tests/disas/winch/aarch64/i32_eq/locals.wat | 2 + tests/disas/winch/aarch64/i32_eq/params.wat | 2 + .../winch/aarch64/i32_extend_16_s/const.wat | 2 + .../winch/aarch64/i32_extend_16_s/locals.wat | 2 + .../winch/aarch64/i32_extend_16_s/params.wat | 2 + .../winch/aarch64/i32_extend_8_s/const.wat | 2 + .../winch/aarch64/i32_extend_8_s/locals.wat | 2 + .../winch/aarch64/i32_extend_8_s/params.wat | 2 + tests/disas/winch/aarch64/i32_ge_s/const.wat | 2 + tests/disas/winch/aarch64/i32_ge_s/locals.wat | 2 + tests/disas/winch/aarch64/i32_ge_s/params.wat | 2 + tests/disas/winch/aarch64/i32_ge_u/const.wat | 2 + tests/disas/winch/aarch64/i32_ge_u/locals.wat | 2 + tests/disas/winch/aarch64/i32_ge_u/params.wat | 2 + tests/disas/winch/aarch64/i32_gt_s/const.wat | 2 + tests/disas/winch/aarch64/i32_gt_s/locals.wat | 2 + tests/disas/winch/aarch64/i32_gt_s/params.wat | 2 + tests/disas/winch/aarch64/i32_gt_u/const.wat | 2 + tests/disas/winch/aarch64/i32_gt_u/locals.wat | 2 + tests/disas/winch/aarch64/i32_gt_u/params.wat | 2 + tests/disas/winch/aarch64/i32_le_s/const.wat | 2 + tests/disas/winch/aarch64/i32_le_s/locals.wat | 2 + tests/disas/winch/aarch64/i32_le_s/params.wat | 2 + tests/disas/winch/aarch64/i32_le_u/const.wat | 2 + tests/disas/winch/aarch64/i32_le_u/locals.wat | 2 + tests/disas/winch/aarch64/i32_le_u/params.wat | 2 + tests/disas/winch/aarch64/i32_lt_s/const.wat | 2 + tests/disas/winch/aarch64/i32_lt_s/locals.wat | 2 + tests/disas/winch/aarch64/i32_lt_s/params.wat | 2 + tests/disas/winch/aarch64/i32_lt_u/const.wat | 2 + tests/disas/winch/aarch64/i32_lt_u/locals.wat | 2 + tests/disas/winch/aarch64/i32_lt_u/params.wat | 2 + tests/disas/winch/aarch64/i32_mul/const.wat | 2 + tests/disas/winch/aarch64/i32_mul/locals.wat | 2 + tests/disas/winch/aarch64/i32_mul/max.wat | 2 + tests/disas/winch/aarch64/i32_mul/max_one.wat | 2 + tests/disas/winch/aarch64/i32_mul/mixed.wat | 2 + tests/disas/winch/aarch64/i32_mul/params.wat | 2 + tests/disas/winch/aarch64/i32_mul/signed.wat | 2 + .../aarch64/i32_mul/unsigned_with_zero.wat | 2 + tests/disas/winch/aarch64/i32_ne/const.wat | 2 + tests/disas/winch/aarch64/i32_ne/locals.wat | 2 + tests/disas/winch/aarch64/i32_ne/params.wat | 2 + tests/disas/winch/aarch64/i32_or/const.wat | 2 + tests/disas/winch/aarch64/i32_or/locals.wat | 2 + tests/disas/winch/aarch64/i32_or/params.wat | 2 + .../disas/winch/aarch64/i32_popcnt/const.wat | 2 + tests/disas/winch/aarch64/i32_popcnt/reg.wat | 2 + .../aarch64/i32_reinterpret_f32/const.wat | 2 + .../aarch64/i32_reinterpret_f32/locals.wat | 2 + .../aarch64/i32_reinterpret_f32/params.wat | 2 + .../aarch64/i32_reinterpret_f32/ret_float.wat | 2 + tests/disas/winch/aarch64/i32_rems/const.wat | 8 ++- .../disas/winch/aarch64/i32_rems/one_zero.wat | 8 ++- .../disas/winch/aarch64/i32_rems/overflow.wat | 8 ++- tests/disas/winch/aarch64/i32_rems/params.wat | 8 ++- .../winch/aarch64/i32_rems/zero_zero.wat | 8 ++- tests/disas/winch/aarch64/i32_remu/const.wat | 8 ++- .../disas/winch/aarch64/i32_remu/one_zero.wat | 8 ++- tests/disas/winch/aarch64/i32_remu/params.wat | 8 ++- tests/disas/winch/aarch64/i32_remu/signed.wat | 8 ++- .../winch/aarch64/i32_remu/zero_zero.wat | 8 ++- .../disas/winch/aarch64/i32_rotl/16_const.wat | 2 + .../disas/winch/aarch64/i32_rotl/8_const.wat | 2 + tests/disas/winch/aarch64/i32_rotl/locals.wat | 2 + tests/disas/winch/aarch64/i32_rotl/params.wat | 2 + .../disas/winch/aarch64/i32_rotr/16_const.wat | 2 + .../disas/winch/aarch64/i32_rotr/8_const.wat | 2 + tests/disas/winch/aarch64/i32_rotr/locals.wat | 2 + tests/disas/winch/aarch64/i32_rotr/params.wat | 2 + .../disas/winch/aarch64/i32_shl/16_const.wat | 2 + tests/disas/winch/aarch64/i32_shl/8_const.wat | 2 + tests/disas/winch/aarch64/i32_shl/locals.wat | 2 + tests/disas/winch/aarch64/i32_shl/params.wat | 2 + .../winch/aarch64/i32_shr_s/16_const.wat | 2 + .../disas/winch/aarch64/i32_shr_s/8_const.wat | 2 + .../disas/winch/aarch64/i32_shr_s/locals.wat | 2 + .../disas/winch/aarch64/i32_shr_s/params.wat | 2 + .../winch/aarch64/i32_shr_u/16_const.wat | 2 + .../disas/winch/aarch64/i32_shr_u/8_const.wat | 2 + .../disas/winch/aarch64/i32_shr_u/locals.wat | 2 + .../disas/winch/aarch64/i32_shr_u/params.wat | 2 + tests/disas/winch/aarch64/i32_sub/const.wat | 2 + tests/disas/winch/aarch64/i32_sub/locals.wat | 2 + tests/disas/winch/aarch64/i32_sub/max.wat | 2 + tests/disas/winch/aarch64/i32_sub/max_one.wat | 2 + tests/disas/winch/aarch64/i32_sub/mixed.wat | 2 + tests/disas/winch/aarch64/i32_sub/params.wat | 2 + tests/disas/winch/aarch64/i32_sub/signed.wat | 2 + .../aarch64/i32_sub/unsigned_with_zero.wat | 2 + .../winch/aarch64/i32_trunc_f32_s/const.wat | 18 ++--- .../winch/aarch64/i32_trunc_f32_s/locals.wat | 18 ++--- .../winch/aarch64/i32_trunc_f32_s/params.wat | 18 ++--- .../winch/aarch64/i32_trunc_f32_u/const.wat | 18 ++--- .../winch/aarch64/i32_trunc_f32_u/locals.wat | 18 ++--- .../winch/aarch64/i32_trunc_f32_u/params.wat | 18 ++--- .../winch/aarch64/i32_trunc_f64_s/const.wat | 18 ++--- .../winch/aarch64/i32_trunc_f64_s/locals.wat | 18 ++--- .../winch/aarch64/i32_trunc_f64_s/params.wat | 18 ++--- .../winch/aarch64/i32_trunc_f64_u/const.wat | 18 ++--- .../winch/aarch64/i32_trunc_f64_u/locals.wat | 18 ++--- .../winch/aarch64/i32_trunc_f64_u/params.wat | 18 ++--- .../winch/aarch64/i32_wrap_i64/const.wat | 2 + .../winch/aarch64/i32_wrap_i64/locals.wat | 2 + .../winch/aarch64/i32_wrap_i64/params.wat | 2 + tests/disas/winch/aarch64/i32_xor/const.wat | 2 + tests/disas/winch/aarch64/i32_xor/locals.wat | 2 + tests/disas/winch/aarch64/i32_xor/params.wat | 2 + tests/disas/winch/aarch64/i64_add/const.wat | 2 + tests/disas/winch/aarch64/i64_add/locals.wat | 2 + tests/disas/winch/aarch64/i64_add/max.wat | 2 + tests/disas/winch/aarch64/i64_add/max_one.wat | 2 + tests/disas/winch/aarch64/i64_add/mixed.wat | 2 + tests/disas/winch/aarch64/i64_add/params.wat | 2 + tests/disas/winch/aarch64/i64_add/signed.wat | 2 + .../aarch64/i64_add/unsigned_with_zero.wat | 2 + .../disas/winch/aarch64/i64_and/32_const.wat | 2 + .../disas/winch/aarch64/i64_and/64_const.wat | 2 + tests/disas/winch/aarch64/i64_and/locals.wat | 2 + tests/disas/winch/aarch64/i64_and/params.wat | 2 + tests/disas/winch/aarch64/i64_clz/const.wat | 2 + tests/disas/winch/aarch64/i64_clz/locals.wat | 2 + tests/disas/winch/aarch64/i64_clz/params.wat | 2 + tests/disas/winch/aarch64/i64_ctz/const.wat | 2 + tests/disas/winch/aarch64/i64_ctz/locals.wat | 2 + tests/disas/winch/aarch64/i64_ctz/params.wat | 2 + tests/disas/winch/aarch64/i64_divs/const.wat | 14 ++-- .../disas/winch/aarch64/i64_divs/one_zero.wat | 14 ++-- .../disas/winch/aarch64/i64_divs/overflow.wat | 14 ++-- tests/disas/winch/aarch64/i64_divs/params.wat | 14 ++-- .../winch/aarch64/i64_divs/zero_zero.wat | 14 ++-- tests/disas/winch/aarch64/i64_divu/const.wat | 8 ++- .../disas/winch/aarch64/i64_divu/one_zero.wat | 8 ++- tests/disas/winch/aarch64/i64_divu/params.wat | 8 ++- tests/disas/winch/aarch64/i64_divu/signed.wat | 8 ++- .../winch/aarch64/i64_divu/zero_zero.wat | 8 ++- tests/disas/winch/aarch64/i64_eq/const.wat | 2 + tests/disas/winch/aarch64/i64_eq/locals.wat | 2 + tests/disas/winch/aarch64/i64_eq/params.wat | 2 + .../winch/aarch64/i64_extend_16_s/const.wat | 2 + .../winch/aarch64/i64_extend_16_s/locals.wat | 2 + .../winch/aarch64/i64_extend_16_s/params.wat | 2 + .../winch/aarch64/i64_extend_32_s/const.wat | 2 + .../winch/aarch64/i64_extend_32_s/locals.wat | 2 + .../winch/aarch64/i64_extend_32_s/params.wat | 2 + .../winch/aarch64/i64_extend_8_s/const.wat | 2 + .../winch/aarch64/i64_extend_8_s/locals.wat | 2 + .../winch/aarch64/i64_extend_8_s/params.wat | 2 + .../winch/aarch64/i64_extend_i32_s/const.wat | 2 + .../winch/aarch64/i64_extend_i32_s/locals.wat | 2 + .../winch/aarch64/i64_extend_i32_s/params.wat | 2 + .../winch/aarch64/i64_extend_i32_u/const.wat | 2 + .../winch/aarch64/i64_extend_i32_u/locals.wat | 2 + .../winch/aarch64/i64_extend_i32_u/params.wat | 2 + tests/disas/winch/aarch64/i64_ge_s/const.wat | 2 + tests/disas/winch/aarch64/i64_ge_s/locals.wat | 2 + tests/disas/winch/aarch64/i64_ge_s/params.wat | 2 + tests/disas/winch/aarch64/i64_ge_u/const.wat | 2 + tests/disas/winch/aarch64/i64_ge_u/locals.wat | 2 + tests/disas/winch/aarch64/i64_ge_u/params.wat | 2 + tests/disas/winch/aarch64/i64_gt_s/const.wat | 2 + tests/disas/winch/aarch64/i64_gt_s/locals.wat | 2 + tests/disas/winch/aarch64/i64_gt_s/params.wat | 2 + tests/disas/winch/aarch64/i64_gt_u/const.wat | 2 + tests/disas/winch/aarch64/i64_gt_u/locals.wat | 2 + tests/disas/winch/aarch64/i64_gt_u/params.wat | 2 + tests/disas/winch/aarch64/i64_le_s/const.wat | 2 + tests/disas/winch/aarch64/i64_le_s/locals.wat | 2 + tests/disas/winch/aarch64/i64_le_s/params.wat | 2 + tests/disas/winch/aarch64/i64_le_u/const.wat | 2 + tests/disas/winch/aarch64/i64_le_u/locals.wat | 2 + tests/disas/winch/aarch64/i64_le_u/params.wat | 2 + tests/disas/winch/aarch64/i64_lt_s/const.wat | 2 + tests/disas/winch/aarch64/i64_lt_s/locals.wat | 2 + tests/disas/winch/aarch64/i64_lt_s/params.wat | 2 + tests/disas/winch/aarch64/i64_lt_u/const.wat | 2 + tests/disas/winch/aarch64/i64_lt_u/locals.wat | 2 + tests/disas/winch/aarch64/i64_lt_u/params.wat | 2 + tests/disas/winch/aarch64/i64_mul/const.wat | 2 + tests/disas/winch/aarch64/i64_mul/locals.wat | 2 + tests/disas/winch/aarch64/i64_mul/max.wat | 2 + tests/disas/winch/aarch64/i64_mul/max_one.wat | 2 + tests/disas/winch/aarch64/i64_mul/mixed.wat | 2 + tests/disas/winch/aarch64/i64_mul/params.wat | 2 + tests/disas/winch/aarch64/i64_mul/signed.wat | 2 + .../aarch64/i64_mul/unsigned_with_zero.wat | 2 + tests/disas/winch/aarch64/i64_ne/const.wat | 2 + tests/disas/winch/aarch64/i64_ne/locals.wat | 2 + tests/disas/winch/aarch64/i64_ne/params.wat | 2 + tests/disas/winch/aarch64/i64_or/32_const.wat | 2 + tests/disas/winch/aarch64/i64_or/64_const.wat | 2 + tests/disas/winch/aarch64/i64_or/locals.wat | 2 + tests/disas/winch/aarch64/i64_or/params.wat | 2 + .../disas/winch/aarch64/i64_popcnt/const.wat | 2 + tests/disas/winch/aarch64/i64_popcnt/reg.wat | 2 + .../aarch64/i64_reinterpret_f64/const.wat | 2 + .../aarch64/i64_reinterpret_f64/locals.wat | 2 + .../aarch64/i64_reinterpret_f64/params.wat | 2 + .../aarch64/i64_reinterpret_f64/ret_float.wat | 2 + tests/disas/winch/aarch64/i64_rems/const.wat | 8 ++- .../disas/winch/aarch64/i64_rems/one_zero.wat | 8 ++- .../disas/winch/aarch64/i64_rems/overflow.wat | 8 ++- tests/disas/winch/aarch64/i64_rems/params.wat | 8 ++- .../winch/aarch64/i64_rems/zero_zero.wat | 8 ++- tests/disas/winch/aarch64/i64_remu/const.wat | 8 ++- .../disas/winch/aarch64/i64_remu/one_zero.wat | 8 ++- tests/disas/winch/aarch64/i64_remu/params.wat | 8 ++- tests/disas/winch/aarch64/i64_remu/signed.wat | 8 ++- .../winch/aarch64/i64_remu/zero_zero.wat | 8 ++- .../disas/winch/aarch64/i64_rotl/16_const.wat | 2 + .../disas/winch/aarch64/i64_rotl/8_const.wat | 2 + tests/disas/winch/aarch64/i64_rotl/locals.wat | 2 + tests/disas/winch/aarch64/i64_rotl/params.wat | 2 + .../disas/winch/aarch64/i64_rotr/16_const.wat | 2 + .../disas/winch/aarch64/i64_rotr/8_const.wat | 2 + tests/disas/winch/aarch64/i64_rotr/locals.wat | 2 + tests/disas/winch/aarch64/i64_rotr/params.wat | 2 + .../disas/winch/aarch64/i64_shl/16_const.wat | 2 + tests/disas/winch/aarch64/i64_shl/8_const.wat | 2 + tests/disas/winch/aarch64/i64_shl/locals.wat | 2 + tests/disas/winch/aarch64/i64_shl/params.wat | 2 + .../winch/aarch64/i64_shr_s/16_const.wat | 2 + .../disas/winch/aarch64/i64_shr_s/8_const.wat | 2 + .../disas/winch/aarch64/i64_shr_s/locals.wat | 2 + .../disas/winch/aarch64/i64_shr_s/params.wat | 2 + .../winch/aarch64/i64_shr_u/16_const.wat | 2 + .../disas/winch/aarch64/i64_shr_u/8_const.wat | 2 + .../disas/winch/aarch64/i64_shr_u/locals.wat | 2 + .../disas/winch/aarch64/i64_shr_u/params.wat | 2 + tests/disas/winch/aarch64/i64_sub/const.wat | 2 + tests/disas/winch/aarch64/i64_sub/locals.wat | 2 + tests/disas/winch/aarch64/i64_sub/max.wat | 2 + tests/disas/winch/aarch64/i64_sub/max_one.wat | 2 + tests/disas/winch/aarch64/i64_sub/mixed.wat | 2 + tests/disas/winch/aarch64/i64_sub/params.wat | 2 + tests/disas/winch/aarch64/i64_sub/signed.wat | 2 + .../aarch64/i64_sub/unsigned_with_zero.wat | 2 + .../winch/aarch64/i64_trunc_f32_s/const.wat | 18 ++--- .../winch/aarch64/i64_trunc_f32_s/locals.wat | 18 ++--- .../winch/aarch64/i64_trunc_f32_s/params.wat | 18 ++--- .../winch/aarch64/i64_trunc_f32_u/const.wat | 18 ++--- .../winch/aarch64/i64_trunc_f32_u/locals.wat | 18 ++--- .../winch/aarch64/i64_trunc_f32_u/params.wat | 18 ++--- .../winch/aarch64/i64_trunc_f64_s/const.wat | 18 ++--- .../winch/aarch64/i64_trunc_f64_s/locals.wat | 18 ++--- .../winch/aarch64/i64_trunc_f64_s/params.wat | 18 ++--- .../winch/aarch64/i64_trunc_f64_u/const.wat | 18 ++--- .../winch/aarch64/i64_trunc_f64_u/locals.wat | 18 ++--- .../winch/aarch64/i64_trunc_f64_u/params.wat | 18 ++--- .../disas/winch/aarch64/i64_xor/32_const.wat | 2 + .../disas/winch/aarch64/i64_xor/64_const.wat | 2 + tests/disas/winch/aarch64/i64_xor/locals.wat | 2 + tests/disas/winch/aarch64/i64_xor/params.wat | 2 + .../disas/winch/aarch64/load/dynamic_heap.wat | 30 ++++---- tests/disas/winch/aarch64/load/f32.wat | 2 + tests/disas/winch/aarch64/load/f64.wat | 2 + tests/disas/winch/aarch64/load/i32.wat | 2 + tests/disas/winch/aarch64/load/i64.wat | 2 + tests/disas/winch/aarch64/nop/nop.wat | 2 + .../disas/winch/aarch64/params/400_params.wat | 2 + .../winch/aarch64/params/multi_values.wat | 2 + .../winch/aarch64/store/dynamic_heap.wat | 30 ++++---- tests/disas/winch/aarch64/store/f32.wat | 2 + tests/disas/winch/aarch64/store/f64.wat | 2 + tests/disas/winch/aarch64/store/i32.wat | 2 + tests/disas/winch/aarch64/store/i64.wat | 2 + 468 files changed, 1432 insertions(+), 488 deletions(-) diff --git a/tests/disas/winch/aarch64/br/as_br_if_cond.wat b/tests/disas/winch/aarch64/br/as_br_if_cond.wat index ec594a9b1f14..26ce820b0ca1 100644 --- a/tests/disas/winch/aarch64/br/as_br_if_cond.wat +++ b/tests/disas/winch/aarch64/br/as_br_if_cond.wat @@ -8,6 +8,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -17,5 +18,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/br/as_br_value.wat b/tests/disas/winch/aarch64/br/as_br_value.wat index 162f5e65ec6f..4ac945e638bf 100644 --- a/tests/disas/winch/aarch64/br/as_br_value.wat +++ b/tests/disas/winch/aarch64/br/as_br_value.wat @@ -8,6 +8,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -19,5 +20,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/br/as_if_cond.wat b/tests/disas/winch/aarch64/br/as_if_cond.wat index 97f724e116fb..3201ecf9b899 100644 --- a/tests/disas/winch/aarch64/br/as_if_cond.wat +++ b/tests/disas/winch/aarch64/br/as_if_cond.wat @@ -13,6 +13,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -24,5 +25,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/br/as_if_else.wat b/tests/disas/winch/aarch64/br/as_if_else.wat index 1ce587b1db12..50f3683b484b 100644 --- a/tests/disas/winch/aarch64/br/as_if_else.wat +++ b/tests/disas/winch/aarch64/br/as_if_else.wat @@ -13,6 +13,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -23,14 +24,15 @@ ;; stur w3, [x28] ;; ldur w0, [x28, #4] ;; tst w0, w0 -;; b.eq #0x40 -;; b #0x38 -;; 38: ldur w0, [x28] -;; b #0x48 -;; 40: mov x16, #4 +;; b.eq #0x44 +;; b #0x3c +;; 3c: ldur w0, [x28] +;; b #0x4c +;; 44: mov x16, #4 ;; mov w0, w16 ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/br/as_if_then.wat b/tests/disas/winch/aarch64/br/as_if_then.wat index a9fbdfc274d3..f49898363e78 100644 --- a/tests/disas/winch/aarch64/br/as_if_then.wat +++ b/tests/disas/winch/aarch64/br/as_if_then.wat @@ -13,6 +13,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -23,14 +24,15 @@ ;; stur w3, [x28] ;; ldur w0, [x28, #4] ;; tst w0, w0 -;; b.eq #0x44 -;; b #0x38 -;; 38: mov x16, #3 +;; b.eq #0x48 +;; b #0x3c +;; 3c: mov x16, #3 ;; mov w0, w16 -;; b #0x48 -;; 44: ldur w0, [x28] +;; b #0x4c +;; 48: ldur w0, [x28] ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/br/as_loop_first.wat b/tests/disas/winch/aarch64/br/as_loop_first.wat index 15bd2ac70aa6..e6f167a11c9b 100644 --- a/tests/disas/winch/aarch64/br/as_loop_first.wat +++ b/tests/disas/winch/aarch64/br/as_loop_first.wat @@ -9,6 +9,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -20,5 +21,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/br/br_jump.wat b/tests/disas/winch/aarch64/br/br_jump.wat index 918459dc4875..04c95dc6428f 100644 --- a/tests/disas/winch/aarch64/br/br_jump.wat +++ b/tests/disas/winch/aarch64/br/br_jump.wat @@ -16,6 +16,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -34,9 +35,10 @@ ;; stur w16, [x28] ;; add x28, x28, #4 ;; mov sp, x28 -;; b #0x38 -;; 54: add x28, x28, #0x18 +;; b #0x3c +;; 58: add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/br_if/as_br_if_cond.wat b/tests/disas/winch/aarch64/br_if/as_br_if_cond.wat index 572464cf211d..898a1c4b16a3 100644 --- a/tests/disas/winch/aarch64/br_if/as_br_if_cond.wat +++ b/tests/disas/winch/aarch64/br_if/as_br_if_cond.wat @@ -8,6 +8,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -17,15 +18,16 @@ ;; mov x16, #1 ;; mov w0, w16 ;; tst w0, w0 -;; b.ne #0x48 -;; b #0x34 -;; 34: mov x16, #1 +;; b.ne #0x4c +;; b #0x38 +;; 38: mov x16, #1 ;; mov w0, w16 ;; tst w0, w0 -;; b.ne #0x48 -;; b #0x48 -;; 48: add x28, x28, #0x10 +;; b.ne #0x4c +;; b #0x4c +;; 4c: add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/br_if/as_br_value.wat b/tests/disas/winch/aarch64/br_if/as_br_value.wat index ae4dc7543b5a..ca8232b354aa 100644 --- a/tests/disas/winch/aarch64/br_if/as_br_value.wat +++ b/tests/disas/winch/aarch64/br_if/as_br_value.wat @@ -8,6 +8,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -19,10 +20,11 @@ ;; mov x16, #1 ;; mov w0, w16 ;; tst w1, w1 -;; b.ne #0x3c -;; b #0x3c -;; 3c: add x28, x28, #0x10 +;; b.ne #0x40 +;; b #0x40 +;; 40: add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/br_if/as_if_cond.wat b/tests/disas/winch/aarch64/br_if/as_if_cond.wat index 86f33409bbca..7a4f1c4b42b0 100644 --- a/tests/disas/winch/aarch64/br_if/as_if_cond.wat +++ b/tests/disas/winch/aarch64/br_if/as_if_cond.wat @@ -14,6 +14,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -25,18 +26,19 @@ ;; mov x16, #1 ;; mov w0, w16 ;; tst w1, w1 -;; b.ne #0x5c -;; b #0x3c -;; 3c: tst w0, w0 -;; b.eq #0x54 -;; b #0x48 -;; 48: mov x16, #2 +;; b.ne #0x60 +;; b #0x40 +;; 40: tst w0, w0 +;; b.eq #0x58 +;; b #0x4c +;; 4c: mov x16, #2 ;; mov w0, w16 -;; b #0x5c -;; 54: mov x16, #3 +;; b #0x60 +;; 58: mov x16, #3 ;; mov w0, w16 ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/br_if/as_local_set_value.wat b/tests/disas/winch/aarch64/br_if/as_local_set_value.wat index dc72eced9300..ec5937136dc1 100644 --- a/tests/disas/winch/aarch64/br_if/as_local_set_value.wat +++ b/tests/disas/winch/aarch64/br_if/as_local_set_value.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -26,13 +27,14 @@ ;; mov x16, #0x11 ;; mov w0, w16 ;; tst w1, w1 -;; b.ne #0x54 -;; b #0x48 -;; 48: stur w0, [x28, #4] +;; b.ne #0x58 +;; b #0x4c +;; 4c: stur w0, [x28, #4] ;; orr x16, xzr, #0xffffffff ;; mov w0, w16 ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/br_table/large.wat b/tests/disas/winch/aarch64/br_table/large.wat index 9ad742c3f61d..d1e5813d3f0c 100644 --- a/tests/disas/winch/aarch64/br_table/large.wat +++ b/tests/disas/winch/aarch64/br_table/large.wat @@ -741,6 +741,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -751,14 +752,14 @@ ;; ldur w0, [x28, #4] ;; mov x16, #0x6027 ;; cmp x0, x16, uxtx -;; b.hs #0x180f4 -;; 34: csel x1, xzr, x0, hs +;; b.hs #0x180f8 +;; 38: csel x1, xzr, x0, hs ;; csdb -;; adr x16, #0x4c +;; adr x16, #0x50 ;; ldrsw x1, [x16, w1, uxtw #2] ;; add x16, x16, x1 ;; br x16 -;; 4c: .byte 0x9c, 0x80, 0x01, 0x00 +;; 50: .byte 0x9c, 0x80, 0x01, 0x00 ;; .byte 0xa8, 0x80, 0x01, 0x00 ;; .byte 0x9c, 0x80, 0x01, 0x00 ;; .byte 0xa8, 0x80, 0x01, 0x00 @@ -25375,11 +25376,12 @@ ;; .byte 0x9c, 0x80, 0x01, 0x00 ;; mov x16, #0 ;; mov w0, w16 -;; b #0x180fc -;; 180f4: mov x16, #1 +;; b #0x18100 +;; 180f8: mov x16, #1 ;; mov w0, w16 ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/br_table/nested_br_table_loop_block.wat b/tests/disas/winch/aarch64/br_table/nested_br_table_loop_block.wat index b09ee4c47738..7d49dbd6e790 100644 --- a/tests/disas/winch/aarch64/br_table/nested_br_table_loop_block.wat +++ b/tests/disas/winch/aarch64/br_table/nested_br_table_loop_block.wat @@ -21,6 +21,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -30,34 +31,35 @@ ;; stur w2, [x28, #4] ;; ldur w0, [x28, #4] ;; cmp x0, #2 -;; b.hs #0x54 -;; 30: csel x1, xzr, x0, hs +;; b.hs #0x58 +;; 34: csel x1, xzr, x0, hs ;; csdb -;; adr x16, #0x48 +;; adr x16, #0x4c ;; ldrsw x1, [x16, w1, uxtw #2] ;; add x16, x16, x1 ;; br x16 -;; 48: .byte 0xdc, 0xff, 0xff, 0xff +;; 4c: .byte 0xdc, 0xff, 0xff, 0xff ;; .byte 0x0c, 0x00, 0x00, 0x00 -;; b #0x24 -;; 54: mov x16, #0 +;; b #0x28 +;; 58: mov x16, #0 ;; mov w0, w16 ;; stur w0, [x28, #4] ;; ldur w0, [x28, #4] ;; cmp x0, #2 -;; b.hs #0x60 -;; 6c: csel x1, xzr, x0, hs +;; b.hs #0x64 +;; 70: csel x1, xzr, x0, hs ;; csdb -;; adr x16, #0x84 +;; adr x16, #0x88 ;; ldrsw x1, [x16, w1, uxtw #2] ;; add x16, x16, x1 ;; br x16 -;; 84: .byte 0x08, 0x00, 0x00, 0x00 +;; 88: .byte 0x08, 0x00, 0x00, 0x00 ;; .byte 0xdc, 0xff, 0xff, 0xff ;; mov x16, #3 ;; mov w0, w16 ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/call/multi.wat b/tests/disas/winch/aarch64/call/multi.wat index 71ad407dd931..f0f435b179e3 100644 --- a/tests/disas/winch/aarch64/call/multi.wat +++ b/tests/disas/winch/aarch64/call/multi.wat @@ -13,6 +13,7 @@ ;; wasm[0]::function[0]::multi: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x1 ;; sub x28, x28, #0x18 @@ -34,12 +35,14 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret ;; ;; wasm[0]::function[1]::start: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -54,7 +57,7 @@ ;; mov x2, x9 ;; add x0, x28, #0xc ;; bl #0 -;; c0: add x28, x28, #0xc +;; c4: add x28, x28, #0xc ;; mov sp, x28 ;; ldur x9, [x28, #0xc] ;; add x28, x28, #4 @@ -62,5 +65,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/call/params.wat b/tests/disas/winch/aarch64/call/params.wat index 7cb27b946a85..986f3429e842 100644 --- a/tests/disas/winch/aarch64/call/params.wat +++ b/tests/disas/winch/aarch64/call/params.wat @@ -40,6 +40,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -79,7 +80,7 @@ ;; mov w16, w16 ;; stur w16, [x28, #0x10] ;; bl #0x180 -;; a4: add x28, x28, #0x24 +;; a8: add x28, x28, #0x24 ;; mov sp, x28 ;; add x28, x28, #4 ;; mov sp, x28 @@ -117,7 +118,7 @@ ;; mov w16, w16 ;; stur w16, [x28, #0x10] ;; bl #0x180 -;; 13c: add x28, x28, #0x20 +;; 140: add x28, x28, #0x20 ;; mov sp, x28 ;; add x28, x28, #8 ;; mov sp, x28 @@ -125,12 +126,14 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret ;; ;; wasm[0]::function[1]::add: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x28 @@ -164,5 +167,6 @@ ;; add x28, x28, #0x28 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/call/recursive.wat b/tests/disas/winch/aarch64/call/recursive.wat index f89d4236b6e5..b5a96b582793 100644 --- a/tests/disas/winch/aarch64/call/recursive.wat +++ b/tests/disas/winch/aarch64/call/recursive.wat @@ -27,6 +27,7 @@ ;; wasm[0]::function[0]::fibonacci8: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -38,11 +39,11 @@ ;; cmp w0, #1 ;; cset x0, le ;; tst w0, w0 -;; b.eq #0x44 -;; b #0x3c -;; 3c: ldur w0, [x28, #4] -;; b #0xd4 -;; 44: ldur w0, [x28, #4] +;; b.eq #0x48 +;; b #0x40 +;; 40: ldur w0, [x28, #4] +;; b #0xd8 +;; 48: ldur w0, [x28, #4] ;; sub w0, w0, #1 ;; sub x28, x28, #4 ;; mov sp, x28 @@ -53,7 +54,7 @@ ;; mov x1, x9 ;; ldur w2, [x28, #4] ;; bl #0 -;; 70: add x28, x28, #4 +;; 74: add x28, x28, #4 ;; mov sp, x28 ;; add x28, x28, #4 ;; mov sp, x28 @@ -70,7 +71,7 @@ ;; mov x1, x9 ;; ldur w2, [x28] ;; bl #0 -;; b4: add x28, x28, #4 +;; b8: add x28, x28, #4 ;; mov sp, x28 ;; ldur x9, [x28, #0x14] ;; ldur w1, [x28] @@ -81,5 +82,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/call/reg_on_stack.wat b/tests/disas/winch/aarch64/call/reg_on_stack.wat index 46f2d476d988..2f62e342fac6 100644 --- a/tests/disas/winch/aarch64/call/reg_on_stack.wat +++ b/tests/disas/winch/aarch64/call/reg_on_stack.wat @@ -16,6 +16,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -34,7 +35,7 @@ ;; mov x16, #1 ;; mov w2, w16 ;; bl #0 -;; 50: add x28, x28, #4 +;; 54: add x28, x28, #4 ;; mov sp, x28 ;; ldur x9, [x28, #0x14] ;; sub x28, x28, #4 @@ -45,7 +46,7 @@ ;; mov x16, #1 ;; mov w2, w16 ;; bl #0 -;; 7c: ldur x9, [x28, #0x18] +;; 80: ldur x9, [x28, #0x18] ;; sub x28, x28, #4 ;; mov sp, x28 ;; stur w0, [x28] @@ -56,14 +57,15 @@ ;; add x28, x28, #4 ;; mov sp, x28 ;; tst w1, w1 -;; b.eq #0xbc -;; b #0xb0 -;; b0: add x28, x28, #4 +;; b.eq #0xc0 +;; b #0xb4 +;; b4: add x28, x28, #4 ;; mov sp, x28 -;; b #0xc0 -;; bc: .byte 0x1f, 0xc1, 0x00, 0x00 +;; b #0xc4 +;; c0: .byte 0x1f, 0xc1, 0x00, 0x00 ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/call/simple.wat b/tests/disas/winch/aarch64/call/simple.wat index 63a0428d8390..5c2634c2502f 100644 --- a/tests/disas/winch/aarch64/call/simple.wat +++ b/tests/disas/winch/aarch64/call/simple.wat @@ -18,6 +18,7 @@ ;; wasm[0]::function[0]::main: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -34,8 +35,8 @@ ;; mov w2, w16 ;; mov x16, #0x50 ;; mov w3, w16 -;; bl #0x80 -;; 4c: add x28, x28, #8 +;; bl #0xa0 +;; 50: add x28, x28, #8 ;; mov sp, x28 ;; ldur x9, [x28, #0x10] ;; mov x16, #2 @@ -46,12 +47,14 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret ;; ;; wasm[0]::function[1]::add: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -67,5 +70,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/call_indirect/call_indirect.wat b/tests/disas/winch/aarch64/call_indirect/call_indirect.wat index ee0d2be3dc3f..34e7fbfcac76 100644 --- a/tests/disas/winch/aarch64/call_indirect/call_indirect.wat +++ b/tests/disas/winch/aarch64/call_indirect/call_indirect.wat @@ -32,6 +32,7 @@ ;; wasm[0]::function[0]::fib-i32: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -43,12 +44,12 @@ ;; cmp w0, #1 ;; cset x0, ls ;; tst w0, w0 -;; b.eq #0x48 -;; b #0x3c -;; 3c: mov x16, #1 +;; b.eq #0x4c +;; b #0x40 +;; 40: mov x16, #1 ;; mov w0, w16 -;; b #0x268 -;; 48: ldur w0, [x28, #4] +;; b #0x26c +;; 4c: ldur w0, [x28, #4] ;; sub w0, w0, #2 ;; sub x28, x28, #4 ;; mov sp, x28 @@ -59,8 +60,8 @@ ;; ldur x3, [x2, #0x58] ;; cmp x1, x3, uxtx ;; sub sp, x28, #4 -;; b.hs #0x27c -;; 78: mov sp, x28 +;; b.hs #0x284 +;; 7c: mov sp, x28 ;; mov x16, x1 ;; mov x16, #8 ;; mul x16, x16, x16 @@ -71,31 +72,31 @@ ;; csel x2, x4, x4, hs ;; ldur x0, [x2] ;; tst x0, x0 -;; b.ne #0xdc -;; b #0xac -;; ac: sub x28, x28, #4 +;; b.ne #0xe0 +;; b #0xb0 +;; b0: sub x28, x28, #4 ;; mov sp, x28 ;; stur w1, [x28] ;; mov x0, x9 ;; mov x16, #0 ;; mov w1, w16 ;; ldur w2, [x28] -;; bl #0x3b4 -;; cc: add x28, x28, #4 +;; bl #0x3fc +;; d0: add x28, x28, #4 ;; mov sp, x28 ;; ldur x9, [x28, #0x14] -;; b #0xe0 -;; dc: and x0, x0, #0xfffffffffffffffe +;; b #0xe4 +;; e0: and x0, x0, #0xfffffffffffffffe ;; sub sp, x28, #4 -;; cbz x0, #0x280 -;; e8: mov sp, x28 +;; cbz x0, #0x288 +;; ec: mov sp, x28 ;; ldur x16, [x9, #0x40] ;; ldur w1, [x16] ;; ldur w2, [x0, #0x10] ;; cmp w1, w2, uxtx ;; sub sp, x28, #4 -;; b.ne #0x284 -;; 104: mov sp, x28 +;; b.ne #0x28c +;; 108: mov sp, x28 ;; sub x28, x28, #8 ;; mov sp, x28 ;; stur x0, [x28] @@ -110,7 +111,7 @@ ;; mov x1, x9 ;; ldur w2, [x28, #4] ;; blr x4 -;; 140: add x28, x28, #4 +;; 144: add x28, x28, #4 ;; mov sp, x28 ;; add x28, x28, #4 ;; mov sp, x28 @@ -128,8 +129,8 @@ ;; mov x2, x9 ;; ldur x3, [x2, #0x58] ;; cmp x1, x3, uxtx -;; b.hs #0x288 -;; 18c: mov x16, x1 +;; b.hs #0x290 +;; 190: mov x16, x1 ;; mov x16, #8 ;; mul x16, x16, x16 ;; ldur x2, [x2, #0x50] @@ -139,9 +140,9 @@ ;; csel x2, x4, x4, hs ;; ldur x0, [x2] ;; tst x0, x0 -;; b.ne #0x1fc -;; b #0x1bc -;; 1bc: sub x28, x28, #4 +;; b.ne #0x200 +;; b #0x1c0 +;; 1c0: sub x28, x28, #4 ;; mov sp, x28 ;; stur w1, [x28] ;; sub x28, x28, #0xc @@ -150,21 +151,21 @@ ;; mov x16, #0 ;; mov w1, w16 ;; ldur w2, [x28, #0xc] -;; bl #0x3b4 -;; 1e4: add x28, x28, #0xc +;; bl #0x3fc +;; 1e8: add x28, x28, #0xc ;; mov sp, x28 ;; add x28, x28, #4 ;; mov sp, x28 ;; ldur x9, [x28, #0x18] -;; b #0x200 -;; 1fc: and x0, x0, #0xfffffffffffffffe -;; cbz x0, #0x28c -;; 204: ldur x16, [x9, #0x40] +;; b #0x204 +;; 200: and x0, x0, #0xfffffffffffffffe +;; cbz x0, #0x294 +;; 208: ldur x16, [x9, #0x40] ;; ldur w1, [x16] ;; ldur w2, [x0, #0x10] ;; cmp w1, w2, uxtx -;; b.ne #0x290 -;; 218: sub x28, x28, #8 +;; b.ne #0x298 +;; 21c: sub x28, x28, #8 ;; mov sp, x28 ;; stur x0, [x28] ;; ldur x3, [x28] @@ -176,7 +177,7 @@ ;; mov x1, x9 ;; ldur w2, [x28] ;; blr x4 -;; 248: add x28, x28, #4 +;; 24c: add x28, x28, #4 ;; mov sp, x28 ;; ldur x9, [x28, #0x14] ;; ldur w1, [x28] @@ -187,11 +188,12 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 27c: .byte 0x1f, 0xc1, 0x00, 0x00 -;; 280: .byte 0x1f, 0xc1, 0x00, 0x00 ;; 284: .byte 0x1f, 0xc1, 0x00, 0x00 ;; 288: .byte 0x1f, 0xc1, 0x00, 0x00 ;; 28c: .byte 0x1f, 0xc1, 0x00, 0x00 ;; 290: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 294: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 298: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/call_indirect/local_arg.wat b/tests/disas/winch/aarch64/call_indirect/local_arg.wat index 722efccda9b6..bf2223e51c81 100644 --- a/tests/disas/winch/aarch64/call_indirect/local_arg.wat +++ b/tests/disas/winch/aarch64/call_indirect/local_arg.wat @@ -20,6 +20,7 @@ ;; wasm[0]::function[0]::param-i32: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -30,12 +31,14 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret ;; ;; wasm[0]::function[1]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -54,8 +57,8 @@ ;; ldur x3, [x2, #0x58] ;; cmp x1, x3, uxtx ;; sub sp, x28, #4 -;; b.hs #0x184 -;; 94: mov sp, x28 +;; b.hs #0x18c +;; 98: mov sp, x28 ;; mov x16, x1 ;; mov x16, #8 ;; mul x16, x16, x16 @@ -66,31 +69,31 @@ ;; csel x2, x4, x4, hs ;; ldur x0, [x2] ;; tst x0, x0 -;; b.ne #0xf8 -;; b #0xc8 -;; c8: sub x28, x28, #4 +;; b.ne #0xfc +;; b #0xcc +;; cc: sub x28, x28, #4 ;; mov sp, x28 ;; stur w1, [x28] ;; mov x0, x9 ;; mov x16, #0 ;; mov w1, w16 ;; ldur w2, [x28] -;; bl #0x394 -;; e8: add x28, x28, #4 +;; bl #0x424 +;; ec: add x28, x28, #4 ;; mov sp, x28 ;; ldur x9, [x28, #0x14] -;; b #0xfc -;; f8: and x0, x0, #0xfffffffffffffffe +;; b #0x100 +;; fc: and x0, x0, #0xfffffffffffffffe ;; sub sp, x28, #4 -;; cbz x0, #0x188 -;; 104: mov sp, x28 +;; cbz x0, #0x190 +;; 108: mov sp, x28 ;; ldur x16, [x9, #0x40] ;; ldur w1, [x16] ;; ldur w2, [x0, #0x10] ;; cmp w1, w2, uxtx ;; sub sp, x28, #4 -;; b.ne #0x18c -;; 120: mov sp, x28 +;; b.ne #0x194 +;; 124: mov sp, x28 ;; sub x28, x28, #8 ;; mov sp, x28 ;; stur x0, [x28] @@ -105,7 +108,7 @@ ;; mov x1, x9 ;; ldur w2, [x28, #4] ;; blr x4 -;; 15c: add x28, x28, #4 +;; 160: add x28, x28, #4 ;; mov sp, x28 ;; add x28, x28, #4 ;; mov sp, x28 @@ -113,8 +116,9 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 184: .byte 0x1f, 0xc1, 0x00, 0x00 -;; 188: .byte 0x1f, 0xc1, 0x00, 0x00 ;; 18c: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 190: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 194: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/f32_abs/f32_abs_const.wat b/tests/disas/winch/aarch64/f32_abs/f32_abs_const.wat index 0e44c8b24092..f634bb126cfd 100644 --- a/tests/disas/winch/aarch64/f32_abs/f32_abs_const.wat +++ b/tests/disas/winch/aarch64/f32_abs/f32_abs_const.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -23,5 +24,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f32_abs/f32_abs_param.wat b/tests/disas/winch/aarch64/f32_abs/f32_abs_param.wat index c018229fc975..dde079bb14a6 100644 --- a/tests/disas/winch/aarch64/f32_abs/f32_abs_param.wat +++ b/tests/disas/winch/aarch64/f32_abs/f32_abs_param.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -22,5 +23,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f32_add/const.wat b/tests/disas/winch/aarch64/f32_add/const.wat index 10b052a9eb48..5ec361836880 100644 --- a/tests/disas/winch/aarch64/f32_add/const.wat +++ b/tests/disas/winch/aarch64/f32_add/const.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -28,5 +29,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f32_add/locals.wat b/tests/disas/winch/aarch64/f32_add/locals.wat index 42d17f1d6afc..8e2e4203cf58 100644 --- a/tests/disas/winch/aarch64/f32_add/locals.wat +++ b/tests/disas/winch/aarch64/f32_add/locals.wat @@ -20,6 +20,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -43,5 +44,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f32_add/params.wat b/tests/disas/winch/aarch64/f32_add/params.wat index 5f521bfefc84..d9f0a6aba5ae 100644 --- a/tests/disas/winch/aarch64/f32_add/params.wat +++ b/tests/disas/winch/aarch64/f32_add/params.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -26,5 +27,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f32_ceil/f32_ceil_const.wat b/tests/disas/winch/aarch64/f32_ceil/f32_ceil_const.wat index f6f043046516..a7a64b8f9f9f 100644 --- a/tests/disas/winch/aarch64/f32_ceil/f32_ceil_const.wat +++ b/tests/disas/winch/aarch64/f32_ceil/f32_ceil_const.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -23,5 +24,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f32_ceil/f32_ceil_param.wat b/tests/disas/winch/aarch64/f32_ceil/f32_ceil_param.wat index d3b30e8f4bbd..adeaebc06583 100644 --- a/tests/disas/winch/aarch64/f32_ceil/f32_ceil_param.wat +++ b/tests/disas/winch/aarch64/f32_ceil/f32_ceil_param.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -22,5 +23,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f32_convert_i32_s/const.wat b/tests/disas/winch/aarch64/f32_convert_i32_s/const.wat index 9e28d335b87b..bf00b6805b0c 100644 --- a/tests/disas/winch/aarch64/f32_convert_i32_s/const.wat +++ b/tests/disas/winch/aarch64/f32_convert_i32_s/const.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -22,5 +23,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f32_convert_i32_s/locals.wat b/tests/disas/winch/aarch64/f32_convert_i32_s/locals.wat index 1fc7ceee32a5..d28144805aec 100644 --- a/tests/disas/winch/aarch64/f32_convert_i32_s/locals.wat +++ b/tests/disas/winch/aarch64/f32_convert_i32_s/locals.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -25,5 +26,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f32_convert_i32_s/params.wat b/tests/disas/winch/aarch64/f32_convert_i32_s/params.wat index 69e30c43ca41..a925441e2740 100644 --- a/tests/disas/winch/aarch64/f32_convert_i32_s/params.wat +++ b/tests/disas/winch/aarch64/f32_convert_i32_s/params.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -22,5 +23,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f32_convert_i32_s/spilled.wat b/tests/disas/winch/aarch64/f32_convert_i32_s/spilled.wat index c7dad4c378c3..1b5ee14c1136 100644 --- a/tests/disas/winch/aarch64/f32_convert_i32_s/spilled.wat +++ b/tests/disas/winch/aarch64/f32_convert_i32_s/spilled.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -30,5 +31,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f32_convert_i32_u/const.wat b/tests/disas/winch/aarch64/f32_convert_i32_u/const.wat index c9268aac5788..48c43076816e 100644 --- a/tests/disas/winch/aarch64/f32_convert_i32_u/const.wat +++ b/tests/disas/winch/aarch64/f32_convert_i32_u/const.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -22,5 +23,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f32_convert_i32_u/locals.wat b/tests/disas/winch/aarch64/f32_convert_i32_u/locals.wat index a2f13179c2d8..c787c0faebd7 100644 --- a/tests/disas/winch/aarch64/f32_convert_i32_u/locals.wat +++ b/tests/disas/winch/aarch64/f32_convert_i32_u/locals.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -25,5 +26,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f32_convert_i32_u/params.wat b/tests/disas/winch/aarch64/f32_convert_i32_u/params.wat index d26a1a72dcca..23ec0e37f6cf 100644 --- a/tests/disas/winch/aarch64/f32_convert_i32_u/params.wat +++ b/tests/disas/winch/aarch64/f32_convert_i32_u/params.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -22,5 +23,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f32_convert_i32_u/spilled.wat b/tests/disas/winch/aarch64/f32_convert_i32_u/spilled.wat index 60d397d4d6b8..1bc769285c51 100644 --- a/tests/disas/winch/aarch64/f32_convert_i32_u/spilled.wat +++ b/tests/disas/winch/aarch64/f32_convert_i32_u/spilled.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -30,5 +31,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f32_convert_i64_s/const.wat b/tests/disas/winch/aarch64/f32_convert_i64_s/const.wat index c5f787b97667..2735c463b3b6 100644 --- a/tests/disas/winch/aarch64/f32_convert_i64_s/const.wat +++ b/tests/disas/winch/aarch64/f32_convert_i64_s/const.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -22,5 +23,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f32_convert_i64_s/locals.wat b/tests/disas/winch/aarch64/f32_convert_i64_s/locals.wat index c46f1a9a4133..1620f435f086 100644 --- a/tests/disas/winch/aarch64/f32_convert_i64_s/locals.wat +++ b/tests/disas/winch/aarch64/f32_convert_i64_s/locals.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -25,5 +26,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f32_convert_i64_s/params.wat b/tests/disas/winch/aarch64/f32_convert_i64_s/params.wat index f7c7cc603db9..eb9780b1b4d7 100644 --- a/tests/disas/winch/aarch64/f32_convert_i64_s/params.wat +++ b/tests/disas/winch/aarch64/f32_convert_i64_s/params.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -22,5 +23,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f32_convert_i64_s/spilled.wat b/tests/disas/winch/aarch64/f32_convert_i64_s/spilled.wat index de355b4f4ac7..6c5eaeb78374 100644 --- a/tests/disas/winch/aarch64/f32_convert_i64_s/spilled.wat +++ b/tests/disas/winch/aarch64/f32_convert_i64_s/spilled.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -30,5 +31,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f32_convert_i64_u/const.wat b/tests/disas/winch/aarch64/f32_convert_i64_u/const.wat index f1b13b7bace7..3b11b6a51d88 100644 --- a/tests/disas/winch/aarch64/f32_convert_i64_u/const.wat +++ b/tests/disas/winch/aarch64/f32_convert_i64_u/const.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -22,5 +23,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f32_convert_i64_u/locals.wat b/tests/disas/winch/aarch64/f32_convert_i64_u/locals.wat index a7e013bda131..f9f0cb4447c5 100644 --- a/tests/disas/winch/aarch64/f32_convert_i64_u/locals.wat +++ b/tests/disas/winch/aarch64/f32_convert_i64_u/locals.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -25,5 +26,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f32_convert_i64_u/params.wat b/tests/disas/winch/aarch64/f32_convert_i64_u/params.wat index 0f7148fbbd77..edf64f92bf70 100644 --- a/tests/disas/winch/aarch64/f32_convert_i64_u/params.wat +++ b/tests/disas/winch/aarch64/f32_convert_i64_u/params.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -22,5 +23,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f32_convert_i64_u/spilled.wat b/tests/disas/winch/aarch64/f32_convert_i64_u/spilled.wat index c66eb9646c65..e7db45aaf7e9 100644 --- a/tests/disas/winch/aarch64/f32_convert_i64_u/spilled.wat +++ b/tests/disas/winch/aarch64/f32_convert_i64_u/spilled.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -30,5 +31,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f32_copysign/const.wat b/tests/disas/winch/aarch64/f32_copysign/const.wat index 58372694ba28..87586cdff3a7 100644 --- a/tests/disas/winch/aarch64/f32_copysign/const.wat +++ b/tests/disas/winch/aarch64/f32_copysign/const.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -29,5 +30,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f32_copysign/locals.wat b/tests/disas/winch/aarch64/f32_copysign/locals.wat index f49a83d9180c..924a6ce6991c 100644 --- a/tests/disas/winch/aarch64/f32_copysign/locals.wat +++ b/tests/disas/winch/aarch64/f32_copysign/locals.wat @@ -20,6 +20,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -44,5 +45,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f32_copysign/params.wat b/tests/disas/winch/aarch64/f32_copysign/params.wat index 32b6c71109d0..b5e5a377ce8e 100644 --- a/tests/disas/winch/aarch64/f32_copysign/params.wat +++ b/tests/disas/winch/aarch64/f32_copysign/params.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -27,5 +28,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f32_demote_f64/const.wat b/tests/disas/winch/aarch64/f32_demote_f64/const.wat index 50870abf01a5..b78619cbd101 100644 --- a/tests/disas/winch/aarch64/f32_demote_f64/const.wat +++ b/tests/disas/winch/aarch64/f32_demote_f64/const.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -22,5 +23,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f32_demote_f64/locals.wat b/tests/disas/winch/aarch64/f32_demote_f64/locals.wat index 8c3f4bfa2c98..1a120c176b8c 100644 --- a/tests/disas/winch/aarch64/f32_demote_f64/locals.wat +++ b/tests/disas/winch/aarch64/f32_demote_f64/locals.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -25,5 +26,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f32_demote_f64/params.wat b/tests/disas/winch/aarch64/f32_demote_f64/params.wat index dd4910efb351..cd4666ff9d67 100644 --- a/tests/disas/winch/aarch64/f32_demote_f64/params.wat +++ b/tests/disas/winch/aarch64/f32_demote_f64/params.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -22,5 +23,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f32_div/const.wat b/tests/disas/winch/aarch64/f32_div/const.wat index b1987a98ddc8..584fa37933fd 100644 --- a/tests/disas/winch/aarch64/f32_div/const.wat +++ b/tests/disas/winch/aarch64/f32_div/const.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -28,5 +29,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f32_div/locals.wat b/tests/disas/winch/aarch64/f32_div/locals.wat index 5aef9153678c..26802c528c9c 100644 --- a/tests/disas/winch/aarch64/f32_div/locals.wat +++ b/tests/disas/winch/aarch64/f32_div/locals.wat @@ -20,6 +20,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -43,5 +44,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f32_div/params.wat b/tests/disas/winch/aarch64/f32_div/params.wat index f353a50c7c7b..468b237e3497 100644 --- a/tests/disas/winch/aarch64/f32_div/params.wat +++ b/tests/disas/winch/aarch64/f32_div/params.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -26,5 +27,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f32_eq/const.wat b/tests/disas/winch/aarch64/f32_eq/const.wat index b205814d710a..bdc85c2dc5c8 100644 --- a/tests/disas/winch/aarch64/f32_eq/const.wat +++ b/tests/disas/winch/aarch64/f32_eq/const.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -27,5 +28,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f32_eq/locals.wat b/tests/disas/winch/aarch64/f32_eq/locals.wat index 385b9087890c..78ca473f43c9 100644 --- a/tests/disas/winch/aarch64/f32_eq/locals.wat +++ b/tests/disas/winch/aarch64/f32_eq/locals.wat @@ -20,6 +20,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -41,5 +42,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f32_eq/params.wat b/tests/disas/winch/aarch64/f32_eq/params.wat index c000583a1559..ab0973af610d 100644 --- a/tests/disas/winch/aarch64/f32_eq/params.wat +++ b/tests/disas/winch/aarch64/f32_eq/params.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -26,5 +27,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f32_floor/f32_floor_const.wat b/tests/disas/winch/aarch64/f32_floor/f32_floor_const.wat index cb0caa640b8f..d5c1b1f4275e 100644 --- a/tests/disas/winch/aarch64/f32_floor/f32_floor_const.wat +++ b/tests/disas/winch/aarch64/f32_floor/f32_floor_const.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -23,5 +24,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f32_floor/f32_floor_param.wat b/tests/disas/winch/aarch64/f32_floor/f32_floor_param.wat index 9c553722b6c5..03dc83386a99 100644 --- a/tests/disas/winch/aarch64/f32_floor/f32_floor_param.wat +++ b/tests/disas/winch/aarch64/f32_floor/f32_floor_param.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -22,5 +23,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f32_ge/const.wat b/tests/disas/winch/aarch64/f32_ge/const.wat index c7476b90300c..a844a59bdd8e 100644 --- a/tests/disas/winch/aarch64/f32_ge/const.wat +++ b/tests/disas/winch/aarch64/f32_ge/const.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -27,5 +28,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f32_ge/locals.wat b/tests/disas/winch/aarch64/f32_ge/locals.wat index 23d6838e0147..942abd87a5c2 100644 --- a/tests/disas/winch/aarch64/f32_ge/locals.wat +++ b/tests/disas/winch/aarch64/f32_ge/locals.wat @@ -20,6 +20,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -41,5 +42,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f32_ge/params.wat b/tests/disas/winch/aarch64/f32_ge/params.wat index d2764310f57f..f2ee68079c98 100644 --- a/tests/disas/winch/aarch64/f32_ge/params.wat +++ b/tests/disas/winch/aarch64/f32_ge/params.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -26,5 +27,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f32_gt/const.wat b/tests/disas/winch/aarch64/f32_gt/const.wat index 517f2e74f5e7..91c7a4f54368 100644 --- a/tests/disas/winch/aarch64/f32_gt/const.wat +++ b/tests/disas/winch/aarch64/f32_gt/const.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -27,5 +28,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f32_gt/locals.wat b/tests/disas/winch/aarch64/f32_gt/locals.wat index 74d76cbe2ebe..5848d447b8af 100644 --- a/tests/disas/winch/aarch64/f32_gt/locals.wat +++ b/tests/disas/winch/aarch64/f32_gt/locals.wat @@ -20,6 +20,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -41,5 +42,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f32_gt/params.wat b/tests/disas/winch/aarch64/f32_gt/params.wat index c9a579aa70ef..4da6394e8581 100644 --- a/tests/disas/winch/aarch64/f32_gt/params.wat +++ b/tests/disas/winch/aarch64/f32_gt/params.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -26,5 +27,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f32_le/const.wat b/tests/disas/winch/aarch64/f32_le/const.wat index 9d6576ea8172..514c565fa4c8 100644 --- a/tests/disas/winch/aarch64/f32_le/const.wat +++ b/tests/disas/winch/aarch64/f32_le/const.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -27,5 +28,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f32_le/locals.wat b/tests/disas/winch/aarch64/f32_le/locals.wat index 85c9c0a4463e..a17089a1164a 100644 --- a/tests/disas/winch/aarch64/f32_le/locals.wat +++ b/tests/disas/winch/aarch64/f32_le/locals.wat @@ -20,6 +20,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -41,5 +42,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f32_le/params.wat b/tests/disas/winch/aarch64/f32_le/params.wat index 5c4506b0f4cb..c13eb0deb652 100644 --- a/tests/disas/winch/aarch64/f32_le/params.wat +++ b/tests/disas/winch/aarch64/f32_le/params.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -26,5 +27,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f32_lt/const.wat b/tests/disas/winch/aarch64/f32_lt/const.wat index caa405bb78fb..acc16ad4f6cf 100644 --- a/tests/disas/winch/aarch64/f32_lt/const.wat +++ b/tests/disas/winch/aarch64/f32_lt/const.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -27,5 +28,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f32_lt/locals.wat b/tests/disas/winch/aarch64/f32_lt/locals.wat index ff15aaff2e7a..9719f8ef3282 100644 --- a/tests/disas/winch/aarch64/f32_lt/locals.wat +++ b/tests/disas/winch/aarch64/f32_lt/locals.wat @@ -20,6 +20,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -41,5 +42,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f32_lt/params.wat b/tests/disas/winch/aarch64/f32_lt/params.wat index 713635a7723f..dd96a8fa8a8e 100644 --- a/tests/disas/winch/aarch64/f32_lt/params.wat +++ b/tests/disas/winch/aarch64/f32_lt/params.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -26,5 +27,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f32_max/const.wat b/tests/disas/winch/aarch64/f32_max/const.wat index 011d8dd175d4..d7c9c34e385b 100644 --- a/tests/disas/winch/aarch64/f32_max/const.wat +++ b/tests/disas/winch/aarch64/f32_max/const.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -28,5 +29,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f32_max/locals.wat b/tests/disas/winch/aarch64/f32_max/locals.wat index a6a4f66bca77..aa80dcf6f339 100644 --- a/tests/disas/winch/aarch64/f32_max/locals.wat +++ b/tests/disas/winch/aarch64/f32_max/locals.wat @@ -20,6 +20,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -43,5 +44,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f32_max/params.wat b/tests/disas/winch/aarch64/f32_max/params.wat index b39414e9de60..9b0c9bc12286 100644 --- a/tests/disas/winch/aarch64/f32_max/params.wat +++ b/tests/disas/winch/aarch64/f32_max/params.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -26,5 +27,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f32_min/const.wat b/tests/disas/winch/aarch64/f32_min/const.wat index b169c810e0e3..ebe91ffeb83c 100644 --- a/tests/disas/winch/aarch64/f32_min/const.wat +++ b/tests/disas/winch/aarch64/f32_min/const.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -28,5 +29,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f32_min/locals.wat b/tests/disas/winch/aarch64/f32_min/locals.wat index 311f0ac8ec68..44199a554928 100644 --- a/tests/disas/winch/aarch64/f32_min/locals.wat +++ b/tests/disas/winch/aarch64/f32_min/locals.wat @@ -20,6 +20,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -43,5 +44,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f32_min/params.wat b/tests/disas/winch/aarch64/f32_min/params.wat index 94338ef515d7..cc3d588c1279 100644 --- a/tests/disas/winch/aarch64/f32_min/params.wat +++ b/tests/disas/winch/aarch64/f32_min/params.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -26,5 +27,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f32_mul/const.wat b/tests/disas/winch/aarch64/f32_mul/const.wat index 8a2874d07e56..331f05b98df4 100644 --- a/tests/disas/winch/aarch64/f32_mul/const.wat +++ b/tests/disas/winch/aarch64/f32_mul/const.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -28,5 +29,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f32_mul/locals.wat b/tests/disas/winch/aarch64/f32_mul/locals.wat index 9a367b01df32..6d6108f48af0 100644 --- a/tests/disas/winch/aarch64/f32_mul/locals.wat +++ b/tests/disas/winch/aarch64/f32_mul/locals.wat @@ -20,6 +20,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -43,5 +44,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f32_mul/params.wat b/tests/disas/winch/aarch64/f32_mul/params.wat index 77afce522824..7ea4bc11869d 100644 --- a/tests/disas/winch/aarch64/f32_mul/params.wat +++ b/tests/disas/winch/aarch64/f32_mul/params.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -26,5 +27,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f32_ne/const.wat b/tests/disas/winch/aarch64/f32_ne/const.wat index 7fa5457ae6e4..290ac18d3b52 100644 --- a/tests/disas/winch/aarch64/f32_ne/const.wat +++ b/tests/disas/winch/aarch64/f32_ne/const.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -27,5 +28,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f32_ne/locals.wat b/tests/disas/winch/aarch64/f32_ne/locals.wat index 4451058a670a..4a589a584616 100644 --- a/tests/disas/winch/aarch64/f32_ne/locals.wat +++ b/tests/disas/winch/aarch64/f32_ne/locals.wat @@ -20,6 +20,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -41,5 +42,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f32_ne/params.wat b/tests/disas/winch/aarch64/f32_ne/params.wat index 2e9d8132148d..5f33c3d14ffa 100644 --- a/tests/disas/winch/aarch64/f32_ne/params.wat +++ b/tests/disas/winch/aarch64/f32_ne/params.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -26,5 +27,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f32_nearest/f32_nearest_const.wat b/tests/disas/winch/aarch64/f32_nearest/f32_nearest_const.wat index d0bcf2b61572..8b8892567faf 100644 --- a/tests/disas/winch/aarch64/f32_nearest/f32_nearest_const.wat +++ b/tests/disas/winch/aarch64/f32_nearest/f32_nearest_const.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -23,5 +24,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f32_nearest/f32_nearest_param.wat b/tests/disas/winch/aarch64/f32_nearest/f32_nearest_param.wat index b8ac11dce9b6..ae3855c40635 100644 --- a/tests/disas/winch/aarch64/f32_nearest/f32_nearest_param.wat +++ b/tests/disas/winch/aarch64/f32_nearest/f32_nearest_param.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -22,5 +23,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f32_neg/f32_neg_const.wat b/tests/disas/winch/aarch64/f32_neg/f32_neg_const.wat index ce41011527e4..d69fb098e482 100644 --- a/tests/disas/winch/aarch64/f32_neg/f32_neg_const.wat +++ b/tests/disas/winch/aarch64/f32_neg/f32_neg_const.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -23,5 +24,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f32_neg/f32_neg_param.wat b/tests/disas/winch/aarch64/f32_neg/f32_neg_param.wat index 54e80f33ca34..c293f7375fc4 100644 --- a/tests/disas/winch/aarch64/f32_neg/f32_neg_param.wat +++ b/tests/disas/winch/aarch64/f32_neg/f32_neg_param.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -22,5 +23,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f32_reinterpret_i32/const.wat b/tests/disas/winch/aarch64/f32_reinterpret_i32/const.wat index 4ec19119b351..05dab6128406 100644 --- a/tests/disas/winch/aarch64/f32_reinterpret_i32/const.wat +++ b/tests/disas/winch/aarch64/f32_reinterpret_i32/const.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -22,5 +23,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f32_reinterpret_i32/locals.wat b/tests/disas/winch/aarch64/f32_reinterpret_i32/locals.wat index 5c738e4e6a96..d80c01f5ef34 100644 --- a/tests/disas/winch/aarch64/f32_reinterpret_i32/locals.wat +++ b/tests/disas/winch/aarch64/f32_reinterpret_i32/locals.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -25,5 +26,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f32_reinterpret_i32/params.wat b/tests/disas/winch/aarch64/f32_reinterpret_i32/params.wat index c3a181d5e707..34efd106a7ab 100644 --- a/tests/disas/winch/aarch64/f32_reinterpret_i32/params.wat +++ b/tests/disas/winch/aarch64/f32_reinterpret_i32/params.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -22,5 +23,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f32_reinterpret_i32/ret_int.wat b/tests/disas/winch/aarch64/f32_reinterpret_i32/ret_int.wat index 6c62a17ac259..11de4f7ec335 100644 --- a/tests/disas/winch/aarch64/f32_reinterpret_i32/ret_int.wat +++ b/tests/disas/winch/aarch64/f32_reinterpret_i32/ret_int.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -26,5 +27,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f32_reinterpret_i32/spilled.wat b/tests/disas/winch/aarch64/f32_reinterpret_i32/spilled.wat index 741ce1c8d6cb..0303cf2939cf 100644 --- a/tests/disas/winch/aarch64/f32_reinterpret_i32/spilled.wat +++ b/tests/disas/winch/aarch64/f32_reinterpret_i32/spilled.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -30,5 +31,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f32_sqrt/f32_sqrt_const.wat b/tests/disas/winch/aarch64/f32_sqrt/f32_sqrt_const.wat index 3b34291235e3..160b6a1dcec0 100644 --- a/tests/disas/winch/aarch64/f32_sqrt/f32_sqrt_const.wat +++ b/tests/disas/winch/aarch64/f32_sqrt/f32_sqrt_const.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -23,5 +24,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f32_sqrt/f32_sqrt_param.wat b/tests/disas/winch/aarch64/f32_sqrt/f32_sqrt_param.wat index a11c3f2e452f..0faa160352db 100644 --- a/tests/disas/winch/aarch64/f32_sqrt/f32_sqrt_param.wat +++ b/tests/disas/winch/aarch64/f32_sqrt/f32_sqrt_param.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -22,5 +23,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f32_sub/const.wat b/tests/disas/winch/aarch64/f32_sub/const.wat index 31df212c31b3..8e214af3d567 100644 --- a/tests/disas/winch/aarch64/f32_sub/const.wat +++ b/tests/disas/winch/aarch64/f32_sub/const.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -28,5 +29,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f32_sub/locals.wat b/tests/disas/winch/aarch64/f32_sub/locals.wat index ed183a260760..83a787b712d2 100644 --- a/tests/disas/winch/aarch64/f32_sub/locals.wat +++ b/tests/disas/winch/aarch64/f32_sub/locals.wat @@ -20,6 +20,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -43,5 +44,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f32_sub/params.wat b/tests/disas/winch/aarch64/f32_sub/params.wat index 590ec9f07e05..24f312ffc2a9 100644 --- a/tests/disas/winch/aarch64/f32_sub/params.wat +++ b/tests/disas/winch/aarch64/f32_sub/params.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -26,5 +27,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f32_trunc/f32_trunc_const.wat b/tests/disas/winch/aarch64/f32_trunc/f32_trunc_const.wat index 6b98be0cca7b..81b9c8fb45c5 100644 --- a/tests/disas/winch/aarch64/f32_trunc/f32_trunc_const.wat +++ b/tests/disas/winch/aarch64/f32_trunc/f32_trunc_const.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -23,5 +24,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f32_trunc/f32_trunc_param.wat b/tests/disas/winch/aarch64/f32_trunc/f32_trunc_param.wat index 3f56933fd4ed..244c31f24687 100644 --- a/tests/disas/winch/aarch64/f32_trunc/f32_trunc_param.wat +++ b/tests/disas/winch/aarch64/f32_trunc/f32_trunc_param.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -22,5 +23,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f64_abs/f64_abs_const.wat b/tests/disas/winch/aarch64/f64_abs/f64_abs_const.wat index fdb45030c452..0c3361dc81cf 100644 --- a/tests/disas/winch/aarch64/f64_abs/f64_abs_const.wat +++ b/tests/disas/winch/aarch64/f64_abs/f64_abs_const.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -25,5 +26,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f64_abs/f64_abs_param.wat b/tests/disas/winch/aarch64/f64_abs/f64_abs_param.wat index 97f5036830b8..add51de7fb71 100644 --- a/tests/disas/winch/aarch64/f64_abs/f64_abs_param.wat +++ b/tests/disas/winch/aarch64/f64_abs/f64_abs_param.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -22,5 +23,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f64_add/const.wat b/tests/disas/winch/aarch64/f64_add/const.wat index 3465791140a5..c2dc1bb2f7fe 100644 --- a/tests/disas/winch/aarch64/f64_add/const.wat +++ b/tests/disas/winch/aarch64/f64_add/const.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -32,5 +33,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f64_add/locals.wat b/tests/disas/winch/aarch64/f64_add/locals.wat index a27800c32145..9beb0badf1de 100644 --- a/tests/disas/winch/aarch64/f64_add/locals.wat +++ b/tests/disas/winch/aarch64/f64_add/locals.wat @@ -20,6 +20,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x20 @@ -48,5 +49,6 @@ ;; add x28, x28, #0x20 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f64_add/params.wat b/tests/disas/winch/aarch64/f64_add/params.wat index 1d8a70d345be..5189f37da4b5 100644 --- a/tests/disas/winch/aarch64/f64_add/params.wat +++ b/tests/disas/winch/aarch64/f64_add/params.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x20 @@ -26,5 +27,6 @@ ;; add x28, x28, #0x20 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f64_ceil/f64_ceil_const.wat b/tests/disas/winch/aarch64/f64_ceil/f64_ceil_const.wat index 55710e0bdf81..100c7964c6ac 100644 --- a/tests/disas/winch/aarch64/f64_ceil/f64_ceil_const.wat +++ b/tests/disas/winch/aarch64/f64_ceil/f64_ceil_const.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -25,5 +26,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f64_ceil/f64_ceil_param.wat b/tests/disas/winch/aarch64/f64_ceil/f64_ceil_param.wat index 210582867025..3e210f8143a8 100644 --- a/tests/disas/winch/aarch64/f64_ceil/f64_ceil_param.wat +++ b/tests/disas/winch/aarch64/f64_ceil/f64_ceil_param.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -22,5 +23,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f64_convert_i32_s/const.wat b/tests/disas/winch/aarch64/f64_convert_i32_s/const.wat index f5d3acb6fd0f..b0d777905a31 100644 --- a/tests/disas/winch/aarch64/f64_convert_i32_s/const.wat +++ b/tests/disas/winch/aarch64/f64_convert_i32_s/const.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -22,5 +23,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f64_convert_i32_s/locals.wat b/tests/disas/winch/aarch64/f64_convert_i32_s/locals.wat index 0a6c7826c34b..4987dcfa490b 100644 --- a/tests/disas/winch/aarch64/f64_convert_i32_s/locals.wat +++ b/tests/disas/winch/aarch64/f64_convert_i32_s/locals.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -25,5 +26,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f64_convert_i32_s/params.wat b/tests/disas/winch/aarch64/f64_convert_i32_s/params.wat index 4dd89a25eb88..b23a49762006 100644 --- a/tests/disas/winch/aarch64/f64_convert_i32_s/params.wat +++ b/tests/disas/winch/aarch64/f64_convert_i32_s/params.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -22,5 +23,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f64_convert_i32_s/spilled.wat b/tests/disas/winch/aarch64/f64_convert_i32_s/spilled.wat index 53f70a6f89f6..3ce4f65ca770 100644 --- a/tests/disas/winch/aarch64/f64_convert_i32_s/spilled.wat +++ b/tests/disas/winch/aarch64/f64_convert_i32_s/spilled.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -30,5 +31,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f64_convert_i32_u/const.wat b/tests/disas/winch/aarch64/f64_convert_i32_u/const.wat index f2f8e4c066fd..92cdcce1c0e1 100644 --- a/tests/disas/winch/aarch64/f64_convert_i32_u/const.wat +++ b/tests/disas/winch/aarch64/f64_convert_i32_u/const.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -22,5 +23,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f64_convert_i32_u/locals.wat b/tests/disas/winch/aarch64/f64_convert_i32_u/locals.wat index 71ff494afda2..0bc88187a63e 100644 --- a/tests/disas/winch/aarch64/f64_convert_i32_u/locals.wat +++ b/tests/disas/winch/aarch64/f64_convert_i32_u/locals.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -25,5 +26,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f64_convert_i32_u/params.wat b/tests/disas/winch/aarch64/f64_convert_i32_u/params.wat index 36947127c607..ea4da51dec06 100644 --- a/tests/disas/winch/aarch64/f64_convert_i32_u/params.wat +++ b/tests/disas/winch/aarch64/f64_convert_i32_u/params.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -22,5 +23,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f64_convert_i32_u/spilled.wat b/tests/disas/winch/aarch64/f64_convert_i32_u/spilled.wat index b8e2a050148a..3037d3186b53 100644 --- a/tests/disas/winch/aarch64/f64_convert_i32_u/spilled.wat +++ b/tests/disas/winch/aarch64/f64_convert_i32_u/spilled.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -30,5 +31,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f64_convert_i64_s/const.wat b/tests/disas/winch/aarch64/f64_convert_i64_s/const.wat index a78b26f08aaf..10972740b5a4 100644 --- a/tests/disas/winch/aarch64/f64_convert_i64_s/const.wat +++ b/tests/disas/winch/aarch64/f64_convert_i64_s/const.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -22,5 +23,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f64_convert_i64_s/locals.wat b/tests/disas/winch/aarch64/f64_convert_i64_s/locals.wat index b77bd854067c..39ba1b9b8007 100644 --- a/tests/disas/winch/aarch64/f64_convert_i64_s/locals.wat +++ b/tests/disas/winch/aarch64/f64_convert_i64_s/locals.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -25,5 +26,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f64_convert_i64_s/params.wat b/tests/disas/winch/aarch64/f64_convert_i64_s/params.wat index c53c9a12e25e..8f9e0a4ffa69 100644 --- a/tests/disas/winch/aarch64/f64_convert_i64_s/params.wat +++ b/tests/disas/winch/aarch64/f64_convert_i64_s/params.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -22,5 +23,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f64_convert_i64_s/spilled.wat b/tests/disas/winch/aarch64/f64_convert_i64_s/spilled.wat index 78e29e13c80e..9cd40ec38605 100644 --- a/tests/disas/winch/aarch64/f64_convert_i64_s/spilled.wat +++ b/tests/disas/winch/aarch64/f64_convert_i64_s/spilled.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -30,5 +31,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f64_convert_i64_u/const.wat b/tests/disas/winch/aarch64/f64_convert_i64_u/const.wat index 3b23ca114a78..12c6565565d8 100644 --- a/tests/disas/winch/aarch64/f64_convert_i64_u/const.wat +++ b/tests/disas/winch/aarch64/f64_convert_i64_u/const.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -22,5 +23,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f64_convert_i64_u/locals.wat b/tests/disas/winch/aarch64/f64_convert_i64_u/locals.wat index 0de8b0b9bc0f..3c2c513c14c6 100644 --- a/tests/disas/winch/aarch64/f64_convert_i64_u/locals.wat +++ b/tests/disas/winch/aarch64/f64_convert_i64_u/locals.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -25,5 +26,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f64_convert_i64_u/params.wat b/tests/disas/winch/aarch64/f64_convert_i64_u/params.wat index 6541d077733e..3ad879dd85d0 100644 --- a/tests/disas/winch/aarch64/f64_convert_i64_u/params.wat +++ b/tests/disas/winch/aarch64/f64_convert_i64_u/params.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -22,5 +23,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f64_convert_i64_u/spilled.wat b/tests/disas/winch/aarch64/f64_convert_i64_u/spilled.wat index a916843e3a06..0ccfb3d4c094 100644 --- a/tests/disas/winch/aarch64/f64_convert_i64_u/spilled.wat +++ b/tests/disas/winch/aarch64/f64_convert_i64_u/spilled.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -30,5 +31,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f64_copysign/const.wat b/tests/disas/winch/aarch64/f64_copysign/const.wat index c5c4c7104d3c..37299471d140 100644 --- a/tests/disas/winch/aarch64/f64_copysign/const.wat +++ b/tests/disas/winch/aarch64/f64_copysign/const.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -33,5 +34,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f64_copysign/locals.wat b/tests/disas/winch/aarch64/f64_copysign/locals.wat index f9dde38e4999..0aafbd1500cc 100644 --- a/tests/disas/winch/aarch64/f64_copysign/locals.wat +++ b/tests/disas/winch/aarch64/f64_copysign/locals.wat @@ -20,6 +20,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x20 @@ -49,5 +50,6 @@ ;; add x28, x28, #0x20 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f64_copysign/params.wat b/tests/disas/winch/aarch64/f64_copysign/params.wat index db15a60be070..f82ef9718ee1 100644 --- a/tests/disas/winch/aarch64/f64_copysign/params.wat +++ b/tests/disas/winch/aarch64/f64_copysign/params.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x20 @@ -27,5 +28,6 @@ ;; add x28, x28, #0x20 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f64_div/const.wat b/tests/disas/winch/aarch64/f64_div/const.wat index 9da800010b84..ae95dbe240c7 100644 --- a/tests/disas/winch/aarch64/f64_div/const.wat +++ b/tests/disas/winch/aarch64/f64_div/const.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -32,5 +33,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f64_div/locals.wat b/tests/disas/winch/aarch64/f64_div/locals.wat index e42ac914f1dc..4f3a3d6679c5 100644 --- a/tests/disas/winch/aarch64/f64_div/locals.wat +++ b/tests/disas/winch/aarch64/f64_div/locals.wat @@ -20,6 +20,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x20 @@ -48,5 +49,6 @@ ;; add x28, x28, #0x20 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f64_div/params.wat b/tests/disas/winch/aarch64/f64_div/params.wat index 806afb88f008..0611d249e543 100644 --- a/tests/disas/winch/aarch64/f64_div/params.wat +++ b/tests/disas/winch/aarch64/f64_div/params.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x20 @@ -26,5 +27,6 @@ ;; add x28, x28, #0x20 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f64_eq/const.wat b/tests/disas/winch/aarch64/f64_eq/const.wat index c9a0abbaafda..9613d55b3972 100644 --- a/tests/disas/winch/aarch64/f64_eq/const.wat +++ b/tests/disas/winch/aarch64/f64_eq/const.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -27,5 +28,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f64_eq/locals.wat b/tests/disas/winch/aarch64/f64_eq/locals.wat index 6059578f8c2d..110d757bdbc3 100644 --- a/tests/disas/winch/aarch64/f64_eq/locals.wat +++ b/tests/disas/winch/aarch64/f64_eq/locals.wat @@ -20,6 +20,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x20 @@ -42,5 +43,6 @@ ;; add x28, x28, #0x20 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f64_eq/params.wat b/tests/disas/winch/aarch64/f64_eq/params.wat index 5263403af30b..706d10788124 100644 --- a/tests/disas/winch/aarch64/f64_eq/params.wat +++ b/tests/disas/winch/aarch64/f64_eq/params.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x20 @@ -26,5 +27,6 @@ ;; add x28, x28, #0x20 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f64_floor/f64_floor_const.wat b/tests/disas/winch/aarch64/f64_floor/f64_floor_const.wat index 5cba16b46b5c..59eab23432ba 100644 --- a/tests/disas/winch/aarch64/f64_floor/f64_floor_const.wat +++ b/tests/disas/winch/aarch64/f64_floor/f64_floor_const.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -25,5 +26,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f64_floor/f64_floor_param.wat b/tests/disas/winch/aarch64/f64_floor/f64_floor_param.wat index d880d77f567b..584ffbcbed15 100644 --- a/tests/disas/winch/aarch64/f64_floor/f64_floor_param.wat +++ b/tests/disas/winch/aarch64/f64_floor/f64_floor_param.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -22,5 +23,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f64_ge/const.wat b/tests/disas/winch/aarch64/f64_ge/const.wat index 63e18301255c..1c7c0163d341 100644 --- a/tests/disas/winch/aarch64/f64_ge/const.wat +++ b/tests/disas/winch/aarch64/f64_ge/const.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -27,5 +28,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f64_ge/locals.wat b/tests/disas/winch/aarch64/f64_ge/locals.wat index 781dab14bab0..0508c50ea199 100644 --- a/tests/disas/winch/aarch64/f64_ge/locals.wat +++ b/tests/disas/winch/aarch64/f64_ge/locals.wat @@ -20,6 +20,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x20 @@ -42,5 +43,6 @@ ;; add x28, x28, #0x20 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f64_ge/params.wat b/tests/disas/winch/aarch64/f64_ge/params.wat index d5cabff77500..51cadc16a02c 100644 --- a/tests/disas/winch/aarch64/f64_ge/params.wat +++ b/tests/disas/winch/aarch64/f64_ge/params.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x20 @@ -26,5 +27,6 @@ ;; add x28, x28, #0x20 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f64_gt/const.wat b/tests/disas/winch/aarch64/f64_gt/const.wat index cfc8b117e6d4..5a63991ecb92 100644 --- a/tests/disas/winch/aarch64/f64_gt/const.wat +++ b/tests/disas/winch/aarch64/f64_gt/const.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -27,5 +28,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f64_gt/locals.wat b/tests/disas/winch/aarch64/f64_gt/locals.wat index 2ff5036ee9f6..62c9406ed4c3 100644 --- a/tests/disas/winch/aarch64/f64_gt/locals.wat +++ b/tests/disas/winch/aarch64/f64_gt/locals.wat @@ -20,6 +20,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x20 @@ -42,5 +43,6 @@ ;; add x28, x28, #0x20 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f64_gt/params.wat b/tests/disas/winch/aarch64/f64_gt/params.wat index cf3abe704720..8ee2ae86397b 100644 --- a/tests/disas/winch/aarch64/f64_gt/params.wat +++ b/tests/disas/winch/aarch64/f64_gt/params.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x20 @@ -26,5 +27,6 @@ ;; add x28, x28, #0x20 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f64_le/const.wat b/tests/disas/winch/aarch64/f64_le/const.wat index 7338ccc57ad2..1560c928f005 100644 --- a/tests/disas/winch/aarch64/f64_le/const.wat +++ b/tests/disas/winch/aarch64/f64_le/const.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -27,5 +28,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f64_le/locals.wat b/tests/disas/winch/aarch64/f64_le/locals.wat index e53974e892e9..02d332c881ea 100644 --- a/tests/disas/winch/aarch64/f64_le/locals.wat +++ b/tests/disas/winch/aarch64/f64_le/locals.wat @@ -20,6 +20,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x20 @@ -42,5 +43,6 @@ ;; add x28, x28, #0x20 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f64_le/params.wat b/tests/disas/winch/aarch64/f64_le/params.wat index 62165a5f7ebb..617c3600774e 100644 --- a/tests/disas/winch/aarch64/f64_le/params.wat +++ b/tests/disas/winch/aarch64/f64_le/params.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x20 @@ -26,5 +27,6 @@ ;; add x28, x28, #0x20 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f64_lt/const.wat b/tests/disas/winch/aarch64/f64_lt/const.wat index 8bc3c9e8345c..29d7579f471f 100644 --- a/tests/disas/winch/aarch64/f64_lt/const.wat +++ b/tests/disas/winch/aarch64/f64_lt/const.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -27,5 +28,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f64_lt/locals.wat b/tests/disas/winch/aarch64/f64_lt/locals.wat index 401f769f191c..d16be48f02a7 100644 --- a/tests/disas/winch/aarch64/f64_lt/locals.wat +++ b/tests/disas/winch/aarch64/f64_lt/locals.wat @@ -20,6 +20,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x20 @@ -42,5 +43,6 @@ ;; add x28, x28, #0x20 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f64_lt/params.wat b/tests/disas/winch/aarch64/f64_lt/params.wat index 7dc6987a8a75..4248b8f8278d 100644 --- a/tests/disas/winch/aarch64/f64_lt/params.wat +++ b/tests/disas/winch/aarch64/f64_lt/params.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x20 @@ -26,5 +27,6 @@ ;; add x28, x28, #0x20 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f64_max/const.wat b/tests/disas/winch/aarch64/f64_max/const.wat index 3968510d99b5..194c3369db25 100644 --- a/tests/disas/winch/aarch64/f64_max/const.wat +++ b/tests/disas/winch/aarch64/f64_max/const.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -32,5 +33,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f64_max/locals.wat b/tests/disas/winch/aarch64/f64_max/locals.wat index c354038508bb..f85fed5ebffd 100644 --- a/tests/disas/winch/aarch64/f64_max/locals.wat +++ b/tests/disas/winch/aarch64/f64_max/locals.wat @@ -20,6 +20,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x20 @@ -48,5 +49,6 @@ ;; add x28, x28, #0x20 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f64_max/params.wat b/tests/disas/winch/aarch64/f64_max/params.wat index 4e2f29e02342..d7c7eb63b806 100644 --- a/tests/disas/winch/aarch64/f64_max/params.wat +++ b/tests/disas/winch/aarch64/f64_max/params.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x20 @@ -26,5 +27,6 @@ ;; add x28, x28, #0x20 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f64_min/const.wat b/tests/disas/winch/aarch64/f64_min/const.wat index 6a23756a6736..56fd27fe8bbe 100644 --- a/tests/disas/winch/aarch64/f64_min/const.wat +++ b/tests/disas/winch/aarch64/f64_min/const.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -32,5 +33,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f64_min/locals.wat b/tests/disas/winch/aarch64/f64_min/locals.wat index 4874841f06c0..5ac425178884 100644 --- a/tests/disas/winch/aarch64/f64_min/locals.wat +++ b/tests/disas/winch/aarch64/f64_min/locals.wat @@ -20,6 +20,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x20 @@ -48,5 +49,6 @@ ;; add x28, x28, #0x20 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f64_min/params.wat b/tests/disas/winch/aarch64/f64_min/params.wat index a08562ccca65..2f4b1aede063 100644 --- a/tests/disas/winch/aarch64/f64_min/params.wat +++ b/tests/disas/winch/aarch64/f64_min/params.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x20 @@ -26,5 +27,6 @@ ;; add x28, x28, #0x20 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f64_mul/const.wat b/tests/disas/winch/aarch64/f64_mul/const.wat index 3b8d94ad2cab..545b1cf42a99 100644 --- a/tests/disas/winch/aarch64/f64_mul/const.wat +++ b/tests/disas/winch/aarch64/f64_mul/const.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -32,5 +33,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f64_mul/locals.wat b/tests/disas/winch/aarch64/f64_mul/locals.wat index 64f848a1855e..a571dbc6316b 100644 --- a/tests/disas/winch/aarch64/f64_mul/locals.wat +++ b/tests/disas/winch/aarch64/f64_mul/locals.wat @@ -20,6 +20,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x20 @@ -48,5 +49,6 @@ ;; add x28, x28, #0x20 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f64_mul/params.wat b/tests/disas/winch/aarch64/f64_mul/params.wat index 76afc78b6147..86f877a89e76 100644 --- a/tests/disas/winch/aarch64/f64_mul/params.wat +++ b/tests/disas/winch/aarch64/f64_mul/params.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x20 @@ -26,5 +27,6 @@ ;; add x28, x28, #0x20 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f64_ne/const.wat b/tests/disas/winch/aarch64/f64_ne/const.wat index 6335fcb55212..743620ac0e9a 100644 --- a/tests/disas/winch/aarch64/f64_ne/const.wat +++ b/tests/disas/winch/aarch64/f64_ne/const.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -27,5 +28,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f64_ne/locals.wat b/tests/disas/winch/aarch64/f64_ne/locals.wat index 9ea8714e6695..8d3504ae5a2d 100644 --- a/tests/disas/winch/aarch64/f64_ne/locals.wat +++ b/tests/disas/winch/aarch64/f64_ne/locals.wat @@ -20,6 +20,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x20 @@ -42,5 +43,6 @@ ;; add x28, x28, #0x20 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f64_ne/params.wat b/tests/disas/winch/aarch64/f64_ne/params.wat index 4631961b98f5..276467eb0264 100644 --- a/tests/disas/winch/aarch64/f64_ne/params.wat +++ b/tests/disas/winch/aarch64/f64_ne/params.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x20 @@ -26,5 +27,6 @@ ;; add x28, x28, #0x20 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f64_nearest/f64_nearest_const.wat b/tests/disas/winch/aarch64/f64_nearest/f64_nearest_const.wat index 786dc07aa9d5..3597575ff3f6 100644 --- a/tests/disas/winch/aarch64/f64_nearest/f64_nearest_const.wat +++ b/tests/disas/winch/aarch64/f64_nearest/f64_nearest_const.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -25,5 +26,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f64_nearest/f64_nearest_param.wat b/tests/disas/winch/aarch64/f64_nearest/f64_nearest_param.wat index fa7f75122c1e..cd9e79baf5b0 100644 --- a/tests/disas/winch/aarch64/f64_nearest/f64_nearest_param.wat +++ b/tests/disas/winch/aarch64/f64_nearest/f64_nearest_param.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -22,5 +23,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f64_neg/f64_neg_const.wat b/tests/disas/winch/aarch64/f64_neg/f64_neg_const.wat index 898fb0af7204..58a1340c2437 100644 --- a/tests/disas/winch/aarch64/f64_neg/f64_neg_const.wat +++ b/tests/disas/winch/aarch64/f64_neg/f64_neg_const.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -25,5 +26,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f64_neg/f64_neg_param.wat b/tests/disas/winch/aarch64/f64_neg/f64_neg_param.wat index bf802113c5fc..2a67827337e3 100644 --- a/tests/disas/winch/aarch64/f64_neg/f64_neg_param.wat +++ b/tests/disas/winch/aarch64/f64_neg/f64_neg_param.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -22,5 +23,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f64_promote_f32/const.wat b/tests/disas/winch/aarch64/f64_promote_f32/const.wat index 30d7f5892d7e..700768d85ade 100644 --- a/tests/disas/winch/aarch64/f64_promote_f32/const.wat +++ b/tests/disas/winch/aarch64/f64_promote_f32/const.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -22,5 +23,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f64_promote_f32/locals.wat b/tests/disas/winch/aarch64/f64_promote_f32/locals.wat index 4244cf007f4b..0fe5eb90cdbe 100644 --- a/tests/disas/winch/aarch64/f64_promote_f32/locals.wat +++ b/tests/disas/winch/aarch64/f64_promote_f32/locals.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -25,5 +26,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f64_promote_f32/params.wat b/tests/disas/winch/aarch64/f64_promote_f32/params.wat index 441e0da0c984..75d0d7ed9cfb 100644 --- a/tests/disas/winch/aarch64/f64_promote_f32/params.wat +++ b/tests/disas/winch/aarch64/f64_promote_f32/params.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -22,5 +23,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f64_reinterpret_i64/const.wat b/tests/disas/winch/aarch64/f64_reinterpret_i64/const.wat index ccfaaaa7cd56..22b9424a5a59 100644 --- a/tests/disas/winch/aarch64/f64_reinterpret_i64/const.wat +++ b/tests/disas/winch/aarch64/f64_reinterpret_i64/const.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -22,5 +23,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f64_reinterpret_i64/locals.wat b/tests/disas/winch/aarch64/f64_reinterpret_i64/locals.wat index 7881e7a00753..b7be39fd8f2e 100644 --- a/tests/disas/winch/aarch64/f64_reinterpret_i64/locals.wat +++ b/tests/disas/winch/aarch64/f64_reinterpret_i64/locals.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -25,5 +26,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f64_reinterpret_i64/params.wat b/tests/disas/winch/aarch64/f64_reinterpret_i64/params.wat index 70a4af71a6fd..3ecc42ffbefe 100644 --- a/tests/disas/winch/aarch64/f64_reinterpret_i64/params.wat +++ b/tests/disas/winch/aarch64/f64_reinterpret_i64/params.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -22,5 +23,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f64_reinterpret_i64/ret_int.wat b/tests/disas/winch/aarch64/f64_reinterpret_i64/ret_int.wat index 52b61e5c2673..d198b311e841 100644 --- a/tests/disas/winch/aarch64/f64_reinterpret_i64/ret_int.wat +++ b/tests/disas/winch/aarch64/f64_reinterpret_i64/ret_int.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -26,5 +27,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f64_reinterpret_i64/spilled.wat b/tests/disas/winch/aarch64/f64_reinterpret_i64/spilled.wat index 0ffbb51fbd14..f66a7c95a38a 100644 --- a/tests/disas/winch/aarch64/f64_reinterpret_i64/spilled.wat +++ b/tests/disas/winch/aarch64/f64_reinterpret_i64/spilled.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -30,5 +31,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f64_sqrt/f64_sqrt_const.wat b/tests/disas/winch/aarch64/f64_sqrt/f64_sqrt_const.wat index f7deb06c7eb7..65a39d9d5a96 100644 --- a/tests/disas/winch/aarch64/f64_sqrt/f64_sqrt_const.wat +++ b/tests/disas/winch/aarch64/f64_sqrt/f64_sqrt_const.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -25,5 +26,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f64_sqrt/f64_sqrt_param.wat b/tests/disas/winch/aarch64/f64_sqrt/f64_sqrt_param.wat index 4cb63b9ad11e..f256d06121aa 100644 --- a/tests/disas/winch/aarch64/f64_sqrt/f64_sqrt_param.wat +++ b/tests/disas/winch/aarch64/f64_sqrt/f64_sqrt_param.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -22,5 +23,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f64_sub/const.wat b/tests/disas/winch/aarch64/f64_sub/const.wat index 886d1f843d7f..c72421190e8d 100644 --- a/tests/disas/winch/aarch64/f64_sub/const.wat +++ b/tests/disas/winch/aarch64/f64_sub/const.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -32,5 +33,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f64_sub/locals.wat b/tests/disas/winch/aarch64/f64_sub/locals.wat index 2af1e7c4cb70..af72871f8890 100644 --- a/tests/disas/winch/aarch64/f64_sub/locals.wat +++ b/tests/disas/winch/aarch64/f64_sub/locals.wat @@ -20,6 +20,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x20 @@ -48,5 +49,6 @@ ;; add x28, x28, #0x20 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f64_sub/params.wat b/tests/disas/winch/aarch64/f64_sub/params.wat index 2ef0c8582b67..8f26e2f3f0ab 100644 --- a/tests/disas/winch/aarch64/f64_sub/params.wat +++ b/tests/disas/winch/aarch64/f64_sub/params.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x20 @@ -26,5 +27,6 @@ ;; add x28, x28, #0x20 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f64_trunc/f64_trunc_const.wat b/tests/disas/winch/aarch64/f64_trunc/f64_trunc_const.wat index f8e0a45bb79e..59aadc37f14e 100644 --- a/tests/disas/winch/aarch64/f64_trunc/f64_trunc_const.wat +++ b/tests/disas/winch/aarch64/f64_trunc/f64_trunc_const.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -25,5 +26,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/f64_trunc/f64_trunc_param.wat b/tests/disas/winch/aarch64/f64_trunc/f64_trunc_param.wat index 59ffeac8be83..81b6c189509e 100644 --- a/tests/disas/winch/aarch64/f64_trunc/f64_trunc_param.wat +++ b/tests/disas/winch/aarch64/f64_trunc/f64_trunc_param.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -22,5 +23,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_add/const.wat b/tests/disas/winch/aarch64/i32_add/const.wat index 916c28738ff3..f8ff7882835a 100644 --- a/tests/disas/winch/aarch64/i32_add/const.wat +++ b/tests/disas/winch/aarch64/i32_add/const.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -23,5 +24,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_add/locals.wat b/tests/disas/winch/aarch64/i32_add/locals.wat index 3dbc0e821520..1698bc511275 100644 --- a/tests/disas/winch/aarch64/i32_add/locals.wat +++ b/tests/disas/winch/aarch64/i32_add/locals.wat @@ -20,6 +20,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -41,5 +42,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_add/max.wat b/tests/disas/winch/aarch64/i32_add/max.wat index e58bc37d7eb6..3451acd23e0e 100644 --- a/tests/disas/winch/aarch64/i32_add/max.wat +++ b/tests/disas/winch/aarch64/i32_add/max.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -22,5 +23,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_add/max_one.wat b/tests/disas/winch/aarch64/i32_add/max_one.wat index 2340b13d6cfb..76ed402bcc5a 100644 --- a/tests/disas/winch/aarch64/i32_add/max_one.wat +++ b/tests/disas/winch/aarch64/i32_add/max_one.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -24,5 +25,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_add/mixed.wat b/tests/disas/winch/aarch64/i32_add/mixed.wat index 1a4e57d5e25a..09f8372da018 100644 --- a/tests/disas/winch/aarch64/i32_add/mixed.wat +++ b/tests/disas/winch/aarch64/i32_add/mixed.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -23,5 +24,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_add/params.wat b/tests/disas/winch/aarch64/i32_add/params.wat index 90d34c43e8fa..07d4606fd04d 100644 --- a/tests/disas/winch/aarch64/i32_add/params.wat +++ b/tests/disas/winch/aarch64/i32_add/params.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -26,5 +27,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_add/signed.wat b/tests/disas/winch/aarch64/i32_add/signed.wat index ac519dff6942..fcfded855a2d 100644 --- a/tests/disas/winch/aarch64/i32_add/signed.wat +++ b/tests/disas/winch/aarch64/i32_add/signed.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -24,5 +25,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_add/unsigned_with_zero.wat b/tests/disas/winch/aarch64/i32_add/unsigned_with_zero.wat index c3e6b6907997..319f3aff7206 100644 --- a/tests/disas/winch/aarch64/i32_add/unsigned_with_zero.wat +++ b/tests/disas/winch/aarch64/i32_add/unsigned_with_zero.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -23,5 +24,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_and/const.wat b/tests/disas/winch/aarch64/i32_and/const.wat index 5ce9e96268cd..8aebaf438b6e 100644 --- a/tests/disas/winch/aarch64/i32_and/const.wat +++ b/tests/disas/winch/aarch64/i32_and/const.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -23,5 +24,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_and/locals.wat b/tests/disas/winch/aarch64/i32_and/locals.wat index 9bd34285fa7c..0ea4724b1b33 100644 --- a/tests/disas/winch/aarch64/i32_and/locals.wat +++ b/tests/disas/winch/aarch64/i32_and/locals.wat @@ -20,6 +20,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -41,5 +42,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_and/params.wat b/tests/disas/winch/aarch64/i32_and/params.wat index 3f8bee3a6311..5a03e47a7780 100644 --- a/tests/disas/winch/aarch64/i32_and/params.wat +++ b/tests/disas/winch/aarch64/i32_and/params.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -26,5 +27,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_clz/const.wat b/tests/disas/winch/aarch64/i32_clz/const.wat index 2ad07d009f74..0c212c8cd0e4 100644 --- a/tests/disas/winch/aarch64/i32_clz/const.wat +++ b/tests/disas/winch/aarch64/i32_clz/const.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -22,5 +23,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_clz/locals.wat b/tests/disas/winch/aarch64/i32_clz/locals.wat index 5e4d30d291e8..2ccbafd377b5 100644 --- a/tests/disas/winch/aarch64/i32_clz/locals.wat +++ b/tests/disas/winch/aarch64/i32_clz/locals.wat @@ -14,6 +14,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -29,5 +30,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_clz/params.wat b/tests/disas/winch/aarch64/i32_clz/params.wat index 44fc042f26a2..4b16f68c5f72 100644 --- a/tests/disas/winch/aarch64/i32_clz/params.wat +++ b/tests/disas/winch/aarch64/i32_clz/params.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -22,5 +23,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_ctz/const.wat b/tests/disas/winch/aarch64/i32_ctz/const.wat index 6ff52e4c1fac..db97675d3acf 100644 --- a/tests/disas/winch/aarch64/i32_ctz/const.wat +++ b/tests/disas/winch/aarch64/i32_ctz/const.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -23,5 +24,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_ctz/locals.wat b/tests/disas/winch/aarch64/i32_ctz/locals.wat index 741cdfa1c3b0..8d1d5626de61 100644 --- a/tests/disas/winch/aarch64/i32_ctz/locals.wat +++ b/tests/disas/winch/aarch64/i32_ctz/locals.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -28,5 +29,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_ctz/params.wat b/tests/disas/winch/aarch64/i32_ctz/params.wat index d3a92ea4a561..b04296b8e8e3 100644 --- a/tests/disas/winch/aarch64/i32_ctz/params.wat +++ b/tests/disas/winch/aarch64/i32_ctz/params.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -23,5 +24,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_divs/const.wat b/tests/disas/winch/aarch64/i32_divs/const.wat index aae4d77197ca..eb508facf17b 100644 --- a/tests/disas/winch/aarch64/i32_divs/const.wat +++ b/tests/disas/winch/aarch64/i32_divs/const.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -22,18 +23,19 @@ ;; mov w0, w16 ;; mov x16, #0x14 ;; mov w1, w16 -;; cbz w0, #0x64 -;; 34: cmn w0, #1 +;; cbz w0, #0x6c +;; 38: cmn w0, #1 ;; ccmp w1, #1, #0, eq -;; b.vs #0x68 -;; 40: sxtw x0, w0 +;; b.vs #0x70 +;; 44: sxtw x0, w0 ;; sxtw x1, w1 ;; sdiv x1, x1, x0 ;; mov w0, w1 ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 -;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 6c: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_divs/one_zero.wat b/tests/disas/winch/aarch64/i32_divs/one_zero.wat index 31fb24635cde..97f38c3013dc 100644 --- a/tests/disas/winch/aarch64/i32_divs/one_zero.wat +++ b/tests/disas/winch/aarch64/i32_divs/one_zero.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -22,18 +23,19 @@ ;; mov w0, w16 ;; mov x16, #1 ;; mov w1, w16 -;; cbz w0, #0x64 -;; 34: cmn w0, #1 +;; cbz w0, #0x6c +;; 38: cmn w0, #1 ;; ccmp w1, #1, #0, eq -;; b.vs #0x68 -;; 40: sxtw x0, w0 +;; b.vs #0x70 +;; 44: sxtw x0, w0 ;; sxtw x1, w1 ;; sdiv x1, x1, x0 ;; mov w0, w1 ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 -;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 6c: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_divs/overflow.wat b/tests/disas/winch/aarch64/i32_divs/overflow.wat index 2a5ec055ef74..48cbe8a4ca3e 100644 --- a/tests/disas/winch/aarch64/i32_divs/overflow.wat +++ b/tests/disas/winch/aarch64/i32_divs/overflow.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -22,18 +23,19 @@ ;; mov w0, w16 ;; mov x16, #0x80000000 ;; mov w1, w16 -;; cbz w0, #0x64 -;; 34: cmn w0, #1 +;; cbz w0, #0x6c +;; 38: cmn w0, #1 ;; ccmp w1, #1, #0, eq -;; b.vs #0x68 -;; 40: sxtw x0, w0 +;; b.vs #0x70 +;; 44: sxtw x0, w0 ;; sxtw x1, w1 ;; sdiv x1, x1, x0 ;; mov w0, w1 ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 -;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 6c: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_divs/params.wat b/tests/disas/winch/aarch64/i32_divs/params.wat index 1f90c26f486d..1f6198f4ef76 100644 --- a/tests/disas/winch/aarch64/i32_divs/params.wat +++ b/tests/disas/winch/aarch64/i32_divs/params.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -22,18 +23,19 @@ ;; stur w3, [x28] ;; ldur w0, [x28] ;; ldur w1, [x28, #4] -;; cbz w0, #0x64 -;; 34: cmn w0, #1 +;; cbz w0, #0x6c +;; 38: cmn w0, #1 ;; ccmp w1, #1, #0, eq -;; b.vs #0x68 -;; 40: sxtw x0, w0 +;; b.vs #0x70 +;; 44: sxtw x0, w0 ;; sxtw x1, w1 ;; sdiv x1, x1, x0 ;; mov w0, w1 ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 -;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 6c: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_divs/zero_zero.wat b/tests/disas/winch/aarch64/i32_divs/zero_zero.wat index e973d577b481..7bf7d1fb3aa2 100644 --- a/tests/disas/winch/aarch64/i32_divs/zero_zero.wat +++ b/tests/disas/winch/aarch64/i32_divs/zero_zero.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -22,18 +23,19 @@ ;; mov w0, w16 ;; mov x16, #0 ;; mov w1, w16 -;; cbz w0, #0x64 -;; 34: cmn w0, #1 +;; cbz w0, #0x6c +;; 38: cmn w0, #1 ;; ccmp w1, #1, #0, eq -;; b.vs #0x68 -;; 40: sxtw x0, w0 +;; b.vs #0x70 +;; 44: sxtw x0, w0 ;; sxtw x1, w1 ;; sdiv x1, x1, x0 ;; mov w0, w1 ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 -;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 6c: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_divu/const.wat b/tests/disas/winch/aarch64/i32_divu/const.wat index 49f3b1dfcbe5..64c3f28f949c 100644 --- a/tests/disas/winch/aarch64/i32_divu/const.wat +++ b/tests/disas/winch/aarch64/i32_divu/const.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -22,12 +23,13 @@ ;; mov w0, w16 ;; mov x16, #0x14 ;; mov w1, w16 -;; cbz w0, #0x50 -;; 34: udiv w1, w1, w0 +;; cbz w0, #0x58 +;; 38: udiv w1, w1, w0 ;; mov w0, w1 ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 50: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 58: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_divu/one_zero.wat b/tests/disas/winch/aarch64/i32_divu/one_zero.wat index f577a787b890..5492c7d05bcb 100644 --- a/tests/disas/winch/aarch64/i32_divu/one_zero.wat +++ b/tests/disas/winch/aarch64/i32_divu/one_zero.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -22,12 +23,13 @@ ;; mov w0, w16 ;; mov x16, #1 ;; mov w1, w16 -;; cbz w0, #0x50 -;; 34: udiv w1, w1, w0 +;; cbz w0, #0x58 +;; 38: udiv w1, w1, w0 ;; mov w0, w1 ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 50: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 58: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_divu/params.wat b/tests/disas/winch/aarch64/i32_divu/params.wat index 6f07082bb741..b6455d1425fc 100644 --- a/tests/disas/winch/aarch64/i32_divu/params.wat +++ b/tests/disas/winch/aarch64/i32_divu/params.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -22,12 +23,13 @@ ;; stur w3, [x28] ;; ldur w0, [x28] ;; ldur w1, [x28, #4] -;; cbz w0, #0x50 -;; 34: udiv w1, w1, w0 +;; cbz w0, #0x58 +;; 38: udiv w1, w1, w0 ;; mov w0, w1 ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 50: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 58: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_divu/signed.wat b/tests/disas/winch/aarch64/i32_divu/signed.wat index 2e19cd20ae3f..9d77ae890dca 100644 --- a/tests/disas/winch/aarch64/i32_divu/signed.wat +++ b/tests/disas/winch/aarch64/i32_divu/signed.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -22,12 +23,13 @@ ;; mov w0, w16 ;; orr x16, xzr, #0xffffffff ;; mov w1, w16 -;; cbz w0, #0x50 -;; 34: udiv w1, w1, w0 +;; cbz w0, #0x58 +;; 38: udiv w1, w1, w0 ;; mov w0, w1 ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 50: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 58: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_divu/zero_zero.wat b/tests/disas/winch/aarch64/i32_divu/zero_zero.wat index c4c7c815380a..3e7a9e3eb5fd 100644 --- a/tests/disas/winch/aarch64/i32_divu/zero_zero.wat +++ b/tests/disas/winch/aarch64/i32_divu/zero_zero.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -22,12 +23,13 @@ ;; mov w0, w16 ;; mov x16, #0 ;; mov w1, w16 -;; cbz w0, #0x50 -;; 34: udiv w1, w1, w0 +;; cbz w0, #0x58 +;; 38: udiv w1, w1, w0 ;; mov w0, w1 ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 50: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 58: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_eq/const.wat b/tests/disas/winch/aarch64/i32_eq/const.wat index f840ffd9ae57..dc7db9e6583c 100644 --- a/tests/disas/winch/aarch64/i32_eq/const.wat +++ b/tests/disas/winch/aarch64/i32_eq/const.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -25,5 +26,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_eq/locals.wat b/tests/disas/winch/aarch64/i32_eq/locals.wat index f330330b7090..00dd9a762456 100644 --- a/tests/disas/winch/aarch64/i32_eq/locals.wat +++ b/tests/disas/winch/aarch64/i32_eq/locals.wat @@ -20,6 +20,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -42,5 +43,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_eq/params.wat b/tests/disas/winch/aarch64/i32_eq/params.wat index bf74df70d65c..6a19db6a47c3 100644 --- a/tests/disas/winch/aarch64/i32_eq/params.wat +++ b/tests/disas/winch/aarch64/i32_eq/params.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -27,5 +28,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_extend_16_s/const.wat b/tests/disas/winch/aarch64/i32_extend_16_s/const.wat index 5569668c86db..cc515ae66cf1 100644 --- a/tests/disas/winch/aarch64/i32_extend_16_s/const.wat +++ b/tests/disas/winch/aarch64/i32_extend_16_s/const.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -22,5 +23,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_extend_16_s/locals.wat b/tests/disas/winch/aarch64/i32_extend_16_s/locals.wat index 0bef002271c6..08206918173f 100644 --- a/tests/disas/winch/aarch64/i32_extend_16_s/locals.wat +++ b/tests/disas/winch/aarch64/i32_extend_16_s/locals.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -25,5 +26,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_extend_16_s/params.wat b/tests/disas/winch/aarch64/i32_extend_16_s/params.wat index 62b318b53204..f651b090a4f5 100644 --- a/tests/disas/winch/aarch64/i32_extend_16_s/params.wat +++ b/tests/disas/winch/aarch64/i32_extend_16_s/params.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -22,5 +23,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_extend_8_s/const.wat b/tests/disas/winch/aarch64/i32_extend_8_s/const.wat index b15eadd43945..24b330e240b8 100644 --- a/tests/disas/winch/aarch64/i32_extend_8_s/const.wat +++ b/tests/disas/winch/aarch64/i32_extend_8_s/const.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -22,5 +23,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_extend_8_s/locals.wat b/tests/disas/winch/aarch64/i32_extend_8_s/locals.wat index f39b7cd0161e..3f3fa9cf4eb1 100644 --- a/tests/disas/winch/aarch64/i32_extend_8_s/locals.wat +++ b/tests/disas/winch/aarch64/i32_extend_8_s/locals.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -25,5 +26,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_extend_8_s/params.wat b/tests/disas/winch/aarch64/i32_extend_8_s/params.wat index b883cfb3b6c9..36c1f491fa6a 100644 --- a/tests/disas/winch/aarch64/i32_extend_8_s/params.wat +++ b/tests/disas/winch/aarch64/i32_extend_8_s/params.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -22,5 +23,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_ge_s/const.wat b/tests/disas/winch/aarch64/i32_ge_s/const.wat index ee9202c06019..eb8e1f7e44b7 100644 --- a/tests/disas/winch/aarch64/i32_ge_s/const.wat +++ b/tests/disas/winch/aarch64/i32_ge_s/const.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -26,5 +27,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_ge_s/locals.wat b/tests/disas/winch/aarch64/i32_ge_s/locals.wat index 3ab505f86fbd..9e7a201fe6de 100644 --- a/tests/disas/winch/aarch64/i32_ge_s/locals.wat +++ b/tests/disas/winch/aarch64/i32_ge_s/locals.wat @@ -20,6 +20,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -42,5 +43,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_ge_s/params.wat b/tests/disas/winch/aarch64/i32_ge_s/params.wat index f448eb2efecd..ec969c18abe4 100644 --- a/tests/disas/winch/aarch64/i32_ge_s/params.wat +++ b/tests/disas/winch/aarch64/i32_ge_s/params.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -27,5 +28,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_ge_u/const.wat b/tests/disas/winch/aarch64/i32_ge_u/const.wat index ed80b8e64f16..dd0f5685fb1c 100644 --- a/tests/disas/winch/aarch64/i32_ge_u/const.wat +++ b/tests/disas/winch/aarch64/i32_ge_u/const.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -25,5 +26,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_ge_u/locals.wat b/tests/disas/winch/aarch64/i32_ge_u/locals.wat index 1d8ea2d32d82..f6242bba9985 100644 --- a/tests/disas/winch/aarch64/i32_ge_u/locals.wat +++ b/tests/disas/winch/aarch64/i32_ge_u/locals.wat @@ -20,6 +20,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -42,5 +43,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_ge_u/params.wat b/tests/disas/winch/aarch64/i32_ge_u/params.wat index bdb07b964f9e..9dbaf57dccb6 100644 --- a/tests/disas/winch/aarch64/i32_ge_u/params.wat +++ b/tests/disas/winch/aarch64/i32_ge_u/params.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -27,5 +28,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_gt_s/const.wat b/tests/disas/winch/aarch64/i32_gt_s/const.wat index 1f918e263ac7..4851ffd35120 100644 --- a/tests/disas/winch/aarch64/i32_gt_s/const.wat +++ b/tests/disas/winch/aarch64/i32_gt_s/const.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -26,5 +27,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_gt_s/locals.wat b/tests/disas/winch/aarch64/i32_gt_s/locals.wat index 71d6bf9d774b..bd9cb5e687d0 100644 --- a/tests/disas/winch/aarch64/i32_gt_s/locals.wat +++ b/tests/disas/winch/aarch64/i32_gt_s/locals.wat @@ -20,6 +20,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -42,5 +43,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_gt_s/params.wat b/tests/disas/winch/aarch64/i32_gt_s/params.wat index 7d0e9f3f9272..8423125205ab 100644 --- a/tests/disas/winch/aarch64/i32_gt_s/params.wat +++ b/tests/disas/winch/aarch64/i32_gt_s/params.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -27,5 +28,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_gt_u/const.wat b/tests/disas/winch/aarch64/i32_gt_u/const.wat index 420cb594fd04..f18f3de77398 100644 --- a/tests/disas/winch/aarch64/i32_gt_u/const.wat +++ b/tests/disas/winch/aarch64/i32_gt_u/const.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -25,5 +26,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_gt_u/locals.wat b/tests/disas/winch/aarch64/i32_gt_u/locals.wat index 1b471b76d7f9..b13a53668929 100644 --- a/tests/disas/winch/aarch64/i32_gt_u/locals.wat +++ b/tests/disas/winch/aarch64/i32_gt_u/locals.wat @@ -20,6 +20,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -42,5 +43,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_gt_u/params.wat b/tests/disas/winch/aarch64/i32_gt_u/params.wat index 53400cbcb255..6e55ae436bf8 100644 --- a/tests/disas/winch/aarch64/i32_gt_u/params.wat +++ b/tests/disas/winch/aarch64/i32_gt_u/params.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -27,5 +28,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_le_s/const.wat b/tests/disas/winch/aarch64/i32_le_s/const.wat index 301135a1ab9e..4036f28ec748 100644 --- a/tests/disas/winch/aarch64/i32_le_s/const.wat +++ b/tests/disas/winch/aarch64/i32_le_s/const.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -26,5 +27,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_le_s/locals.wat b/tests/disas/winch/aarch64/i32_le_s/locals.wat index 3746cca36db9..d07693ac11ed 100644 --- a/tests/disas/winch/aarch64/i32_le_s/locals.wat +++ b/tests/disas/winch/aarch64/i32_le_s/locals.wat @@ -20,6 +20,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -42,5 +43,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_le_s/params.wat b/tests/disas/winch/aarch64/i32_le_s/params.wat index bbe5135cf3ec..686be6bc24bb 100644 --- a/tests/disas/winch/aarch64/i32_le_s/params.wat +++ b/tests/disas/winch/aarch64/i32_le_s/params.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -27,5 +28,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_le_u/const.wat b/tests/disas/winch/aarch64/i32_le_u/const.wat index 2a9acff582a8..24e119909fc4 100644 --- a/tests/disas/winch/aarch64/i32_le_u/const.wat +++ b/tests/disas/winch/aarch64/i32_le_u/const.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -25,5 +26,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_le_u/locals.wat b/tests/disas/winch/aarch64/i32_le_u/locals.wat index 1948ec3b83c0..a9efbb6e11f0 100644 --- a/tests/disas/winch/aarch64/i32_le_u/locals.wat +++ b/tests/disas/winch/aarch64/i32_le_u/locals.wat @@ -20,6 +20,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -42,5 +43,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_le_u/params.wat b/tests/disas/winch/aarch64/i32_le_u/params.wat index a5ab8042c2e3..4b4898cb38df 100644 --- a/tests/disas/winch/aarch64/i32_le_u/params.wat +++ b/tests/disas/winch/aarch64/i32_le_u/params.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -27,5 +28,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_lt_s/const.wat b/tests/disas/winch/aarch64/i32_lt_s/const.wat index bbda5522cc87..29d01a0dc78f 100644 --- a/tests/disas/winch/aarch64/i32_lt_s/const.wat +++ b/tests/disas/winch/aarch64/i32_lt_s/const.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -26,5 +27,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_lt_s/locals.wat b/tests/disas/winch/aarch64/i32_lt_s/locals.wat index 7872edc834d7..e1f289e14489 100644 --- a/tests/disas/winch/aarch64/i32_lt_s/locals.wat +++ b/tests/disas/winch/aarch64/i32_lt_s/locals.wat @@ -20,6 +20,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -42,5 +43,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_lt_s/params.wat b/tests/disas/winch/aarch64/i32_lt_s/params.wat index be8cd352227e..3a7d511f57da 100644 --- a/tests/disas/winch/aarch64/i32_lt_s/params.wat +++ b/tests/disas/winch/aarch64/i32_lt_s/params.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -27,5 +28,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_lt_u/const.wat b/tests/disas/winch/aarch64/i32_lt_u/const.wat index cc9530a14503..cbc9eef618e8 100644 --- a/tests/disas/winch/aarch64/i32_lt_u/const.wat +++ b/tests/disas/winch/aarch64/i32_lt_u/const.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -25,5 +26,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_lt_u/locals.wat b/tests/disas/winch/aarch64/i32_lt_u/locals.wat index b3912ca884da..f42fd3622b8a 100644 --- a/tests/disas/winch/aarch64/i32_lt_u/locals.wat +++ b/tests/disas/winch/aarch64/i32_lt_u/locals.wat @@ -20,6 +20,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -42,5 +43,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_lt_u/params.wat b/tests/disas/winch/aarch64/i32_lt_u/params.wat index 378c2f08a2bd..249524aa08ba 100644 --- a/tests/disas/winch/aarch64/i32_lt_u/params.wat +++ b/tests/disas/winch/aarch64/i32_lt_u/params.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -27,5 +28,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_mul/const.wat b/tests/disas/winch/aarch64/i32_mul/const.wat index 287e0e119c37..ff2aa9732ebe 100644 --- a/tests/disas/winch/aarch64/i32_mul/const.wat +++ b/tests/disas/winch/aarch64/i32_mul/const.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -24,5 +25,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_mul/locals.wat b/tests/disas/winch/aarch64/i32_mul/locals.wat index 80e612b039b7..30702eecbfe4 100644 --- a/tests/disas/winch/aarch64/i32_mul/locals.wat +++ b/tests/disas/winch/aarch64/i32_mul/locals.wat @@ -20,6 +20,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -41,5 +42,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_mul/max.wat b/tests/disas/winch/aarch64/i32_mul/max.wat index d7e61fbd436b..37d00243b7cf 100644 --- a/tests/disas/winch/aarch64/i32_mul/max.wat +++ b/tests/disas/winch/aarch64/i32_mul/max.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -24,5 +25,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_mul/max_one.wat b/tests/disas/winch/aarch64/i32_mul/max_one.wat index aaf57472cc73..02734b7b4d67 100644 --- a/tests/disas/winch/aarch64/i32_mul/max_one.wat +++ b/tests/disas/winch/aarch64/i32_mul/max_one.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -24,5 +25,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_mul/mixed.wat b/tests/disas/winch/aarch64/i32_mul/mixed.wat index eb9455e9be82..2aca5661d3c0 100644 --- a/tests/disas/winch/aarch64/i32_mul/mixed.wat +++ b/tests/disas/winch/aarch64/i32_mul/mixed.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -24,5 +25,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_mul/params.wat b/tests/disas/winch/aarch64/i32_mul/params.wat index e06e9329a6b6..3d29ce0abab5 100644 --- a/tests/disas/winch/aarch64/i32_mul/params.wat +++ b/tests/disas/winch/aarch64/i32_mul/params.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -26,5 +27,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_mul/signed.wat b/tests/disas/winch/aarch64/i32_mul/signed.wat index faebec24b934..25ad58706ca8 100644 --- a/tests/disas/winch/aarch64/i32_mul/signed.wat +++ b/tests/disas/winch/aarch64/i32_mul/signed.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -24,5 +25,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_mul/unsigned_with_zero.wat b/tests/disas/winch/aarch64/i32_mul/unsigned_with_zero.wat index 54aff2bce678..f29e14786e71 100644 --- a/tests/disas/winch/aarch64/i32_mul/unsigned_with_zero.wat +++ b/tests/disas/winch/aarch64/i32_mul/unsigned_with_zero.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -24,5 +25,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_ne/const.wat b/tests/disas/winch/aarch64/i32_ne/const.wat index a865a99e93d0..6bcd9d08618a 100644 --- a/tests/disas/winch/aarch64/i32_ne/const.wat +++ b/tests/disas/winch/aarch64/i32_ne/const.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -25,5 +26,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_ne/locals.wat b/tests/disas/winch/aarch64/i32_ne/locals.wat index e6ba526b91ad..ecdc974becab 100644 --- a/tests/disas/winch/aarch64/i32_ne/locals.wat +++ b/tests/disas/winch/aarch64/i32_ne/locals.wat @@ -20,6 +20,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -42,5 +43,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_ne/params.wat b/tests/disas/winch/aarch64/i32_ne/params.wat index cd2da18c3ff9..627dd605b3e2 100644 --- a/tests/disas/winch/aarch64/i32_ne/params.wat +++ b/tests/disas/winch/aarch64/i32_ne/params.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -27,5 +28,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_or/const.wat b/tests/disas/winch/aarch64/i32_or/const.wat index 08cd49429c8e..d3b8eebac378 100644 --- a/tests/disas/winch/aarch64/i32_or/const.wat +++ b/tests/disas/winch/aarch64/i32_or/const.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -23,5 +24,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_or/locals.wat b/tests/disas/winch/aarch64/i32_or/locals.wat index 0c9635968540..92c4734a8168 100644 --- a/tests/disas/winch/aarch64/i32_or/locals.wat +++ b/tests/disas/winch/aarch64/i32_or/locals.wat @@ -20,6 +20,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -41,5 +42,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_or/params.wat b/tests/disas/winch/aarch64/i32_or/params.wat index e209cc8bec4f..c33b3f51ab32 100644 --- a/tests/disas/winch/aarch64/i32_or/params.wat +++ b/tests/disas/winch/aarch64/i32_or/params.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -26,5 +27,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_popcnt/const.wat b/tests/disas/winch/aarch64/i32_popcnt/const.wat index a4c2c40c516d..46e08424a233 100644 --- a/tests/disas/winch/aarch64/i32_popcnt/const.wat +++ b/tests/disas/winch/aarch64/i32_popcnt/const.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -25,5 +26,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_popcnt/reg.wat b/tests/disas/winch/aarch64/i32_popcnt/reg.wat index 4e6624b378f6..7478e30f4e45 100644 --- a/tests/disas/winch/aarch64/i32_popcnt/reg.wat +++ b/tests/disas/winch/aarch64/i32_popcnt/reg.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -25,5 +26,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_reinterpret_f32/const.wat b/tests/disas/winch/aarch64/i32_reinterpret_f32/const.wat index ef992a060254..6e9a514228c7 100644 --- a/tests/disas/winch/aarch64/i32_reinterpret_f32/const.wat +++ b/tests/disas/winch/aarch64/i32_reinterpret_f32/const.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -22,5 +23,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_reinterpret_f32/locals.wat b/tests/disas/winch/aarch64/i32_reinterpret_f32/locals.wat index 6f1c3ca7b1af..bbd0c0a7da38 100644 --- a/tests/disas/winch/aarch64/i32_reinterpret_f32/locals.wat +++ b/tests/disas/winch/aarch64/i32_reinterpret_f32/locals.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -25,5 +26,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_reinterpret_f32/params.wat b/tests/disas/winch/aarch64/i32_reinterpret_f32/params.wat index ae54fe2575d9..26a12551500e 100644 --- a/tests/disas/winch/aarch64/i32_reinterpret_f32/params.wat +++ b/tests/disas/winch/aarch64/i32_reinterpret_f32/params.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -22,5 +23,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_reinterpret_f32/ret_float.wat b/tests/disas/winch/aarch64/i32_reinterpret_f32/ret_float.wat index 2ab82fbb5ff1..17d9ab716a96 100644 --- a/tests/disas/winch/aarch64/i32_reinterpret_f32/ret_float.wat +++ b/tests/disas/winch/aarch64/i32_reinterpret_f32/ret_float.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -26,5 +27,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_rems/const.wat b/tests/disas/winch/aarch64/i32_rems/const.wat index 09d7c613c3dd..c249c4f72c8b 100644 --- a/tests/disas/winch/aarch64/i32_rems/const.wat +++ b/tests/disas/winch/aarch64/i32_rems/const.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -22,8 +23,8 @@ ;; mov w0, w16 ;; mov x16, #7 ;; mov w1, w16 -;; cbz w0, #0x5c -;; 34: sxtw x0, w0 +;; cbz w0, #0x64 +;; 38: sxtw x0, w0 ;; sxtw x1, w1 ;; sdiv x16, x1, x0 ;; msub x1, x0, x16, x1 @@ -31,6 +32,7 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 5c: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_rems/one_zero.wat b/tests/disas/winch/aarch64/i32_rems/one_zero.wat index d4cfecd1c15c..f3f2d73b52fd 100644 --- a/tests/disas/winch/aarch64/i32_rems/one_zero.wat +++ b/tests/disas/winch/aarch64/i32_rems/one_zero.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -22,8 +23,8 @@ ;; mov w0, w16 ;; mov x16, #1 ;; mov w1, w16 -;; cbz w0, #0x5c -;; 34: sxtw x0, w0 +;; cbz w0, #0x64 +;; 38: sxtw x0, w0 ;; sxtw x1, w1 ;; sdiv x16, x1, x0 ;; msub x1, x0, x16, x1 @@ -31,6 +32,7 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 5c: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_rems/overflow.wat b/tests/disas/winch/aarch64/i32_rems/overflow.wat index 6979c4e1f0c1..7b63133dbfb4 100644 --- a/tests/disas/winch/aarch64/i32_rems/overflow.wat +++ b/tests/disas/winch/aarch64/i32_rems/overflow.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -22,8 +23,8 @@ ;; mov w0, w16 ;; mov x16, #0x80000000 ;; mov w1, w16 -;; cbz w0, #0x5c -;; 34: sxtw x0, w0 +;; cbz w0, #0x64 +;; 38: sxtw x0, w0 ;; sxtw x1, w1 ;; sdiv x16, x1, x0 ;; msub x1, x0, x16, x1 @@ -31,6 +32,7 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 5c: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_rems/params.wat b/tests/disas/winch/aarch64/i32_rems/params.wat index 3699d97a24c7..824f6e1a32a8 100644 --- a/tests/disas/winch/aarch64/i32_rems/params.wat +++ b/tests/disas/winch/aarch64/i32_rems/params.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -22,8 +23,8 @@ ;; stur w3, [x28] ;; ldur w0, [x28] ;; ldur w1, [x28, #4] -;; cbz w0, #0x5c -;; 34: sxtw x0, w0 +;; cbz w0, #0x64 +;; 38: sxtw x0, w0 ;; sxtw x1, w1 ;; sdiv x16, x1, x0 ;; msub x1, x0, x16, x1 @@ -31,6 +32,7 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 5c: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_rems/zero_zero.wat b/tests/disas/winch/aarch64/i32_rems/zero_zero.wat index e69686279020..d8cb86616c84 100644 --- a/tests/disas/winch/aarch64/i32_rems/zero_zero.wat +++ b/tests/disas/winch/aarch64/i32_rems/zero_zero.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -22,8 +23,8 @@ ;; mov w0, w16 ;; mov x16, #0 ;; mov w1, w16 -;; cbz w0, #0x5c -;; 34: sxtw x0, w0 +;; cbz w0, #0x64 +;; 38: sxtw x0, w0 ;; sxtw x1, w1 ;; sdiv x16, x1, x0 ;; msub x1, x0, x16, x1 @@ -31,6 +32,7 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 5c: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_remu/const.wat b/tests/disas/winch/aarch64/i32_remu/const.wat index deaf15450ffb..995068701c76 100644 --- a/tests/disas/winch/aarch64/i32_remu/const.wat +++ b/tests/disas/winch/aarch64/i32_remu/const.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -22,13 +23,14 @@ ;; mov w0, w16 ;; mov x16, #7 ;; mov w1, w16 -;; cbz w0, #0x54 -;; 34: udiv w16, w1, w0 +;; cbz w0, #0x5c +;; 38: udiv w16, w1, w0 ;; msub w1, w0, w16, w1 ;; mov w0, w1 ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 54: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 5c: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_remu/one_zero.wat b/tests/disas/winch/aarch64/i32_remu/one_zero.wat index 1f74f6aaf9b6..2beca50fae77 100644 --- a/tests/disas/winch/aarch64/i32_remu/one_zero.wat +++ b/tests/disas/winch/aarch64/i32_remu/one_zero.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -22,13 +23,14 @@ ;; mov w0, w16 ;; mov x16, #1 ;; mov w1, w16 -;; cbz w0, #0x54 -;; 34: udiv w16, w1, w0 +;; cbz w0, #0x5c +;; 38: udiv w16, w1, w0 ;; msub w1, w0, w16, w1 ;; mov w0, w1 ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 54: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 5c: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_remu/params.wat b/tests/disas/winch/aarch64/i32_remu/params.wat index a9cb111af0e5..7556fca1a14c 100644 --- a/tests/disas/winch/aarch64/i32_remu/params.wat +++ b/tests/disas/winch/aarch64/i32_remu/params.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -22,13 +23,14 @@ ;; stur w3, [x28] ;; ldur w0, [x28] ;; ldur w1, [x28, #4] -;; cbz w0, #0x54 -;; 34: udiv w16, w1, w0 +;; cbz w0, #0x5c +;; 38: udiv w16, w1, w0 ;; msub w1, w0, w16, w1 ;; mov w0, w1 ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 54: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 5c: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_remu/signed.wat b/tests/disas/winch/aarch64/i32_remu/signed.wat index 67600b35ab04..455c2c75d341 100644 --- a/tests/disas/winch/aarch64/i32_remu/signed.wat +++ b/tests/disas/winch/aarch64/i32_remu/signed.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -22,13 +23,14 @@ ;; mov w0, w16 ;; orr x16, xzr, #0xffffffff ;; mov w1, w16 -;; cbz w0, #0x54 -;; 34: udiv w16, w1, w0 +;; cbz w0, #0x5c +;; 38: udiv w16, w1, w0 ;; msub w1, w0, w16, w1 ;; mov w0, w1 ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 54: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 5c: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_remu/zero_zero.wat b/tests/disas/winch/aarch64/i32_remu/zero_zero.wat index cc775e1ea4d9..e37aa1266b2e 100644 --- a/tests/disas/winch/aarch64/i32_remu/zero_zero.wat +++ b/tests/disas/winch/aarch64/i32_remu/zero_zero.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -22,13 +23,14 @@ ;; mov w0, w16 ;; mov x16, #0 ;; mov w1, w16 -;; cbz w0, #0x54 -;; 34: udiv w16, w1, w0 +;; cbz w0, #0x5c +;; 38: udiv w16, w1, w0 ;; msub w1, w0, w16, w1 ;; mov w0, w1 ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 54: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 5c: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_rotl/16_const.wat b/tests/disas/winch/aarch64/i32_rotl/16_const.wat index 286dff569b0e..537d9f41576d 100644 --- a/tests/disas/winch/aarch64/i32_rotl/16_const.wat +++ b/tests/disas/winch/aarch64/i32_rotl/16_const.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -25,5 +26,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_rotl/8_const.wat b/tests/disas/winch/aarch64/i32_rotl/8_const.wat index a2cef9556b53..a860b7ece7a6 100644 --- a/tests/disas/winch/aarch64/i32_rotl/8_const.wat +++ b/tests/disas/winch/aarch64/i32_rotl/8_const.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -24,5 +25,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_rotl/locals.wat b/tests/disas/winch/aarch64/i32_rotl/locals.wat index 959702cf9ef8..dd99f3f5475d 100644 --- a/tests/disas/winch/aarch64/i32_rotl/locals.wat +++ b/tests/disas/winch/aarch64/i32_rotl/locals.wat @@ -20,6 +20,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -42,5 +43,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_rotl/params.wat b/tests/disas/winch/aarch64/i32_rotl/params.wat index c40311bfc0f8..01549305b2bc 100644 --- a/tests/disas/winch/aarch64/i32_rotl/params.wat +++ b/tests/disas/winch/aarch64/i32_rotl/params.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -27,5 +28,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_rotr/16_const.wat b/tests/disas/winch/aarch64/i32_rotr/16_const.wat index 0e1f68561fab..23159096547e 100644 --- a/tests/disas/winch/aarch64/i32_rotr/16_const.wat +++ b/tests/disas/winch/aarch64/i32_rotr/16_const.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -24,5 +25,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_rotr/8_const.wat b/tests/disas/winch/aarch64/i32_rotr/8_const.wat index c92f9e93bf50..47ed794579d5 100644 --- a/tests/disas/winch/aarch64/i32_rotr/8_const.wat +++ b/tests/disas/winch/aarch64/i32_rotr/8_const.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -23,5 +24,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_rotr/locals.wat b/tests/disas/winch/aarch64/i32_rotr/locals.wat index 148611406298..ea899b47c2d9 100644 --- a/tests/disas/winch/aarch64/i32_rotr/locals.wat +++ b/tests/disas/winch/aarch64/i32_rotr/locals.wat @@ -20,6 +20,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -41,5 +42,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_rotr/params.wat b/tests/disas/winch/aarch64/i32_rotr/params.wat index 82592f2398c4..16be05c4d53f 100644 --- a/tests/disas/winch/aarch64/i32_rotr/params.wat +++ b/tests/disas/winch/aarch64/i32_rotr/params.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -26,5 +27,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_shl/16_const.wat b/tests/disas/winch/aarch64/i32_shl/16_const.wat index 7b78ca8c50f3..a0bacd9136d7 100644 --- a/tests/disas/winch/aarch64/i32_shl/16_const.wat +++ b/tests/disas/winch/aarch64/i32_shl/16_const.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -25,5 +26,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_shl/8_const.wat b/tests/disas/winch/aarch64/i32_shl/8_const.wat index 3f0932f07af7..a0523ea97bc1 100644 --- a/tests/disas/winch/aarch64/i32_shl/8_const.wat +++ b/tests/disas/winch/aarch64/i32_shl/8_const.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -24,5 +25,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_shl/locals.wat b/tests/disas/winch/aarch64/i32_shl/locals.wat index 2d50f3f1f9b8..b9df995a9d0a 100644 --- a/tests/disas/winch/aarch64/i32_shl/locals.wat +++ b/tests/disas/winch/aarch64/i32_shl/locals.wat @@ -20,6 +20,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -41,5 +42,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_shl/params.wat b/tests/disas/winch/aarch64/i32_shl/params.wat index 8b23440cc733..25672bd99f8e 100644 --- a/tests/disas/winch/aarch64/i32_shl/params.wat +++ b/tests/disas/winch/aarch64/i32_shl/params.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -26,5 +27,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_shr_s/16_const.wat b/tests/disas/winch/aarch64/i32_shr_s/16_const.wat index 8717fdde832c..98285f7307f3 100644 --- a/tests/disas/winch/aarch64/i32_shr_s/16_const.wat +++ b/tests/disas/winch/aarch64/i32_shr_s/16_const.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -24,5 +25,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_shr_s/8_const.wat b/tests/disas/winch/aarch64/i32_shr_s/8_const.wat index e2ffa7c1cc4d..b94a1f158d92 100644 --- a/tests/disas/winch/aarch64/i32_shr_s/8_const.wat +++ b/tests/disas/winch/aarch64/i32_shr_s/8_const.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -23,5 +24,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_shr_s/locals.wat b/tests/disas/winch/aarch64/i32_shr_s/locals.wat index e5242b65f52b..190cb9eb309f 100644 --- a/tests/disas/winch/aarch64/i32_shr_s/locals.wat +++ b/tests/disas/winch/aarch64/i32_shr_s/locals.wat @@ -20,6 +20,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -41,5 +42,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_shr_s/params.wat b/tests/disas/winch/aarch64/i32_shr_s/params.wat index 0a02984b5fc8..668c25bc12bf 100644 --- a/tests/disas/winch/aarch64/i32_shr_s/params.wat +++ b/tests/disas/winch/aarch64/i32_shr_s/params.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -26,5 +27,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_shr_u/16_const.wat b/tests/disas/winch/aarch64/i32_shr_u/16_const.wat index 0c1e8628dcd8..b8c034257ef4 100644 --- a/tests/disas/winch/aarch64/i32_shr_u/16_const.wat +++ b/tests/disas/winch/aarch64/i32_shr_u/16_const.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -24,5 +25,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_shr_u/8_const.wat b/tests/disas/winch/aarch64/i32_shr_u/8_const.wat index 89090d9ed37b..ed9b13269548 100644 --- a/tests/disas/winch/aarch64/i32_shr_u/8_const.wat +++ b/tests/disas/winch/aarch64/i32_shr_u/8_const.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -23,5 +24,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_shr_u/locals.wat b/tests/disas/winch/aarch64/i32_shr_u/locals.wat index 1dd1bf01030b..96e65988979a 100644 --- a/tests/disas/winch/aarch64/i32_shr_u/locals.wat +++ b/tests/disas/winch/aarch64/i32_shr_u/locals.wat @@ -20,6 +20,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -41,5 +42,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_shr_u/params.wat b/tests/disas/winch/aarch64/i32_shr_u/params.wat index c64184ba568d..f84c25b4202c 100644 --- a/tests/disas/winch/aarch64/i32_shr_u/params.wat +++ b/tests/disas/winch/aarch64/i32_shr_u/params.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -26,5 +27,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_sub/const.wat b/tests/disas/winch/aarch64/i32_sub/const.wat index b0ea96af04d6..38a06816c654 100644 --- a/tests/disas/winch/aarch64/i32_sub/const.wat +++ b/tests/disas/winch/aarch64/i32_sub/const.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -23,5 +24,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_sub/locals.wat b/tests/disas/winch/aarch64/i32_sub/locals.wat index e04e99deec7d..6f70da42e021 100644 --- a/tests/disas/winch/aarch64/i32_sub/locals.wat +++ b/tests/disas/winch/aarch64/i32_sub/locals.wat @@ -20,6 +20,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -41,5 +42,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_sub/max.wat b/tests/disas/winch/aarch64/i32_sub/max.wat index b00fb8d570fe..6dc1d6d03e74 100644 --- a/tests/disas/winch/aarch64/i32_sub/max.wat +++ b/tests/disas/winch/aarch64/i32_sub/max.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -23,5 +24,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_sub/max_one.wat b/tests/disas/winch/aarch64/i32_sub/max_one.wat index effde4bb46e7..1ad0c05a748a 100644 --- a/tests/disas/winch/aarch64/i32_sub/max_one.wat +++ b/tests/disas/winch/aarch64/i32_sub/max_one.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -23,5 +24,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_sub/mixed.wat b/tests/disas/winch/aarch64/i32_sub/mixed.wat index b61e42e6d51b..780e0cef9834 100644 --- a/tests/disas/winch/aarch64/i32_sub/mixed.wat +++ b/tests/disas/winch/aarch64/i32_sub/mixed.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -23,5 +24,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_sub/params.wat b/tests/disas/winch/aarch64/i32_sub/params.wat index 2184bc97754c..5994b0dc88f7 100644 --- a/tests/disas/winch/aarch64/i32_sub/params.wat +++ b/tests/disas/winch/aarch64/i32_sub/params.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -26,5 +27,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_sub/signed.wat b/tests/disas/winch/aarch64/i32_sub/signed.wat index 974860103569..8f1f3e853915 100644 --- a/tests/disas/winch/aarch64/i32_sub/signed.wat +++ b/tests/disas/winch/aarch64/i32_sub/signed.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -24,5 +25,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_sub/unsigned_with_zero.wat b/tests/disas/winch/aarch64/i32_sub/unsigned_with_zero.wat index 54ac7549d1f2..a6abd9717963 100644 --- a/tests/disas/winch/aarch64/i32_sub/unsigned_with_zero.wat +++ b/tests/disas/winch/aarch64/i32_sub/unsigned_with_zero.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -23,5 +24,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_trunc_f32_s/const.wat b/tests/disas/winch/aarch64/i32_trunc_f32_s/const.wat index 3811eb8a3cc7..e15dd9fe5bdb 100644 --- a/tests/disas/winch/aarch64/i32_trunc_f32_s/const.wat +++ b/tests/disas/winch/aarch64/i32_trunc_f32_s/const.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -19,21 +20,22 @@ ;; mov x16, #0x3f800000 ;; fmov s0, w16 ;; fcmp s0, s0 -;; b.vs #0x68 -;; 30: mov x16, #0xcf000000 +;; b.vs #0x70 +;; 34: mov x16, #0xcf000000 ;; fmov s31, w16 ;; fcmp s31, s0 -;; b.le #0x6c -;; 40: mov x16, #0x4f000000 +;; b.le #0x74 +;; 44: mov x16, #0x4f000000 ;; fmov s31, w16 ;; fcmp s31, s0 -;; b.ge #0x70 -;; 50: fcvtzs w0, s0 +;; b.ge #0x78 +;; 54: fcvtzs w0, s0 ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 -;; 6c: .byte 0x1f, 0xc1, 0x00, 0x00 ;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 74: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 78: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_trunc_f32_s/locals.wat b/tests/disas/winch/aarch64/i32_trunc_f32_s/locals.wat index 1518296d6b4b..ee9a951dc3ac 100644 --- a/tests/disas/winch/aarch64/i32_trunc_f32_s/locals.wat +++ b/tests/disas/winch/aarch64/i32_trunc_f32_s/locals.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -22,21 +23,22 @@ ;; stur x16, [x28] ;; ldur s0, [x28, #4] ;; fcmp s0, s0 -;; b.vs #0x6c -;; 34: mov x16, #0xcf000000 +;; b.vs #0x74 +;; 38: mov x16, #0xcf000000 ;; fmov s31, w16 ;; fcmp s31, s0 -;; b.le #0x70 -;; 44: mov x16, #0x4f000000 +;; b.le #0x78 +;; 48: mov x16, #0x4f000000 ;; fmov s31, w16 ;; fcmp s31, s0 -;; b.ge #0x74 -;; 54: fcvtzs w0, s0 +;; b.ge #0x7c +;; 58: fcvtzs w0, s0 ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 6c: .byte 0x1f, 0xc1, 0x00, 0x00 -;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 ;; 74: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 78: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 7c: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_trunc_f32_s/params.wat b/tests/disas/winch/aarch64/i32_trunc_f32_s/params.wat index 471698642c1d..5c0b678ecf98 100644 --- a/tests/disas/winch/aarch64/i32_trunc_f32_s/params.wat +++ b/tests/disas/winch/aarch64/i32_trunc_f32_s/params.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -19,21 +20,22 @@ ;; stur s0, [x28, #4] ;; ldur s0, [x28, #4] ;; fcmp s0, s0 -;; b.vs #0x68 -;; 30: mov x16, #0xcf000000 +;; b.vs #0x70 +;; 34: mov x16, #0xcf000000 ;; fmov s31, w16 ;; fcmp s31, s0 -;; b.le #0x6c -;; 40: mov x16, #0x4f000000 +;; b.le #0x74 +;; 44: mov x16, #0x4f000000 ;; fmov s31, w16 ;; fcmp s31, s0 -;; b.ge #0x70 -;; 50: fcvtzs w0, s0 +;; b.ge #0x78 +;; 54: fcvtzs w0, s0 ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 -;; 6c: .byte 0x1f, 0xc1, 0x00, 0x00 ;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 74: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 78: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_trunc_f32_u/const.wat b/tests/disas/winch/aarch64/i32_trunc_f32_u/const.wat index c18491954d83..0cc6ba075e8f 100644 --- a/tests/disas/winch/aarch64/i32_trunc_f32_u/const.wat +++ b/tests/disas/winch/aarch64/i32_trunc_f32_u/const.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -19,20 +20,21 @@ ;; mov x16, #0x3f800000 ;; fmov s0, w16 ;; fcmp s0, s0 -;; b.vs #0x64 -;; 30: fmov s31, #-1.00000000 +;; b.vs #0x6c +;; 34: fmov s31, #-1.00000000 ;; fcmp s31, s0 -;; b.le #0x68 -;; 3c: mov x16, #0x4f800000 +;; b.le #0x70 +;; 40: mov x16, #0x4f800000 ;; fmov s31, w16 ;; fcmp s31, s0 -;; b.ge #0x6c -;; 4c: fcvtzu w0, s0 +;; b.ge #0x74 +;; 50: fcvtzu w0, s0 ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 -;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 ;; 6c: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 74: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_trunc_f32_u/locals.wat b/tests/disas/winch/aarch64/i32_trunc_f32_u/locals.wat index 610b6cbe4cb7..50f3ae02657c 100644 --- a/tests/disas/winch/aarch64/i32_trunc_f32_u/locals.wat +++ b/tests/disas/winch/aarch64/i32_trunc_f32_u/locals.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -22,20 +23,21 @@ ;; stur x16, [x28] ;; ldur s0, [x28, #4] ;; fcmp s0, s0 -;; b.vs #0x68 -;; 34: fmov s31, #-1.00000000 +;; b.vs #0x70 +;; 38: fmov s31, #-1.00000000 ;; fcmp s31, s0 -;; b.le #0x6c -;; 40: mov x16, #0x4f800000 +;; b.le #0x74 +;; 44: mov x16, #0x4f800000 ;; fmov s31, w16 ;; fcmp s31, s0 -;; b.ge #0x70 -;; 50: fcvtzu w0, s0 +;; b.ge #0x78 +;; 54: fcvtzu w0, s0 ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 -;; 6c: .byte 0x1f, 0xc1, 0x00, 0x00 ;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 74: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 78: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_trunc_f32_u/params.wat b/tests/disas/winch/aarch64/i32_trunc_f32_u/params.wat index 215f13f8f85e..c6c76c9a8e01 100644 --- a/tests/disas/winch/aarch64/i32_trunc_f32_u/params.wat +++ b/tests/disas/winch/aarch64/i32_trunc_f32_u/params.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -19,20 +20,21 @@ ;; stur s0, [x28, #4] ;; ldur s0, [x28, #4] ;; fcmp s0, s0 -;; b.vs #0x64 -;; 30: fmov s31, #-1.00000000 +;; b.vs #0x6c +;; 34: fmov s31, #-1.00000000 ;; fcmp s31, s0 -;; b.le #0x68 -;; 3c: mov x16, #0x4f800000 +;; b.le #0x70 +;; 40: mov x16, #0x4f800000 ;; fmov s31, w16 ;; fcmp s31, s0 -;; b.ge #0x6c -;; 4c: fcvtzu w0, s0 +;; b.ge #0x74 +;; 50: fcvtzu w0, s0 ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 -;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 ;; 6c: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 74: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_trunc_f64_s/const.wat b/tests/disas/winch/aarch64/i32_trunc_f64_s/const.wat index a5aceb533770..4fd561b6bea6 100644 --- a/tests/disas/winch/aarch64/i32_trunc_f64_s/const.wat +++ b/tests/disas/winch/aarch64/i32_trunc_f64_s/const.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -19,22 +20,23 @@ ;; mov x16, #0x3ff0000000000000 ;; fmov d0, x16 ;; fcmp d0, d0 -;; b.vs #0x6c -;; 30: mov x16, #0x200000 +;; b.vs #0x74 +;; 34: mov x16, #0x200000 ;; movk x16, #0xc1e0, lsl #48 ;; fmov d31, x16 ;; fcmp d31, d0 -;; b.le #0x70 -;; 44: mov x16, #0x41e0000000000000 +;; b.le #0x78 +;; 48: mov x16, #0x41e0000000000000 ;; fmov d31, x16 ;; fcmp d31, d0 -;; b.ge #0x74 -;; 54: fcvtzs w0, d0 +;; b.ge #0x7c +;; 58: fcvtzs w0, d0 ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 6c: .byte 0x1f, 0xc1, 0x00, 0x00 -;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 ;; 74: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 78: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 7c: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_trunc_f64_s/locals.wat b/tests/disas/winch/aarch64/i32_trunc_f64_s/locals.wat index 099d4a0fbb7f..9c14c3ea24e9 100644 --- a/tests/disas/winch/aarch64/i32_trunc_f64_s/locals.wat +++ b/tests/disas/winch/aarch64/i32_trunc_f64_s/locals.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -22,22 +23,23 @@ ;; stur x16, [x28] ;; ldur d0, [x28] ;; fcmp d0, d0 -;; b.vs #0x70 -;; 34: mov x16, #0x200000 +;; b.vs #0x78 +;; 38: mov x16, #0x200000 ;; movk x16, #0xc1e0, lsl #48 ;; fmov d31, x16 ;; fcmp d31, d0 -;; b.le #0x74 -;; 48: mov x16, #0x41e0000000000000 +;; b.le #0x7c +;; 4c: mov x16, #0x41e0000000000000 ;; fmov d31, x16 ;; fcmp d31, d0 -;; b.ge #0x78 -;; 58: fcvtzs w0, d0 +;; b.ge #0x80 +;; 5c: fcvtzs w0, d0 ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 -;; 74: .byte 0x1f, 0xc1, 0x00, 0x00 ;; 78: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 7c: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 80: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_trunc_f64_s/params.wat b/tests/disas/winch/aarch64/i32_trunc_f64_s/params.wat index 3018091e1140..d748838f3afa 100644 --- a/tests/disas/winch/aarch64/i32_trunc_f64_s/params.wat +++ b/tests/disas/winch/aarch64/i32_trunc_f64_s/params.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -19,22 +20,23 @@ ;; stur d0, [x28] ;; ldur d0, [x28] ;; fcmp d0, d0 -;; b.vs #0x6c -;; 30: mov x16, #0x200000 +;; b.vs #0x74 +;; 34: mov x16, #0x200000 ;; movk x16, #0xc1e0, lsl #48 ;; fmov d31, x16 ;; fcmp d31, d0 -;; b.le #0x70 -;; 44: mov x16, #0x41e0000000000000 +;; b.le #0x78 +;; 48: mov x16, #0x41e0000000000000 ;; fmov d31, x16 ;; fcmp d31, d0 -;; b.ge #0x74 -;; 54: fcvtzs w0, d0 +;; b.ge #0x7c +;; 58: fcvtzs w0, d0 ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 6c: .byte 0x1f, 0xc1, 0x00, 0x00 -;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 ;; 74: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 78: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 7c: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_trunc_f64_u/const.wat b/tests/disas/winch/aarch64/i32_trunc_f64_u/const.wat index 62779bc11d64..038cbe3581d3 100644 --- a/tests/disas/winch/aarch64/i32_trunc_f64_u/const.wat +++ b/tests/disas/winch/aarch64/i32_trunc_f64_u/const.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -19,20 +20,21 @@ ;; mov x16, #0x3ff0000000000000 ;; fmov d0, x16 ;; fcmp d0, d0 -;; b.vs #0x64 -;; 30: fmov d31, #-1.00000000 +;; b.vs #0x6c +;; 34: fmov d31, #-1.00000000 ;; fcmp d31, d0 -;; b.le #0x68 -;; 3c: mov x16, #0x41f0000000000000 +;; b.le #0x70 +;; 40: mov x16, #0x41f0000000000000 ;; fmov d31, x16 ;; fcmp d31, d0 -;; b.ge #0x6c -;; 4c: fcvtzu w0, d0 +;; b.ge #0x74 +;; 50: fcvtzu w0, d0 ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 -;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 ;; 6c: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 74: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_trunc_f64_u/locals.wat b/tests/disas/winch/aarch64/i32_trunc_f64_u/locals.wat index 4403ef8cf236..ce8a83e7541b 100644 --- a/tests/disas/winch/aarch64/i32_trunc_f64_u/locals.wat +++ b/tests/disas/winch/aarch64/i32_trunc_f64_u/locals.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -22,20 +23,21 @@ ;; stur x16, [x28] ;; ldur d0, [x28] ;; fcmp d0, d0 -;; b.vs #0x68 -;; 34: fmov d31, #-1.00000000 +;; b.vs #0x70 +;; 38: fmov d31, #-1.00000000 ;; fcmp d31, d0 -;; b.le #0x6c -;; 40: mov x16, #0x41f0000000000000 +;; b.le #0x74 +;; 44: mov x16, #0x41f0000000000000 ;; fmov d31, x16 ;; fcmp d31, d0 -;; b.ge #0x70 -;; 50: fcvtzu w0, d0 +;; b.ge #0x78 +;; 54: fcvtzu w0, d0 ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 -;; 6c: .byte 0x1f, 0xc1, 0x00, 0x00 ;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 74: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 78: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_trunc_f64_u/params.wat b/tests/disas/winch/aarch64/i32_trunc_f64_u/params.wat index b1fd7a9ae959..d58a8b4e5b29 100644 --- a/tests/disas/winch/aarch64/i32_trunc_f64_u/params.wat +++ b/tests/disas/winch/aarch64/i32_trunc_f64_u/params.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -19,20 +20,21 @@ ;; stur d0, [x28] ;; ldur d0, [x28] ;; fcmp d0, d0 -;; b.vs #0x64 -;; 30: fmov d31, #-1.00000000 +;; b.vs #0x6c +;; 34: fmov d31, #-1.00000000 ;; fcmp d31, d0 -;; b.le #0x68 -;; 3c: mov x16, #0x41f0000000000000 +;; b.le #0x70 +;; 40: mov x16, #0x41f0000000000000 ;; fmov d31, x16 ;; fcmp d31, d0 -;; b.ge #0x6c -;; 4c: fcvtzu w0, d0 +;; b.ge #0x74 +;; 50: fcvtzu w0, d0 ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 -;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 ;; 6c: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 74: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_wrap_i64/const.wat b/tests/disas/winch/aarch64/i32_wrap_i64/const.wat index 9d11b3b0168d..847072da11c7 100644 --- a/tests/disas/winch/aarch64/i32_wrap_i64/const.wat +++ b/tests/disas/winch/aarch64/i32_wrap_i64/const.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -22,5 +23,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_wrap_i64/locals.wat b/tests/disas/winch/aarch64/i32_wrap_i64/locals.wat index e39fcae6cb78..5f8d1a570300 100644 --- a/tests/disas/winch/aarch64/i32_wrap_i64/locals.wat +++ b/tests/disas/winch/aarch64/i32_wrap_i64/locals.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -25,5 +26,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_wrap_i64/params.wat b/tests/disas/winch/aarch64/i32_wrap_i64/params.wat index 358bc5cb2eab..5c0cf0c690f9 100644 --- a/tests/disas/winch/aarch64/i32_wrap_i64/params.wat +++ b/tests/disas/winch/aarch64/i32_wrap_i64/params.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -22,5 +23,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_xor/const.wat b/tests/disas/winch/aarch64/i32_xor/const.wat index 361c0bd8bb32..722816226877 100644 --- a/tests/disas/winch/aarch64/i32_xor/const.wat +++ b/tests/disas/winch/aarch64/i32_xor/const.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -23,5 +24,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_xor/locals.wat b/tests/disas/winch/aarch64/i32_xor/locals.wat index 3324d92a905b..dfac23d29e3d 100644 --- a/tests/disas/winch/aarch64/i32_xor/locals.wat +++ b/tests/disas/winch/aarch64/i32_xor/locals.wat @@ -20,6 +20,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -41,5 +42,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i32_xor/params.wat b/tests/disas/winch/aarch64/i32_xor/params.wat index bfc9455b455e..a251576087ba 100644 --- a/tests/disas/winch/aarch64/i32_xor/params.wat +++ b/tests/disas/winch/aarch64/i32_xor/params.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -26,5 +27,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_add/const.wat b/tests/disas/winch/aarch64/i64_add/const.wat index 1b81fffeea59..e1f24cb6c535 100644 --- a/tests/disas/winch/aarch64/i64_add/const.wat +++ b/tests/disas/winch/aarch64/i64_add/const.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -23,5 +24,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_add/locals.wat b/tests/disas/winch/aarch64/i64_add/locals.wat index 6beea0587aac..5218232020ab 100644 --- a/tests/disas/winch/aarch64/i64_add/locals.wat +++ b/tests/disas/winch/aarch64/i64_add/locals.wat @@ -20,6 +20,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x20 @@ -42,5 +43,6 @@ ;; add x28, x28, #0x20 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_add/max.wat b/tests/disas/winch/aarch64/i64_add/max.wat index 9fafab0695a8..3448101f888f 100644 --- a/tests/disas/winch/aarch64/i64_add/max.wat +++ b/tests/disas/winch/aarch64/i64_add/max.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -23,5 +24,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_add/max_one.wat b/tests/disas/winch/aarch64/i64_add/max_one.wat index bd6e72728fcd..e32ce54ff002 100644 --- a/tests/disas/winch/aarch64/i64_add/max_one.wat +++ b/tests/disas/winch/aarch64/i64_add/max_one.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -24,5 +25,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_add/mixed.wat b/tests/disas/winch/aarch64/i64_add/mixed.wat index 6e1fe6000f60..8397aaae2f63 100644 --- a/tests/disas/winch/aarch64/i64_add/mixed.wat +++ b/tests/disas/winch/aarch64/i64_add/mixed.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -23,5 +24,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_add/params.wat b/tests/disas/winch/aarch64/i64_add/params.wat index 464255761488..7f4943e605f4 100644 --- a/tests/disas/winch/aarch64/i64_add/params.wat +++ b/tests/disas/winch/aarch64/i64_add/params.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x20 @@ -26,5 +27,6 @@ ;; add x28, x28, #0x20 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_add/signed.wat b/tests/disas/winch/aarch64/i64_add/signed.wat index 4d2376947fbe..dbeb3eb402aa 100644 --- a/tests/disas/winch/aarch64/i64_add/signed.wat +++ b/tests/disas/winch/aarch64/i64_add/signed.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -24,5 +25,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_add/unsigned_with_zero.wat b/tests/disas/winch/aarch64/i64_add/unsigned_with_zero.wat index 8cd3d6feda9f..59f0e1f6d946 100644 --- a/tests/disas/winch/aarch64/i64_add/unsigned_with_zero.wat +++ b/tests/disas/winch/aarch64/i64_add/unsigned_with_zero.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -23,5 +24,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_and/32_const.wat b/tests/disas/winch/aarch64/i64_and/32_const.wat index 4c7fd8ac40d4..803aba07ef4c 100644 --- a/tests/disas/winch/aarch64/i64_and/32_const.wat +++ b/tests/disas/winch/aarch64/i64_and/32_const.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -23,5 +24,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_and/64_const.wat b/tests/disas/winch/aarch64/i64_and/64_const.wat index 6562624c74ac..34aa0dbb3b79 100644 --- a/tests/disas/winch/aarch64/i64_and/64_const.wat +++ b/tests/disas/winch/aarch64/i64_and/64_const.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -23,5 +24,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_and/locals.wat b/tests/disas/winch/aarch64/i64_and/locals.wat index df654d1075c4..194f522aa663 100644 --- a/tests/disas/winch/aarch64/i64_and/locals.wat +++ b/tests/disas/winch/aarch64/i64_and/locals.wat @@ -19,6 +19,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x20 @@ -41,5 +42,6 @@ ;; add x28, x28, #0x20 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_and/params.wat b/tests/disas/winch/aarch64/i64_and/params.wat index 668b066e52bc..f22166326dce 100644 --- a/tests/disas/winch/aarch64/i64_and/params.wat +++ b/tests/disas/winch/aarch64/i64_and/params.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x20 @@ -26,5 +27,6 @@ ;; add x28, x28, #0x20 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_clz/const.wat b/tests/disas/winch/aarch64/i64_clz/const.wat index 32c906997690..76f246b90525 100644 --- a/tests/disas/winch/aarch64/i64_clz/const.wat +++ b/tests/disas/winch/aarch64/i64_clz/const.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -22,5 +23,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_clz/locals.wat b/tests/disas/winch/aarch64/i64_clz/locals.wat index 282618c38baa..4c7b927c0b3f 100644 --- a/tests/disas/winch/aarch64/i64_clz/locals.wat +++ b/tests/disas/winch/aarch64/i64_clz/locals.wat @@ -14,6 +14,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -29,5 +30,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_clz/params.wat b/tests/disas/winch/aarch64/i64_clz/params.wat index 50c1480b6777..64b5d4c5f8c0 100644 --- a/tests/disas/winch/aarch64/i64_clz/params.wat +++ b/tests/disas/winch/aarch64/i64_clz/params.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -22,5 +23,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_ctz/const.wat b/tests/disas/winch/aarch64/i64_ctz/const.wat index e313e40f5e14..5f6d4a39f342 100644 --- a/tests/disas/winch/aarch64/i64_ctz/const.wat +++ b/tests/disas/winch/aarch64/i64_ctz/const.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -23,5 +24,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_ctz/locals.wat b/tests/disas/winch/aarch64/i64_ctz/locals.wat index 8eac6b25437b..f042821b41ec 100644 --- a/tests/disas/winch/aarch64/i64_ctz/locals.wat +++ b/tests/disas/winch/aarch64/i64_ctz/locals.wat @@ -14,6 +14,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -30,5 +31,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_ctz/params.wat b/tests/disas/winch/aarch64/i64_ctz/params.wat index d3067af62f9a..7b57045c47d7 100644 --- a/tests/disas/winch/aarch64/i64_ctz/params.wat +++ b/tests/disas/winch/aarch64/i64_ctz/params.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -23,5 +24,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_divs/const.wat b/tests/disas/winch/aarch64/i64_divs/const.wat index 3455629a5fe4..96d5f6951236 100644 --- a/tests/disas/winch/aarch64/i64_divs/const.wat +++ b/tests/disas/winch/aarch64/i64_divs/const.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -22,16 +23,17 @@ ;; mov x0, x16 ;; mov x16, #0x14 ;; mov x1, x16 -;; cbz x0, #0x5c -;; 34: cmn x0, #1 +;; cbz x0, #0x64 +;; 38: cmn x0, #1 ;; ccmp x1, #1, #0, eq -;; b.vs #0x60 -;; 40: sdiv x1, x1, x0 +;; b.vs #0x68 +;; 44: sdiv x1, x1, x0 ;; mov x0, x1 ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 5c: .byte 0x1f, 0xc1, 0x00, 0x00 -;; 60: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_divs/one_zero.wat b/tests/disas/winch/aarch64/i64_divs/one_zero.wat index 92b5365b55c5..33eba67fca13 100644 --- a/tests/disas/winch/aarch64/i64_divs/one_zero.wat +++ b/tests/disas/winch/aarch64/i64_divs/one_zero.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -22,16 +23,17 @@ ;; mov x0, x16 ;; mov x16, #1 ;; mov x1, x16 -;; cbz x0, #0x5c -;; 34: cmn x0, #1 +;; cbz x0, #0x64 +;; 38: cmn x0, #1 ;; ccmp x1, #1, #0, eq -;; b.vs #0x60 -;; 40: sdiv x1, x1, x0 +;; b.vs #0x68 +;; 44: sdiv x1, x1, x0 ;; mov x0, x1 ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 5c: .byte 0x1f, 0xc1, 0x00, 0x00 -;; 60: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_divs/overflow.wat b/tests/disas/winch/aarch64/i64_divs/overflow.wat index 9f70cbe0bea6..c708f5201823 100644 --- a/tests/disas/winch/aarch64/i64_divs/overflow.wat +++ b/tests/disas/winch/aarch64/i64_divs/overflow.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -22,16 +23,17 @@ ;; mov x0, x16 ;; mov x16, #-0x8000000000000000 ;; mov x1, x16 -;; cbz x0, #0x5c -;; 34: cmn x0, #1 +;; cbz x0, #0x64 +;; 38: cmn x0, #1 ;; ccmp x1, #1, #0, eq -;; b.vs #0x60 -;; 40: sdiv x1, x1, x0 +;; b.vs #0x68 +;; 44: sdiv x1, x1, x0 ;; mov x0, x1 ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 5c: .byte 0x1f, 0xc1, 0x00, 0x00 -;; 60: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_divs/params.wat b/tests/disas/winch/aarch64/i64_divs/params.wat index 314ad5c533ca..bb4c4574069d 100644 --- a/tests/disas/winch/aarch64/i64_divs/params.wat +++ b/tests/disas/winch/aarch64/i64_divs/params.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x20 @@ -22,16 +23,17 @@ ;; stur x3, [x28] ;; ldur x0, [x28] ;; ldur x1, [x28, #8] -;; cbz x0, #0x5c -;; 34: cmn x0, #1 +;; cbz x0, #0x64 +;; 38: cmn x0, #1 ;; ccmp x1, #1, #0, eq -;; b.vs #0x60 -;; 40: sdiv x1, x1, x0 +;; b.vs #0x68 +;; 44: sdiv x1, x1, x0 ;; mov x0, x1 ;; add x28, x28, #0x20 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 5c: .byte 0x1f, 0xc1, 0x00, 0x00 -;; 60: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_divs/zero_zero.wat b/tests/disas/winch/aarch64/i64_divs/zero_zero.wat index 862751339c7b..657e4c7de9be 100644 --- a/tests/disas/winch/aarch64/i64_divs/zero_zero.wat +++ b/tests/disas/winch/aarch64/i64_divs/zero_zero.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -22,16 +23,17 @@ ;; mov x0, x16 ;; mov x16, #0 ;; mov x1, x16 -;; cbz x0, #0x5c -;; 34: cmn x0, #1 +;; cbz x0, #0x64 +;; 38: cmn x0, #1 ;; ccmp x1, #1, #0, eq -;; b.vs #0x60 -;; 40: sdiv x1, x1, x0 +;; b.vs #0x68 +;; 44: sdiv x1, x1, x0 ;; mov x0, x1 ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 5c: .byte 0x1f, 0xc1, 0x00, 0x00 -;; 60: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_divu/const.wat b/tests/disas/winch/aarch64/i64_divu/const.wat index 675d84b0d94b..92c2b464b112 100644 --- a/tests/disas/winch/aarch64/i64_divu/const.wat +++ b/tests/disas/winch/aarch64/i64_divu/const.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -22,12 +23,13 @@ ;; mov x0, x16 ;; mov x16, #0x14 ;; mov x1, x16 -;; cbz x0, #0x50 -;; 34: udiv x1, x1, x0 +;; cbz x0, #0x58 +;; 38: udiv x1, x1, x0 ;; mov x0, x1 ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 50: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 58: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_divu/one_zero.wat b/tests/disas/winch/aarch64/i64_divu/one_zero.wat index 64e146bf2982..994a7b596162 100644 --- a/tests/disas/winch/aarch64/i64_divu/one_zero.wat +++ b/tests/disas/winch/aarch64/i64_divu/one_zero.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -22,12 +23,13 @@ ;; mov x0, x16 ;; mov x16, #1 ;; mov x1, x16 -;; cbz x0, #0x50 -;; 34: udiv x1, x1, x0 +;; cbz x0, #0x58 +;; 38: udiv x1, x1, x0 ;; mov x0, x1 ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 50: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 58: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_divu/params.wat b/tests/disas/winch/aarch64/i64_divu/params.wat index be903363231b..2a51484a74f5 100644 --- a/tests/disas/winch/aarch64/i64_divu/params.wat +++ b/tests/disas/winch/aarch64/i64_divu/params.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x20 @@ -22,12 +23,13 @@ ;; stur x3, [x28] ;; ldur x0, [x28] ;; ldur x1, [x28, #8] -;; cbz x0, #0x50 -;; 34: udiv x1, x1, x0 +;; cbz x0, #0x58 +;; 38: udiv x1, x1, x0 ;; mov x0, x1 ;; add x28, x28, #0x20 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 50: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 58: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_divu/signed.wat b/tests/disas/winch/aarch64/i64_divu/signed.wat index eaf9a4373634..0de4a6c04881 100644 --- a/tests/disas/winch/aarch64/i64_divu/signed.wat +++ b/tests/disas/winch/aarch64/i64_divu/signed.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -22,12 +23,13 @@ ;; mov x0, x16 ;; mov x16, #-1 ;; mov x1, x16 -;; cbz x0, #0x50 -;; 34: udiv x1, x1, x0 +;; cbz x0, #0x58 +;; 38: udiv x1, x1, x0 ;; mov x0, x1 ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 50: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 58: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_divu/zero_zero.wat b/tests/disas/winch/aarch64/i64_divu/zero_zero.wat index 010d16fb7190..82f8fd7fd308 100644 --- a/tests/disas/winch/aarch64/i64_divu/zero_zero.wat +++ b/tests/disas/winch/aarch64/i64_divu/zero_zero.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -22,12 +23,13 @@ ;; mov x0, x16 ;; mov x16, #0 ;; mov x1, x16 -;; cbz x0, #0x50 -;; 34: udiv x1, x1, x0 +;; cbz x0, #0x58 +;; 38: udiv x1, x1, x0 ;; mov x0, x1 ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 50: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 58: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_eq/const.wat b/tests/disas/winch/aarch64/i64_eq/const.wat index 6c5ba4456aab..1424df1027d1 100644 --- a/tests/disas/winch/aarch64/i64_eq/const.wat +++ b/tests/disas/winch/aarch64/i64_eq/const.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -25,5 +26,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_eq/locals.wat b/tests/disas/winch/aarch64/i64_eq/locals.wat index 58897eee4044..4e93378b679e 100644 --- a/tests/disas/winch/aarch64/i64_eq/locals.wat +++ b/tests/disas/winch/aarch64/i64_eq/locals.wat @@ -20,6 +20,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x20 @@ -43,5 +44,6 @@ ;; add x28, x28, #0x20 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_eq/params.wat b/tests/disas/winch/aarch64/i64_eq/params.wat index 7cd3db194bf3..3ce2e3037978 100644 --- a/tests/disas/winch/aarch64/i64_eq/params.wat +++ b/tests/disas/winch/aarch64/i64_eq/params.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x20 @@ -27,5 +28,6 @@ ;; add x28, x28, #0x20 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_extend_16_s/const.wat b/tests/disas/winch/aarch64/i64_extend_16_s/const.wat index 0391191b7d38..f3b850594241 100644 --- a/tests/disas/winch/aarch64/i64_extend_16_s/const.wat +++ b/tests/disas/winch/aarch64/i64_extend_16_s/const.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -22,5 +23,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_extend_16_s/locals.wat b/tests/disas/winch/aarch64/i64_extend_16_s/locals.wat index 189637d1b8d7..494262f0714a 100644 --- a/tests/disas/winch/aarch64/i64_extend_16_s/locals.wat +++ b/tests/disas/winch/aarch64/i64_extend_16_s/locals.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -25,5 +26,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_extend_16_s/params.wat b/tests/disas/winch/aarch64/i64_extend_16_s/params.wat index d2110d549a25..10d6764b0925 100644 --- a/tests/disas/winch/aarch64/i64_extend_16_s/params.wat +++ b/tests/disas/winch/aarch64/i64_extend_16_s/params.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -22,5 +23,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_extend_32_s/const.wat b/tests/disas/winch/aarch64/i64_extend_32_s/const.wat index 58b8d5057804..6f7a8cca01e5 100644 --- a/tests/disas/winch/aarch64/i64_extend_32_s/const.wat +++ b/tests/disas/winch/aarch64/i64_extend_32_s/const.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -22,5 +23,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_extend_32_s/locals.wat b/tests/disas/winch/aarch64/i64_extend_32_s/locals.wat index 9ef0c3a125fa..dc960bad4443 100644 --- a/tests/disas/winch/aarch64/i64_extend_32_s/locals.wat +++ b/tests/disas/winch/aarch64/i64_extend_32_s/locals.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -25,5 +26,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_extend_32_s/params.wat b/tests/disas/winch/aarch64/i64_extend_32_s/params.wat index da6254ac1ada..542c33df10cb 100644 --- a/tests/disas/winch/aarch64/i64_extend_32_s/params.wat +++ b/tests/disas/winch/aarch64/i64_extend_32_s/params.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -22,5 +23,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_extend_8_s/const.wat b/tests/disas/winch/aarch64/i64_extend_8_s/const.wat index f81220664344..3d8c3128e155 100644 --- a/tests/disas/winch/aarch64/i64_extend_8_s/const.wat +++ b/tests/disas/winch/aarch64/i64_extend_8_s/const.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -22,5 +23,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_extend_8_s/locals.wat b/tests/disas/winch/aarch64/i64_extend_8_s/locals.wat index 38cedc33c116..428e3523f7f5 100644 --- a/tests/disas/winch/aarch64/i64_extend_8_s/locals.wat +++ b/tests/disas/winch/aarch64/i64_extend_8_s/locals.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -25,5 +26,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_extend_8_s/params.wat b/tests/disas/winch/aarch64/i64_extend_8_s/params.wat index 4768cec33a9d..6443fa258c28 100644 --- a/tests/disas/winch/aarch64/i64_extend_8_s/params.wat +++ b/tests/disas/winch/aarch64/i64_extend_8_s/params.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -22,5 +23,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_extend_i32_s/const.wat b/tests/disas/winch/aarch64/i64_extend_i32_s/const.wat index 7fd69c09a9fa..5df293f303d6 100644 --- a/tests/disas/winch/aarch64/i64_extend_i32_s/const.wat +++ b/tests/disas/winch/aarch64/i64_extend_i32_s/const.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -22,5 +23,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_extend_i32_s/locals.wat b/tests/disas/winch/aarch64/i64_extend_i32_s/locals.wat index 17e45e8f4279..35ae9a963e85 100644 --- a/tests/disas/winch/aarch64/i64_extend_i32_s/locals.wat +++ b/tests/disas/winch/aarch64/i64_extend_i32_s/locals.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -25,5 +26,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_extend_i32_s/params.wat b/tests/disas/winch/aarch64/i64_extend_i32_s/params.wat index 33abfe18045d..f4f05ef9d10c 100644 --- a/tests/disas/winch/aarch64/i64_extend_i32_s/params.wat +++ b/tests/disas/winch/aarch64/i64_extend_i32_s/params.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -22,5 +23,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_extend_i32_u/const.wat b/tests/disas/winch/aarch64/i64_extend_i32_u/const.wat index d2846b075c32..691281ceef67 100644 --- a/tests/disas/winch/aarch64/i64_extend_i32_u/const.wat +++ b/tests/disas/winch/aarch64/i64_extend_i32_u/const.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -22,5 +23,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_extend_i32_u/locals.wat b/tests/disas/winch/aarch64/i64_extend_i32_u/locals.wat index 96410cd30378..da08e32335fe 100644 --- a/tests/disas/winch/aarch64/i64_extend_i32_u/locals.wat +++ b/tests/disas/winch/aarch64/i64_extend_i32_u/locals.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -25,5 +26,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_extend_i32_u/params.wat b/tests/disas/winch/aarch64/i64_extend_i32_u/params.wat index 3a327c5059e8..4f9290d5f55a 100644 --- a/tests/disas/winch/aarch64/i64_extend_i32_u/params.wat +++ b/tests/disas/winch/aarch64/i64_extend_i32_u/params.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -22,5 +23,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_ge_s/const.wat b/tests/disas/winch/aarch64/i64_ge_s/const.wat index 39367a4640d6..6d080bfa0f7f 100644 --- a/tests/disas/winch/aarch64/i64_ge_s/const.wat +++ b/tests/disas/winch/aarch64/i64_ge_s/const.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -26,5 +27,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_ge_s/locals.wat b/tests/disas/winch/aarch64/i64_ge_s/locals.wat index ce2824dcd575..990322c5d0ac 100644 --- a/tests/disas/winch/aarch64/i64_ge_s/locals.wat +++ b/tests/disas/winch/aarch64/i64_ge_s/locals.wat @@ -20,6 +20,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x20 @@ -43,5 +44,6 @@ ;; add x28, x28, #0x20 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_ge_s/params.wat b/tests/disas/winch/aarch64/i64_ge_s/params.wat index 655d1eccd809..36e84085fce6 100644 --- a/tests/disas/winch/aarch64/i64_ge_s/params.wat +++ b/tests/disas/winch/aarch64/i64_ge_s/params.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x20 @@ -27,5 +28,6 @@ ;; add x28, x28, #0x20 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_ge_u/const.wat b/tests/disas/winch/aarch64/i64_ge_u/const.wat index bf40723b9880..f8df683c3725 100644 --- a/tests/disas/winch/aarch64/i64_ge_u/const.wat +++ b/tests/disas/winch/aarch64/i64_ge_u/const.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -25,5 +26,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_ge_u/locals.wat b/tests/disas/winch/aarch64/i64_ge_u/locals.wat index 434368fc752a..068d621d1e93 100644 --- a/tests/disas/winch/aarch64/i64_ge_u/locals.wat +++ b/tests/disas/winch/aarch64/i64_ge_u/locals.wat @@ -20,6 +20,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x20 @@ -43,5 +44,6 @@ ;; add x28, x28, #0x20 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_ge_u/params.wat b/tests/disas/winch/aarch64/i64_ge_u/params.wat index 7b1ca03da1c6..6e67b4b80140 100644 --- a/tests/disas/winch/aarch64/i64_ge_u/params.wat +++ b/tests/disas/winch/aarch64/i64_ge_u/params.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x20 @@ -27,5 +28,6 @@ ;; add x28, x28, #0x20 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_gt_s/const.wat b/tests/disas/winch/aarch64/i64_gt_s/const.wat index 51881fea060d..62ca9f2eea0f 100644 --- a/tests/disas/winch/aarch64/i64_gt_s/const.wat +++ b/tests/disas/winch/aarch64/i64_gt_s/const.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -26,5 +27,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_gt_s/locals.wat b/tests/disas/winch/aarch64/i64_gt_s/locals.wat index ca7a064c337c..5f6b7ab3cf88 100644 --- a/tests/disas/winch/aarch64/i64_gt_s/locals.wat +++ b/tests/disas/winch/aarch64/i64_gt_s/locals.wat @@ -20,6 +20,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x20 @@ -43,5 +44,6 @@ ;; add x28, x28, #0x20 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_gt_s/params.wat b/tests/disas/winch/aarch64/i64_gt_s/params.wat index ae8f140efe94..63e739653abd 100644 --- a/tests/disas/winch/aarch64/i64_gt_s/params.wat +++ b/tests/disas/winch/aarch64/i64_gt_s/params.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x20 @@ -27,5 +28,6 @@ ;; add x28, x28, #0x20 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_gt_u/const.wat b/tests/disas/winch/aarch64/i64_gt_u/const.wat index f023c42132d1..ab03be4a3d2e 100644 --- a/tests/disas/winch/aarch64/i64_gt_u/const.wat +++ b/tests/disas/winch/aarch64/i64_gt_u/const.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -25,5 +26,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_gt_u/locals.wat b/tests/disas/winch/aarch64/i64_gt_u/locals.wat index 872466277514..cf4b1571ed5b 100644 --- a/tests/disas/winch/aarch64/i64_gt_u/locals.wat +++ b/tests/disas/winch/aarch64/i64_gt_u/locals.wat @@ -20,6 +20,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x20 @@ -43,5 +44,6 @@ ;; add x28, x28, #0x20 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_gt_u/params.wat b/tests/disas/winch/aarch64/i64_gt_u/params.wat index ec64f1a7e292..b44eb8fb3a01 100644 --- a/tests/disas/winch/aarch64/i64_gt_u/params.wat +++ b/tests/disas/winch/aarch64/i64_gt_u/params.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x20 @@ -27,5 +28,6 @@ ;; add x28, x28, #0x20 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_le_s/const.wat b/tests/disas/winch/aarch64/i64_le_s/const.wat index 4de043fc3fa8..2d11dde2fe08 100644 --- a/tests/disas/winch/aarch64/i64_le_s/const.wat +++ b/tests/disas/winch/aarch64/i64_le_s/const.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -26,5 +27,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_le_s/locals.wat b/tests/disas/winch/aarch64/i64_le_s/locals.wat index f1e426ca4c55..9ab6f757bec6 100644 --- a/tests/disas/winch/aarch64/i64_le_s/locals.wat +++ b/tests/disas/winch/aarch64/i64_le_s/locals.wat @@ -20,6 +20,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x20 @@ -43,5 +44,6 @@ ;; add x28, x28, #0x20 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_le_s/params.wat b/tests/disas/winch/aarch64/i64_le_s/params.wat index 2bf8b1261ee9..f59dbf2a1989 100644 --- a/tests/disas/winch/aarch64/i64_le_s/params.wat +++ b/tests/disas/winch/aarch64/i64_le_s/params.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x20 @@ -27,5 +28,6 @@ ;; add x28, x28, #0x20 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_le_u/const.wat b/tests/disas/winch/aarch64/i64_le_u/const.wat index 34e27e035124..2c52238a98e0 100644 --- a/tests/disas/winch/aarch64/i64_le_u/const.wat +++ b/tests/disas/winch/aarch64/i64_le_u/const.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -25,5 +26,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_le_u/locals.wat b/tests/disas/winch/aarch64/i64_le_u/locals.wat index 52538caa8d09..55e6e9a3fc18 100644 --- a/tests/disas/winch/aarch64/i64_le_u/locals.wat +++ b/tests/disas/winch/aarch64/i64_le_u/locals.wat @@ -20,6 +20,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x20 @@ -43,5 +44,6 @@ ;; add x28, x28, #0x20 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_le_u/params.wat b/tests/disas/winch/aarch64/i64_le_u/params.wat index 1b2780bd67a6..e8d7508e1270 100644 --- a/tests/disas/winch/aarch64/i64_le_u/params.wat +++ b/tests/disas/winch/aarch64/i64_le_u/params.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x20 @@ -27,5 +28,6 @@ ;; add x28, x28, #0x20 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_lt_s/const.wat b/tests/disas/winch/aarch64/i64_lt_s/const.wat index c86e612af2d2..73d611dd2bef 100644 --- a/tests/disas/winch/aarch64/i64_lt_s/const.wat +++ b/tests/disas/winch/aarch64/i64_lt_s/const.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -26,5 +27,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_lt_s/locals.wat b/tests/disas/winch/aarch64/i64_lt_s/locals.wat index 7b3b9cdd0a4e..a4f6da770c36 100644 --- a/tests/disas/winch/aarch64/i64_lt_s/locals.wat +++ b/tests/disas/winch/aarch64/i64_lt_s/locals.wat @@ -20,6 +20,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x20 @@ -43,5 +44,6 @@ ;; add x28, x28, #0x20 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_lt_s/params.wat b/tests/disas/winch/aarch64/i64_lt_s/params.wat index 94d1e3f33b08..130e6b4afb85 100644 --- a/tests/disas/winch/aarch64/i64_lt_s/params.wat +++ b/tests/disas/winch/aarch64/i64_lt_s/params.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x20 @@ -27,5 +28,6 @@ ;; add x28, x28, #0x20 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_lt_u/const.wat b/tests/disas/winch/aarch64/i64_lt_u/const.wat index 1f891813a7d5..ad921711fcda 100644 --- a/tests/disas/winch/aarch64/i64_lt_u/const.wat +++ b/tests/disas/winch/aarch64/i64_lt_u/const.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -25,5 +26,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_lt_u/locals.wat b/tests/disas/winch/aarch64/i64_lt_u/locals.wat index 9675c7fe548d..7d45d1db7fe6 100644 --- a/tests/disas/winch/aarch64/i64_lt_u/locals.wat +++ b/tests/disas/winch/aarch64/i64_lt_u/locals.wat @@ -20,6 +20,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x20 @@ -43,5 +44,6 @@ ;; add x28, x28, #0x20 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_lt_u/params.wat b/tests/disas/winch/aarch64/i64_lt_u/params.wat index 7ffa185cbf86..3bb03313e33c 100644 --- a/tests/disas/winch/aarch64/i64_lt_u/params.wat +++ b/tests/disas/winch/aarch64/i64_lt_u/params.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x20 @@ -27,5 +28,6 @@ ;; add x28, x28, #0x20 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_mul/const.wat b/tests/disas/winch/aarch64/i64_mul/const.wat index 1e45b7de2aa5..d435460f0092 100644 --- a/tests/disas/winch/aarch64/i64_mul/const.wat +++ b/tests/disas/winch/aarch64/i64_mul/const.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -24,5 +25,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_mul/locals.wat b/tests/disas/winch/aarch64/i64_mul/locals.wat index 573040c0a042..3f07314ffab6 100644 --- a/tests/disas/winch/aarch64/i64_mul/locals.wat +++ b/tests/disas/winch/aarch64/i64_mul/locals.wat @@ -20,6 +20,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x20 @@ -42,5 +43,6 @@ ;; add x28, x28, #0x20 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_mul/max.wat b/tests/disas/winch/aarch64/i64_mul/max.wat index 1844353362b7..a53cda462d6c 100644 --- a/tests/disas/winch/aarch64/i64_mul/max.wat +++ b/tests/disas/winch/aarch64/i64_mul/max.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -23,5 +24,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_mul/max_one.wat b/tests/disas/winch/aarch64/i64_mul/max_one.wat index e9b94670d77b..4900d202f000 100644 --- a/tests/disas/winch/aarch64/i64_mul/max_one.wat +++ b/tests/disas/winch/aarch64/i64_mul/max_one.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -24,5 +25,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_mul/mixed.wat b/tests/disas/winch/aarch64/i64_mul/mixed.wat index 3625f5133ee7..d892a836eb73 100644 --- a/tests/disas/winch/aarch64/i64_mul/mixed.wat +++ b/tests/disas/winch/aarch64/i64_mul/mixed.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -24,5 +25,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_mul/params.wat b/tests/disas/winch/aarch64/i64_mul/params.wat index 98470fb015fd..9fa7dc418d29 100644 --- a/tests/disas/winch/aarch64/i64_mul/params.wat +++ b/tests/disas/winch/aarch64/i64_mul/params.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x20 @@ -26,5 +27,6 @@ ;; add x28, x28, #0x20 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_mul/signed.wat b/tests/disas/winch/aarch64/i64_mul/signed.wat index 408475e4d1f4..22bfb4cf2fed 100644 --- a/tests/disas/winch/aarch64/i64_mul/signed.wat +++ b/tests/disas/winch/aarch64/i64_mul/signed.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -24,5 +25,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_mul/unsigned_with_zero.wat b/tests/disas/winch/aarch64/i64_mul/unsigned_with_zero.wat index b3da9e56c83c..590e4d2ee215 100644 --- a/tests/disas/winch/aarch64/i64_mul/unsigned_with_zero.wat +++ b/tests/disas/winch/aarch64/i64_mul/unsigned_with_zero.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -24,5 +25,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_ne/const.wat b/tests/disas/winch/aarch64/i64_ne/const.wat index 4a0e8171bca2..73d8a5814454 100644 --- a/tests/disas/winch/aarch64/i64_ne/const.wat +++ b/tests/disas/winch/aarch64/i64_ne/const.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -25,5 +26,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_ne/locals.wat b/tests/disas/winch/aarch64/i64_ne/locals.wat index f90ce6428c45..3d603704b7e6 100644 --- a/tests/disas/winch/aarch64/i64_ne/locals.wat +++ b/tests/disas/winch/aarch64/i64_ne/locals.wat @@ -20,6 +20,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x20 @@ -43,5 +44,6 @@ ;; add x28, x28, #0x20 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_ne/params.wat b/tests/disas/winch/aarch64/i64_ne/params.wat index 47805d10e507..d5f42f9ddea9 100644 --- a/tests/disas/winch/aarch64/i64_ne/params.wat +++ b/tests/disas/winch/aarch64/i64_ne/params.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x20 @@ -27,5 +28,6 @@ ;; add x28, x28, #0x20 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_or/32_const.wat b/tests/disas/winch/aarch64/i64_or/32_const.wat index 3e9e364acbca..602bb25e4b2f 100644 --- a/tests/disas/winch/aarch64/i64_or/32_const.wat +++ b/tests/disas/winch/aarch64/i64_or/32_const.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -23,5 +24,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_or/64_const.wat b/tests/disas/winch/aarch64/i64_or/64_const.wat index 325e5e686147..9fc0b29d9fa7 100644 --- a/tests/disas/winch/aarch64/i64_or/64_const.wat +++ b/tests/disas/winch/aarch64/i64_or/64_const.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -23,5 +24,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_or/locals.wat b/tests/disas/winch/aarch64/i64_or/locals.wat index 56dc4d2e268b..3d2ff13ba37e 100644 --- a/tests/disas/winch/aarch64/i64_or/locals.wat +++ b/tests/disas/winch/aarch64/i64_or/locals.wat @@ -19,6 +19,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x20 @@ -41,5 +42,6 @@ ;; add x28, x28, #0x20 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_or/params.wat b/tests/disas/winch/aarch64/i64_or/params.wat index 83a63bb34935..f7f324e5c374 100644 --- a/tests/disas/winch/aarch64/i64_or/params.wat +++ b/tests/disas/winch/aarch64/i64_or/params.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x20 @@ -26,5 +27,6 @@ ;; add x28, x28, #0x20 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_popcnt/const.wat b/tests/disas/winch/aarch64/i64_popcnt/const.wat index f3f058e3579f..d5726d7a5afc 100644 --- a/tests/disas/winch/aarch64/i64_popcnt/const.wat +++ b/tests/disas/winch/aarch64/i64_popcnt/const.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -25,5 +26,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_popcnt/reg.wat b/tests/disas/winch/aarch64/i64_popcnt/reg.wat index f6bc16c1d507..6fcd8a879f4b 100644 --- a/tests/disas/winch/aarch64/i64_popcnt/reg.wat +++ b/tests/disas/winch/aarch64/i64_popcnt/reg.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -25,5 +26,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_reinterpret_f64/const.wat b/tests/disas/winch/aarch64/i64_reinterpret_f64/const.wat index 7a984bc6eda2..62b5df4b6c77 100644 --- a/tests/disas/winch/aarch64/i64_reinterpret_f64/const.wat +++ b/tests/disas/winch/aarch64/i64_reinterpret_f64/const.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -22,5 +23,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_reinterpret_f64/locals.wat b/tests/disas/winch/aarch64/i64_reinterpret_f64/locals.wat index cfb65052706b..264788acdd3c 100644 --- a/tests/disas/winch/aarch64/i64_reinterpret_f64/locals.wat +++ b/tests/disas/winch/aarch64/i64_reinterpret_f64/locals.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -25,5 +26,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_reinterpret_f64/params.wat b/tests/disas/winch/aarch64/i64_reinterpret_f64/params.wat index d942517fcae6..b6c8e71d7d26 100644 --- a/tests/disas/winch/aarch64/i64_reinterpret_f64/params.wat +++ b/tests/disas/winch/aarch64/i64_reinterpret_f64/params.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -22,5 +23,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_reinterpret_f64/ret_float.wat b/tests/disas/winch/aarch64/i64_reinterpret_f64/ret_float.wat index c77a27a86417..6e9481ed7f71 100644 --- a/tests/disas/winch/aarch64/i64_reinterpret_f64/ret_float.wat +++ b/tests/disas/winch/aarch64/i64_reinterpret_f64/ret_float.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -26,5 +27,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_rems/const.wat b/tests/disas/winch/aarch64/i64_rems/const.wat index 6b1ed53cdf9e..4d5f929af4d2 100644 --- a/tests/disas/winch/aarch64/i64_rems/const.wat +++ b/tests/disas/winch/aarch64/i64_rems/const.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -22,13 +23,14 @@ ;; mov x0, x16 ;; mov x16, #7 ;; mov x1, x16 -;; cbz x0, #0x54 -;; 34: sdiv x16, x1, x0 +;; cbz x0, #0x5c +;; 38: sdiv x16, x1, x0 ;; msub x1, x0, x16, x1 ;; mov x0, x1 ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 54: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 5c: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_rems/one_zero.wat b/tests/disas/winch/aarch64/i64_rems/one_zero.wat index a9fa72f93b97..37906a2e4981 100644 --- a/tests/disas/winch/aarch64/i64_rems/one_zero.wat +++ b/tests/disas/winch/aarch64/i64_rems/one_zero.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -22,13 +23,14 @@ ;; mov x0, x16 ;; mov x16, #1 ;; mov x1, x16 -;; cbz x0, #0x54 -;; 34: sdiv x16, x1, x0 +;; cbz x0, #0x5c +;; 38: sdiv x16, x1, x0 ;; msub x1, x0, x16, x1 ;; mov x0, x1 ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 54: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 5c: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_rems/overflow.wat b/tests/disas/winch/aarch64/i64_rems/overflow.wat index bd06871191d9..15dc46f44e42 100644 --- a/tests/disas/winch/aarch64/i64_rems/overflow.wat +++ b/tests/disas/winch/aarch64/i64_rems/overflow.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -22,13 +23,14 @@ ;; mov x0, x16 ;; mov x16, #-0x8000000000000000 ;; mov x1, x16 -;; cbz x0, #0x54 -;; 34: sdiv x16, x1, x0 +;; cbz x0, #0x5c +;; 38: sdiv x16, x1, x0 ;; msub x1, x0, x16, x1 ;; mov x0, x1 ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 54: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 5c: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_rems/params.wat b/tests/disas/winch/aarch64/i64_rems/params.wat index 19ef15cff225..c79cac6e660c 100644 --- a/tests/disas/winch/aarch64/i64_rems/params.wat +++ b/tests/disas/winch/aarch64/i64_rems/params.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x20 @@ -22,13 +23,14 @@ ;; stur x3, [x28] ;; ldur x0, [x28] ;; ldur x1, [x28, #8] -;; cbz x0, #0x54 -;; 34: sdiv x16, x1, x0 +;; cbz x0, #0x5c +;; 38: sdiv x16, x1, x0 ;; msub x1, x0, x16, x1 ;; mov x0, x1 ;; add x28, x28, #0x20 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 54: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 5c: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_rems/zero_zero.wat b/tests/disas/winch/aarch64/i64_rems/zero_zero.wat index 75d8f0dde076..be4c56a7ca6f 100644 --- a/tests/disas/winch/aarch64/i64_rems/zero_zero.wat +++ b/tests/disas/winch/aarch64/i64_rems/zero_zero.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -22,13 +23,14 @@ ;; mov x0, x16 ;; mov x16, #0 ;; mov x1, x16 -;; cbz x0, #0x54 -;; 34: sdiv x16, x1, x0 +;; cbz x0, #0x5c +;; 38: sdiv x16, x1, x0 ;; msub x1, x0, x16, x1 ;; mov x0, x1 ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 54: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 5c: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_remu/const.wat b/tests/disas/winch/aarch64/i64_remu/const.wat index 733edb4dbf15..58e9f8b7f145 100644 --- a/tests/disas/winch/aarch64/i64_remu/const.wat +++ b/tests/disas/winch/aarch64/i64_remu/const.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -22,13 +23,14 @@ ;; mov x0, x16 ;; mov x16, #7 ;; mov x1, x16 -;; cbz x0, #0x54 -;; 34: udiv x16, x1, x0 +;; cbz x0, #0x5c +;; 38: udiv x16, x1, x0 ;; msub x1, x0, x16, x1 ;; mov x0, x1 ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 54: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 5c: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_remu/one_zero.wat b/tests/disas/winch/aarch64/i64_remu/one_zero.wat index 7734e10c0ec8..88a016ecc437 100644 --- a/tests/disas/winch/aarch64/i64_remu/one_zero.wat +++ b/tests/disas/winch/aarch64/i64_remu/one_zero.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -22,13 +23,14 @@ ;; mov x0, x16 ;; mov x16, #1 ;; mov x1, x16 -;; cbz x0, #0x54 -;; 34: udiv x16, x1, x0 +;; cbz x0, #0x5c +;; 38: udiv x16, x1, x0 ;; msub x1, x0, x16, x1 ;; mov x0, x1 ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 54: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 5c: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_remu/params.wat b/tests/disas/winch/aarch64/i64_remu/params.wat index 9692eee04352..8963c747bd18 100644 --- a/tests/disas/winch/aarch64/i64_remu/params.wat +++ b/tests/disas/winch/aarch64/i64_remu/params.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x20 @@ -22,13 +23,14 @@ ;; stur x3, [x28] ;; ldur x0, [x28] ;; ldur x1, [x28, #8] -;; cbz x0, #0x54 -;; 34: udiv x16, x1, x0 +;; cbz x0, #0x5c +;; 38: udiv x16, x1, x0 ;; msub x1, x0, x16, x1 ;; mov x0, x1 ;; add x28, x28, #0x20 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 54: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 5c: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_remu/signed.wat b/tests/disas/winch/aarch64/i64_remu/signed.wat index 058be1e3d6e4..650c1b3270b3 100644 --- a/tests/disas/winch/aarch64/i64_remu/signed.wat +++ b/tests/disas/winch/aarch64/i64_remu/signed.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -22,13 +23,14 @@ ;; mov x0, x16 ;; mov x16, #-1 ;; mov x1, x16 -;; cbz x0, #0x54 -;; 34: udiv x16, x1, x0 +;; cbz x0, #0x5c +;; 38: udiv x16, x1, x0 ;; msub x1, x0, x16, x1 ;; mov x0, x1 ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 54: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 5c: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_remu/zero_zero.wat b/tests/disas/winch/aarch64/i64_remu/zero_zero.wat index a2375595054f..2c305fb05bfa 100644 --- a/tests/disas/winch/aarch64/i64_remu/zero_zero.wat +++ b/tests/disas/winch/aarch64/i64_remu/zero_zero.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -22,13 +23,14 @@ ;; mov x0, x16 ;; mov x16, #0 ;; mov x1, x16 -;; cbz x0, #0x54 -;; 34: udiv x16, x1, x0 +;; cbz x0, #0x5c +;; 38: udiv x16, x1, x0 ;; msub x1, x0, x16, x1 ;; mov x0, x1 ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 54: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 5c: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_rotl/16_const.wat b/tests/disas/winch/aarch64/i64_rotl/16_const.wat index 1ea0b4cc3205..6d830f6785be 100644 --- a/tests/disas/winch/aarch64/i64_rotl/16_const.wat +++ b/tests/disas/winch/aarch64/i64_rotl/16_const.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -25,5 +26,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_rotl/8_const.wat b/tests/disas/winch/aarch64/i64_rotl/8_const.wat index d9fd98e14e02..ee6ad9e9817b 100644 --- a/tests/disas/winch/aarch64/i64_rotl/8_const.wat +++ b/tests/disas/winch/aarch64/i64_rotl/8_const.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -24,5 +25,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_rotl/locals.wat b/tests/disas/winch/aarch64/i64_rotl/locals.wat index 24b310bf4390..9468b2286d4b 100644 --- a/tests/disas/winch/aarch64/i64_rotl/locals.wat +++ b/tests/disas/winch/aarch64/i64_rotl/locals.wat @@ -20,6 +20,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x20 @@ -43,5 +44,6 @@ ;; add x28, x28, #0x20 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_rotl/params.wat b/tests/disas/winch/aarch64/i64_rotl/params.wat index f405d1862ae6..0a8b119339e5 100644 --- a/tests/disas/winch/aarch64/i64_rotl/params.wat +++ b/tests/disas/winch/aarch64/i64_rotl/params.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x20 @@ -27,5 +28,6 @@ ;; add x28, x28, #0x20 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_rotr/16_const.wat b/tests/disas/winch/aarch64/i64_rotr/16_const.wat index 6f8ad20a01ef..469c89f76347 100644 --- a/tests/disas/winch/aarch64/i64_rotr/16_const.wat +++ b/tests/disas/winch/aarch64/i64_rotr/16_const.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -24,5 +25,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_rotr/8_const.wat b/tests/disas/winch/aarch64/i64_rotr/8_const.wat index ec61cb01d20a..2048001ed05d 100644 --- a/tests/disas/winch/aarch64/i64_rotr/8_const.wat +++ b/tests/disas/winch/aarch64/i64_rotr/8_const.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -23,5 +24,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_rotr/locals.wat b/tests/disas/winch/aarch64/i64_rotr/locals.wat index 8d1ff44b89a7..bbcf33376d52 100644 --- a/tests/disas/winch/aarch64/i64_rotr/locals.wat +++ b/tests/disas/winch/aarch64/i64_rotr/locals.wat @@ -20,6 +20,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x20 @@ -42,5 +43,6 @@ ;; add x28, x28, #0x20 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_rotr/params.wat b/tests/disas/winch/aarch64/i64_rotr/params.wat index f46bf692500f..5a1809c05558 100644 --- a/tests/disas/winch/aarch64/i64_rotr/params.wat +++ b/tests/disas/winch/aarch64/i64_rotr/params.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x20 @@ -26,5 +27,6 @@ ;; add x28, x28, #0x20 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_shl/16_const.wat b/tests/disas/winch/aarch64/i64_shl/16_const.wat index 61858ed60bb3..c81208967dcb 100644 --- a/tests/disas/winch/aarch64/i64_shl/16_const.wat +++ b/tests/disas/winch/aarch64/i64_shl/16_const.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -24,5 +25,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_shl/8_const.wat b/tests/disas/winch/aarch64/i64_shl/8_const.wat index 0751ea78d22c..c3f37d41f63d 100644 --- a/tests/disas/winch/aarch64/i64_shl/8_const.wat +++ b/tests/disas/winch/aarch64/i64_shl/8_const.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -23,5 +24,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_shl/locals.wat b/tests/disas/winch/aarch64/i64_shl/locals.wat index ba7f8ec5d135..0c189f1bf483 100644 --- a/tests/disas/winch/aarch64/i64_shl/locals.wat +++ b/tests/disas/winch/aarch64/i64_shl/locals.wat @@ -20,6 +20,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x20 @@ -42,5 +43,6 @@ ;; add x28, x28, #0x20 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_shl/params.wat b/tests/disas/winch/aarch64/i64_shl/params.wat index 959700886663..7c4353fc9765 100644 --- a/tests/disas/winch/aarch64/i64_shl/params.wat +++ b/tests/disas/winch/aarch64/i64_shl/params.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x20 @@ -26,5 +27,6 @@ ;; add x28, x28, #0x20 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_shr_s/16_const.wat b/tests/disas/winch/aarch64/i64_shr_s/16_const.wat index f778a785fe11..1d8761eac64a 100644 --- a/tests/disas/winch/aarch64/i64_shr_s/16_const.wat +++ b/tests/disas/winch/aarch64/i64_shr_s/16_const.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -24,5 +25,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_shr_s/8_const.wat b/tests/disas/winch/aarch64/i64_shr_s/8_const.wat index 1452f60a99ff..92c0eaa62d13 100644 --- a/tests/disas/winch/aarch64/i64_shr_s/8_const.wat +++ b/tests/disas/winch/aarch64/i64_shr_s/8_const.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -23,5 +24,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_shr_s/locals.wat b/tests/disas/winch/aarch64/i64_shr_s/locals.wat index 23fcf6436e7b..c56b4aa4aa73 100644 --- a/tests/disas/winch/aarch64/i64_shr_s/locals.wat +++ b/tests/disas/winch/aarch64/i64_shr_s/locals.wat @@ -20,6 +20,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x20 @@ -42,5 +43,6 @@ ;; add x28, x28, #0x20 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_shr_s/params.wat b/tests/disas/winch/aarch64/i64_shr_s/params.wat index f0ba1715b840..37fb6e3049de 100644 --- a/tests/disas/winch/aarch64/i64_shr_s/params.wat +++ b/tests/disas/winch/aarch64/i64_shr_s/params.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x20 @@ -26,5 +27,6 @@ ;; add x28, x28, #0x20 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_shr_u/16_const.wat b/tests/disas/winch/aarch64/i64_shr_u/16_const.wat index 42121eb9867f..7907850ffa09 100644 --- a/tests/disas/winch/aarch64/i64_shr_u/16_const.wat +++ b/tests/disas/winch/aarch64/i64_shr_u/16_const.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -24,5 +25,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_shr_u/8_const.wat b/tests/disas/winch/aarch64/i64_shr_u/8_const.wat index 8f4f434ea260..ce58bba1047c 100644 --- a/tests/disas/winch/aarch64/i64_shr_u/8_const.wat +++ b/tests/disas/winch/aarch64/i64_shr_u/8_const.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -23,5 +24,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_shr_u/locals.wat b/tests/disas/winch/aarch64/i64_shr_u/locals.wat index 84e1b17d7ec2..22c84db848d9 100644 --- a/tests/disas/winch/aarch64/i64_shr_u/locals.wat +++ b/tests/disas/winch/aarch64/i64_shr_u/locals.wat @@ -20,6 +20,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x20 @@ -42,5 +43,6 @@ ;; add x28, x28, #0x20 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_shr_u/params.wat b/tests/disas/winch/aarch64/i64_shr_u/params.wat index bd097176f510..4712801f369a 100644 --- a/tests/disas/winch/aarch64/i64_shr_u/params.wat +++ b/tests/disas/winch/aarch64/i64_shr_u/params.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x20 @@ -26,5 +27,6 @@ ;; add x28, x28, #0x20 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_sub/const.wat b/tests/disas/winch/aarch64/i64_sub/const.wat index a02d562cc866..e9cccdd242a2 100644 --- a/tests/disas/winch/aarch64/i64_sub/const.wat +++ b/tests/disas/winch/aarch64/i64_sub/const.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -23,5 +24,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_sub/locals.wat b/tests/disas/winch/aarch64/i64_sub/locals.wat index 1a30545cdf13..229354e0b788 100644 --- a/tests/disas/winch/aarch64/i64_sub/locals.wat +++ b/tests/disas/winch/aarch64/i64_sub/locals.wat @@ -20,6 +20,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x20 @@ -42,5 +43,6 @@ ;; add x28, x28, #0x20 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_sub/max.wat b/tests/disas/winch/aarch64/i64_sub/max.wat index 0f89ff1c9139..0c1dd461e206 100644 --- a/tests/disas/winch/aarch64/i64_sub/max.wat +++ b/tests/disas/winch/aarch64/i64_sub/max.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -23,5 +24,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_sub/max_one.wat b/tests/disas/winch/aarch64/i64_sub/max_one.wat index 6815ab29f262..db6576079da7 100644 --- a/tests/disas/winch/aarch64/i64_sub/max_one.wat +++ b/tests/disas/winch/aarch64/i64_sub/max_one.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -23,5 +24,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_sub/mixed.wat b/tests/disas/winch/aarch64/i64_sub/mixed.wat index 7641ce423be0..8e01e2f423d0 100644 --- a/tests/disas/winch/aarch64/i64_sub/mixed.wat +++ b/tests/disas/winch/aarch64/i64_sub/mixed.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -23,5 +24,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_sub/params.wat b/tests/disas/winch/aarch64/i64_sub/params.wat index 6aabcdbbc407..aaf8a58a60f9 100644 --- a/tests/disas/winch/aarch64/i64_sub/params.wat +++ b/tests/disas/winch/aarch64/i64_sub/params.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x20 @@ -26,5 +27,6 @@ ;; add x28, x28, #0x20 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_sub/signed.wat b/tests/disas/winch/aarch64/i64_sub/signed.wat index 6f0e6a3a37c3..f4620cadf116 100644 --- a/tests/disas/winch/aarch64/i64_sub/signed.wat +++ b/tests/disas/winch/aarch64/i64_sub/signed.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -24,5 +25,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_sub/unsigned_with_zero.wat b/tests/disas/winch/aarch64/i64_sub/unsigned_with_zero.wat index 1e3888408c4e..6aa9ca45a9a3 100644 --- a/tests/disas/winch/aarch64/i64_sub/unsigned_with_zero.wat +++ b/tests/disas/winch/aarch64/i64_sub/unsigned_with_zero.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -23,5 +24,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_trunc_f32_s/const.wat b/tests/disas/winch/aarch64/i64_trunc_f32_s/const.wat index 96d112878137..a932310d138e 100644 --- a/tests/disas/winch/aarch64/i64_trunc_f32_s/const.wat +++ b/tests/disas/winch/aarch64/i64_trunc_f32_s/const.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -19,21 +20,22 @@ ;; mov x16, #0x3f800000 ;; fmov s0, w16 ;; fcmp s0, s0 -;; b.vs #0x68 -;; 30: mov x16, #0xdf000000 +;; b.vs #0x70 +;; 34: mov x16, #0xdf000000 ;; fmov s31, w16 ;; fcmp s31, s0 -;; b.le #0x6c -;; 40: mov x16, #0x5f000000 +;; b.le #0x74 +;; 44: mov x16, #0x5f000000 ;; fmov s31, w16 ;; fcmp s31, s0 -;; b.ge #0x70 -;; 50: fcvtzs x0, s0 +;; b.ge #0x78 +;; 54: fcvtzs x0, s0 ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 -;; 6c: .byte 0x1f, 0xc1, 0x00, 0x00 ;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 74: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 78: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_trunc_f32_s/locals.wat b/tests/disas/winch/aarch64/i64_trunc_f32_s/locals.wat index b3d8898117f5..99835337e31b 100644 --- a/tests/disas/winch/aarch64/i64_trunc_f32_s/locals.wat +++ b/tests/disas/winch/aarch64/i64_trunc_f32_s/locals.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -22,21 +23,22 @@ ;; stur x16, [x28] ;; ldur s0, [x28, #4] ;; fcmp s0, s0 -;; b.vs #0x6c -;; 34: mov x16, #0xdf000000 +;; b.vs #0x74 +;; 38: mov x16, #0xdf000000 ;; fmov s31, w16 ;; fcmp s31, s0 -;; b.le #0x70 -;; 44: mov x16, #0x5f000000 +;; b.le #0x78 +;; 48: mov x16, #0x5f000000 ;; fmov s31, w16 ;; fcmp s31, s0 -;; b.ge #0x74 -;; 54: fcvtzs x0, s0 +;; b.ge #0x7c +;; 58: fcvtzs x0, s0 ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 6c: .byte 0x1f, 0xc1, 0x00, 0x00 -;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 ;; 74: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 78: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 7c: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_trunc_f32_s/params.wat b/tests/disas/winch/aarch64/i64_trunc_f32_s/params.wat index 6f827d019a3f..a126a6df806f 100644 --- a/tests/disas/winch/aarch64/i64_trunc_f32_s/params.wat +++ b/tests/disas/winch/aarch64/i64_trunc_f32_s/params.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -19,21 +20,22 @@ ;; stur s0, [x28, #4] ;; ldur s0, [x28, #4] ;; fcmp s0, s0 -;; b.vs #0x68 -;; 30: mov x16, #0xdf000000 +;; b.vs #0x70 +;; 34: mov x16, #0xdf000000 ;; fmov s31, w16 ;; fcmp s31, s0 -;; b.le #0x6c -;; 40: mov x16, #0x5f000000 +;; b.le #0x74 +;; 44: mov x16, #0x5f000000 ;; fmov s31, w16 ;; fcmp s31, s0 -;; b.ge #0x70 -;; 50: fcvtzs x0, s0 +;; b.ge #0x78 +;; 54: fcvtzs x0, s0 ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 -;; 6c: .byte 0x1f, 0xc1, 0x00, 0x00 ;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 74: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 78: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_trunc_f32_u/const.wat b/tests/disas/winch/aarch64/i64_trunc_f32_u/const.wat index 0fe135a9ded1..8fb2e49ae9be 100644 --- a/tests/disas/winch/aarch64/i64_trunc_f32_u/const.wat +++ b/tests/disas/winch/aarch64/i64_trunc_f32_u/const.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -19,20 +20,21 @@ ;; mov x16, #0x3f800000 ;; fmov s0, w16 ;; fcmp s0, s0 -;; b.vs #0x64 -;; 30: fmov s31, #-1.00000000 +;; b.vs #0x6c +;; 34: fmov s31, #-1.00000000 ;; fcmp s31, s0 -;; b.le #0x68 -;; 3c: mov x16, #0x5f800000 +;; b.le #0x70 +;; 40: mov x16, #0x5f800000 ;; fmov s31, w16 ;; fcmp s31, s0 -;; b.ge #0x6c -;; 4c: fcvtzu x0, s0 +;; b.ge #0x74 +;; 50: fcvtzu x0, s0 ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 -;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 ;; 6c: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 74: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_trunc_f32_u/locals.wat b/tests/disas/winch/aarch64/i64_trunc_f32_u/locals.wat index 533db34abb59..ff01533e4ebb 100644 --- a/tests/disas/winch/aarch64/i64_trunc_f32_u/locals.wat +++ b/tests/disas/winch/aarch64/i64_trunc_f32_u/locals.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -22,20 +23,21 @@ ;; stur x16, [x28] ;; ldur s0, [x28, #4] ;; fcmp s0, s0 -;; b.vs #0x68 -;; 34: fmov s31, #-1.00000000 +;; b.vs #0x70 +;; 38: fmov s31, #-1.00000000 ;; fcmp s31, s0 -;; b.le #0x6c -;; 40: mov x16, #0x5f800000 +;; b.le #0x74 +;; 44: mov x16, #0x5f800000 ;; fmov s31, w16 ;; fcmp s31, s0 -;; b.ge #0x70 -;; 50: fcvtzu x0, s0 +;; b.ge #0x78 +;; 54: fcvtzu x0, s0 ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 -;; 6c: .byte 0x1f, 0xc1, 0x00, 0x00 ;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 74: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 78: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_trunc_f32_u/params.wat b/tests/disas/winch/aarch64/i64_trunc_f32_u/params.wat index 22d0d408fb18..212ff73c87b5 100644 --- a/tests/disas/winch/aarch64/i64_trunc_f32_u/params.wat +++ b/tests/disas/winch/aarch64/i64_trunc_f32_u/params.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -19,20 +20,21 @@ ;; stur s0, [x28, #4] ;; ldur s0, [x28, #4] ;; fcmp s0, s0 -;; b.vs #0x64 -;; 30: fmov s31, #-1.00000000 +;; b.vs #0x6c +;; 34: fmov s31, #-1.00000000 ;; fcmp s31, s0 -;; b.le #0x68 -;; 3c: mov x16, #0x5f800000 +;; b.le #0x70 +;; 40: mov x16, #0x5f800000 ;; fmov s31, w16 ;; fcmp s31, s0 -;; b.ge #0x6c -;; 4c: fcvtzu x0, s0 +;; b.ge #0x74 +;; 50: fcvtzu x0, s0 ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 -;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 ;; 6c: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 74: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_trunc_f64_s/const.wat b/tests/disas/winch/aarch64/i64_trunc_f64_s/const.wat index 9b69513a2350..d75de817b7fe 100644 --- a/tests/disas/winch/aarch64/i64_trunc_f64_s/const.wat +++ b/tests/disas/winch/aarch64/i64_trunc_f64_s/const.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -19,21 +20,22 @@ ;; mov x16, #0x3ff0000000000000 ;; fmov d0, x16 ;; fcmp d0, d0 -;; b.vs #0x68 -;; 30: mov x16, #-0x3c20000000000000 +;; b.vs #0x70 +;; 34: mov x16, #-0x3c20000000000000 ;; fmov d31, x16 ;; fcmp d31, d0 -;; b.le #0x6c -;; 40: mov x16, #0x43e0000000000000 +;; b.le #0x74 +;; 44: mov x16, #0x43e0000000000000 ;; fmov d31, x16 ;; fcmp d31, d0 -;; b.ge #0x70 -;; 50: fcvtzs x0, d0 +;; b.ge #0x78 +;; 54: fcvtzs x0, d0 ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 -;; 6c: .byte 0x1f, 0xc1, 0x00, 0x00 ;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 74: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 78: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_trunc_f64_s/locals.wat b/tests/disas/winch/aarch64/i64_trunc_f64_s/locals.wat index 97305b60f0e1..5dd57ac2776d 100644 --- a/tests/disas/winch/aarch64/i64_trunc_f64_s/locals.wat +++ b/tests/disas/winch/aarch64/i64_trunc_f64_s/locals.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -22,21 +23,22 @@ ;; stur x16, [x28] ;; ldur d0, [x28] ;; fcmp d0, d0 -;; b.vs #0x6c -;; 34: mov x16, #-0x3c20000000000000 +;; b.vs #0x74 +;; 38: mov x16, #-0x3c20000000000000 ;; fmov d31, x16 ;; fcmp d31, d0 -;; b.le #0x70 -;; 44: mov x16, #0x43e0000000000000 +;; b.le #0x78 +;; 48: mov x16, #0x43e0000000000000 ;; fmov d31, x16 ;; fcmp d31, d0 -;; b.ge #0x74 -;; 54: fcvtzs x0, d0 +;; b.ge #0x7c +;; 58: fcvtzs x0, d0 ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 6c: .byte 0x1f, 0xc1, 0x00, 0x00 -;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 ;; 74: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 78: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 7c: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_trunc_f64_s/params.wat b/tests/disas/winch/aarch64/i64_trunc_f64_s/params.wat index 935f6675d5c8..7f875ffbca0e 100644 --- a/tests/disas/winch/aarch64/i64_trunc_f64_s/params.wat +++ b/tests/disas/winch/aarch64/i64_trunc_f64_s/params.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -19,21 +20,22 @@ ;; stur d0, [x28] ;; ldur d0, [x28] ;; fcmp d0, d0 -;; b.vs #0x68 -;; 30: mov x16, #-0x3c20000000000000 +;; b.vs #0x70 +;; 34: mov x16, #-0x3c20000000000000 ;; fmov d31, x16 ;; fcmp d31, d0 -;; b.le #0x6c -;; 40: mov x16, #0x43e0000000000000 +;; b.le #0x74 +;; 44: mov x16, #0x43e0000000000000 ;; fmov d31, x16 ;; fcmp d31, d0 -;; b.ge #0x70 -;; 50: fcvtzs x0, d0 +;; b.ge #0x78 +;; 54: fcvtzs x0, d0 ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 -;; 6c: .byte 0x1f, 0xc1, 0x00, 0x00 ;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 74: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 78: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_trunc_f64_u/const.wat b/tests/disas/winch/aarch64/i64_trunc_f64_u/const.wat index 6497ae19cee1..4f8582c1d2f7 100644 --- a/tests/disas/winch/aarch64/i64_trunc_f64_u/const.wat +++ b/tests/disas/winch/aarch64/i64_trunc_f64_u/const.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -19,20 +20,21 @@ ;; mov x16, #0x3ff0000000000000 ;; fmov d0, x16 ;; fcmp d0, d0 -;; b.vs #0x64 -;; 30: fmov d31, #-1.00000000 +;; b.vs #0x6c +;; 34: fmov d31, #-1.00000000 ;; fcmp d31, d0 -;; b.le #0x68 -;; 3c: mov x16, #0x43f0000000000000 +;; b.le #0x70 +;; 40: mov x16, #0x43f0000000000000 ;; fmov d31, x16 ;; fcmp d31, d0 -;; b.ge #0x6c -;; 4c: fcvtzu x0, d0 +;; b.ge #0x74 +;; 50: fcvtzu x0, d0 ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 -;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 ;; 6c: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 74: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_trunc_f64_u/locals.wat b/tests/disas/winch/aarch64/i64_trunc_f64_u/locals.wat index 2a19f56b46ab..9427e6df7f30 100644 --- a/tests/disas/winch/aarch64/i64_trunc_f64_u/locals.wat +++ b/tests/disas/winch/aarch64/i64_trunc_f64_u/locals.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -22,20 +23,21 @@ ;; stur x16, [x28] ;; ldur d0, [x28] ;; fcmp d0, d0 -;; b.vs #0x68 -;; 34: fmov d31, #-1.00000000 +;; b.vs #0x70 +;; 38: fmov d31, #-1.00000000 ;; fcmp d31, d0 -;; b.le #0x6c -;; 40: mov x16, #0x43f0000000000000 +;; b.le #0x74 +;; 44: mov x16, #0x43f0000000000000 ;; fmov d31, x16 ;; fcmp d31, d0 -;; b.ge #0x70 -;; 50: fcvtzu x0, d0 +;; b.ge #0x78 +;; 54: fcvtzu x0, d0 ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 -;; 6c: .byte 0x1f, 0xc1, 0x00, 0x00 ;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 74: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 78: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_trunc_f64_u/params.wat b/tests/disas/winch/aarch64/i64_trunc_f64_u/params.wat index a22a4ed6d9d0..6df89ce9f2cb 100644 --- a/tests/disas/winch/aarch64/i64_trunc_f64_u/params.wat +++ b/tests/disas/winch/aarch64/i64_trunc_f64_u/params.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -19,20 +20,21 @@ ;; stur d0, [x28] ;; ldur d0, [x28] ;; fcmp d0, d0 -;; b.vs #0x64 -;; 30: fmov d31, #-1.00000000 +;; b.vs #0x6c +;; 34: fmov d31, #-1.00000000 ;; fcmp d31, d0 -;; b.le #0x68 -;; 3c: mov x16, #0x43f0000000000000 +;; b.le #0x70 +;; 40: mov x16, #0x43f0000000000000 ;; fmov d31, x16 ;; fcmp d31, d0 -;; b.ge #0x6c -;; 4c: fcvtzu x0, d0 +;; b.ge #0x74 +;; 50: fcvtzu x0, d0 ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 -;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 ;; 6c: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 74: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_xor/32_const.wat b/tests/disas/winch/aarch64/i64_xor/32_const.wat index d4dd6cf40a76..dc043e1ca15b 100644 --- a/tests/disas/winch/aarch64/i64_xor/32_const.wat +++ b/tests/disas/winch/aarch64/i64_xor/32_const.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -23,5 +24,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_xor/64_const.wat b/tests/disas/winch/aarch64/i64_xor/64_const.wat index 4f2b7032019f..35b063d9f052 100644 --- a/tests/disas/winch/aarch64/i64_xor/64_const.wat +++ b/tests/disas/winch/aarch64/i64_xor/64_const.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -23,5 +24,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_xor/locals.wat b/tests/disas/winch/aarch64/i64_xor/locals.wat index 9ba662698c6f..68a5785e373c 100644 --- a/tests/disas/winch/aarch64/i64_xor/locals.wat +++ b/tests/disas/winch/aarch64/i64_xor/locals.wat @@ -19,6 +19,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x20 @@ -41,5 +42,6 @@ ;; add x28, x28, #0x20 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/i64_xor/params.wat b/tests/disas/winch/aarch64/i64_xor/params.wat index 8c9d31937d4b..75c50994e6be 100644 --- a/tests/disas/winch/aarch64/i64_xor/params.wat +++ b/tests/disas/winch/aarch64/i64_xor/params.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x20 @@ -26,5 +27,6 @@ ;; add x28, x28, #0x20 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/load/dynamic_heap.wat b/tests/disas/winch/aarch64/load/dynamic_heap.wat index 14cbe93156c6..7d8365c6063f 100644 --- a/tests/disas/winch/aarch64/load/dynamic_heap.wat +++ b/tests/disas/winch/aarch64/load/dynamic_heap.wat @@ -22,6 +22,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x1 ;; sub x28, x28, #0x20 @@ -34,10 +35,10 @@ ;; ldur x1, [x9, #0x60] ;; mov w2, w0 ;; add x2, x2, #4 -;; b.hs #0x138 -;; 3c: cmp x2, x1, uxtx -;; b.hi #0x13c -;; 44: ldur x3, [x9, #0x58] +;; b.hs #0x140 +;; 40: cmp x2, x1, uxtx +;; b.hi #0x144 +;; 48: ldur x3, [x9, #0x58] ;; add x3, x3, x0, uxtx ;; mov x16, #0 ;; mov x4, x16 @@ -48,10 +49,10 @@ ;; ldur x2, [x9, #0x60] ;; mov w3, w1 ;; add x3, x3, #8 -;; b.hs #0x140 -;; 74: cmp x3, x2, uxtx -;; b.hi #0x144 -;; 7c: ldur x4, [x9, #0x58] +;; b.hs #0x148 +;; 78: cmp x3, x2, uxtx +;; b.hi #0x14c +;; 80: ldur x4, [x9, #0x58] ;; add x4, x4, x1, uxtx ;; add x4, x4, #4 ;; mov x16, #0 @@ -65,10 +66,10 @@ ;; mov w16, #3 ;; movk w16, #0x10, lsl #16 ;; add x4, x4, x16, uxtx -;; b.hs #0x148 -;; b8: cmp x4, x3, uxtx -;; b.hi #0x14c -;; c0: ldur x5, [x9, #0x58] +;; b.hs #0x150 +;; bc: cmp x4, x3, uxtx +;; b.hi #0x154 +;; c4: ldur x5, [x9, #0x58] ;; add x5, x5, x2, uxtx ;; orr x16, xzr, #0xfffff ;; add x5, x5, x16, uxtx @@ -96,11 +97,12 @@ ;; add x28, x28, #0x20 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 138: .byte 0x1f, 0xc1, 0x00, 0x00 -;; 13c: .byte 0x1f, 0xc1, 0x00, 0x00 ;; 140: .byte 0x1f, 0xc1, 0x00, 0x00 ;; 144: .byte 0x1f, 0xc1, 0x00, 0x00 ;; 148: .byte 0x1f, 0xc1, 0x00, 0x00 ;; 14c: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 150: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 154: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/load/f32.wat b/tests/disas/winch/aarch64/load/f32.wat index 8bcc4cea071f..ae1afc0074b6 100644 --- a/tests/disas/winch/aarch64/load/f32.wat +++ b/tests/disas/winch/aarch64/load/f32.wat @@ -9,6 +9,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -23,5 +24,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/load/f64.wat b/tests/disas/winch/aarch64/load/f64.wat index f8c6068f4cf1..3d73c2ae3d16 100644 --- a/tests/disas/winch/aarch64/load/f64.wat +++ b/tests/disas/winch/aarch64/load/f64.wat @@ -8,6 +8,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -22,5 +23,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/load/i32.wat b/tests/disas/winch/aarch64/load/i32.wat index fa9aa473c2c4..65a830e17898 100644 --- a/tests/disas/winch/aarch64/load/i32.wat +++ b/tests/disas/winch/aarch64/load/i32.wat @@ -9,6 +9,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -23,5 +24,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/load/i64.wat b/tests/disas/winch/aarch64/load/i64.wat index 1d9ccbda191f..8889327106de 100644 --- a/tests/disas/winch/aarch64/load/i64.wat +++ b/tests/disas/winch/aarch64/load/i64.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x18 @@ -35,5 +36,6 @@ ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/nop/nop.wat b/tests/disas/winch/aarch64/nop/nop.wat index 07fa010e1c04..f23460ec45a4 100644 --- a/tests/disas/winch/aarch64/nop/nop.wat +++ b/tests/disas/winch/aarch64/nop/nop.wat @@ -9,6 +9,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -18,5 +19,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/params/400_params.wat b/tests/disas/winch/aarch64/params/400_params.wat index 856abec99ee0..40ecce501097 100644 --- a/tests/disas/winch/aarch64/params/400_params.wat +++ b/tests/disas/winch/aarch64/params/400_params.wat @@ -52,6 +52,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x28 @@ -68,5 +69,6 @@ ;; add x28, x28, #0x28 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/params/multi_values.wat b/tests/disas/winch/aarch64/params/multi_values.wat index 557783f39cf1..7df33a9de4dc 100644 --- a/tests/disas/winch/aarch64/params/multi_values.wat +++ b/tests/disas/winch/aarch64/params/multi_values.wat @@ -12,6 +12,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x1 ;; sub x28, x28, #0x28 @@ -52,5 +53,6 @@ ;; add x28, x28, #0x28 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/store/dynamic_heap.wat b/tests/disas/winch/aarch64/store/dynamic_heap.wat index 9da24b193cb7..06e7492756e0 100644 --- a/tests/disas/winch/aarch64/store/dynamic_heap.wat +++ b/tests/disas/winch/aarch64/store/dynamic_heap.wat @@ -22,6 +22,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x20 @@ -37,10 +38,10 @@ ;; ldur x2, [x9, #0x60] ;; mov w3, w1 ;; add x3, x3, #4 -;; b.hs #0x10c -;; 48: cmp x3, x2, uxtx -;; b.hi #0x110 -;; 50: ldur x4, [x9, #0x58] +;; b.hs #0x114 +;; 4c: cmp x3, x2, uxtx +;; b.hi #0x118 +;; 54: ldur x4, [x9, #0x58] ;; add x4, x4, x1, uxtx ;; mov x16, #0 ;; mov x5, x16 @@ -52,10 +53,10 @@ ;; ldur x2, [x9, #0x60] ;; mov w3, w1 ;; add x3, x3, #8 -;; b.hs #0x114 -;; 84: cmp x3, x2, uxtx -;; b.hi #0x118 -;; 8c: ldur x4, [x9, #0x58] +;; b.hs #0x11c +;; 88: cmp x3, x2, uxtx +;; b.hi #0x120 +;; 90: ldur x4, [x9, #0x58] ;; add x4, x4, x1, uxtx ;; add x4, x4, #4 ;; mov x16, #0 @@ -70,10 +71,10 @@ ;; mov w16, #3 ;; movk w16, #0x10, lsl #16 ;; add x3, x3, x16, uxtx -;; b.hs #0x11c -;; cc: cmp x3, x2, uxtx -;; b.hi #0x120 -;; d4: ldur x4, [x9, #0x58] +;; b.hs #0x124 +;; d0: cmp x3, x2, uxtx +;; b.hi #0x128 +;; d8: ldur x4, [x9, #0x58] ;; add x4, x4, x1, uxtx ;; orr x16, xzr, #0xfffff ;; add x4, x4, x16, uxtx @@ -85,11 +86,12 @@ ;; add x28, x28, #0x20 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 10c: .byte 0x1f, 0xc1, 0x00, 0x00 -;; 110: .byte 0x1f, 0xc1, 0x00, 0x00 ;; 114: .byte 0x1f, 0xc1, 0x00, 0x00 ;; 118: .byte 0x1f, 0xc1, 0x00, 0x00 ;; 11c: .byte 0x1f, 0xc1, 0x00, 0x00 ;; 120: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 124: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 128: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/store/f32.wat b/tests/disas/winch/aarch64/store/f32.wat index 08f6171a17a7..84a223c29c14 100644 --- a/tests/disas/winch/aarch64/store/f32.wat +++ b/tests/disas/winch/aarch64/store/f32.wat @@ -8,6 +8,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -24,5 +25,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/store/f64.wat b/tests/disas/winch/aarch64/store/f64.wat index e5f75689f704..ba2bdadf82c7 100644 --- a/tests/disas/winch/aarch64/store/f64.wat +++ b/tests/disas/winch/aarch64/store/f64.wat @@ -9,6 +9,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -25,5 +26,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/store/i32.wat b/tests/disas/winch/aarch64/store/i32.wat index d7d518940b27..fe032e3dd290 100644 --- a/tests/disas/winch/aarch64/store/i32.wat +++ b/tests/disas/winch/aarch64/store/i32.wat @@ -10,6 +10,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -26,5 +27,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret diff --git a/tests/disas/winch/aarch64/store/i64.wat b/tests/disas/winch/aarch64/store/i64.wat index 87483c3bc2b5..8e3ba0a9b003 100644 --- a/tests/disas/winch/aarch64/store/i64.wat +++ b/tests/disas/winch/aarch64/store/i64.wat @@ -11,6 +11,7 @@ ;; wasm[0]::function[0]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp +;; str x28, [sp, #-0x10]! ;; mov x28, sp ;; mov x9, x0 ;; sub x28, x28, #0x10 @@ -22,5 +23,6 @@ ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 +;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret