diff --git a/cranelift/codegen/src/isa/aarch64/inst/emit.rs b/cranelift/codegen/src/isa/aarch64/inst/emit.rs index ff030470634f..bf663047c527 100644 --- a/cranelift/codegen/src/isa/aarch64/inst/emit.rs +++ b/cranelift/codegen/src/isa/aarch64/inst/emit.rs @@ -107,13 +107,8 @@ fn machreg_to_gpr_or_vec(m: Reg) -> u32 { u32::from(m.to_real_reg().unwrap().hw_enc() & 31) } -pub(crate) fn enc_arith_rrr( - bits_31_21: u32, - bits_15_10: u32, - rd: Writable, - rn: Reg, - rm: Reg, -) -> u32 { +/// Encode a 3-register aeithmeric instruction. +pub fn enc_arith_rrr(bits_31_21: u32, bits_15_10: u32, rd: Writable, rn: Reg, rm: Reg) -> u32 { (bits_31_21 << 21) | (bits_15_10 << 10) | machreg_to_gpr(rd.to_reg()) @@ -204,7 +199,13 @@ fn enc_test_bit_and_branch( | machreg_to_gpr(reg) } -fn enc_move_wide(op: MoveWideOp, rd: Writable, imm: MoveWideConst, size: OperandSize) -> u32 { +/// Encode a move-wide instruction. +pub fn enc_move_wide( + op: MoveWideOp, + rd: Writable, + imm: MoveWideConst, + size: OperandSize, +) -> u32 { assert!(imm.shift <= 0b11); let op = match op { MoveWideOp::MovN => 0b00, @@ -218,7 +219,8 @@ fn enc_move_wide(op: MoveWideOp, rd: Writable, imm: MoveWideConst, size: Op | machreg_to_gpr(rd.to_reg()) } -fn enc_movk(rd: Writable, imm: MoveWideConst, size: OperandSize) -> u32 { +/// Encode a move-keep immediate instruction. +pub fn enc_movk(rd: Writable, imm: MoveWideConst, size: OperandSize) -> u32 { assert!(imm.shift <= 0b11); 0x72800000 | size.sf_bit() << 31 diff --git a/crates/cranelift/src/compiler.rs b/crates/cranelift/src/compiler.rs index 4ecc3d0c56d0..2ae1d7c73ecc 100644 --- a/crates/cranelift/src/compiler.rs +++ b/crates/cranelift/src/compiler.rs @@ -225,7 +225,7 @@ impl wasmtime_environ::Compiler for Compiler { // check to all functions for how much native stack is remaining. The // `VMContext` pointer is the first argument to all functions, and the // first field of this structure is `*const VMStoreContext` and the - // first field of that is the stack limit. Note that the stack limit in + // third field of that is the stack limit. Note that the stack limit in // this case means "if the stack pointer goes below this, trap". Each // function which consumes stack space or isn't a leaf function starts // off by loading the stack limit, checking it against the stack diff --git a/crates/test-util/src/wast.rs b/crates/test-util/src/wast.rs index 736eda85d843..817755c34f7d 100644 --- a/crates/test-util/src/wast.rs +++ b/crates/test-util/src/wast.rs @@ -418,11 +418,6 @@ impl WastTest { if config.compiler == Compiler::Winch { if cfg!(target_arch = "aarch64") { let unsupported = [ - // Missing stack checks (#8321) - "spec_testsuite/call.wast", - "spec_testsuite/fac.wast", - "spec_testsuite/skip-stack-guard-page.wast", - "misc_testsuite/stack_overflow.wast", // Fails intermittently "misc_testsuite/table_copy_on_imported_tables.wast", // Segfault 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 26ce820b0ca1..bba1c8450765 100644 --- a/tests/disas/winch/aarch64/br/as_br_if_cond.wat +++ b/tests/disas/winch/aarch64/br/as_br_if_cond.wat @@ -10,7 +10,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x58 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -21,3 +28,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 58: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/br/as_br_value.wat b/tests/disas/winch/aarch64/br/as_br_value.wat index 4ac945e638bf..18e77bea1c30 100644 --- a/tests/disas/winch/aarch64/br/as_br_value.wat +++ b/tests/disas/winch/aarch64/br/as_br_value.wat @@ -10,7 +10,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x60 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -23,3 +30,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 60: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/br/as_if_cond.wat b/tests/disas/winch/aarch64/br/as_if_cond.wat index 3201ecf9b899..e7828aa251e4 100644 --- a/tests/disas/winch/aarch64/br/as_if_cond.wat +++ b/tests/disas/winch/aarch64/br/as_if_cond.wat @@ -15,7 +15,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x60 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -28,3 +35,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 60: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/br/as_if_else.wat b/tests/disas/winch/aarch64/br/as_if_else.wat index 50f3683b484b..92ae222d136d 100644 --- a/tests/disas/winch/aarch64/br/as_if_else.wat +++ b/tests/disas/winch/aarch64/br/as_if_else.wat @@ -15,7 +15,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x80 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -24,11 +31,11 @@ ;; stur w3, [x28] ;; ldur w0, [x28, #4] ;; tst w0, w0 -;; b.eq #0x44 -;; b #0x3c -;; 3c: ldur w0, [x28] -;; b #0x4c -;; 44: mov x16, #4 +;; b.eq #0x60 +;; b #0x58 +;; 58: ldur w0, [x28] +;; b #0x68 +;; 60: mov x16, #4 ;; mov w0, w16 ;; add x28, x28, #0x18 ;; mov sp, x28 @@ -36,3 +43,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 80: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/br/as_if_then.wat b/tests/disas/winch/aarch64/br/as_if_then.wat index f49898363e78..2b1b0843eeb2 100644 --- a/tests/disas/winch/aarch64/br/as_if_then.wat +++ b/tests/disas/winch/aarch64/br/as_if_then.wat @@ -15,7 +15,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x80 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -24,15 +31,16 @@ ;; stur w3, [x28] ;; ldur w0, [x28, #4] ;; tst w0, w0 -;; b.eq #0x48 -;; b #0x3c -;; 3c: mov x16, #3 +;; b.eq #0x64 +;; b #0x58 +;; 58: mov x16, #3 ;; mov w0, w16 -;; b #0x4c -;; 48: ldur w0, [x28] +;; b #0x68 +;; 64: ldur w0, [x28] ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 80: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/br/as_loop_first.wat b/tests/disas/winch/aarch64/br/as_loop_first.wat index e6f167a11c9b..75d20f445863 100644 --- a/tests/disas/winch/aarch64/br/as_loop_first.wat +++ b/tests/disas/winch/aarch64/br/as_loop_first.wat @@ -11,7 +11,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x60 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -24,3 +31,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 60: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/br/br_jump.wat b/tests/disas/winch/aarch64/br/br_jump.wat index 04c95dc6428f..ea06e108d76f 100644 --- a/tests/disas/winch/aarch64/br/br_jump.wat +++ b/tests/disas/winch/aarch64/br/br_jump.wat @@ -18,7 +18,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x20 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x8c +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -35,10 +42,11 @@ ;; stur w16, [x28] ;; add x28, x28, #4 ;; mov sp, x28 -;; b #0x3c -;; 58: add x28, x28, #0x18 +;; b #0x58 +;; 74: add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 8c: .byte 0x1f, 0xc1, 0x00, 0x00 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 898a1c4b16a3..a16f33d1f70d 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 @@ -10,7 +10,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x80 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -18,16 +25,17 @@ ;; mov x16, #1 ;; mov w0, w16 ;; tst w0, w0 -;; b.ne #0x4c -;; b #0x38 -;; 38: mov x16, #1 +;; b.ne #0x68 +;; b #0x54 +;; 54: mov x16, #1 ;; mov w0, w16 ;; tst w0, w0 -;; b.ne #0x4c -;; b #0x4c -;; 4c: add x28, x28, #0x10 +;; b.ne #0x68 +;; b #0x68 +;; 68: add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 80: .byte 0x1f, 0xc1, 0x00, 0x00 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 ca8232b354aa..634d6a4b9a0a 100644 --- a/tests/disas/winch/aarch64/br_if/as_br_value.wat +++ b/tests/disas/winch/aarch64/br_if/as_br_value.wat @@ -10,7 +10,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x74 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -20,11 +27,12 @@ ;; mov x16, #1 ;; mov w0, w16 ;; tst w1, w1 -;; b.ne #0x40 -;; b #0x40 -;; 40: add x28, x28, #0x10 +;; b.ne #0x5c +;; b #0x5c +;; 5c: add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 74: .byte 0x1f, 0xc1, 0x00, 0x00 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 7a4f1c4b42b0..df855f88244a 100644 --- a/tests/disas/winch/aarch64/br_if/as_if_cond.wat +++ b/tests/disas/winch/aarch64/br_if/as_if_cond.wat @@ -16,7 +16,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x94 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -26,15 +33,15 @@ ;; mov x16, #1 ;; mov w0, w16 ;; tst w1, w1 -;; b.ne #0x60 -;; b #0x40 -;; 40: tst w0, w0 -;; b.eq #0x58 -;; b #0x4c -;; 4c: mov x16, #2 +;; b.ne #0x7c +;; b #0x5c +;; 5c: tst w0, w0 +;; b.eq #0x74 +;; b #0x68 +;; 68: mov x16, #2 ;; mov w0, w16 -;; b #0x60 -;; 58: mov x16, #3 +;; b #0x7c +;; 74: mov x16, #3 ;; mov w0, w16 ;; add x28, x28, #0x18 ;; mov sp, x28 @@ -42,3 +49,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 94: .byte 0x1f, 0xc1, 0x00, 0x00 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 ec5937136dc1..fc6f4e002096 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 @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x8c +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -27,9 +34,9 @@ ;; mov x16, #0x11 ;; mov w0, w16 ;; tst w1, w1 -;; b.ne #0x58 -;; b #0x4c -;; 4c: stur w0, [x28, #4] +;; b.ne #0x74 +;; b #0x68 +;; 68: stur w0, [x28, #4] ;; orr x16, xzr, #0xffffffff ;; mov w0, w16 ;; add x28, x28, #0x18 @@ -38,3 +45,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 8c: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/br_table/large.wat b/tests/disas/winch/aarch64/br_table/large.wat index d1e5813d3f0c..66026086bbe2 100644 --- a/tests/disas/winch/aarch64/br_table/large.wat +++ b/tests/disas/winch/aarch64/br_table/large.wat @@ -743,7 +743,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x18134 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -752,14 +759,14 @@ ;; ldur w0, [x28, #4] ;; mov x16, #0x6027 ;; cmp x0, x16, uxtx -;; b.hs #0x180f8 -;; 38: csel x1, xzr, x0, hs +;; b.hs #0x18114 +;; 54: csel x1, xzr, x0, hs ;; csdb -;; adr x16, #0x50 +;; adr x16, #0x6c ;; ldrsw x1, [x16, w1, uxtw #2] ;; add x16, x16, x1 ;; br x16 -;; 50: .byte 0x9c, 0x80, 0x01, 0x00 +;; 6c: .byte 0x9c, 0x80, 0x01, 0x00 ;; .byte 0xa8, 0x80, 0x01, 0x00 ;; .byte 0x9c, 0x80, 0x01, 0x00 ;; .byte 0xa8, 0x80, 0x01, 0x00 @@ -25376,8 +25383,8 @@ ;; .byte 0x9c, 0x80, 0x01, 0x00 ;; mov x16, #0 ;; mov w0, w16 -;; b #0x18100 -;; 180f8: mov x16, #1 +;; b #0x1811c +;; 18114: mov x16, #1 ;; mov w0, w16 ;; add x28, x28, #0x18 ;; mov sp, x28 @@ -25385,3 +25392,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 18134: .byte 0x1f, 0xc1, 0x00, 0x00 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 7d49dbd6e790..1bc933489139 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 @@ -23,7 +23,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0xcc +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -31,29 +38,29 @@ ;; stur w2, [x28, #4] ;; ldur w0, [x28, #4] ;; cmp x0, #2 -;; b.hs #0x58 -;; 34: csel x1, xzr, x0, hs +;; b.hs #0x74 +;; 50: csel x1, xzr, x0, hs ;; csdb -;; adr x16, #0x4c +;; adr x16, #0x68 ;; ldrsw x1, [x16, w1, uxtw #2] ;; add x16, x16, x1 ;; br x16 -;; 4c: .byte 0xdc, 0xff, 0xff, 0xff +;; 68: .byte 0xdc, 0xff, 0xff, 0xff ;; .byte 0x0c, 0x00, 0x00, 0x00 -;; b #0x28 -;; 58: mov x16, #0 +;; b #0x44 +;; 74: mov x16, #0 ;; mov w0, w16 ;; stur w0, [x28, #4] ;; ldur w0, [x28, #4] ;; cmp x0, #2 -;; b.hs #0x64 -;; 70: csel x1, xzr, x0, hs +;; b.hs #0x80 +;; 8c: csel x1, xzr, x0, hs ;; csdb -;; adr x16, #0x88 +;; adr x16, #0xa4 ;; ldrsw x1, [x16, w1, uxtw #2] ;; add x16, x16, x1 ;; br x16 -;; 88: .byte 0x08, 0x00, 0x00, 0x00 +;; a4: .byte 0x08, 0x00, 0x00, 0x00 ;; .byte 0xdc, 0xff, 0xff, 0xff ;; mov x16, #3 ;; mov w0, w16 @@ -63,3 +70,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; cc: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/call/multi.wat b/tests/disas/winch/aarch64/call/multi.wat index f0f435b179e3..b41c8880c517 100644 --- a/tests/disas/winch/aarch64/call/multi.wat +++ b/tests/disas/winch/aarch64/call/multi.wat @@ -15,7 +15,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x1 +;; ldur x16, [x1, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x1c +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x88 +;; 2c: mov x9, x1 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x1, [x28, #0x10] @@ -38,13 +45,21 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 88: .byte 0x1f, 0xc1, 0x00, 0x00 ;; ;; wasm[0]::function[1]::start: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x20 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x12c +;; cc: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -57,7 +72,7 @@ ;; mov x2, x9 ;; add x0, x28, #0xc ;; bl #0 -;; c4: add x28, x28, #0xc +;; 100: add x28, x28, #0xc ;; mov sp, x28 ;; ldur x9, [x28, #0xc] ;; add x28, x28, #4 @@ -68,3 +83,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 12c: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/call/params.wat b/tests/disas/winch/aarch64/call/params.wat index 986f3429e842..018bc9f13eff 100644 --- a/tests/disas/winch/aarch64/call/params.wat +++ b/tests/disas/winch/aarch64/call/params.wat @@ -42,7 +42,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x40 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x188 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -79,8 +86,8 @@ ;; mov x16, #8 ;; mov w16, w16 ;; stur w16, [x28, #0x10] -;; bl #0x180 -;; a8: add x28, x28, #0x24 +;; bl #0x1a0 +;; c4: add x28, x28, #0x24 ;; mov sp, x28 ;; add x28, x28, #4 ;; mov sp, x28 @@ -117,8 +124,8 @@ ;; mov x16, #8 ;; mov w16, w16 ;; stur w16, [x28, #0x10] -;; bl #0x180 -;; 140: add x28, x28, #0x20 +;; bl #0x1a0 +;; 15c: add x28, x28, #0x20 ;; mov sp, x28 ;; add x28, x28, #8 ;; mov sp, x28 @@ -129,13 +136,21 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 188: .byte 0x1f, 0xc1, 0x00, 0x00 ;; ;; wasm[0]::function[1]::add: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x28 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x258 +;; 1cc: mov x9, x0 ;; sub x28, x28, #0x28 ;; mov sp, x28 ;; stur x0, [x28, #0x20] @@ -170,3 +185,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 258: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/call/recursive.wat b/tests/disas/winch/aarch64/call/recursive.wat index b5a96b582793..dc234f2cc483 100644 --- a/tests/disas/winch/aarch64/call/recursive.wat +++ b/tests/disas/winch/aarch64/call/recursive.wat @@ -29,7 +29,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x20 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x10c +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -39,11 +46,11 @@ ;; cmp w0, #1 ;; cset x0, le ;; tst w0, w0 -;; b.eq #0x48 -;; b #0x40 -;; 40: ldur w0, [x28, #4] -;; b #0xd8 -;; 48: ldur w0, [x28, #4] +;; b.eq #0x64 +;; b #0x5c +;; 5c: ldur w0, [x28, #4] +;; b #0xf4 +;; 64: ldur w0, [x28, #4] ;; sub w0, w0, #1 ;; sub x28, x28, #4 ;; mov sp, x28 @@ -54,7 +61,7 @@ ;; mov x1, x9 ;; ldur w2, [x28, #4] ;; bl #0 -;; 74: add x28, x28, #4 +;; 90: add x28, x28, #4 ;; mov sp, x28 ;; add x28, x28, #4 ;; mov sp, x28 @@ -71,7 +78,7 @@ ;; mov x1, x9 ;; ldur w2, [x28] ;; bl #0 -;; b8: add x28, x28, #4 +;; d4: add x28, x28, #4 ;; mov sp, x28 ;; ldur x9, [x28, #0x14] ;; ldur w1, [x28] @@ -85,3 +92,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 10c: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/call/reg_on_stack.wat b/tests/disas/winch/aarch64/call/reg_on_stack.wat index 2f62e342fac6..cc0ea5f8bb63 100644 --- a/tests/disas/winch/aarch64/call/reg_on_stack.wat +++ b/tests/disas/winch/aarch64/call/reg_on_stack.wat @@ -18,7 +18,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x24 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0xf8 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -35,7 +42,7 @@ ;; mov x16, #1 ;; mov w2, w16 ;; bl #0 -;; 54: add x28, x28, #4 +;; 70: add x28, x28, #4 ;; mov sp, x28 ;; ldur x9, [x28, #0x14] ;; sub x28, x28, #4 @@ -46,7 +53,7 @@ ;; mov x16, #1 ;; mov w2, w16 ;; bl #0 -;; 80: ldur x9, [x28, #0x18] +;; 9c: ldur x9, [x28, #0x18] ;; sub x28, x28, #4 ;; mov sp, x28 ;; stur w0, [x28] @@ -57,15 +64,16 @@ ;; add x28, x28, #4 ;; mov sp, x28 ;; tst w1, w1 -;; b.eq #0xc0 -;; b #0xb4 -;; b4: add x28, x28, #4 +;; b.eq #0xdc +;; b #0xd0 +;; d0: add x28, x28, #4 ;; mov sp, x28 -;; b #0xc4 -;; c0: .byte 0x1f, 0xc1, 0x00, 0x00 +;; b #0xe0 +;; dc: .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 +;; f8: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/call/simple.wat b/tests/disas/winch/aarch64/call/simple.wat index 5c2634c2502f..12c5851af0c5 100644 --- a/tests/disas/winch/aarch64/call/simple.wat +++ b/tests/disas/winch/aarch64/call/simple.wat @@ -20,7 +20,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x20 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0xa4 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -35,8 +42,8 @@ ;; mov w2, w16 ;; mov x16, #0x50 ;; mov w3, w16 -;; bl #0xa0 -;; 50: add x28, x28, #8 +;; bl #0xc0 +;; 6c: add x28, x28, #8 ;; mov sp, x28 ;; ldur x9, [x28, #0x10] ;; mov x16, #2 @@ -50,13 +57,21 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; a4: .byte 0x1f, 0xc1, 0x00, 0x00 ;; ;; wasm[0]::function[1]::add: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x130 +;; ec: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -73,3 +88,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 130: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/call_indirect/call_indirect.wat b/tests/disas/winch/aarch64/call_indirect/call_indirect.wat index 8799dfdb2810..f262cdceff8b 100644 --- a/tests/disas/winch/aarch64/call_indirect/call_indirect.wat +++ b/tests/disas/winch/aarch64/call_indirect/call_indirect.wat @@ -34,7 +34,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x30 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x2a0 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -44,12 +51,12 @@ ;; cmp w0, #1 ;; cset x0, ls ;; tst w0, w0 -;; b.eq #0x4c -;; b #0x40 -;; 40: mov x16, #1 +;; b.eq #0x68 +;; b #0x5c +;; 5c: mov x16, #1 ;; mov w0, w16 -;; b #0x26c -;; 4c: ldur w0, [x28, #4] +;; b #0x288 +;; 68: ldur w0, [x28, #4] ;; sub w0, w0, #2 ;; sub x28, x28, #4 ;; mov sp, x28 @@ -60,8 +67,8 @@ ;; ldur x3, [x2, #0x40] ;; cmp x1, x3, uxtx ;; sub sp, x28, #4 -;; b.hs #0x284 -;; 7c: mov sp, x28 +;; b.hs #0x2a4 +;; 98: mov sp, x28 ;; mov x16, x1 ;; mov x16, #8 ;; mul x16, x16, x16 @@ -72,31 +79,31 @@ ;; csel x2, x4, x2, hs ;; ldur x0, [x2] ;; tst x0, x0 -;; b.ne #0xe0 -;; b #0xb0 -;; b0: 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 #0x3ec -;; d0: add x28, x28, #4 +;; bl #0x40c +;; ec: add x28, x28, #4 ;; mov sp, x28 ;; ldur x9, [x28, #0x14] -;; b #0xe4 -;; e0: and x0, x0, #0xfffffffffffffffe +;; b #0x100 +;; fc: and x0, x0, #0xfffffffffffffffe ;; sub sp, x28, #4 -;; cbz x0, #0x288 -;; ec: mov sp, x28 +;; cbz x0, #0x2a8 +;; 108: mov sp, x28 ;; ldur x16, [x9, #0x30] ;; ldur w1, [x16] ;; ldur w2, [x0, #0x10] ;; cmp w1, w2, uxtx ;; sub sp, x28, #4 -;; b.ne #0x28c -;; 108: mov sp, x28 +;; b.ne #0x2ac +;; 124: mov sp, x28 ;; sub x28, x28, #8 ;; mov sp, x28 ;; stur x0, [x28] @@ -111,7 +118,7 @@ ;; mov x1, x9 ;; ldur w2, [x28, #4] ;; blr x4 -;; 144: add x28, x28, #4 +;; 160: add x28, x28, #4 ;; mov sp, x28 ;; add x28, x28, #4 ;; mov sp, x28 @@ -129,8 +136,8 @@ ;; mov x2, x9 ;; ldur x3, [x2, #0x40] ;; cmp x1, x3, uxtx -;; b.hs #0x290 -;; 190: mov x16, x1 +;; b.hs #0x2b0 +;; 1ac: mov x16, x1 ;; mov x16, #8 ;; mul x16, x16, x16 ;; ldur x2, [x2, #0x38] @@ -140,9 +147,9 @@ ;; csel x2, x4, x2, hs ;; ldur x0, [x2] ;; tst x0, x0 -;; b.ne #0x200 -;; b #0x1c0 -;; 1c0: sub x28, x28, #4 +;; b.ne #0x21c +;; b #0x1dc +;; 1dc: sub x28, x28, #4 ;; mov sp, x28 ;; stur w1, [x28] ;; sub x28, x28, #0xc @@ -151,21 +158,21 @@ ;; mov x16, #0 ;; mov w1, w16 ;; ldur w2, [x28, #0xc] -;; bl #0x3ec -;; 1e8: add x28, x28, #0xc +;; bl #0x40c +;; 204: add x28, x28, #0xc ;; mov sp, x28 ;; add x28, x28, #4 ;; mov sp, x28 ;; ldur x9, [x28, #0x18] -;; b #0x204 -;; 200: and x0, x0, #0xfffffffffffffffe -;; cbz x0, #0x294 -;; 208: ldur x16, [x9, #0x30] +;; b #0x220 +;; 21c: and x0, x0, #0xfffffffffffffffe +;; cbz x0, #0x2b4 +;; 224: ldur x16, [x9, #0x30] ;; ldur w1, [x16] ;; ldur w2, [x0, #0x10] ;; cmp w1, w2, uxtx -;; b.ne #0x298 -;; 21c: sub x28, x28, #8 +;; b.ne #0x2b8 +;; 238: sub x28, x28, #8 ;; mov sp, x28 ;; stur x0, [x28] ;; ldur x3, [x28] @@ -177,7 +184,7 @@ ;; mov x1, x9 ;; ldur w2, [x28] ;; blr x4 -;; 24c: add x28, x28, #4 +;; 268: add x28, x28, #4 ;; mov sp, x28 ;; ldur x9, [x28, #0x14] ;; ldur w1, [x28] @@ -191,9 +198,10 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 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 +;; 2a0: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 2a4: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 2a8: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 2ac: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 2b0: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 2b4: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 2b8: .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 f4e62856ec49..cfcc323cf436 100644 --- a/tests/disas/winch/aarch64/call_indirect/local_arg.wat +++ b/tests/disas/winch/aarch64/call_indirect/local_arg.wat @@ -22,7 +22,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x5c +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -34,13 +41,21 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 5c: .byte 0x1f, 0xc1, 0x00, 0x00 ;; ;; wasm[0]::function[1]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x24 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x1c8 +;; 8c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -57,8 +72,8 @@ ;; ldur x3, [x2, #0x40] ;; cmp x1, x3, uxtx ;; sub sp, x28, #4 -;; b.hs #0x18c -;; 98: mov sp, x28 +;; b.hs #0x1cc +;; d4: mov sp, x28 ;; mov x16, x1 ;; mov x16, #8 ;; mul x16, x16, x16 @@ -69,31 +84,31 @@ ;; csel x2, x4, x2, hs ;; ldur x0, [x2] ;; tst x0, x0 -;; b.ne #0xfc -;; b #0xcc -;; cc: sub x28, x28, #4 +;; b.ne #0x138 +;; b #0x108 +;; 108: sub x28, x28, #4 ;; mov sp, x28 ;; stur w1, [x28] ;; mov x0, x9 ;; mov x16, #0 ;; mov w1, w16 ;; ldur w2, [x28] -;; bl #0x3ec -;; ec: add x28, x28, #4 +;; bl #0x42c +;; 128: add x28, x28, #4 ;; mov sp, x28 ;; ldur x9, [x28, #0x14] -;; b #0x100 -;; fc: and x0, x0, #0xfffffffffffffffe +;; b #0x13c +;; 138: and x0, x0, #0xfffffffffffffffe ;; sub sp, x28, #4 -;; cbz x0, #0x190 -;; 108: mov sp, x28 +;; cbz x0, #0x1d0 +;; 144: mov sp, x28 ;; ldur x16, [x9, #0x30] ;; ldur w1, [x16] ;; ldur w2, [x0, #0x10] ;; cmp w1, w2, uxtx ;; sub sp, x28, #4 -;; b.ne #0x194 -;; 124: mov sp, x28 +;; b.ne #0x1d4 +;; 160: mov sp, x28 ;; sub x28, x28, #8 ;; mov sp, x28 ;; stur x0, [x28] @@ -108,7 +123,7 @@ ;; mov x1, x9 ;; ldur w2, [x28, #4] ;; blr x4 -;; 160: add x28, x28, #4 +;; 19c: add x28, x28, #4 ;; mov sp, x28 ;; add x28, x28, #4 ;; mov sp, x28 @@ -119,6 +134,7 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 18c: .byte 0x1f, 0xc1, 0x00, 0x00 -;; 190: .byte 0x1f, 0xc1, 0x00, 0x00 -;; 194: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 1c8: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 1cc: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 1d0: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 1d4: .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 f634bb126cfd..a3b1a9f36006 100644 --- a/tests/disas/winch/aarch64/f32_abs/f32_abs_const.wat +++ b/tests/disas/winch/aarch64/f32_abs/f32_abs_const.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x68 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -27,3 +34,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 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 dde079bb14a6..fe412405851e 100644 --- a/tests/disas/winch/aarch64/f32_abs/f32_abs_param.wat +++ b/tests/disas/winch/aarch64/f32_abs/f32_abs_param.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x64 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -26,3 +33,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/f32_add/const.wat b/tests/disas/winch/aarch64/f32_add/const.wat index 5ec361836880..e415c2e56d12 100644 --- a/tests/disas/winch/aarch64/f32_add/const.wat +++ b/tests/disas/winch/aarch64/f32_add/const.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x78 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -32,3 +39,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 78: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/f32_add/locals.wat b/tests/disas/winch/aarch64/f32_add/locals.wat index 8e2e4203cf58..9491042e7f75 100644 --- a/tests/disas/winch/aarch64/f32_add/locals.wat +++ b/tests/disas/winch/aarch64/f32_add/locals.wat @@ -22,7 +22,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x90 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -47,3 +54,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 90: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/f32_add/params.wat b/tests/disas/winch/aarch64/f32_add/params.wat index d9f0a6aba5ae..5610d3906a5c 100644 --- a/tests/disas/winch/aarch64/f32_add/params.wat +++ b/tests/disas/winch/aarch64/f32_add/params.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x70 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -30,3 +37,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 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 a7a64b8f9f9f..1f2584901355 100644 --- a/tests/disas/winch/aarch64/f32_ceil/f32_ceil_const.wat +++ b/tests/disas/winch/aarch64/f32_ceil/f32_ceil_const.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x68 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -27,3 +34,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 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 adeaebc06583..e3022757acfc 100644 --- a/tests/disas/winch/aarch64/f32_ceil/f32_ceil_param.wat +++ b/tests/disas/winch/aarch64/f32_ceil/f32_ceil_param.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x64 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -26,3 +33,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 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 bf00b6805b0c..072c105d03f3 100644 --- a/tests/disas/winch/aarch64/f32_convert_i32_s/const.wat +++ b/tests/disas/winch/aarch64/f32_convert_i32_s/const.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x64 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -26,3 +33,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 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 d28144805aec..5f75d9f75983 100644 --- a/tests/disas/winch/aarch64/f32_convert_i32_s/locals.wat +++ b/tests/disas/winch/aarch64/f32_convert_i32_s/locals.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x68 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -29,3 +36,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 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 a925441e2740..ad7fe4964838 100644 --- a/tests/disas/winch/aarch64/f32_convert_i32_s/params.wat +++ b/tests/disas/winch/aarch64/f32_convert_i32_s/params.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x64 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -26,3 +33,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 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 1b5ee14c1136..e745bceabf00 100644 --- a/tests/disas/winch/aarch64/f32_convert_i32_s/spilled.wat +++ b/tests/disas/winch/aarch64/f32_convert_i32_s/spilled.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x14 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x7c +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -34,3 +41,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 7c: .byte 0x1f, 0xc1, 0x00, 0x00 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 48c43076816e..1eaa9dbb779b 100644 --- a/tests/disas/winch/aarch64/f32_convert_i32_u/const.wat +++ b/tests/disas/winch/aarch64/f32_convert_i32_u/const.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x64 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -26,3 +33,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 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 c787c0faebd7..a59833025c7c 100644 --- a/tests/disas/winch/aarch64/f32_convert_i32_u/locals.wat +++ b/tests/disas/winch/aarch64/f32_convert_i32_u/locals.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x68 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -29,3 +36,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 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 23ec0e37f6cf..fe6a4bc4e576 100644 --- a/tests/disas/winch/aarch64/f32_convert_i32_u/params.wat +++ b/tests/disas/winch/aarch64/f32_convert_i32_u/params.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x64 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -26,3 +33,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 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 1bc769285c51..526617473fd8 100644 --- a/tests/disas/winch/aarch64/f32_convert_i32_u/spilled.wat +++ b/tests/disas/winch/aarch64/f32_convert_i32_u/spilled.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x14 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x7c +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -34,3 +41,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 7c: .byte 0x1f, 0xc1, 0x00, 0x00 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 2735c463b3b6..bdcb2e49b1fd 100644 --- a/tests/disas/winch/aarch64/f32_convert_i64_s/const.wat +++ b/tests/disas/winch/aarch64/f32_convert_i64_s/const.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x64 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -26,3 +33,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 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 1620f435f086..7e6952ff3e80 100644 --- a/tests/disas/winch/aarch64/f32_convert_i64_s/locals.wat +++ b/tests/disas/winch/aarch64/f32_convert_i64_s/locals.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x68 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -29,3 +36,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 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 eb9780b1b4d7..16d37096962b 100644 --- a/tests/disas/winch/aarch64/f32_convert_i64_s/params.wat +++ b/tests/disas/winch/aarch64/f32_convert_i64_s/params.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x64 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -26,3 +33,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 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 6c5eaeb78374..bb5338d52e5c 100644 --- a/tests/disas/winch/aarch64/f32_convert_i64_s/spilled.wat +++ b/tests/disas/winch/aarch64/f32_convert_i64_s/spilled.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x14 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x7c +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -34,3 +41,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 7c: .byte 0x1f, 0xc1, 0x00, 0x00 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 3b11b6a51d88..5ba1d68ef3e2 100644 --- a/tests/disas/winch/aarch64/f32_convert_i64_u/const.wat +++ b/tests/disas/winch/aarch64/f32_convert_i64_u/const.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x64 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -26,3 +33,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 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 f9f0cb4447c5..b043a1889a87 100644 --- a/tests/disas/winch/aarch64/f32_convert_i64_u/locals.wat +++ b/tests/disas/winch/aarch64/f32_convert_i64_u/locals.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x68 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -29,3 +36,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 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 edf64f92bf70..8a72730b6dd4 100644 --- a/tests/disas/winch/aarch64/f32_convert_i64_u/params.wat +++ b/tests/disas/winch/aarch64/f32_convert_i64_u/params.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x64 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -26,3 +33,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 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 e7db45aaf7e9..e9592bc0325f 100644 --- a/tests/disas/winch/aarch64/f32_convert_i64_u/spilled.wat +++ b/tests/disas/winch/aarch64/f32_convert_i64_u/spilled.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x14 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x7c +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -34,3 +41,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 7c: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/f32_copysign/const.wat b/tests/disas/winch/aarch64/f32_copysign/const.wat index 87586cdff3a7..940d54f98ce9 100644 --- a/tests/disas/winch/aarch64/f32_copysign/const.wat +++ b/tests/disas/winch/aarch64/f32_copysign/const.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x7c +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -33,3 +40,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 7c: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/f32_copysign/locals.wat b/tests/disas/winch/aarch64/f32_copysign/locals.wat index 924a6ce6991c..ad56910f0bb3 100644 --- a/tests/disas/winch/aarch64/f32_copysign/locals.wat +++ b/tests/disas/winch/aarch64/f32_copysign/locals.wat @@ -22,7 +22,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x94 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -48,3 +55,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 94: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/f32_copysign/params.wat b/tests/disas/winch/aarch64/f32_copysign/params.wat index b5e5a377ce8e..93960d5d1ab2 100644 --- a/tests/disas/winch/aarch64/f32_copysign/params.wat +++ b/tests/disas/winch/aarch64/f32_copysign/params.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x74 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -31,3 +38,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 74: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/f32_demote_f64/const.wat b/tests/disas/winch/aarch64/f32_demote_f64/const.wat index b78619cbd101..3fca15acd127 100644 --- a/tests/disas/winch/aarch64/f32_demote_f64/const.wat +++ b/tests/disas/winch/aarch64/f32_demote_f64/const.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x64 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -26,3 +33,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/f32_demote_f64/locals.wat b/tests/disas/winch/aarch64/f32_demote_f64/locals.wat index 1a120c176b8c..ffc7f59d0e8d 100644 --- a/tests/disas/winch/aarch64/f32_demote_f64/locals.wat +++ b/tests/disas/winch/aarch64/f32_demote_f64/locals.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x68 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -29,3 +36,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/f32_demote_f64/params.wat b/tests/disas/winch/aarch64/f32_demote_f64/params.wat index cd4666ff9d67..286b9b84a7e7 100644 --- a/tests/disas/winch/aarch64/f32_demote_f64/params.wat +++ b/tests/disas/winch/aarch64/f32_demote_f64/params.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x64 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -26,3 +33,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/f32_div/const.wat b/tests/disas/winch/aarch64/f32_div/const.wat index 584fa37933fd..e01b7751d47a 100644 --- a/tests/disas/winch/aarch64/f32_div/const.wat +++ b/tests/disas/winch/aarch64/f32_div/const.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x78 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -32,3 +39,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 78: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/f32_div/locals.wat b/tests/disas/winch/aarch64/f32_div/locals.wat index 26802c528c9c..63625a9b772d 100644 --- a/tests/disas/winch/aarch64/f32_div/locals.wat +++ b/tests/disas/winch/aarch64/f32_div/locals.wat @@ -22,7 +22,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x90 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -47,3 +54,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 90: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/f32_div/params.wat b/tests/disas/winch/aarch64/f32_div/params.wat index 468b237e3497..0f50261267bd 100644 --- a/tests/disas/winch/aarch64/f32_div/params.wat +++ b/tests/disas/winch/aarch64/f32_div/params.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x70 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -30,3 +37,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/f32_eq/const.wat b/tests/disas/winch/aarch64/f32_eq/const.wat index bdc85c2dc5c8..7757b0f8f020 100644 --- a/tests/disas/winch/aarch64/f32_eq/const.wat +++ b/tests/disas/winch/aarch64/f32_eq/const.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x70 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -31,3 +38,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/f32_eq/locals.wat b/tests/disas/winch/aarch64/f32_eq/locals.wat index 78ca473f43c9..2d259c749901 100644 --- a/tests/disas/winch/aarch64/f32_eq/locals.wat +++ b/tests/disas/winch/aarch64/f32_eq/locals.wat @@ -22,7 +22,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x88 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -45,3 +52,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 88: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/f32_eq/params.wat b/tests/disas/winch/aarch64/f32_eq/params.wat index ab0973af610d..cf1aeef9d963 100644 --- a/tests/disas/winch/aarch64/f32_eq/params.wat +++ b/tests/disas/winch/aarch64/f32_eq/params.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x70 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -30,3 +37,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 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 d5c1b1f4275e..6a39afe330dd 100644 --- a/tests/disas/winch/aarch64/f32_floor/f32_floor_const.wat +++ b/tests/disas/winch/aarch64/f32_floor/f32_floor_const.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x68 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -27,3 +34,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 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 03dc83386a99..b7cc321a225e 100644 --- a/tests/disas/winch/aarch64/f32_floor/f32_floor_param.wat +++ b/tests/disas/winch/aarch64/f32_floor/f32_floor_param.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x64 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -26,3 +33,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/f32_ge/const.wat b/tests/disas/winch/aarch64/f32_ge/const.wat index a844a59bdd8e..5610097c1ba1 100644 --- a/tests/disas/winch/aarch64/f32_ge/const.wat +++ b/tests/disas/winch/aarch64/f32_ge/const.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x70 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -31,3 +38,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/f32_ge/locals.wat b/tests/disas/winch/aarch64/f32_ge/locals.wat index 942abd87a5c2..a3b4e65384f4 100644 --- a/tests/disas/winch/aarch64/f32_ge/locals.wat +++ b/tests/disas/winch/aarch64/f32_ge/locals.wat @@ -22,7 +22,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x88 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -45,3 +52,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 88: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/f32_ge/params.wat b/tests/disas/winch/aarch64/f32_ge/params.wat index f2ee68079c98..e9b8dd96a2d7 100644 --- a/tests/disas/winch/aarch64/f32_ge/params.wat +++ b/tests/disas/winch/aarch64/f32_ge/params.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x70 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -30,3 +37,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/f32_gt/const.wat b/tests/disas/winch/aarch64/f32_gt/const.wat index 91c7a4f54368..9119a5d75ae9 100644 --- a/tests/disas/winch/aarch64/f32_gt/const.wat +++ b/tests/disas/winch/aarch64/f32_gt/const.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x70 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -31,3 +38,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/f32_gt/locals.wat b/tests/disas/winch/aarch64/f32_gt/locals.wat index 5848d447b8af..8f32e20bf498 100644 --- a/tests/disas/winch/aarch64/f32_gt/locals.wat +++ b/tests/disas/winch/aarch64/f32_gt/locals.wat @@ -22,7 +22,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x88 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -45,3 +52,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 88: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/f32_gt/params.wat b/tests/disas/winch/aarch64/f32_gt/params.wat index 4da6394e8581..c59bb70eb7ce 100644 --- a/tests/disas/winch/aarch64/f32_gt/params.wat +++ b/tests/disas/winch/aarch64/f32_gt/params.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x70 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -30,3 +37,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/f32_le/const.wat b/tests/disas/winch/aarch64/f32_le/const.wat index 514c565fa4c8..6c206e9270a9 100644 --- a/tests/disas/winch/aarch64/f32_le/const.wat +++ b/tests/disas/winch/aarch64/f32_le/const.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x70 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -31,3 +38,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/f32_le/locals.wat b/tests/disas/winch/aarch64/f32_le/locals.wat index a17089a1164a..48fe8f4deeda 100644 --- a/tests/disas/winch/aarch64/f32_le/locals.wat +++ b/tests/disas/winch/aarch64/f32_le/locals.wat @@ -22,7 +22,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x88 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -45,3 +52,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 88: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/f32_le/params.wat b/tests/disas/winch/aarch64/f32_le/params.wat index c13eb0deb652..c704f3ad8307 100644 --- a/tests/disas/winch/aarch64/f32_le/params.wat +++ b/tests/disas/winch/aarch64/f32_le/params.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x70 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -30,3 +37,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/f32_lt/const.wat b/tests/disas/winch/aarch64/f32_lt/const.wat index acc16ad4f6cf..31bd93a06389 100644 --- a/tests/disas/winch/aarch64/f32_lt/const.wat +++ b/tests/disas/winch/aarch64/f32_lt/const.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x70 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -31,3 +38,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/f32_lt/locals.wat b/tests/disas/winch/aarch64/f32_lt/locals.wat index 9719f8ef3282..8cea90059d61 100644 --- a/tests/disas/winch/aarch64/f32_lt/locals.wat +++ b/tests/disas/winch/aarch64/f32_lt/locals.wat @@ -22,7 +22,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x88 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -45,3 +52,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 88: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/f32_lt/params.wat b/tests/disas/winch/aarch64/f32_lt/params.wat index dd96a8fa8a8e..ec9400b561ef 100644 --- a/tests/disas/winch/aarch64/f32_lt/params.wat +++ b/tests/disas/winch/aarch64/f32_lt/params.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x70 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -30,3 +37,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/f32_max/const.wat b/tests/disas/winch/aarch64/f32_max/const.wat index d7c9c34e385b..8f9e03e63e2f 100644 --- a/tests/disas/winch/aarch64/f32_max/const.wat +++ b/tests/disas/winch/aarch64/f32_max/const.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x78 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -32,3 +39,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 78: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/f32_max/locals.wat b/tests/disas/winch/aarch64/f32_max/locals.wat index aa80dcf6f339..cbf728ec8fb2 100644 --- a/tests/disas/winch/aarch64/f32_max/locals.wat +++ b/tests/disas/winch/aarch64/f32_max/locals.wat @@ -22,7 +22,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x90 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -47,3 +54,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 90: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/f32_max/params.wat b/tests/disas/winch/aarch64/f32_max/params.wat index 9b0c9bc12286..2be7d2c7d0ab 100644 --- a/tests/disas/winch/aarch64/f32_max/params.wat +++ b/tests/disas/winch/aarch64/f32_max/params.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x70 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -30,3 +37,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/f32_min/const.wat b/tests/disas/winch/aarch64/f32_min/const.wat index ebe91ffeb83c..9399967b87e1 100644 --- a/tests/disas/winch/aarch64/f32_min/const.wat +++ b/tests/disas/winch/aarch64/f32_min/const.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x78 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -32,3 +39,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 78: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/f32_min/locals.wat b/tests/disas/winch/aarch64/f32_min/locals.wat index 44199a554928..05e47c371e71 100644 --- a/tests/disas/winch/aarch64/f32_min/locals.wat +++ b/tests/disas/winch/aarch64/f32_min/locals.wat @@ -22,7 +22,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x90 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -47,3 +54,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 90: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/f32_min/params.wat b/tests/disas/winch/aarch64/f32_min/params.wat index cc3d588c1279..0bf37de44a5c 100644 --- a/tests/disas/winch/aarch64/f32_min/params.wat +++ b/tests/disas/winch/aarch64/f32_min/params.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x70 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -30,3 +37,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/f32_mul/const.wat b/tests/disas/winch/aarch64/f32_mul/const.wat index 331f05b98df4..d4a0207399ad 100644 --- a/tests/disas/winch/aarch64/f32_mul/const.wat +++ b/tests/disas/winch/aarch64/f32_mul/const.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x78 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -32,3 +39,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 78: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/f32_mul/locals.wat b/tests/disas/winch/aarch64/f32_mul/locals.wat index 6d6108f48af0..774e152b6fe5 100644 --- a/tests/disas/winch/aarch64/f32_mul/locals.wat +++ b/tests/disas/winch/aarch64/f32_mul/locals.wat @@ -22,7 +22,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x90 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -47,3 +54,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 90: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/f32_mul/params.wat b/tests/disas/winch/aarch64/f32_mul/params.wat index 7ea4bc11869d..8512a535aa71 100644 --- a/tests/disas/winch/aarch64/f32_mul/params.wat +++ b/tests/disas/winch/aarch64/f32_mul/params.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x70 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -30,3 +37,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/f32_ne/const.wat b/tests/disas/winch/aarch64/f32_ne/const.wat index 290ac18d3b52..f2a7d884a18b 100644 --- a/tests/disas/winch/aarch64/f32_ne/const.wat +++ b/tests/disas/winch/aarch64/f32_ne/const.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x70 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -31,3 +38,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/f32_ne/locals.wat b/tests/disas/winch/aarch64/f32_ne/locals.wat index 4a589a584616..d77ad3f29569 100644 --- a/tests/disas/winch/aarch64/f32_ne/locals.wat +++ b/tests/disas/winch/aarch64/f32_ne/locals.wat @@ -22,7 +22,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x88 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -45,3 +52,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 88: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/f32_ne/params.wat b/tests/disas/winch/aarch64/f32_ne/params.wat index 5f33c3d14ffa..02ec036714ae 100644 --- a/tests/disas/winch/aarch64/f32_ne/params.wat +++ b/tests/disas/winch/aarch64/f32_ne/params.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x70 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -30,3 +37,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 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 8b8892567faf..dad40da4bbd5 100644 --- a/tests/disas/winch/aarch64/f32_nearest/f32_nearest_const.wat +++ b/tests/disas/winch/aarch64/f32_nearest/f32_nearest_const.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x68 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -27,3 +34,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 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 ae3855c40635..9a81f1958750 100644 --- a/tests/disas/winch/aarch64/f32_nearest/f32_nearest_param.wat +++ b/tests/disas/winch/aarch64/f32_nearest/f32_nearest_param.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x64 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -26,3 +33,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 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 d69fb098e482..879bfdd85dae 100644 --- a/tests/disas/winch/aarch64/f32_neg/f32_neg_const.wat +++ b/tests/disas/winch/aarch64/f32_neg/f32_neg_const.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x68 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -27,3 +34,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 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 c293f7375fc4..1d6859821ec3 100644 --- a/tests/disas/winch/aarch64/f32_neg/f32_neg_param.wat +++ b/tests/disas/winch/aarch64/f32_neg/f32_neg_param.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x64 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -26,3 +33,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/f32_reinterpret_i32/const.wat b/tests/disas/winch/aarch64/f32_reinterpret_i32/const.wat index 05dab6128406..9803b6f51225 100644 --- a/tests/disas/winch/aarch64/f32_reinterpret_i32/const.wat +++ b/tests/disas/winch/aarch64/f32_reinterpret_i32/const.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x64 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -26,3 +33,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/f32_reinterpret_i32/locals.wat b/tests/disas/winch/aarch64/f32_reinterpret_i32/locals.wat index d80c01f5ef34..6ea3200976f5 100644 --- a/tests/disas/winch/aarch64/f32_reinterpret_i32/locals.wat +++ b/tests/disas/winch/aarch64/f32_reinterpret_i32/locals.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x68 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -29,3 +36,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/f32_reinterpret_i32/params.wat b/tests/disas/winch/aarch64/f32_reinterpret_i32/params.wat index 34efd106a7ab..dac3ae206ecd 100644 --- a/tests/disas/winch/aarch64/f32_reinterpret_i32/params.wat +++ b/tests/disas/winch/aarch64/f32_reinterpret_i32/params.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x64 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -26,3 +33,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 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 11de4f7ec335..012f2febf48e 100644 --- a/tests/disas/winch/aarch64/f32_reinterpret_i32/ret_int.wat +++ b/tests/disas/winch/aarch64/f32_reinterpret_i32/ret_int.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x6c +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -30,3 +37,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 6c: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/f32_reinterpret_i32/spilled.wat b/tests/disas/winch/aarch64/f32_reinterpret_i32/spilled.wat index 0303cf2939cf..5297f5e6d1de 100644 --- a/tests/disas/winch/aarch64/f32_reinterpret_i32/spilled.wat +++ b/tests/disas/winch/aarch64/f32_reinterpret_i32/spilled.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x14 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x7c +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -34,3 +41,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 7c: .byte 0x1f, 0xc1, 0x00, 0x00 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 160b6a1dcec0..6f6adb208d56 100644 --- a/tests/disas/winch/aarch64/f32_sqrt/f32_sqrt_const.wat +++ b/tests/disas/winch/aarch64/f32_sqrt/f32_sqrt_const.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x68 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -27,3 +34,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 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 0faa160352db..3d2058b1becf 100644 --- a/tests/disas/winch/aarch64/f32_sqrt/f32_sqrt_param.wat +++ b/tests/disas/winch/aarch64/f32_sqrt/f32_sqrt_param.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x64 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -26,3 +33,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/f32_sub/const.wat b/tests/disas/winch/aarch64/f32_sub/const.wat index 8e214af3d567..055726758ca0 100644 --- a/tests/disas/winch/aarch64/f32_sub/const.wat +++ b/tests/disas/winch/aarch64/f32_sub/const.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x78 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -32,3 +39,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 78: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/f32_sub/locals.wat b/tests/disas/winch/aarch64/f32_sub/locals.wat index 83a787b712d2..09d5751dfc16 100644 --- a/tests/disas/winch/aarch64/f32_sub/locals.wat +++ b/tests/disas/winch/aarch64/f32_sub/locals.wat @@ -22,7 +22,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x90 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -47,3 +54,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 90: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/f32_sub/params.wat b/tests/disas/winch/aarch64/f32_sub/params.wat index 24f312ffc2a9..ea541caa1446 100644 --- a/tests/disas/winch/aarch64/f32_sub/params.wat +++ b/tests/disas/winch/aarch64/f32_sub/params.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x70 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -30,3 +37,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 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 81b9c8fb45c5..39d8a9060e7e 100644 --- a/tests/disas/winch/aarch64/f32_trunc/f32_trunc_const.wat +++ b/tests/disas/winch/aarch64/f32_trunc/f32_trunc_const.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x68 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -27,3 +34,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 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 244c31f24687..e42c4170da67 100644 --- a/tests/disas/winch/aarch64/f32_trunc/f32_trunc_param.wat +++ b/tests/disas/winch/aarch64/f32_trunc/f32_trunc_param.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x64 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -26,3 +33,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 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 0c3361dc81cf..4dc190a83826 100644 --- a/tests/disas/winch/aarch64/f64_abs/f64_abs_const.wat +++ b/tests/disas/winch/aarch64/f64_abs/f64_abs_const.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x70 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -29,3 +36,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 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 add51de7fb71..7ac51d376005 100644 --- a/tests/disas/winch/aarch64/f64_abs/f64_abs_param.wat +++ b/tests/disas/winch/aarch64/f64_abs/f64_abs_param.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x64 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -26,3 +33,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/f64_add/const.wat b/tests/disas/winch/aarch64/f64_add/const.wat index c2dc1bb2f7fe..77c1142f66e6 100644 --- a/tests/disas/winch/aarch64/f64_add/const.wat +++ b/tests/disas/winch/aarch64/f64_add/const.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x88 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -36,3 +43,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 88: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/f64_add/locals.wat b/tests/disas/winch/aarch64/f64_add/locals.wat index 9beb0badf1de..1939ec33e056 100644 --- a/tests/disas/winch/aarch64/f64_add/locals.wat +++ b/tests/disas/winch/aarch64/f64_add/locals.wat @@ -22,7 +22,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x20 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0xa4 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x20 ;; mov sp, x28 ;; stur x0, [x28, #0x18] @@ -52,3 +59,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; a4: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/f64_add/params.wat b/tests/disas/winch/aarch64/f64_add/params.wat index 5189f37da4b5..40c1bf910e02 100644 --- a/tests/disas/winch/aarch64/f64_add/params.wat +++ b/tests/disas/winch/aarch64/f64_add/params.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x20 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x70 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x20 ;; mov sp, x28 ;; stur x0, [x28, #0x18] @@ -30,3 +37,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 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 100c7964c6ac..92a4f43d8247 100644 --- a/tests/disas/winch/aarch64/f64_ceil/f64_ceil_const.wat +++ b/tests/disas/winch/aarch64/f64_ceil/f64_ceil_const.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x70 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -29,3 +36,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 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 3e210f8143a8..3fe784732dab 100644 --- a/tests/disas/winch/aarch64/f64_ceil/f64_ceil_param.wat +++ b/tests/disas/winch/aarch64/f64_ceil/f64_ceil_param.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x64 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -26,3 +33,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 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 b0d777905a31..0b2eacbbb691 100644 --- a/tests/disas/winch/aarch64/f64_convert_i32_s/const.wat +++ b/tests/disas/winch/aarch64/f64_convert_i32_s/const.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x64 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -26,3 +33,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 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 4987dcfa490b..f13bc9618971 100644 --- a/tests/disas/winch/aarch64/f64_convert_i32_s/locals.wat +++ b/tests/disas/winch/aarch64/f64_convert_i32_s/locals.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x68 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -29,3 +36,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 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 b23a49762006..724d7a5bbb71 100644 --- a/tests/disas/winch/aarch64/f64_convert_i32_s/params.wat +++ b/tests/disas/winch/aarch64/f64_convert_i32_s/params.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x64 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -26,3 +33,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 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 3ce4f65ca770..c9dddee738b3 100644 --- a/tests/disas/winch/aarch64/f64_convert_i32_s/spilled.wat +++ b/tests/disas/winch/aarch64/f64_convert_i32_s/spilled.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x7c +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -34,3 +41,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 7c: .byte 0x1f, 0xc1, 0x00, 0x00 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 92cdcce1c0e1..47c9568a8633 100644 --- a/tests/disas/winch/aarch64/f64_convert_i32_u/const.wat +++ b/tests/disas/winch/aarch64/f64_convert_i32_u/const.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x64 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -26,3 +33,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 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 0bc88187a63e..60c848cc2069 100644 --- a/tests/disas/winch/aarch64/f64_convert_i32_u/locals.wat +++ b/tests/disas/winch/aarch64/f64_convert_i32_u/locals.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x68 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -29,3 +36,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 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 ea4da51dec06..a3085ff17e9a 100644 --- a/tests/disas/winch/aarch64/f64_convert_i32_u/params.wat +++ b/tests/disas/winch/aarch64/f64_convert_i32_u/params.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x64 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -26,3 +33,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 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 3037d3186b53..7696a5e65c66 100644 --- a/tests/disas/winch/aarch64/f64_convert_i32_u/spilled.wat +++ b/tests/disas/winch/aarch64/f64_convert_i32_u/spilled.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x7c +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -34,3 +41,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 7c: .byte 0x1f, 0xc1, 0x00, 0x00 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 10972740b5a4..64f0bc7f53b3 100644 --- a/tests/disas/winch/aarch64/f64_convert_i64_s/const.wat +++ b/tests/disas/winch/aarch64/f64_convert_i64_s/const.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x64 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -26,3 +33,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 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 39ba1b9b8007..5f0fb98bbb6d 100644 --- a/tests/disas/winch/aarch64/f64_convert_i64_s/locals.wat +++ b/tests/disas/winch/aarch64/f64_convert_i64_s/locals.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x68 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -29,3 +36,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 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 8f9e0a4ffa69..8b09ba135b0b 100644 --- a/tests/disas/winch/aarch64/f64_convert_i64_s/params.wat +++ b/tests/disas/winch/aarch64/f64_convert_i64_s/params.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x64 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -26,3 +33,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 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 9cd40ec38605..9ad1fefac83e 100644 --- a/tests/disas/winch/aarch64/f64_convert_i64_s/spilled.wat +++ b/tests/disas/winch/aarch64/f64_convert_i64_s/spilled.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x7c +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -34,3 +41,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 7c: .byte 0x1f, 0xc1, 0x00, 0x00 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 12c6565565d8..06fff742acec 100644 --- a/tests/disas/winch/aarch64/f64_convert_i64_u/const.wat +++ b/tests/disas/winch/aarch64/f64_convert_i64_u/const.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x64 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -26,3 +33,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 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 3c2c513c14c6..89e5c5faf37d 100644 --- a/tests/disas/winch/aarch64/f64_convert_i64_u/locals.wat +++ b/tests/disas/winch/aarch64/f64_convert_i64_u/locals.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x68 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -29,3 +36,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 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 3ad879dd85d0..36e5d271507b 100644 --- a/tests/disas/winch/aarch64/f64_convert_i64_u/params.wat +++ b/tests/disas/winch/aarch64/f64_convert_i64_u/params.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x64 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -26,3 +33,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 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 0ccfb3d4c094..12598d2712e5 100644 --- a/tests/disas/winch/aarch64/f64_convert_i64_u/spilled.wat +++ b/tests/disas/winch/aarch64/f64_convert_i64_u/spilled.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x7c +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -34,3 +41,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 7c: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/f64_copysign/const.wat b/tests/disas/winch/aarch64/f64_copysign/const.wat index 37299471d140..2a6fe8008699 100644 --- a/tests/disas/winch/aarch64/f64_copysign/const.wat +++ b/tests/disas/winch/aarch64/f64_copysign/const.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x8c +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -37,3 +44,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 8c: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/f64_copysign/locals.wat b/tests/disas/winch/aarch64/f64_copysign/locals.wat index 0aafbd1500cc..98ae443b70e4 100644 --- a/tests/disas/winch/aarch64/f64_copysign/locals.wat +++ b/tests/disas/winch/aarch64/f64_copysign/locals.wat @@ -22,7 +22,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x20 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0xa8 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x20 ;; mov sp, x28 ;; stur x0, [x28, #0x18] @@ -53,3 +60,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; a8: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/f64_copysign/params.wat b/tests/disas/winch/aarch64/f64_copysign/params.wat index f82ef9718ee1..31bb216e5692 100644 --- a/tests/disas/winch/aarch64/f64_copysign/params.wat +++ b/tests/disas/winch/aarch64/f64_copysign/params.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x20 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x74 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x20 ;; mov sp, x28 ;; stur x0, [x28, #0x18] @@ -31,3 +38,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 74: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/f64_div/const.wat b/tests/disas/winch/aarch64/f64_div/const.wat index ae95dbe240c7..594d7ce182ac 100644 --- a/tests/disas/winch/aarch64/f64_div/const.wat +++ b/tests/disas/winch/aarch64/f64_div/const.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x88 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -36,3 +43,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 88: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/f64_div/locals.wat b/tests/disas/winch/aarch64/f64_div/locals.wat index 4f3a3d6679c5..d7151aa877c0 100644 --- a/tests/disas/winch/aarch64/f64_div/locals.wat +++ b/tests/disas/winch/aarch64/f64_div/locals.wat @@ -22,7 +22,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x20 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0xa4 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x20 ;; mov sp, x28 ;; stur x0, [x28, #0x18] @@ -52,3 +59,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; a4: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/f64_div/params.wat b/tests/disas/winch/aarch64/f64_div/params.wat index 0611d249e543..870b6cd63f39 100644 --- a/tests/disas/winch/aarch64/f64_div/params.wat +++ b/tests/disas/winch/aarch64/f64_div/params.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x20 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x70 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x20 ;; mov sp, x28 ;; stur x0, [x28, #0x18] @@ -30,3 +37,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/f64_eq/const.wat b/tests/disas/winch/aarch64/f64_eq/const.wat index 9613d55b3972..4dd7470f02b2 100644 --- a/tests/disas/winch/aarch64/f64_eq/const.wat +++ b/tests/disas/winch/aarch64/f64_eq/const.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x70 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -31,3 +38,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/f64_eq/locals.wat b/tests/disas/winch/aarch64/f64_eq/locals.wat index 110d757bdbc3..d4abf5a7d424 100644 --- a/tests/disas/winch/aarch64/f64_eq/locals.wat +++ b/tests/disas/winch/aarch64/f64_eq/locals.wat @@ -22,7 +22,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x20 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x8c +;; 2c: mov x9, x0 ;; sub x28, x28, #0x20 ;; mov sp, x28 ;; stur x0, [x28, #0x18] @@ -46,3 +53,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 8c: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/f64_eq/params.wat b/tests/disas/winch/aarch64/f64_eq/params.wat index 706d10788124..3da9986cce0b 100644 --- a/tests/disas/winch/aarch64/f64_eq/params.wat +++ b/tests/disas/winch/aarch64/f64_eq/params.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x20 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x70 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x20 ;; mov sp, x28 ;; stur x0, [x28, #0x18] @@ -30,3 +37,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 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 59eab23432ba..296f82cad713 100644 --- a/tests/disas/winch/aarch64/f64_floor/f64_floor_const.wat +++ b/tests/disas/winch/aarch64/f64_floor/f64_floor_const.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x70 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -29,3 +36,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 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 584ffbcbed15..89c403b48a12 100644 --- a/tests/disas/winch/aarch64/f64_floor/f64_floor_param.wat +++ b/tests/disas/winch/aarch64/f64_floor/f64_floor_param.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x64 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -26,3 +33,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/f64_ge/const.wat b/tests/disas/winch/aarch64/f64_ge/const.wat index 1c7c0163d341..c0e3d96bc905 100644 --- a/tests/disas/winch/aarch64/f64_ge/const.wat +++ b/tests/disas/winch/aarch64/f64_ge/const.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x70 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -31,3 +38,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/f64_ge/locals.wat b/tests/disas/winch/aarch64/f64_ge/locals.wat index 0508c50ea199..26bf4d11f084 100644 --- a/tests/disas/winch/aarch64/f64_ge/locals.wat +++ b/tests/disas/winch/aarch64/f64_ge/locals.wat @@ -22,7 +22,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x20 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x8c +;; 2c: mov x9, x0 ;; sub x28, x28, #0x20 ;; mov sp, x28 ;; stur x0, [x28, #0x18] @@ -46,3 +53,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 8c: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/f64_ge/params.wat b/tests/disas/winch/aarch64/f64_ge/params.wat index 51cadc16a02c..adce3865247d 100644 --- a/tests/disas/winch/aarch64/f64_ge/params.wat +++ b/tests/disas/winch/aarch64/f64_ge/params.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x20 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x70 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x20 ;; mov sp, x28 ;; stur x0, [x28, #0x18] @@ -30,3 +37,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/f64_gt/const.wat b/tests/disas/winch/aarch64/f64_gt/const.wat index 5a63991ecb92..fa86f1a1606f 100644 --- a/tests/disas/winch/aarch64/f64_gt/const.wat +++ b/tests/disas/winch/aarch64/f64_gt/const.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x70 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -31,3 +38,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/f64_gt/locals.wat b/tests/disas/winch/aarch64/f64_gt/locals.wat index 62c9406ed4c3..7d503e0b7bc1 100644 --- a/tests/disas/winch/aarch64/f64_gt/locals.wat +++ b/tests/disas/winch/aarch64/f64_gt/locals.wat @@ -22,7 +22,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x20 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x8c +;; 2c: mov x9, x0 ;; sub x28, x28, #0x20 ;; mov sp, x28 ;; stur x0, [x28, #0x18] @@ -46,3 +53,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 8c: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/f64_gt/params.wat b/tests/disas/winch/aarch64/f64_gt/params.wat index 8ee2ae86397b..7667bc383860 100644 --- a/tests/disas/winch/aarch64/f64_gt/params.wat +++ b/tests/disas/winch/aarch64/f64_gt/params.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x20 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x70 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x20 ;; mov sp, x28 ;; stur x0, [x28, #0x18] @@ -30,3 +37,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/f64_le/const.wat b/tests/disas/winch/aarch64/f64_le/const.wat index 1560c928f005..641277f496fc 100644 --- a/tests/disas/winch/aarch64/f64_le/const.wat +++ b/tests/disas/winch/aarch64/f64_le/const.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x70 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -31,3 +38,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/f64_le/locals.wat b/tests/disas/winch/aarch64/f64_le/locals.wat index 02d332c881ea..6fabd387a8d7 100644 --- a/tests/disas/winch/aarch64/f64_le/locals.wat +++ b/tests/disas/winch/aarch64/f64_le/locals.wat @@ -22,7 +22,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x20 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x8c +;; 2c: mov x9, x0 ;; sub x28, x28, #0x20 ;; mov sp, x28 ;; stur x0, [x28, #0x18] @@ -46,3 +53,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 8c: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/f64_le/params.wat b/tests/disas/winch/aarch64/f64_le/params.wat index 617c3600774e..74c827ef7d48 100644 --- a/tests/disas/winch/aarch64/f64_le/params.wat +++ b/tests/disas/winch/aarch64/f64_le/params.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x20 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x70 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x20 ;; mov sp, x28 ;; stur x0, [x28, #0x18] @@ -30,3 +37,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/f64_lt/const.wat b/tests/disas/winch/aarch64/f64_lt/const.wat index 29d7579f471f..a7351dedad12 100644 --- a/tests/disas/winch/aarch64/f64_lt/const.wat +++ b/tests/disas/winch/aarch64/f64_lt/const.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x70 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -31,3 +38,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/f64_lt/locals.wat b/tests/disas/winch/aarch64/f64_lt/locals.wat index d16be48f02a7..f7e070f73364 100644 --- a/tests/disas/winch/aarch64/f64_lt/locals.wat +++ b/tests/disas/winch/aarch64/f64_lt/locals.wat @@ -22,7 +22,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x20 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x8c +;; 2c: mov x9, x0 ;; sub x28, x28, #0x20 ;; mov sp, x28 ;; stur x0, [x28, #0x18] @@ -46,3 +53,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 8c: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/f64_lt/params.wat b/tests/disas/winch/aarch64/f64_lt/params.wat index 4248b8f8278d..343f72e96fa3 100644 --- a/tests/disas/winch/aarch64/f64_lt/params.wat +++ b/tests/disas/winch/aarch64/f64_lt/params.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x20 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x70 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x20 ;; mov sp, x28 ;; stur x0, [x28, #0x18] @@ -30,3 +37,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/f64_max/const.wat b/tests/disas/winch/aarch64/f64_max/const.wat index 194c3369db25..ffe5ed7209b0 100644 --- a/tests/disas/winch/aarch64/f64_max/const.wat +++ b/tests/disas/winch/aarch64/f64_max/const.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x88 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -36,3 +43,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 88: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/f64_max/locals.wat b/tests/disas/winch/aarch64/f64_max/locals.wat index f85fed5ebffd..f2707321137f 100644 --- a/tests/disas/winch/aarch64/f64_max/locals.wat +++ b/tests/disas/winch/aarch64/f64_max/locals.wat @@ -22,7 +22,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x20 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0xa4 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x20 ;; mov sp, x28 ;; stur x0, [x28, #0x18] @@ -52,3 +59,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; a4: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/f64_max/params.wat b/tests/disas/winch/aarch64/f64_max/params.wat index d7c7eb63b806..353a8a173e60 100644 --- a/tests/disas/winch/aarch64/f64_max/params.wat +++ b/tests/disas/winch/aarch64/f64_max/params.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x20 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x70 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x20 ;; mov sp, x28 ;; stur x0, [x28, #0x18] @@ -30,3 +37,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/f64_min/const.wat b/tests/disas/winch/aarch64/f64_min/const.wat index 56fd27fe8bbe..f904f6e3f78e 100644 --- a/tests/disas/winch/aarch64/f64_min/const.wat +++ b/tests/disas/winch/aarch64/f64_min/const.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x88 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -36,3 +43,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 88: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/f64_min/locals.wat b/tests/disas/winch/aarch64/f64_min/locals.wat index 5ac425178884..d2e3fecac9b1 100644 --- a/tests/disas/winch/aarch64/f64_min/locals.wat +++ b/tests/disas/winch/aarch64/f64_min/locals.wat @@ -22,7 +22,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x20 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0xa4 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x20 ;; mov sp, x28 ;; stur x0, [x28, #0x18] @@ -52,3 +59,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; a4: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/f64_min/params.wat b/tests/disas/winch/aarch64/f64_min/params.wat index 2f4b1aede063..c821eaa62dc7 100644 --- a/tests/disas/winch/aarch64/f64_min/params.wat +++ b/tests/disas/winch/aarch64/f64_min/params.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x20 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x70 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x20 ;; mov sp, x28 ;; stur x0, [x28, #0x18] @@ -30,3 +37,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/f64_mul/const.wat b/tests/disas/winch/aarch64/f64_mul/const.wat index 545b1cf42a99..247668445ca3 100644 --- a/tests/disas/winch/aarch64/f64_mul/const.wat +++ b/tests/disas/winch/aarch64/f64_mul/const.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x88 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -36,3 +43,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 88: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/f64_mul/locals.wat b/tests/disas/winch/aarch64/f64_mul/locals.wat index a571dbc6316b..9361faf4aa0e 100644 --- a/tests/disas/winch/aarch64/f64_mul/locals.wat +++ b/tests/disas/winch/aarch64/f64_mul/locals.wat @@ -22,7 +22,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x20 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0xa4 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x20 ;; mov sp, x28 ;; stur x0, [x28, #0x18] @@ -52,3 +59,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; a4: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/f64_mul/params.wat b/tests/disas/winch/aarch64/f64_mul/params.wat index 86f877a89e76..ba4dec1545f6 100644 --- a/tests/disas/winch/aarch64/f64_mul/params.wat +++ b/tests/disas/winch/aarch64/f64_mul/params.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x20 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x70 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x20 ;; mov sp, x28 ;; stur x0, [x28, #0x18] @@ -30,3 +37,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/f64_ne/const.wat b/tests/disas/winch/aarch64/f64_ne/const.wat index 743620ac0e9a..2ece012fe2fe 100644 --- a/tests/disas/winch/aarch64/f64_ne/const.wat +++ b/tests/disas/winch/aarch64/f64_ne/const.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x70 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -31,3 +38,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/f64_ne/locals.wat b/tests/disas/winch/aarch64/f64_ne/locals.wat index 8d3504ae5a2d..7eb69e43ee40 100644 --- a/tests/disas/winch/aarch64/f64_ne/locals.wat +++ b/tests/disas/winch/aarch64/f64_ne/locals.wat @@ -22,7 +22,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x20 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x8c +;; 2c: mov x9, x0 ;; sub x28, x28, #0x20 ;; mov sp, x28 ;; stur x0, [x28, #0x18] @@ -46,3 +53,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 8c: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/f64_ne/params.wat b/tests/disas/winch/aarch64/f64_ne/params.wat index 276467eb0264..a178d5329d97 100644 --- a/tests/disas/winch/aarch64/f64_ne/params.wat +++ b/tests/disas/winch/aarch64/f64_ne/params.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x20 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x70 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x20 ;; mov sp, x28 ;; stur x0, [x28, #0x18] @@ -30,3 +37,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 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 3597575ff3f6..d90ef11285cb 100644 --- a/tests/disas/winch/aarch64/f64_nearest/f64_nearest_const.wat +++ b/tests/disas/winch/aarch64/f64_nearest/f64_nearest_const.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x70 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -29,3 +36,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 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 cd9e79baf5b0..f68aba109e15 100644 --- a/tests/disas/winch/aarch64/f64_nearest/f64_nearest_param.wat +++ b/tests/disas/winch/aarch64/f64_nearest/f64_nearest_param.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x64 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -26,3 +33,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 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 58a1340c2437..8f02235d7677 100644 --- a/tests/disas/winch/aarch64/f64_neg/f64_neg_const.wat +++ b/tests/disas/winch/aarch64/f64_neg/f64_neg_const.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x70 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -29,3 +36,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 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 2a67827337e3..87fa8de361c4 100644 --- a/tests/disas/winch/aarch64/f64_neg/f64_neg_param.wat +++ b/tests/disas/winch/aarch64/f64_neg/f64_neg_param.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x64 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -26,3 +33,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/f64_promote_f32/const.wat b/tests/disas/winch/aarch64/f64_promote_f32/const.wat index 700768d85ade..d9b7caf8c930 100644 --- a/tests/disas/winch/aarch64/f64_promote_f32/const.wat +++ b/tests/disas/winch/aarch64/f64_promote_f32/const.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x64 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -26,3 +33,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/f64_promote_f32/locals.wat b/tests/disas/winch/aarch64/f64_promote_f32/locals.wat index 0fe5eb90cdbe..f60cd611cad7 100644 --- a/tests/disas/winch/aarch64/f64_promote_f32/locals.wat +++ b/tests/disas/winch/aarch64/f64_promote_f32/locals.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x68 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -29,3 +36,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/f64_promote_f32/params.wat b/tests/disas/winch/aarch64/f64_promote_f32/params.wat index 75d0d7ed9cfb..4f44b8a3188f 100644 --- a/tests/disas/winch/aarch64/f64_promote_f32/params.wat +++ b/tests/disas/winch/aarch64/f64_promote_f32/params.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x64 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -26,3 +33,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/f64_reinterpret_i64/const.wat b/tests/disas/winch/aarch64/f64_reinterpret_i64/const.wat index 22b9424a5a59..e58eec17b5fa 100644 --- a/tests/disas/winch/aarch64/f64_reinterpret_i64/const.wat +++ b/tests/disas/winch/aarch64/f64_reinterpret_i64/const.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x64 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -26,3 +33,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/f64_reinterpret_i64/locals.wat b/tests/disas/winch/aarch64/f64_reinterpret_i64/locals.wat index b7be39fd8f2e..273b7e05f303 100644 --- a/tests/disas/winch/aarch64/f64_reinterpret_i64/locals.wat +++ b/tests/disas/winch/aarch64/f64_reinterpret_i64/locals.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x68 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -29,3 +36,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/f64_reinterpret_i64/params.wat b/tests/disas/winch/aarch64/f64_reinterpret_i64/params.wat index 3ecc42ffbefe..04c04fdc625b 100644 --- a/tests/disas/winch/aarch64/f64_reinterpret_i64/params.wat +++ b/tests/disas/winch/aarch64/f64_reinterpret_i64/params.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x64 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -26,3 +33,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 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 d198b311e841..ed95105355c3 100644 --- a/tests/disas/winch/aarch64/f64_reinterpret_i64/ret_int.wat +++ b/tests/disas/winch/aarch64/f64_reinterpret_i64/ret_int.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x6c +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -30,3 +37,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 6c: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/f64_reinterpret_i64/spilled.wat b/tests/disas/winch/aarch64/f64_reinterpret_i64/spilled.wat index f66a7c95a38a..fe691657c887 100644 --- a/tests/disas/winch/aarch64/f64_reinterpret_i64/spilled.wat +++ b/tests/disas/winch/aarch64/f64_reinterpret_i64/spilled.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x7c +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -34,3 +41,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 7c: .byte 0x1f, 0xc1, 0x00, 0x00 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 65a39d9d5a96..7c78ad340378 100644 --- a/tests/disas/winch/aarch64/f64_sqrt/f64_sqrt_const.wat +++ b/tests/disas/winch/aarch64/f64_sqrt/f64_sqrt_const.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x70 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -29,3 +36,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 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 f256d06121aa..6cd904f780a7 100644 --- a/tests/disas/winch/aarch64/f64_sqrt/f64_sqrt_param.wat +++ b/tests/disas/winch/aarch64/f64_sqrt/f64_sqrt_param.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x64 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -26,3 +33,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/f64_sub/const.wat b/tests/disas/winch/aarch64/f64_sub/const.wat index c72421190e8d..ca4442102bb3 100644 --- a/tests/disas/winch/aarch64/f64_sub/const.wat +++ b/tests/disas/winch/aarch64/f64_sub/const.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x88 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -36,3 +43,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 88: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/f64_sub/locals.wat b/tests/disas/winch/aarch64/f64_sub/locals.wat index af72871f8890..85759784b969 100644 --- a/tests/disas/winch/aarch64/f64_sub/locals.wat +++ b/tests/disas/winch/aarch64/f64_sub/locals.wat @@ -22,7 +22,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x20 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0xa4 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x20 ;; mov sp, x28 ;; stur x0, [x28, #0x18] @@ -52,3 +59,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; a4: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/f64_sub/params.wat b/tests/disas/winch/aarch64/f64_sub/params.wat index 8f26e2f3f0ab..8171944aed5a 100644 --- a/tests/disas/winch/aarch64/f64_sub/params.wat +++ b/tests/disas/winch/aarch64/f64_sub/params.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x20 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x70 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x20 ;; mov sp, x28 ;; stur x0, [x28, #0x18] @@ -30,3 +37,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 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 59aadc37f14e..96166f7cd966 100644 --- a/tests/disas/winch/aarch64/f64_trunc/f64_trunc_const.wat +++ b/tests/disas/winch/aarch64/f64_trunc/f64_trunc_const.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x70 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -29,3 +36,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 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 81b6c189509e..96187f0b2a29 100644 --- a/tests/disas/winch/aarch64/f64_trunc/f64_trunc_param.wat +++ b/tests/disas/winch/aarch64/f64_trunc/f64_trunc_param.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x64 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -26,3 +33,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_add/const.wat b/tests/disas/winch/aarch64/i32_add/const.wat index f8ff7882835a..13f888638f23 100644 --- a/tests/disas/winch/aarch64/i32_add/const.wat +++ b/tests/disas/winch/aarch64/i32_add/const.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x64 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -27,3 +34,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_add/locals.wat b/tests/disas/winch/aarch64/i32_add/locals.wat index 1698bc511275..638eb4b62e85 100644 --- a/tests/disas/winch/aarch64/i32_add/locals.wat +++ b/tests/disas/winch/aarch64/i32_add/locals.wat @@ -22,7 +22,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x88 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -45,3 +52,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 88: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_add/max.wat b/tests/disas/winch/aarch64/i32_add/max.wat index 3451acd23e0e..343a5b8a20d7 100644 --- a/tests/disas/winch/aarch64/i32_add/max.wat +++ b/tests/disas/winch/aarch64/i32_add/max.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x64 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -26,3 +33,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_add/max_one.wat b/tests/disas/winch/aarch64/i32_add/max_one.wat index 76ed402bcc5a..545a2359f718 100644 --- a/tests/disas/winch/aarch64/i32_add/max_one.wat +++ b/tests/disas/winch/aarch64/i32_add/max_one.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x68 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -28,3 +35,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_add/mixed.wat b/tests/disas/winch/aarch64/i32_add/mixed.wat index 09f8372da018..e9468cb5d92b 100644 --- a/tests/disas/winch/aarch64/i32_add/mixed.wat +++ b/tests/disas/winch/aarch64/i32_add/mixed.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x64 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -27,3 +34,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_add/params.wat b/tests/disas/winch/aarch64/i32_add/params.wat index 07d4606fd04d..7cab94b6fdb3 100644 --- a/tests/disas/winch/aarch64/i32_add/params.wat +++ b/tests/disas/winch/aarch64/i32_add/params.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x70 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -30,3 +37,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_add/signed.wat b/tests/disas/winch/aarch64/i32_add/signed.wat index fcfded855a2d..dee7e25a345d 100644 --- a/tests/disas/winch/aarch64/i32_add/signed.wat +++ b/tests/disas/winch/aarch64/i32_add/signed.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x68 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -28,3 +35,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 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 319f3aff7206..98549a306b62 100644 --- a/tests/disas/winch/aarch64/i32_add/unsigned_with_zero.wat +++ b/tests/disas/winch/aarch64/i32_add/unsigned_with_zero.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x64 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -27,3 +34,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_and/const.wat b/tests/disas/winch/aarch64/i32_and/const.wat index 8aebaf438b6e..ec8c0d9184b2 100644 --- a/tests/disas/winch/aarch64/i32_and/const.wat +++ b/tests/disas/winch/aarch64/i32_and/const.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x64 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -27,3 +34,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_and/locals.wat b/tests/disas/winch/aarch64/i32_and/locals.wat index 0ea4724b1b33..0dd04d91072c 100644 --- a/tests/disas/winch/aarch64/i32_and/locals.wat +++ b/tests/disas/winch/aarch64/i32_and/locals.wat @@ -22,7 +22,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x88 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -45,3 +52,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 88: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_and/params.wat b/tests/disas/winch/aarch64/i32_and/params.wat index 5a03e47a7780..6ebd044c33b0 100644 --- a/tests/disas/winch/aarch64/i32_and/params.wat +++ b/tests/disas/winch/aarch64/i32_and/params.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x70 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -30,3 +37,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_clz/const.wat b/tests/disas/winch/aarch64/i32_clz/const.wat index 0c212c8cd0e4..c8e603f2000a 100644 --- a/tests/disas/winch/aarch64/i32_clz/const.wat +++ b/tests/disas/winch/aarch64/i32_clz/const.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x64 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -26,3 +33,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_clz/locals.wat b/tests/disas/winch/aarch64/i32_clz/locals.wat index 2ccbafd377b5..ddb0d8b0e6fa 100644 --- a/tests/disas/winch/aarch64/i32_clz/locals.wat +++ b/tests/disas/winch/aarch64/i32_clz/locals.wat @@ -16,7 +16,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x70 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -33,3 +40,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_clz/params.wat b/tests/disas/winch/aarch64/i32_clz/params.wat index 4b16f68c5f72..9d78b5198ab4 100644 --- a/tests/disas/winch/aarch64/i32_clz/params.wat +++ b/tests/disas/winch/aarch64/i32_clz/params.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x64 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -26,3 +33,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_ctz/const.wat b/tests/disas/winch/aarch64/i32_ctz/const.wat index db97675d3acf..be1be9552376 100644 --- a/tests/disas/winch/aarch64/i32_ctz/const.wat +++ b/tests/disas/winch/aarch64/i32_ctz/const.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x68 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -27,3 +34,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_ctz/locals.wat b/tests/disas/winch/aarch64/i32_ctz/locals.wat index 8d1d5626de61..b9948024469c 100644 --- a/tests/disas/winch/aarch64/i32_ctz/locals.wat +++ b/tests/disas/winch/aarch64/i32_ctz/locals.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x74 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -32,3 +39,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 74: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_ctz/params.wat b/tests/disas/winch/aarch64/i32_ctz/params.wat index b04296b8e8e3..f550f42a18ea 100644 --- a/tests/disas/winch/aarch64/i32_ctz/params.wat +++ b/tests/disas/winch/aarch64/i32_ctz/params.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x68 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -27,3 +34,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_divs/const.wat b/tests/disas/winch/aarch64/i32_divs/const.wat index eb508facf17b..c7adc44f8a02 100644 --- a/tests/disas/winch/aarch64/i32_divs/const.wat +++ b/tests/disas/winch/aarch64/i32_divs/const.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x88 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -23,11 +30,11 @@ ;; mov w0, w16 ;; mov x16, #0x14 ;; mov w1, w16 -;; cbz w0, #0x6c -;; 38: cmn w0, #1 +;; cbz w0, #0x8c +;; 54: cmn w0, #1 ;; ccmp w1, #1, #0, eq -;; b.vs #0x70 -;; 44: sxtw x0, w0 +;; b.vs #0x90 +;; 60: sxtw x0, w0 ;; sxtw x1, w1 ;; sdiv x1, x1, x0 ;; mov w0, w1 @@ -37,5 +44,6 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 6c: .byte 0x1f, 0xc1, 0x00, 0x00 -;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 88: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 8c: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 90: .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 97f38c3013dc..88215123b779 100644 --- a/tests/disas/winch/aarch64/i32_divs/one_zero.wat +++ b/tests/disas/winch/aarch64/i32_divs/one_zero.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x88 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -23,11 +30,11 @@ ;; mov w0, w16 ;; mov x16, #1 ;; mov w1, w16 -;; cbz w0, #0x6c -;; 38: cmn w0, #1 +;; cbz w0, #0x8c +;; 54: cmn w0, #1 ;; ccmp w1, #1, #0, eq -;; b.vs #0x70 -;; 44: sxtw x0, w0 +;; b.vs #0x90 +;; 60: sxtw x0, w0 ;; sxtw x1, w1 ;; sdiv x1, x1, x0 ;; mov w0, w1 @@ -37,5 +44,6 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 6c: .byte 0x1f, 0xc1, 0x00, 0x00 -;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 88: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 8c: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 90: .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 48cbe8a4ca3e..b5b4377b2274 100644 --- a/tests/disas/winch/aarch64/i32_divs/overflow.wat +++ b/tests/disas/winch/aarch64/i32_divs/overflow.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x88 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -23,11 +30,11 @@ ;; mov w0, w16 ;; mov x16, #0x80000000 ;; mov w1, w16 -;; cbz w0, #0x6c -;; 38: cmn w0, #1 +;; cbz w0, #0x8c +;; 54: cmn w0, #1 ;; ccmp w1, #1, #0, eq -;; b.vs #0x70 -;; 44: sxtw x0, w0 +;; b.vs #0x90 +;; 60: sxtw x0, w0 ;; sxtw x1, w1 ;; sdiv x1, x1, x0 ;; mov w0, w1 @@ -37,5 +44,6 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 6c: .byte 0x1f, 0xc1, 0x00, 0x00 -;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 88: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 8c: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 90: .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 1f6198f4ef76..2b2965a2a45b 100644 --- a/tests/disas/winch/aarch64/i32_divs/params.wat +++ b/tests/disas/winch/aarch64/i32_divs/params.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x88 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -23,11 +30,11 @@ ;; stur w3, [x28] ;; ldur w0, [x28] ;; ldur w1, [x28, #4] -;; cbz w0, #0x6c -;; 38: cmn w0, #1 +;; cbz w0, #0x8c +;; 54: cmn w0, #1 ;; ccmp w1, #1, #0, eq -;; b.vs #0x70 -;; 44: sxtw x0, w0 +;; b.vs #0x90 +;; 60: sxtw x0, w0 ;; sxtw x1, w1 ;; sdiv x1, x1, x0 ;; mov w0, w1 @@ -37,5 +44,6 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 6c: .byte 0x1f, 0xc1, 0x00, 0x00 -;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 88: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 8c: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 90: .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 7bf7d1fb3aa2..94656959263a 100644 --- a/tests/disas/winch/aarch64/i32_divs/zero_zero.wat +++ b/tests/disas/winch/aarch64/i32_divs/zero_zero.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x88 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -23,11 +30,11 @@ ;; mov w0, w16 ;; mov x16, #0 ;; mov w1, w16 -;; cbz w0, #0x6c -;; 38: cmn w0, #1 +;; cbz w0, #0x8c +;; 54: cmn w0, #1 ;; ccmp w1, #1, #0, eq -;; b.vs #0x70 -;; 44: sxtw x0, w0 +;; b.vs #0x90 +;; 60: sxtw x0, w0 ;; sxtw x1, w1 ;; sdiv x1, x1, x0 ;; mov w0, w1 @@ -37,5 +44,6 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 6c: .byte 0x1f, 0xc1, 0x00, 0x00 -;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 88: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 8c: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 90: .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 64c3f28f949c..98d7fb4d593b 100644 --- a/tests/disas/winch/aarch64/i32_divu/const.wat +++ b/tests/disas/winch/aarch64/i32_divu/const.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x74 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -23,8 +30,8 @@ ;; mov w0, w16 ;; mov x16, #0x14 ;; mov w1, w16 -;; cbz w0, #0x58 -;; 38: udiv w1, w1, w0 +;; cbz w0, #0x78 +;; 54: udiv w1, w1, w0 ;; mov w0, w1 ;; add x28, x28, #0x10 ;; mov sp, x28 @@ -32,4 +39,5 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 58: .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_divu/one_zero.wat b/tests/disas/winch/aarch64/i32_divu/one_zero.wat index 5492c7d05bcb..ad86fe399d54 100644 --- a/tests/disas/winch/aarch64/i32_divu/one_zero.wat +++ b/tests/disas/winch/aarch64/i32_divu/one_zero.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x74 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -23,8 +30,8 @@ ;; mov w0, w16 ;; mov x16, #1 ;; mov w1, w16 -;; cbz w0, #0x58 -;; 38: udiv w1, w1, w0 +;; cbz w0, #0x78 +;; 54: udiv w1, w1, w0 ;; mov w0, w1 ;; add x28, x28, #0x10 ;; mov sp, x28 @@ -32,4 +39,5 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 58: .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_divu/params.wat b/tests/disas/winch/aarch64/i32_divu/params.wat index b6455d1425fc..e5dfb2d6716d 100644 --- a/tests/disas/winch/aarch64/i32_divu/params.wat +++ b/tests/disas/winch/aarch64/i32_divu/params.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x74 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -23,8 +30,8 @@ ;; stur w3, [x28] ;; ldur w0, [x28] ;; ldur w1, [x28, #4] -;; cbz w0, #0x58 -;; 38: udiv w1, w1, w0 +;; cbz w0, #0x78 +;; 54: udiv w1, w1, w0 ;; mov w0, w1 ;; add x28, x28, #0x18 ;; mov sp, x28 @@ -32,4 +39,5 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 58: .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_divu/signed.wat b/tests/disas/winch/aarch64/i32_divu/signed.wat index 9d77ae890dca..96a88a511f94 100644 --- a/tests/disas/winch/aarch64/i32_divu/signed.wat +++ b/tests/disas/winch/aarch64/i32_divu/signed.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x74 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -23,8 +30,8 @@ ;; mov w0, w16 ;; orr x16, xzr, #0xffffffff ;; mov w1, w16 -;; cbz w0, #0x58 -;; 38: udiv w1, w1, w0 +;; cbz w0, #0x78 +;; 54: udiv w1, w1, w0 ;; mov w0, w1 ;; add x28, x28, #0x10 ;; mov sp, x28 @@ -32,4 +39,5 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 58: .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_divu/zero_zero.wat b/tests/disas/winch/aarch64/i32_divu/zero_zero.wat index 3e7a9e3eb5fd..0b2214a8731e 100644 --- a/tests/disas/winch/aarch64/i32_divu/zero_zero.wat +++ b/tests/disas/winch/aarch64/i32_divu/zero_zero.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x74 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -23,8 +30,8 @@ ;; mov w0, w16 ;; mov x16, #0 ;; mov w1, w16 -;; cbz w0, #0x58 -;; 38: udiv w1, w1, w0 +;; cbz w0, #0x78 +;; 54: udiv w1, w1, w0 ;; mov w0, w1 ;; add x28, x28, #0x10 ;; mov sp, x28 @@ -32,4 +39,5 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 58: .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_eq/const.wat b/tests/disas/winch/aarch64/i32_eq/const.wat index dc7db9e6583c..147f51b7b5d0 100644 --- a/tests/disas/winch/aarch64/i32_eq/const.wat +++ b/tests/disas/winch/aarch64/i32_eq/const.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x68 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -29,3 +36,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_eq/locals.wat b/tests/disas/winch/aarch64/i32_eq/locals.wat index 00dd9a762456..9e190e5d6810 100644 --- a/tests/disas/winch/aarch64/i32_eq/locals.wat +++ b/tests/disas/winch/aarch64/i32_eq/locals.wat @@ -22,7 +22,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x8c +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -46,3 +53,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 8c: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_eq/params.wat b/tests/disas/winch/aarch64/i32_eq/params.wat index 6a19db6a47c3..3668b3a7cf0c 100644 --- a/tests/disas/winch/aarch64/i32_eq/params.wat +++ b/tests/disas/winch/aarch64/i32_eq/params.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x74 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -31,3 +38,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 74: .byte 0x1f, 0xc1, 0x00, 0x00 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 cc515ae66cf1..45f16c8db2fb 100644 --- a/tests/disas/winch/aarch64/i32_extend_16_s/const.wat +++ b/tests/disas/winch/aarch64/i32_extend_16_s/const.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x64 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -26,3 +33,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 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 08206918173f..5fc65c8d0de5 100644 --- a/tests/disas/winch/aarch64/i32_extend_16_s/locals.wat +++ b/tests/disas/winch/aarch64/i32_extend_16_s/locals.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x68 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -29,3 +36,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 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 f651b090a4f5..59c018cdc1f0 100644 --- a/tests/disas/winch/aarch64/i32_extend_16_s/params.wat +++ b/tests/disas/winch/aarch64/i32_extend_16_s/params.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x64 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -26,3 +33,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 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 24b330e240b8..a6bddbf46897 100644 --- a/tests/disas/winch/aarch64/i32_extend_8_s/const.wat +++ b/tests/disas/winch/aarch64/i32_extend_8_s/const.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x64 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -26,3 +33,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 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 3f3fa9cf4eb1..8f3e3a252f7d 100644 --- a/tests/disas/winch/aarch64/i32_extend_8_s/locals.wat +++ b/tests/disas/winch/aarch64/i32_extend_8_s/locals.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x68 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -29,3 +36,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 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 36c1f491fa6a..d755643d613a 100644 --- a/tests/disas/winch/aarch64/i32_extend_8_s/params.wat +++ b/tests/disas/winch/aarch64/i32_extend_8_s/params.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x64 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -26,3 +33,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_ge_s/const.wat b/tests/disas/winch/aarch64/i32_ge_s/const.wat index eb8e1f7e44b7..6b98faf21ccb 100644 --- a/tests/disas/winch/aarch64/i32_ge_s/const.wat +++ b/tests/disas/winch/aarch64/i32_ge_s/const.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x6c +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -30,3 +37,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 6c: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_ge_s/locals.wat b/tests/disas/winch/aarch64/i32_ge_s/locals.wat index 9e7a201fe6de..e94722c12aa8 100644 --- a/tests/disas/winch/aarch64/i32_ge_s/locals.wat +++ b/tests/disas/winch/aarch64/i32_ge_s/locals.wat @@ -22,7 +22,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x8c +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -46,3 +53,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 8c: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_ge_s/params.wat b/tests/disas/winch/aarch64/i32_ge_s/params.wat index ec969c18abe4..665eb78d7cb1 100644 --- a/tests/disas/winch/aarch64/i32_ge_s/params.wat +++ b/tests/disas/winch/aarch64/i32_ge_s/params.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x74 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -31,3 +38,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 74: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_ge_u/const.wat b/tests/disas/winch/aarch64/i32_ge_u/const.wat index dd0f5685fb1c..e3c0282bb767 100644 --- a/tests/disas/winch/aarch64/i32_ge_u/const.wat +++ b/tests/disas/winch/aarch64/i32_ge_u/const.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x68 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -29,3 +36,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_ge_u/locals.wat b/tests/disas/winch/aarch64/i32_ge_u/locals.wat index f6242bba9985..b46d10b7bedb 100644 --- a/tests/disas/winch/aarch64/i32_ge_u/locals.wat +++ b/tests/disas/winch/aarch64/i32_ge_u/locals.wat @@ -22,7 +22,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x8c +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -46,3 +53,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 8c: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_ge_u/params.wat b/tests/disas/winch/aarch64/i32_ge_u/params.wat index 9dbaf57dccb6..94bf2f723c1e 100644 --- a/tests/disas/winch/aarch64/i32_ge_u/params.wat +++ b/tests/disas/winch/aarch64/i32_ge_u/params.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x74 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -31,3 +38,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 74: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_gt_s/const.wat b/tests/disas/winch/aarch64/i32_gt_s/const.wat index 4851ffd35120..f66c108ca41f 100644 --- a/tests/disas/winch/aarch64/i32_gt_s/const.wat +++ b/tests/disas/winch/aarch64/i32_gt_s/const.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x6c +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -30,3 +37,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 6c: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_gt_s/locals.wat b/tests/disas/winch/aarch64/i32_gt_s/locals.wat index bd9cb5e687d0..00fec1d38ba6 100644 --- a/tests/disas/winch/aarch64/i32_gt_s/locals.wat +++ b/tests/disas/winch/aarch64/i32_gt_s/locals.wat @@ -22,7 +22,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x8c +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -46,3 +53,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 8c: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_gt_s/params.wat b/tests/disas/winch/aarch64/i32_gt_s/params.wat index 8423125205ab..5e2e340b88ac 100644 --- a/tests/disas/winch/aarch64/i32_gt_s/params.wat +++ b/tests/disas/winch/aarch64/i32_gt_s/params.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x74 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -31,3 +38,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 74: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_gt_u/const.wat b/tests/disas/winch/aarch64/i32_gt_u/const.wat index f18f3de77398..5528e2669046 100644 --- a/tests/disas/winch/aarch64/i32_gt_u/const.wat +++ b/tests/disas/winch/aarch64/i32_gt_u/const.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x68 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -29,3 +36,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_gt_u/locals.wat b/tests/disas/winch/aarch64/i32_gt_u/locals.wat index b13a53668929..18e0c752801d 100644 --- a/tests/disas/winch/aarch64/i32_gt_u/locals.wat +++ b/tests/disas/winch/aarch64/i32_gt_u/locals.wat @@ -22,7 +22,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x8c +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -46,3 +53,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 8c: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_gt_u/params.wat b/tests/disas/winch/aarch64/i32_gt_u/params.wat index 6e55ae436bf8..7e5476f3f222 100644 --- a/tests/disas/winch/aarch64/i32_gt_u/params.wat +++ b/tests/disas/winch/aarch64/i32_gt_u/params.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x74 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -31,3 +38,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 74: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_le_s/const.wat b/tests/disas/winch/aarch64/i32_le_s/const.wat index 4036f28ec748..a6671cabd21e 100644 --- a/tests/disas/winch/aarch64/i32_le_s/const.wat +++ b/tests/disas/winch/aarch64/i32_le_s/const.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x6c +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -30,3 +37,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 6c: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_le_s/locals.wat b/tests/disas/winch/aarch64/i32_le_s/locals.wat index d07693ac11ed..a8caa1779b0d 100644 --- a/tests/disas/winch/aarch64/i32_le_s/locals.wat +++ b/tests/disas/winch/aarch64/i32_le_s/locals.wat @@ -22,7 +22,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x8c +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -46,3 +53,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 8c: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_le_s/params.wat b/tests/disas/winch/aarch64/i32_le_s/params.wat index 686be6bc24bb..984664ca95e5 100644 --- a/tests/disas/winch/aarch64/i32_le_s/params.wat +++ b/tests/disas/winch/aarch64/i32_le_s/params.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x74 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -31,3 +38,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 74: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_le_u/const.wat b/tests/disas/winch/aarch64/i32_le_u/const.wat index 24e119909fc4..e43e4fd6e46b 100644 --- a/tests/disas/winch/aarch64/i32_le_u/const.wat +++ b/tests/disas/winch/aarch64/i32_le_u/const.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x68 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -29,3 +36,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_le_u/locals.wat b/tests/disas/winch/aarch64/i32_le_u/locals.wat index a9efbb6e11f0..cf40e6b3c3a0 100644 --- a/tests/disas/winch/aarch64/i32_le_u/locals.wat +++ b/tests/disas/winch/aarch64/i32_le_u/locals.wat @@ -22,7 +22,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x8c +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -46,3 +53,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 8c: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_le_u/params.wat b/tests/disas/winch/aarch64/i32_le_u/params.wat index 4b4898cb38df..c007d80afbff 100644 --- a/tests/disas/winch/aarch64/i32_le_u/params.wat +++ b/tests/disas/winch/aarch64/i32_le_u/params.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x74 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -31,3 +38,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 74: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_lt_s/const.wat b/tests/disas/winch/aarch64/i32_lt_s/const.wat index 29d01a0dc78f..ec21470ae32a 100644 --- a/tests/disas/winch/aarch64/i32_lt_s/const.wat +++ b/tests/disas/winch/aarch64/i32_lt_s/const.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x6c +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -30,3 +37,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 6c: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_lt_s/locals.wat b/tests/disas/winch/aarch64/i32_lt_s/locals.wat index e1f289e14489..c08a7ba13ed3 100644 --- a/tests/disas/winch/aarch64/i32_lt_s/locals.wat +++ b/tests/disas/winch/aarch64/i32_lt_s/locals.wat @@ -22,7 +22,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x8c +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -46,3 +53,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 8c: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_lt_s/params.wat b/tests/disas/winch/aarch64/i32_lt_s/params.wat index 3a7d511f57da..cde361db064d 100644 --- a/tests/disas/winch/aarch64/i32_lt_s/params.wat +++ b/tests/disas/winch/aarch64/i32_lt_s/params.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x74 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -31,3 +38,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 74: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_lt_u/const.wat b/tests/disas/winch/aarch64/i32_lt_u/const.wat index cbc9eef618e8..2e813977f366 100644 --- a/tests/disas/winch/aarch64/i32_lt_u/const.wat +++ b/tests/disas/winch/aarch64/i32_lt_u/const.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x68 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -29,3 +36,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_lt_u/locals.wat b/tests/disas/winch/aarch64/i32_lt_u/locals.wat index f42fd3622b8a..6d7e45b50130 100644 --- a/tests/disas/winch/aarch64/i32_lt_u/locals.wat +++ b/tests/disas/winch/aarch64/i32_lt_u/locals.wat @@ -22,7 +22,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x8c +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -46,3 +53,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 8c: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_lt_u/params.wat b/tests/disas/winch/aarch64/i32_lt_u/params.wat index 249524aa08ba..7a1bd03bd2b4 100644 --- a/tests/disas/winch/aarch64/i32_lt_u/params.wat +++ b/tests/disas/winch/aarch64/i32_lt_u/params.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x74 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -31,3 +38,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 74: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_mul/const.wat b/tests/disas/winch/aarch64/i32_mul/const.wat index ff2aa9732ebe..87c12a0cc77c 100644 --- a/tests/disas/winch/aarch64/i32_mul/const.wat +++ b/tests/disas/winch/aarch64/i32_mul/const.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x68 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -28,3 +35,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_mul/locals.wat b/tests/disas/winch/aarch64/i32_mul/locals.wat index 30702eecbfe4..bbe74a192da9 100644 --- a/tests/disas/winch/aarch64/i32_mul/locals.wat +++ b/tests/disas/winch/aarch64/i32_mul/locals.wat @@ -22,7 +22,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x88 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -45,3 +52,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 88: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_mul/max.wat b/tests/disas/winch/aarch64/i32_mul/max.wat index 37d00243b7cf..2b51bc957dd3 100644 --- a/tests/disas/winch/aarch64/i32_mul/max.wat +++ b/tests/disas/winch/aarch64/i32_mul/max.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x68 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -28,3 +35,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_mul/max_one.wat b/tests/disas/winch/aarch64/i32_mul/max_one.wat index 02734b7b4d67..c3e9fe36a31a 100644 --- a/tests/disas/winch/aarch64/i32_mul/max_one.wat +++ b/tests/disas/winch/aarch64/i32_mul/max_one.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x68 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -28,3 +35,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_mul/mixed.wat b/tests/disas/winch/aarch64/i32_mul/mixed.wat index 2aca5661d3c0..02e5b171a454 100644 --- a/tests/disas/winch/aarch64/i32_mul/mixed.wat +++ b/tests/disas/winch/aarch64/i32_mul/mixed.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x68 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -28,3 +35,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_mul/params.wat b/tests/disas/winch/aarch64/i32_mul/params.wat index 3d29ce0abab5..4b5a8271ecbb 100644 --- a/tests/disas/winch/aarch64/i32_mul/params.wat +++ b/tests/disas/winch/aarch64/i32_mul/params.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x70 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -30,3 +37,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_mul/signed.wat b/tests/disas/winch/aarch64/i32_mul/signed.wat index 25ad58706ca8..dfb9dc186b2f 100644 --- a/tests/disas/winch/aarch64/i32_mul/signed.wat +++ b/tests/disas/winch/aarch64/i32_mul/signed.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x68 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -28,3 +35,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 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 f29e14786e71..0ebbe1203071 100644 --- a/tests/disas/winch/aarch64/i32_mul/unsigned_with_zero.wat +++ b/tests/disas/winch/aarch64/i32_mul/unsigned_with_zero.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x68 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -28,3 +35,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_ne/const.wat b/tests/disas/winch/aarch64/i32_ne/const.wat index 6bcd9d08618a..c0bfc9859e02 100644 --- a/tests/disas/winch/aarch64/i32_ne/const.wat +++ b/tests/disas/winch/aarch64/i32_ne/const.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x68 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -29,3 +36,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_ne/locals.wat b/tests/disas/winch/aarch64/i32_ne/locals.wat index ecdc974becab..72017102bd55 100644 --- a/tests/disas/winch/aarch64/i32_ne/locals.wat +++ b/tests/disas/winch/aarch64/i32_ne/locals.wat @@ -22,7 +22,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x8c +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -46,3 +53,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 8c: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_ne/params.wat b/tests/disas/winch/aarch64/i32_ne/params.wat index 627dd605b3e2..576b24044204 100644 --- a/tests/disas/winch/aarch64/i32_ne/params.wat +++ b/tests/disas/winch/aarch64/i32_ne/params.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x74 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -31,3 +38,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 74: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_or/const.wat b/tests/disas/winch/aarch64/i32_or/const.wat index d3b8eebac378..4a8fcd0256c4 100644 --- a/tests/disas/winch/aarch64/i32_or/const.wat +++ b/tests/disas/winch/aarch64/i32_or/const.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x64 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -27,3 +34,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_or/locals.wat b/tests/disas/winch/aarch64/i32_or/locals.wat index 92c4734a8168..dc3f87b5ce2c 100644 --- a/tests/disas/winch/aarch64/i32_or/locals.wat +++ b/tests/disas/winch/aarch64/i32_or/locals.wat @@ -22,7 +22,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x88 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -45,3 +52,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 88: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_or/params.wat b/tests/disas/winch/aarch64/i32_or/params.wat index c33b3f51ab32..b8b372a35588 100644 --- a/tests/disas/winch/aarch64/i32_or/params.wat +++ b/tests/disas/winch/aarch64/i32_or/params.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x70 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -30,3 +37,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_popcnt/const.wat b/tests/disas/winch/aarch64/i32_popcnt/const.wat index 46e08424a233..5db9ee3ac7d2 100644 --- a/tests/disas/winch/aarch64/i32_popcnt/const.wat +++ b/tests/disas/winch/aarch64/i32_popcnt/const.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x70 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -29,3 +36,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_popcnt/reg.wat b/tests/disas/winch/aarch64/i32_popcnt/reg.wat index 7478e30f4e45..181f16ed8f9c 100644 --- a/tests/disas/winch/aarch64/i32_popcnt/reg.wat +++ b/tests/disas/winch/aarch64/i32_popcnt/reg.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x70 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -29,3 +36,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_reinterpret_f32/const.wat b/tests/disas/winch/aarch64/i32_reinterpret_f32/const.wat index 6e9a514228c7..8b521dce982b 100644 --- a/tests/disas/winch/aarch64/i32_reinterpret_f32/const.wat +++ b/tests/disas/winch/aarch64/i32_reinterpret_f32/const.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x64 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -26,3 +33,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_reinterpret_f32/locals.wat b/tests/disas/winch/aarch64/i32_reinterpret_f32/locals.wat index bbd0c0a7da38..d0f44f03da8e 100644 --- a/tests/disas/winch/aarch64/i32_reinterpret_f32/locals.wat +++ b/tests/disas/winch/aarch64/i32_reinterpret_f32/locals.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x68 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -29,3 +36,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_reinterpret_f32/params.wat b/tests/disas/winch/aarch64/i32_reinterpret_f32/params.wat index 26a12551500e..213b40e51f4c 100644 --- a/tests/disas/winch/aarch64/i32_reinterpret_f32/params.wat +++ b/tests/disas/winch/aarch64/i32_reinterpret_f32/params.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x64 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -26,3 +33,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 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 17d9ab716a96..b284eeea092d 100644 --- a/tests/disas/winch/aarch64/i32_reinterpret_f32/ret_float.wat +++ b/tests/disas/winch/aarch64/i32_reinterpret_f32/ret_float.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x6c +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -30,3 +37,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 6c: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_rems/const.wat b/tests/disas/winch/aarch64/i32_rems/const.wat index c249c4f72c8b..14b5ec153b64 100644 --- a/tests/disas/winch/aarch64/i32_rems/const.wat +++ b/tests/disas/winch/aarch64/i32_rems/const.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x80 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -23,8 +30,8 @@ ;; mov w0, w16 ;; mov x16, #7 ;; mov w1, w16 -;; cbz w0, #0x64 -;; 38: sxtw x0, w0 +;; cbz w0, #0x84 +;; 54: sxtw x0, w0 ;; sxtw x1, w1 ;; sdiv x16, x1, x0 ;; msub x1, x0, x16, x1 @@ -35,4 +42,5 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 80: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 84: .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 f3f2d73b52fd..7a683129ce29 100644 --- a/tests/disas/winch/aarch64/i32_rems/one_zero.wat +++ b/tests/disas/winch/aarch64/i32_rems/one_zero.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x80 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -23,8 +30,8 @@ ;; mov w0, w16 ;; mov x16, #1 ;; mov w1, w16 -;; cbz w0, #0x64 -;; 38: sxtw x0, w0 +;; cbz w0, #0x84 +;; 54: sxtw x0, w0 ;; sxtw x1, w1 ;; sdiv x16, x1, x0 ;; msub x1, x0, x16, x1 @@ -35,4 +42,5 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 80: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 84: .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 7b63133dbfb4..79efc4cd9b36 100644 --- a/tests/disas/winch/aarch64/i32_rems/overflow.wat +++ b/tests/disas/winch/aarch64/i32_rems/overflow.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x80 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -23,8 +30,8 @@ ;; mov w0, w16 ;; mov x16, #0x80000000 ;; mov w1, w16 -;; cbz w0, #0x64 -;; 38: sxtw x0, w0 +;; cbz w0, #0x84 +;; 54: sxtw x0, w0 ;; sxtw x1, w1 ;; sdiv x16, x1, x0 ;; msub x1, x0, x16, x1 @@ -35,4 +42,5 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 80: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 84: .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 824f6e1a32a8..ba6a66f149c2 100644 --- a/tests/disas/winch/aarch64/i32_rems/params.wat +++ b/tests/disas/winch/aarch64/i32_rems/params.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x80 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -23,8 +30,8 @@ ;; stur w3, [x28] ;; ldur w0, [x28] ;; ldur w1, [x28, #4] -;; cbz w0, #0x64 -;; 38: sxtw x0, w0 +;; cbz w0, #0x84 +;; 54: sxtw x0, w0 ;; sxtw x1, w1 ;; sdiv x16, x1, x0 ;; msub x1, x0, x16, x1 @@ -35,4 +42,5 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 80: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 84: .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 d8cb86616c84..5a3bb2c0003e 100644 --- a/tests/disas/winch/aarch64/i32_rems/zero_zero.wat +++ b/tests/disas/winch/aarch64/i32_rems/zero_zero.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x80 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -23,8 +30,8 @@ ;; mov w0, w16 ;; mov x16, #0 ;; mov w1, w16 -;; cbz w0, #0x64 -;; 38: sxtw x0, w0 +;; cbz w0, #0x84 +;; 54: sxtw x0, w0 ;; sxtw x1, w1 ;; sdiv x16, x1, x0 ;; msub x1, x0, x16, x1 @@ -35,4 +42,5 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 80: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 84: .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 995068701c76..49784e976004 100644 --- a/tests/disas/winch/aarch64/i32_remu/const.wat +++ b/tests/disas/winch/aarch64/i32_remu/const.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x78 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -23,8 +30,8 @@ ;; mov w0, w16 ;; mov x16, #7 ;; mov w1, w16 -;; cbz w0, #0x5c -;; 38: udiv w16, w1, w0 +;; cbz w0, #0x7c +;; 54: udiv w16, w1, w0 ;; msub w1, w0, w16, w1 ;; mov w0, w1 ;; add x28, x28, #0x10 @@ -33,4 +40,5 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 5c: .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_remu/one_zero.wat b/tests/disas/winch/aarch64/i32_remu/one_zero.wat index 2beca50fae77..272eeacf1554 100644 --- a/tests/disas/winch/aarch64/i32_remu/one_zero.wat +++ b/tests/disas/winch/aarch64/i32_remu/one_zero.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x78 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -23,8 +30,8 @@ ;; mov w0, w16 ;; mov x16, #1 ;; mov w1, w16 -;; cbz w0, #0x5c -;; 38: udiv w16, w1, w0 +;; cbz w0, #0x7c +;; 54: udiv w16, w1, w0 ;; msub w1, w0, w16, w1 ;; mov w0, w1 ;; add x28, x28, #0x10 @@ -33,4 +40,5 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 5c: .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_remu/params.wat b/tests/disas/winch/aarch64/i32_remu/params.wat index 7556fca1a14c..6c021898d6be 100644 --- a/tests/disas/winch/aarch64/i32_remu/params.wat +++ b/tests/disas/winch/aarch64/i32_remu/params.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x78 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -23,8 +30,8 @@ ;; stur w3, [x28] ;; ldur w0, [x28] ;; ldur w1, [x28, #4] -;; cbz w0, #0x5c -;; 38: udiv w16, w1, w0 +;; cbz w0, #0x7c +;; 54: udiv w16, w1, w0 ;; msub w1, w0, w16, w1 ;; mov w0, w1 ;; add x28, x28, #0x18 @@ -33,4 +40,5 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 5c: .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_remu/signed.wat b/tests/disas/winch/aarch64/i32_remu/signed.wat index 455c2c75d341..fa0a1814500b 100644 --- a/tests/disas/winch/aarch64/i32_remu/signed.wat +++ b/tests/disas/winch/aarch64/i32_remu/signed.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x78 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -23,8 +30,8 @@ ;; mov w0, w16 ;; orr x16, xzr, #0xffffffff ;; mov w1, w16 -;; cbz w0, #0x5c -;; 38: udiv w16, w1, w0 +;; cbz w0, #0x7c +;; 54: udiv w16, w1, w0 ;; msub w1, w0, w16, w1 ;; mov w0, w1 ;; add x28, x28, #0x10 @@ -33,4 +40,5 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 5c: .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_remu/zero_zero.wat b/tests/disas/winch/aarch64/i32_remu/zero_zero.wat index e37aa1266b2e..6fab2762b27d 100644 --- a/tests/disas/winch/aarch64/i32_remu/zero_zero.wat +++ b/tests/disas/winch/aarch64/i32_remu/zero_zero.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x78 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -23,8 +30,8 @@ ;; mov w0, w16 ;; mov x16, #0 ;; mov w1, w16 -;; cbz w0, #0x5c -;; 38: udiv w16, w1, w0 +;; cbz w0, #0x7c +;; 54: udiv w16, w1, w0 ;; msub w1, w0, w16, w1 ;; mov w0, w1 ;; add x28, x28, #0x10 @@ -33,4 +40,5 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 5c: .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_rotl/16_const.wat b/tests/disas/winch/aarch64/i32_rotl/16_const.wat index 537d9f41576d..125307948ba4 100644 --- a/tests/disas/winch/aarch64/i32_rotl/16_const.wat +++ b/tests/disas/winch/aarch64/i32_rotl/16_const.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x6c +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -29,3 +36,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 6c: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_rotl/8_const.wat b/tests/disas/winch/aarch64/i32_rotl/8_const.wat index a860b7ece7a6..9e51d1a13be7 100644 --- a/tests/disas/winch/aarch64/i32_rotl/8_const.wat +++ b/tests/disas/winch/aarch64/i32_rotl/8_const.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x68 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -28,3 +35,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_rotl/locals.wat b/tests/disas/winch/aarch64/i32_rotl/locals.wat index dd99f3f5475d..7311e35d6dda 100644 --- a/tests/disas/winch/aarch64/i32_rotl/locals.wat +++ b/tests/disas/winch/aarch64/i32_rotl/locals.wat @@ -22,7 +22,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x8c +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -46,3 +53,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 8c: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_rotl/params.wat b/tests/disas/winch/aarch64/i32_rotl/params.wat index 01549305b2bc..096c728f6610 100644 --- a/tests/disas/winch/aarch64/i32_rotl/params.wat +++ b/tests/disas/winch/aarch64/i32_rotl/params.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x74 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -31,3 +38,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 74: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_rotr/16_const.wat b/tests/disas/winch/aarch64/i32_rotr/16_const.wat index 23159096547e..7ac8b80460b4 100644 --- a/tests/disas/winch/aarch64/i32_rotr/16_const.wat +++ b/tests/disas/winch/aarch64/i32_rotr/16_const.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x68 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -28,3 +35,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_rotr/8_const.wat b/tests/disas/winch/aarch64/i32_rotr/8_const.wat index 47ed794579d5..9cd59a0277d2 100644 --- a/tests/disas/winch/aarch64/i32_rotr/8_const.wat +++ b/tests/disas/winch/aarch64/i32_rotr/8_const.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x64 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -27,3 +34,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_rotr/locals.wat b/tests/disas/winch/aarch64/i32_rotr/locals.wat index ea899b47c2d9..51db2c0869a1 100644 --- a/tests/disas/winch/aarch64/i32_rotr/locals.wat +++ b/tests/disas/winch/aarch64/i32_rotr/locals.wat @@ -22,7 +22,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x88 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -45,3 +52,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 88: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_rotr/params.wat b/tests/disas/winch/aarch64/i32_rotr/params.wat index 16be05c4d53f..92e7679c990e 100644 --- a/tests/disas/winch/aarch64/i32_rotr/params.wat +++ b/tests/disas/winch/aarch64/i32_rotr/params.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x70 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -30,3 +37,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_shl/16_const.wat b/tests/disas/winch/aarch64/i32_shl/16_const.wat index a0bacd9136d7..8217814f5777 100644 --- a/tests/disas/winch/aarch64/i32_shl/16_const.wat +++ b/tests/disas/winch/aarch64/i32_shl/16_const.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x68 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -29,3 +36,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_shl/8_const.wat b/tests/disas/winch/aarch64/i32_shl/8_const.wat index a0523ea97bc1..f991f2b7a651 100644 --- a/tests/disas/winch/aarch64/i32_shl/8_const.wat +++ b/tests/disas/winch/aarch64/i32_shl/8_const.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x64 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -28,3 +35,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_shl/locals.wat b/tests/disas/winch/aarch64/i32_shl/locals.wat index b9df995a9d0a..b6c1516748b6 100644 --- a/tests/disas/winch/aarch64/i32_shl/locals.wat +++ b/tests/disas/winch/aarch64/i32_shl/locals.wat @@ -22,7 +22,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x88 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -45,3 +52,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 88: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_shl/params.wat b/tests/disas/winch/aarch64/i32_shl/params.wat index 25672bd99f8e..486101777a5e 100644 --- a/tests/disas/winch/aarch64/i32_shl/params.wat +++ b/tests/disas/winch/aarch64/i32_shl/params.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x70 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -30,3 +37,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 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 98285f7307f3..4bc1266e030e 100644 --- a/tests/disas/winch/aarch64/i32_shr_s/16_const.wat +++ b/tests/disas/winch/aarch64/i32_shr_s/16_const.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x68 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -28,3 +35,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 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 b94a1f158d92..51f2a0e6a22d 100644 --- a/tests/disas/winch/aarch64/i32_shr_s/8_const.wat +++ b/tests/disas/winch/aarch64/i32_shr_s/8_const.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x64 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -27,3 +34,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_shr_s/locals.wat b/tests/disas/winch/aarch64/i32_shr_s/locals.wat index 190cb9eb309f..12d4480b13c2 100644 --- a/tests/disas/winch/aarch64/i32_shr_s/locals.wat +++ b/tests/disas/winch/aarch64/i32_shr_s/locals.wat @@ -22,7 +22,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x88 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -45,3 +52,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 88: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_shr_s/params.wat b/tests/disas/winch/aarch64/i32_shr_s/params.wat index 668c25bc12bf..10e2525a7f89 100644 --- a/tests/disas/winch/aarch64/i32_shr_s/params.wat +++ b/tests/disas/winch/aarch64/i32_shr_s/params.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x70 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -30,3 +37,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 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 b8c034257ef4..178cb4578c62 100644 --- a/tests/disas/winch/aarch64/i32_shr_u/16_const.wat +++ b/tests/disas/winch/aarch64/i32_shr_u/16_const.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x68 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -28,3 +35,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 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 ed9b13269548..d1b2573ac6f5 100644 --- a/tests/disas/winch/aarch64/i32_shr_u/8_const.wat +++ b/tests/disas/winch/aarch64/i32_shr_u/8_const.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x64 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -27,3 +34,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_shr_u/locals.wat b/tests/disas/winch/aarch64/i32_shr_u/locals.wat index 96e65988979a..b5ecf0692503 100644 --- a/tests/disas/winch/aarch64/i32_shr_u/locals.wat +++ b/tests/disas/winch/aarch64/i32_shr_u/locals.wat @@ -22,7 +22,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x88 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -45,3 +52,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 88: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_shr_u/params.wat b/tests/disas/winch/aarch64/i32_shr_u/params.wat index f84c25b4202c..ee6acd8696fb 100644 --- a/tests/disas/winch/aarch64/i32_shr_u/params.wat +++ b/tests/disas/winch/aarch64/i32_shr_u/params.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x70 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -30,3 +37,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_sub/const.wat b/tests/disas/winch/aarch64/i32_sub/const.wat index 38a06816c654..22ca91b9c224 100644 --- a/tests/disas/winch/aarch64/i32_sub/const.wat +++ b/tests/disas/winch/aarch64/i32_sub/const.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x64 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -27,3 +34,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_sub/locals.wat b/tests/disas/winch/aarch64/i32_sub/locals.wat index 6f70da42e021..8ef2361e0e29 100644 --- a/tests/disas/winch/aarch64/i32_sub/locals.wat +++ b/tests/disas/winch/aarch64/i32_sub/locals.wat @@ -22,7 +22,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x88 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -45,3 +52,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 88: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_sub/max.wat b/tests/disas/winch/aarch64/i32_sub/max.wat index 6dc1d6d03e74..d5a0b48e305d 100644 --- a/tests/disas/winch/aarch64/i32_sub/max.wat +++ b/tests/disas/winch/aarch64/i32_sub/max.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x68 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -27,3 +34,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_sub/max_one.wat b/tests/disas/winch/aarch64/i32_sub/max_one.wat index 1ad0c05a748a..f9a72d506511 100644 --- a/tests/disas/winch/aarch64/i32_sub/max_one.wat +++ b/tests/disas/winch/aarch64/i32_sub/max_one.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x64 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -27,3 +34,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_sub/mixed.wat b/tests/disas/winch/aarch64/i32_sub/mixed.wat index 780e0cef9834..b25e781a6d45 100644 --- a/tests/disas/winch/aarch64/i32_sub/mixed.wat +++ b/tests/disas/winch/aarch64/i32_sub/mixed.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x64 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -27,3 +34,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_sub/params.wat b/tests/disas/winch/aarch64/i32_sub/params.wat index 5994b0dc88f7..daab0bde9ff2 100644 --- a/tests/disas/winch/aarch64/i32_sub/params.wat +++ b/tests/disas/winch/aarch64/i32_sub/params.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x70 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -30,3 +37,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_sub/signed.wat b/tests/disas/winch/aarch64/i32_sub/signed.wat index 8f1f3e853915..faa7721804fb 100644 --- a/tests/disas/winch/aarch64/i32_sub/signed.wat +++ b/tests/disas/winch/aarch64/i32_sub/signed.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x68 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -28,3 +35,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 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 a6abd9717963..87f3d5a14310 100644 --- a/tests/disas/winch/aarch64/i32_sub/unsigned_with_zero.wat +++ b/tests/disas/winch/aarch64/i32_sub/unsigned_with_zero.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x64 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -27,3 +34,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 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 e15dd9fe5bdb..383ac8d15059 100644 --- a/tests/disas/winch/aarch64/i32_trunc_f32_s/const.wat +++ b/tests/disas/winch/aarch64/i32_trunc_f32_s/const.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x8c +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -20,22 +27,23 @@ ;; mov x16, #0x3f800000 ;; fmov s0, w16 ;; fcmp s0, s0 -;; b.vs #0x70 -;; 34: mov x16, #0xcf000000 +;; b.vs #0x90 +;; 50: mov x16, #0xcf000000 ;; fmov s31, w16 ;; fcmp s31, s0 -;; b.le #0x74 -;; 44: mov x16, #0x4f000000 +;; b.le #0x94 +;; 60: mov x16, #0x4f000000 ;; fmov s31, w16 ;; fcmp s31, s0 -;; b.ge #0x78 -;; 54: fcvtzs w0, s0 +;; b.ge #0x98 +;; 70: fcvtzs w0, s0 ;; add x28, x28, #0x10 ;; 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 +;; 8c: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 90: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 94: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 98: .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 ee9a951dc3ac..4963c9b091d8 100644 --- a/tests/disas/winch/aarch64/i32_trunc_f32_s/locals.wat +++ b/tests/disas/winch/aarch64/i32_trunc_f32_s/locals.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x90 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -23,22 +30,23 @@ ;; stur x16, [x28] ;; ldur s0, [x28, #4] ;; fcmp s0, s0 -;; b.vs #0x74 -;; 38: mov x16, #0xcf000000 +;; b.vs #0x94 +;; 54: mov x16, #0xcf000000 ;; fmov s31, w16 ;; fcmp s31, s0 -;; b.le #0x78 -;; 48: mov x16, #0x4f000000 +;; b.le #0x98 +;; 64: mov x16, #0x4f000000 ;; fmov s31, w16 ;; fcmp s31, s0 -;; b.ge #0x7c -;; 58: fcvtzs w0, s0 +;; b.ge #0x9c +;; 74: fcvtzs w0, s0 ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 74: .byte 0x1f, 0xc1, 0x00, 0x00 -;; 78: .byte 0x1f, 0xc1, 0x00, 0x00 -;; 7c: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 90: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 94: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 98: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 9c: .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 5c0b678ecf98..9347718f0c05 100644 --- a/tests/disas/winch/aarch64/i32_trunc_f32_s/params.wat +++ b/tests/disas/winch/aarch64/i32_trunc_f32_s/params.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x8c +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -20,22 +27,23 @@ ;; stur s0, [x28, #4] ;; ldur s0, [x28, #4] ;; fcmp s0, s0 -;; b.vs #0x70 -;; 34: mov x16, #0xcf000000 +;; b.vs #0x90 +;; 50: mov x16, #0xcf000000 ;; fmov s31, w16 ;; fcmp s31, s0 -;; b.le #0x74 -;; 44: mov x16, #0x4f000000 +;; b.le #0x94 +;; 60: mov x16, #0x4f000000 ;; fmov s31, w16 ;; fcmp s31, s0 -;; b.ge #0x78 -;; 54: fcvtzs w0, s0 +;; b.ge #0x98 +;; 70: fcvtzs w0, s0 ;; 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 +;; 8c: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 90: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 94: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 98: .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 0cc6ba075e8f..bc43e50e0a9a 100644 --- a/tests/disas/winch/aarch64/i32_trunc_f32_u/const.wat +++ b/tests/disas/winch/aarch64/i32_trunc_f32_u/const.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x88 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -20,21 +27,22 @@ ;; mov x16, #0x3f800000 ;; fmov s0, w16 ;; fcmp s0, s0 -;; b.vs #0x6c -;; 34: fmov s31, #-1.00000000 +;; b.vs #0x8c +;; 50: fmov s31, #-1.00000000 ;; fcmp s31, s0 -;; b.le #0x70 -;; 40: mov x16, #0x4f800000 +;; b.le #0x90 +;; 5c: mov x16, #0x4f800000 ;; fmov s31, w16 ;; fcmp s31, s0 -;; b.ge #0x74 -;; 50: fcvtzu w0, s0 +;; b.ge #0x94 +;; 6c: fcvtzu w0, s0 ;; 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 +;; 88: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 8c: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 90: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 94: .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 50f3ae02657c..ab34903ccc05 100644 --- a/tests/disas/winch/aarch64/i32_trunc_f32_u/locals.wat +++ b/tests/disas/winch/aarch64/i32_trunc_f32_u/locals.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x8c +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -23,21 +30,22 @@ ;; stur x16, [x28] ;; ldur s0, [x28, #4] ;; fcmp s0, s0 -;; b.vs #0x70 -;; 38: fmov s31, #-1.00000000 +;; b.vs #0x90 +;; 54: fmov s31, #-1.00000000 ;; fcmp s31, s0 -;; b.le #0x74 -;; 44: mov x16, #0x4f800000 +;; b.le #0x94 +;; 60: mov x16, #0x4f800000 ;; fmov s31, w16 ;; fcmp s31, s0 -;; b.ge #0x78 -;; 54: fcvtzu w0, s0 +;; b.ge #0x98 +;; 70: fcvtzu w0, s0 ;; 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 +;; 8c: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 90: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 94: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 98: .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 c6c76c9a8e01..328ae8f1918f 100644 --- a/tests/disas/winch/aarch64/i32_trunc_f32_u/params.wat +++ b/tests/disas/winch/aarch64/i32_trunc_f32_u/params.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x88 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -20,21 +27,22 @@ ;; stur s0, [x28, #4] ;; ldur s0, [x28, #4] ;; fcmp s0, s0 -;; b.vs #0x6c -;; 34: fmov s31, #-1.00000000 +;; b.vs #0x8c +;; 50: fmov s31, #-1.00000000 ;; fcmp s31, s0 -;; b.le #0x70 -;; 40: mov x16, #0x4f800000 +;; b.le #0x90 +;; 5c: mov x16, #0x4f800000 ;; fmov s31, w16 ;; fcmp s31, s0 -;; b.ge #0x74 -;; 50: fcvtzu w0, s0 +;; b.ge #0x94 +;; 6c: fcvtzu 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 +;; 88: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 8c: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 90: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 94: .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 4fd561b6bea6..2896d4d272e3 100644 --- a/tests/disas/winch/aarch64/i32_trunc_f64_s/const.wat +++ b/tests/disas/winch/aarch64/i32_trunc_f64_s/const.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x90 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -20,23 +27,24 @@ ;; mov x16, #0x3ff0000000000000 ;; fmov d0, x16 ;; fcmp d0, d0 -;; b.vs #0x74 -;; 34: mov x16, #0x200000 +;; b.vs #0x94 +;; 50: mov x16, #0x200000 ;; movk x16, #0xc1e0, lsl #48 ;; fmov d31, x16 ;; fcmp d31, d0 -;; b.le #0x78 -;; 48: mov x16, #0x41e0000000000000 +;; b.le #0x98 +;; 64: mov x16, #0x41e0000000000000 ;; fmov d31, x16 ;; fcmp d31, d0 -;; b.ge #0x7c -;; 58: fcvtzs w0, d0 +;; b.ge #0x9c +;; 74: fcvtzs w0, d0 ;; add x28, x28, #0x10 ;; mov sp, x28 ;; mov sp, x28 ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 74: .byte 0x1f, 0xc1, 0x00, 0x00 -;; 78: .byte 0x1f, 0xc1, 0x00, 0x00 -;; 7c: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 90: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 94: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 98: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 9c: .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 9c14c3ea24e9..32c6cd949ad1 100644 --- a/tests/disas/winch/aarch64/i32_trunc_f64_s/locals.wat +++ b/tests/disas/winch/aarch64/i32_trunc_f64_s/locals.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x94 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -23,23 +30,24 @@ ;; stur x16, [x28] ;; ldur d0, [x28] ;; fcmp d0, d0 -;; b.vs #0x78 -;; 38: mov x16, #0x200000 +;; b.vs #0x98 +;; 54: mov x16, #0x200000 ;; movk x16, #0xc1e0, lsl #48 ;; fmov d31, x16 ;; fcmp d31, d0 -;; b.le #0x7c -;; 4c: mov x16, #0x41e0000000000000 +;; b.le #0x9c +;; 68: mov x16, #0x41e0000000000000 ;; fmov d31, x16 ;; fcmp d31, d0 -;; b.ge #0x80 -;; 5c: fcvtzs w0, d0 +;; b.ge #0xa0 +;; 78: fcvtzs w0, d0 ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 78: .byte 0x1f, 0xc1, 0x00, 0x00 -;; 7c: .byte 0x1f, 0xc1, 0x00, 0x00 -;; 80: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 94: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 98: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 9c: .byte 0x1f, 0xc1, 0x00, 0x00 +;; a0: .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 d748838f3afa..44a2f34e5407 100644 --- a/tests/disas/winch/aarch64/i32_trunc_f64_s/params.wat +++ b/tests/disas/winch/aarch64/i32_trunc_f64_s/params.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x90 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -20,23 +27,24 @@ ;; stur d0, [x28] ;; ldur d0, [x28] ;; fcmp d0, d0 -;; b.vs #0x74 -;; 34: mov x16, #0x200000 +;; b.vs #0x94 +;; 50: mov x16, #0x200000 ;; movk x16, #0xc1e0, lsl #48 ;; fmov d31, x16 ;; fcmp d31, d0 -;; b.le #0x78 -;; 48: mov x16, #0x41e0000000000000 +;; b.le #0x98 +;; 64: mov x16, #0x41e0000000000000 ;; fmov d31, x16 ;; fcmp d31, d0 -;; b.ge #0x7c -;; 58: fcvtzs w0, d0 +;; b.ge #0x9c +;; 74: fcvtzs w0, d0 ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 74: .byte 0x1f, 0xc1, 0x00, 0x00 -;; 78: .byte 0x1f, 0xc1, 0x00, 0x00 -;; 7c: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 90: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 94: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 98: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 9c: .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 038cbe3581d3..99f17bb7a4d1 100644 --- a/tests/disas/winch/aarch64/i32_trunc_f64_u/const.wat +++ b/tests/disas/winch/aarch64/i32_trunc_f64_u/const.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x88 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -20,21 +27,22 @@ ;; mov x16, #0x3ff0000000000000 ;; fmov d0, x16 ;; fcmp d0, d0 -;; b.vs #0x6c -;; 34: fmov d31, #-1.00000000 +;; b.vs #0x8c +;; 50: fmov d31, #-1.00000000 ;; fcmp d31, d0 -;; b.le #0x70 -;; 40: mov x16, #0x41f0000000000000 +;; b.le #0x90 +;; 5c: mov x16, #0x41f0000000000000 ;; fmov d31, x16 ;; fcmp d31, d0 -;; b.ge #0x74 -;; 50: fcvtzu w0, d0 +;; b.ge #0x94 +;; 6c: fcvtzu 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 +;; 88: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 8c: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 90: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 94: .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 ce8a83e7541b..990527801ce6 100644 --- a/tests/disas/winch/aarch64/i32_trunc_f64_u/locals.wat +++ b/tests/disas/winch/aarch64/i32_trunc_f64_u/locals.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x8c +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -23,21 +30,22 @@ ;; stur x16, [x28] ;; ldur d0, [x28] ;; fcmp d0, d0 -;; b.vs #0x70 -;; 38: fmov d31, #-1.00000000 +;; b.vs #0x90 +;; 54: fmov d31, #-1.00000000 ;; fcmp d31, d0 -;; b.le #0x74 -;; 44: mov x16, #0x41f0000000000000 +;; b.le #0x94 +;; 60: mov x16, #0x41f0000000000000 ;; fmov d31, x16 ;; fcmp d31, d0 -;; b.ge #0x78 -;; 54: fcvtzu w0, d0 +;; b.ge #0x98 +;; 70: fcvtzu 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 +;; 8c: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 90: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 94: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 98: .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 d58a8b4e5b29..c14fcbada00e 100644 --- a/tests/disas/winch/aarch64/i32_trunc_f64_u/params.wat +++ b/tests/disas/winch/aarch64/i32_trunc_f64_u/params.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x88 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -20,21 +27,22 @@ ;; stur d0, [x28] ;; ldur d0, [x28] ;; fcmp d0, d0 -;; b.vs #0x6c -;; 34: fmov d31, #-1.00000000 +;; b.vs #0x8c +;; 50: fmov d31, #-1.00000000 ;; fcmp d31, d0 -;; b.le #0x70 -;; 40: mov x16, #0x41f0000000000000 +;; b.le #0x90 +;; 5c: mov x16, #0x41f0000000000000 ;; fmov d31, x16 ;; fcmp d31, d0 -;; b.ge #0x74 -;; 50: fcvtzu w0, d0 +;; b.ge #0x94 +;; 6c: fcvtzu 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 +;; 88: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 8c: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 90: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 94: .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 847072da11c7..1e74c534c5f5 100644 --- a/tests/disas/winch/aarch64/i32_wrap_i64/const.wat +++ b/tests/disas/winch/aarch64/i32_wrap_i64/const.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x64 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -26,3 +33,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_wrap_i64/locals.wat b/tests/disas/winch/aarch64/i32_wrap_i64/locals.wat index 5f8d1a570300..30ea193f3c7c 100644 --- a/tests/disas/winch/aarch64/i32_wrap_i64/locals.wat +++ b/tests/disas/winch/aarch64/i32_wrap_i64/locals.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x68 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -29,3 +36,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_wrap_i64/params.wat b/tests/disas/winch/aarch64/i32_wrap_i64/params.wat index 5c0cf0c690f9..96987b153f9b 100644 --- a/tests/disas/winch/aarch64/i32_wrap_i64/params.wat +++ b/tests/disas/winch/aarch64/i32_wrap_i64/params.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x64 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -26,3 +33,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_xor/const.wat b/tests/disas/winch/aarch64/i32_xor/const.wat index 722816226877..b066c1a76c73 100644 --- a/tests/disas/winch/aarch64/i32_xor/const.wat +++ b/tests/disas/winch/aarch64/i32_xor/const.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x64 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -27,3 +34,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_xor/locals.wat b/tests/disas/winch/aarch64/i32_xor/locals.wat index dfac23d29e3d..cfd75c119f86 100644 --- a/tests/disas/winch/aarch64/i32_xor/locals.wat +++ b/tests/disas/winch/aarch64/i32_xor/locals.wat @@ -22,7 +22,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x88 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -45,3 +52,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 88: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i32_xor/params.wat b/tests/disas/winch/aarch64/i32_xor/params.wat index a251576087ba..912b78e2ea64 100644 --- a/tests/disas/winch/aarch64/i32_xor/params.wat +++ b/tests/disas/winch/aarch64/i32_xor/params.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x70 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -30,3 +37,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_add/const.wat b/tests/disas/winch/aarch64/i64_add/const.wat index e1f24cb6c535..06bf5f9573e5 100644 --- a/tests/disas/winch/aarch64/i64_add/const.wat +++ b/tests/disas/winch/aarch64/i64_add/const.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x64 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -27,3 +34,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_add/locals.wat b/tests/disas/winch/aarch64/i64_add/locals.wat index 5218232020ab..eb75cfdd33d6 100644 --- a/tests/disas/winch/aarch64/i64_add/locals.wat +++ b/tests/disas/winch/aarch64/i64_add/locals.wat @@ -22,7 +22,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x20 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x8c +;; 2c: mov x9, x0 ;; sub x28, x28, #0x20 ;; mov sp, x28 ;; stur x0, [x28, #0x18] @@ -46,3 +53,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 8c: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_add/max.wat b/tests/disas/winch/aarch64/i64_add/max.wat index 3448101f888f..1efbede5b7f2 100644 --- a/tests/disas/winch/aarch64/i64_add/max.wat +++ b/tests/disas/winch/aarch64/i64_add/max.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x68 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -27,3 +34,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_add/max_one.wat b/tests/disas/winch/aarch64/i64_add/max_one.wat index e32ce54ff002..f274ff8f0014 100644 --- a/tests/disas/winch/aarch64/i64_add/max_one.wat +++ b/tests/disas/winch/aarch64/i64_add/max_one.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x68 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -28,3 +35,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_add/mixed.wat b/tests/disas/winch/aarch64/i64_add/mixed.wat index 8397aaae2f63..776e05188c35 100644 --- a/tests/disas/winch/aarch64/i64_add/mixed.wat +++ b/tests/disas/winch/aarch64/i64_add/mixed.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x64 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -27,3 +34,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_add/params.wat b/tests/disas/winch/aarch64/i64_add/params.wat index 7f4943e605f4..4c29c8837846 100644 --- a/tests/disas/winch/aarch64/i64_add/params.wat +++ b/tests/disas/winch/aarch64/i64_add/params.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x20 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x70 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x20 ;; mov sp, x28 ;; stur x0, [x28, #0x18] @@ -30,3 +37,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_add/signed.wat b/tests/disas/winch/aarch64/i64_add/signed.wat index dbeb3eb402aa..e00790452a74 100644 --- a/tests/disas/winch/aarch64/i64_add/signed.wat +++ b/tests/disas/winch/aarch64/i64_add/signed.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x68 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -28,3 +35,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 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 59f0e1f6d946..857409fe156e 100644 --- a/tests/disas/winch/aarch64/i64_add/unsigned_with_zero.wat +++ b/tests/disas/winch/aarch64/i64_add/unsigned_with_zero.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x64 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -27,3 +34,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_and/32_const.wat b/tests/disas/winch/aarch64/i64_and/32_const.wat index 803aba07ef4c..181df295754d 100644 --- a/tests/disas/winch/aarch64/i64_and/32_const.wat +++ b/tests/disas/winch/aarch64/i64_and/32_const.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x64 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -27,3 +34,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_and/64_const.wat b/tests/disas/winch/aarch64/i64_and/64_const.wat index 34aa0dbb3b79..bd7b5079b52b 100644 --- a/tests/disas/winch/aarch64/i64_and/64_const.wat +++ b/tests/disas/winch/aarch64/i64_and/64_const.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x64 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -27,3 +34,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_and/locals.wat b/tests/disas/winch/aarch64/i64_and/locals.wat index 194f522aa663..593a344345e3 100644 --- a/tests/disas/winch/aarch64/i64_and/locals.wat +++ b/tests/disas/winch/aarch64/i64_and/locals.wat @@ -21,7 +21,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x20 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x8c +;; 2c: mov x9, x0 ;; sub x28, x28, #0x20 ;; mov sp, x28 ;; stur x0, [x28, #0x18] @@ -45,3 +52,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 8c: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_and/params.wat b/tests/disas/winch/aarch64/i64_and/params.wat index f22166326dce..702bf5a19fad 100644 --- a/tests/disas/winch/aarch64/i64_and/params.wat +++ b/tests/disas/winch/aarch64/i64_and/params.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x20 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x70 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x20 ;; mov sp, x28 ;; stur x0, [x28, #0x18] @@ -30,3 +37,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_clz/const.wat b/tests/disas/winch/aarch64/i64_clz/const.wat index 76f246b90525..054e7e081d91 100644 --- a/tests/disas/winch/aarch64/i64_clz/const.wat +++ b/tests/disas/winch/aarch64/i64_clz/const.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x64 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -26,3 +33,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_clz/locals.wat b/tests/disas/winch/aarch64/i64_clz/locals.wat index 4c7b927c0b3f..92452966c0c3 100644 --- a/tests/disas/winch/aarch64/i64_clz/locals.wat +++ b/tests/disas/winch/aarch64/i64_clz/locals.wat @@ -16,7 +16,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x70 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -33,3 +40,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_clz/params.wat b/tests/disas/winch/aarch64/i64_clz/params.wat index 64b5d4c5f8c0..c73d3c51ff6d 100644 --- a/tests/disas/winch/aarch64/i64_clz/params.wat +++ b/tests/disas/winch/aarch64/i64_clz/params.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x64 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -26,3 +33,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_ctz/const.wat b/tests/disas/winch/aarch64/i64_ctz/const.wat index 5f6d4a39f342..9a9a282229d8 100644 --- a/tests/disas/winch/aarch64/i64_ctz/const.wat +++ b/tests/disas/winch/aarch64/i64_ctz/const.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x68 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -27,3 +34,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_ctz/locals.wat b/tests/disas/winch/aarch64/i64_ctz/locals.wat index f042821b41ec..1be7ac34bd3a 100644 --- a/tests/disas/winch/aarch64/i64_ctz/locals.wat +++ b/tests/disas/winch/aarch64/i64_ctz/locals.wat @@ -16,7 +16,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x74 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -34,3 +41,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 74: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_ctz/params.wat b/tests/disas/winch/aarch64/i64_ctz/params.wat index 7b57045c47d7..9dea2ceba214 100644 --- a/tests/disas/winch/aarch64/i64_ctz/params.wat +++ b/tests/disas/winch/aarch64/i64_ctz/params.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x68 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -27,3 +34,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_divs/const.wat b/tests/disas/winch/aarch64/i64_divs/const.wat index 96d5f6951236..d28e74c674fb 100644 --- a/tests/disas/winch/aarch64/i64_divs/const.wat +++ b/tests/disas/winch/aarch64/i64_divs/const.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x80 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -23,11 +30,11 @@ ;; mov x0, x16 ;; mov x16, #0x14 ;; mov x1, x16 -;; cbz x0, #0x64 -;; 38: cmn x0, #1 +;; cbz x0, #0x84 +;; 54: cmn x0, #1 ;; ccmp x1, #1, #0, eq -;; b.vs #0x68 -;; 44: sdiv x1, x1, x0 +;; b.vs #0x88 +;; 60: sdiv x1, x1, x0 ;; mov x0, x1 ;; add x28, x28, #0x10 ;; mov sp, x28 @@ -35,5 +42,6 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 -;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 80: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 84: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 88: .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 33eba67fca13..2f06bd54a0a3 100644 --- a/tests/disas/winch/aarch64/i64_divs/one_zero.wat +++ b/tests/disas/winch/aarch64/i64_divs/one_zero.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x80 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -23,11 +30,11 @@ ;; mov x0, x16 ;; mov x16, #1 ;; mov x1, x16 -;; cbz x0, #0x64 -;; 38: cmn x0, #1 +;; cbz x0, #0x84 +;; 54: cmn x0, #1 ;; ccmp x1, #1, #0, eq -;; b.vs #0x68 -;; 44: sdiv x1, x1, x0 +;; b.vs #0x88 +;; 60: sdiv x1, x1, x0 ;; mov x0, x1 ;; add x28, x28, #0x10 ;; mov sp, x28 @@ -35,5 +42,6 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 -;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 80: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 84: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 88: .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 c708f5201823..6ec01f3769db 100644 --- a/tests/disas/winch/aarch64/i64_divs/overflow.wat +++ b/tests/disas/winch/aarch64/i64_divs/overflow.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x80 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -23,11 +30,11 @@ ;; mov x0, x16 ;; mov x16, #-0x8000000000000000 ;; mov x1, x16 -;; cbz x0, #0x64 -;; 38: cmn x0, #1 +;; cbz x0, #0x84 +;; 54: cmn x0, #1 ;; ccmp x1, #1, #0, eq -;; b.vs #0x68 -;; 44: sdiv x1, x1, x0 +;; b.vs #0x88 +;; 60: sdiv x1, x1, x0 ;; mov x0, x1 ;; add x28, x28, #0x10 ;; mov sp, x28 @@ -35,5 +42,6 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 -;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 80: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 84: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 88: .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 bb4c4574069d..e5a0649667fd 100644 --- a/tests/disas/winch/aarch64/i64_divs/params.wat +++ b/tests/disas/winch/aarch64/i64_divs/params.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x20 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x80 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x20 ;; mov sp, x28 ;; stur x0, [x28, #0x18] @@ -23,11 +30,11 @@ ;; stur x3, [x28] ;; ldur x0, [x28] ;; ldur x1, [x28, #8] -;; cbz x0, #0x64 -;; 38: cmn x0, #1 +;; cbz x0, #0x84 +;; 54: cmn x0, #1 ;; ccmp x1, #1, #0, eq -;; b.vs #0x68 -;; 44: sdiv x1, x1, x0 +;; b.vs #0x88 +;; 60: sdiv x1, x1, x0 ;; mov x0, x1 ;; add x28, x28, #0x20 ;; mov sp, x28 @@ -35,5 +42,6 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 -;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 80: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 84: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 88: .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 657e4c7de9be..e3bb2d241f3d 100644 --- a/tests/disas/winch/aarch64/i64_divs/zero_zero.wat +++ b/tests/disas/winch/aarch64/i64_divs/zero_zero.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x80 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -23,11 +30,11 @@ ;; mov x0, x16 ;; mov x16, #0 ;; mov x1, x16 -;; cbz x0, #0x64 -;; 38: cmn x0, #1 +;; cbz x0, #0x84 +;; 54: cmn x0, #1 ;; ccmp x1, #1, #0, eq -;; b.vs #0x68 -;; 44: sdiv x1, x1, x0 +;; b.vs #0x88 +;; 60: sdiv x1, x1, x0 ;; mov x0, x1 ;; add x28, x28, #0x10 ;; mov sp, x28 @@ -35,5 +42,6 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 -;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 80: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 84: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 88: .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 92c2b464b112..f4561b30e1d0 100644 --- a/tests/disas/winch/aarch64/i64_divu/const.wat +++ b/tests/disas/winch/aarch64/i64_divu/const.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x74 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -23,8 +30,8 @@ ;; mov x0, x16 ;; mov x16, #0x14 ;; mov x1, x16 -;; cbz x0, #0x58 -;; 38: udiv x1, x1, x0 +;; cbz x0, #0x78 +;; 54: udiv x1, x1, x0 ;; mov x0, x1 ;; add x28, x28, #0x10 ;; mov sp, x28 @@ -32,4 +39,5 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 58: .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_divu/one_zero.wat b/tests/disas/winch/aarch64/i64_divu/one_zero.wat index 994a7b596162..b591aeea7d7b 100644 --- a/tests/disas/winch/aarch64/i64_divu/one_zero.wat +++ b/tests/disas/winch/aarch64/i64_divu/one_zero.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x74 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -23,8 +30,8 @@ ;; mov x0, x16 ;; mov x16, #1 ;; mov x1, x16 -;; cbz x0, #0x58 -;; 38: udiv x1, x1, x0 +;; cbz x0, #0x78 +;; 54: udiv x1, x1, x0 ;; mov x0, x1 ;; add x28, x28, #0x10 ;; mov sp, x28 @@ -32,4 +39,5 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 58: .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_divu/params.wat b/tests/disas/winch/aarch64/i64_divu/params.wat index 2a51484a74f5..d157500b895c 100644 --- a/tests/disas/winch/aarch64/i64_divu/params.wat +++ b/tests/disas/winch/aarch64/i64_divu/params.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x20 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x74 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x20 ;; mov sp, x28 ;; stur x0, [x28, #0x18] @@ -23,8 +30,8 @@ ;; stur x3, [x28] ;; ldur x0, [x28] ;; ldur x1, [x28, #8] -;; cbz x0, #0x58 -;; 38: udiv x1, x1, x0 +;; cbz x0, #0x78 +;; 54: udiv x1, x1, x0 ;; mov x0, x1 ;; add x28, x28, #0x20 ;; mov sp, x28 @@ -32,4 +39,5 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 58: .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_divu/signed.wat b/tests/disas/winch/aarch64/i64_divu/signed.wat index 0de4a6c04881..f4c3c91f791e 100644 --- a/tests/disas/winch/aarch64/i64_divu/signed.wat +++ b/tests/disas/winch/aarch64/i64_divu/signed.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x74 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -23,8 +30,8 @@ ;; mov x0, x16 ;; mov x16, #-1 ;; mov x1, x16 -;; cbz x0, #0x58 -;; 38: udiv x1, x1, x0 +;; cbz x0, #0x78 +;; 54: udiv x1, x1, x0 ;; mov x0, x1 ;; add x28, x28, #0x10 ;; mov sp, x28 @@ -32,4 +39,5 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 58: .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_divu/zero_zero.wat b/tests/disas/winch/aarch64/i64_divu/zero_zero.wat index 82f8fd7fd308..8d65d032c184 100644 --- a/tests/disas/winch/aarch64/i64_divu/zero_zero.wat +++ b/tests/disas/winch/aarch64/i64_divu/zero_zero.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x74 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -23,8 +30,8 @@ ;; mov x0, x16 ;; mov x16, #0 ;; mov x1, x16 -;; cbz x0, #0x58 -;; 38: udiv x1, x1, x0 +;; cbz x0, #0x78 +;; 54: udiv x1, x1, x0 ;; mov x0, x1 ;; add x28, x28, #0x10 ;; mov sp, x28 @@ -32,4 +39,5 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 58: .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_eq/const.wat b/tests/disas/winch/aarch64/i64_eq/const.wat index 1424df1027d1..a2a76ec57f25 100644 --- a/tests/disas/winch/aarch64/i64_eq/const.wat +++ b/tests/disas/winch/aarch64/i64_eq/const.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x68 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -29,3 +36,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_eq/locals.wat b/tests/disas/winch/aarch64/i64_eq/locals.wat index 4e93378b679e..30ce31044ebb 100644 --- a/tests/disas/winch/aarch64/i64_eq/locals.wat +++ b/tests/disas/winch/aarch64/i64_eq/locals.wat @@ -22,7 +22,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x20 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x90 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x20 ;; mov sp, x28 ;; stur x0, [x28, #0x18] @@ -47,3 +54,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 90: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_eq/params.wat b/tests/disas/winch/aarch64/i64_eq/params.wat index 3ce2e3037978..97f836d17f4c 100644 --- a/tests/disas/winch/aarch64/i64_eq/params.wat +++ b/tests/disas/winch/aarch64/i64_eq/params.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x20 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x74 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x20 ;; mov sp, x28 ;; stur x0, [x28, #0x18] @@ -31,3 +38,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 74: .byte 0x1f, 0xc1, 0x00, 0x00 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 f3b850594241..5ed8183c9c65 100644 --- a/tests/disas/winch/aarch64/i64_extend_16_s/const.wat +++ b/tests/disas/winch/aarch64/i64_extend_16_s/const.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x64 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -26,3 +33,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 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 494262f0714a..3d8dedde134f 100644 --- a/tests/disas/winch/aarch64/i64_extend_16_s/locals.wat +++ b/tests/disas/winch/aarch64/i64_extend_16_s/locals.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x68 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -29,3 +36,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 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 10d6764b0925..a61dc9d5e73c 100644 --- a/tests/disas/winch/aarch64/i64_extend_16_s/params.wat +++ b/tests/disas/winch/aarch64/i64_extend_16_s/params.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x64 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -26,3 +33,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 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 6f7a8cca01e5..5b06d0b5c4fa 100644 --- a/tests/disas/winch/aarch64/i64_extend_32_s/const.wat +++ b/tests/disas/winch/aarch64/i64_extend_32_s/const.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x64 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -26,3 +33,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 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 dc960bad4443..f00b910a354f 100644 --- a/tests/disas/winch/aarch64/i64_extend_32_s/locals.wat +++ b/tests/disas/winch/aarch64/i64_extend_32_s/locals.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x68 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -29,3 +36,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 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 542c33df10cb..3bc594f0104d 100644 --- a/tests/disas/winch/aarch64/i64_extend_32_s/params.wat +++ b/tests/disas/winch/aarch64/i64_extend_32_s/params.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x64 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -26,3 +33,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 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 3d8c3128e155..a1d27467a58a 100644 --- a/tests/disas/winch/aarch64/i64_extend_8_s/const.wat +++ b/tests/disas/winch/aarch64/i64_extend_8_s/const.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x64 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -26,3 +33,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 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 428e3523f7f5..e577aafbcb56 100644 --- a/tests/disas/winch/aarch64/i64_extend_8_s/locals.wat +++ b/tests/disas/winch/aarch64/i64_extend_8_s/locals.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x68 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -29,3 +36,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 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 6443fa258c28..e044a4e0178a 100644 --- a/tests/disas/winch/aarch64/i64_extend_8_s/params.wat +++ b/tests/disas/winch/aarch64/i64_extend_8_s/params.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x64 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -26,3 +33,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 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 5df293f303d6..45454db68d52 100644 --- a/tests/disas/winch/aarch64/i64_extend_i32_s/const.wat +++ b/tests/disas/winch/aarch64/i64_extend_i32_s/const.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x64 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -26,3 +33,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 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 35ae9a963e85..8c1478524aab 100644 --- a/tests/disas/winch/aarch64/i64_extend_i32_s/locals.wat +++ b/tests/disas/winch/aarch64/i64_extend_i32_s/locals.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x68 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -29,3 +36,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 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 f4f05ef9d10c..02deb531033a 100644 --- a/tests/disas/winch/aarch64/i64_extend_i32_s/params.wat +++ b/tests/disas/winch/aarch64/i64_extend_i32_s/params.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x64 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -26,3 +33,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 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 691281ceef67..404a2be36d97 100644 --- a/tests/disas/winch/aarch64/i64_extend_i32_u/const.wat +++ b/tests/disas/winch/aarch64/i64_extend_i32_u/const.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x64 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -26,3 +33,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 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 da08e32335fe..b6a47513af09 100644 --- a/tests/disas/winch/aarch64/i64_extend_i32_u/locals.wat +++ b/tests/disas/winch/aarch64/i64_extend_i32_u/locals.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x68 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -29,3 +36,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 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 4f9290d5f55a..ffa546ab59db 100644 --- a/tests/disas/winch/aarch64/i64_extend_i32_u/params.wat +++ b/tests/disas/winch/aarch64/i64_extend_i32_u/params.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x64 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -26,3 +33,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_ge_s/const.wat b/tests/disas/winch/aarch64/i64_ge_s/const.wat index 6d080bfa0f7f..c2d325bedd66 100644 --- a/tests/disas/winch/aarch64/i64_ge_s/const.wat +++ b/tests/disas/winch/aarch64/i64_ge_s/const.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x6c +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -30,3 +37,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 6c: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_ge_s/locals.wat b/tests/disas/winch/aarch64/i64_ge_s/locals.wat index 990322c5d0ac..795c52e02e05 100644 --- a/tests/disas/winch/aarch64/i64_ge_s/locals.wat +++ b/tests/disas/winch/aarch64/i64_ge_s/locals.wat @@ -22,7 +22,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x20 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x90 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x20 ;; mov sp, x28 ;; stur x0, [x28, #0x18] @@ -47,3 +54,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 90: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_ge_s/params.wat b/tests/disas/winch/aarch64/i64_ge_s/params.wat index 36e84085fce6..3f8aaf4e1165 100644 --- a/tests/disas/winch/aarch64/i64_ge_s/params.wat +++ b/tests/disas/winch/aarch64/i64_ge_s/params.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x20 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x74 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x20 ;; mov sp, x28 ;; stur x0, [x28, #0x18] @@ -31,3 +38,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 74: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_ge_u/const.wat b/tests/disas/winch/aarch64/i64_ge_u/const.wat index f8df683c3725..16db1a9e25bb 100644 --- a/tests/disas/winch/aarch64/i64_ge_u/const.wat +++ b/tests/disas/winch/aarch64/i64_ge_u/const.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x68 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -29,3 +36,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_ge_u/locals.wat b/tests/disas/winch/aarch64/i64_ge_u/locals.wat index 068d621d1e93..3c7b01c277e3 100644 --- a/tests/disas/winch/aarch64/i64_ge_u/locals.wat +++ b/tests/disas/winch/aarch64/i64_ge_u/locals.wat @@ -22,7 +22,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x20 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x90 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x20 ;; mov sp, x28 ;; stur x0, [x28, #0x18] @@ -47,3 +54,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 90: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_ge_u/params.wat b/tests/disas/winch/aarch64/i64_ge_u/params.wat index 6e67b4b80140..d25a8d8d77c4 100644 --- a/tests/disas/winch/aarch64/i64_ge_u/params.wat +++ b/tests/disas/winch/aarch64/i64_ge_u/params.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x20 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x74 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x20 ;; mov sp, x28 ;; stur x0, [x28, #0x18] @@ -31,3 +38,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 74: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_gt_s/const.wat b/tests/disas/winch/aarch64/i64_gt_s/const.wat index 62ca9f2eea0f..f88c5cd49311 100644 --- a/tests/disas/winch/aarch64/i64_gt_s/const.wat +++ b/tests/disas/winch/aarch64/i64_gt_s/const.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x6c +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -30,3 +37,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 6c: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_gt_s/locals.wat b/tests/disas/winch/aarch64/i64_gt_s/locals.wat index 5f6b7ab3cf88..478eb66e8d1a 100644 --- a/tests/disas/winch/aarch64/i64_gt_s/locals.wat +++ b/tests/disas/winch/aarch64/i64_gt_s/locals.wat @@ -22,7 +22,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x20 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x90 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x20 ;; mov sp, x28 ;; stur x0, [x28, #0x18] @@ -47,3 +54,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 90: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_gt_s/params.wat b/tests/disas/winch/aarch64/i64_gt_s/params.wat index 63e739653abd..8ab3122a92c6 100644 --- a/tests/disas/winch/aarch64/i64_gt_s/params.wat +++ b/tests/disas/winch/aarch64/i64_gt_s/params.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x20 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x74 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x20 ;; mov sp, x28 ;; stur x0, [x28, #0x18] @@ -31,3 +38,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 74: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_gt_u/const.wat b/tests/disas/winch/aarch64/i64_gt_u/const.wat index ab03be4a3d2e..51f15184a6a3 100644 --- a/tests/disas/winch/aarch64/i64_gt_u/const.wat +++ b/tests/disas/winch/aarch64/i64_gt_u/const.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x68 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -29,3 +36,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_gt_u/locals.wat b/tests/disas/winch/aarch64/i64_gt_u/locals.wat index cf4b1571ed5b..c935c420a224 100644 --- a/tests/disas/winch/aarch64/i64_gt_u/locals.wat +++ b/tests/disas/winch/aarch64/i64_gt_u/locals.wat @@ -22,7 +22,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x20 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x90 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x20 ;; mov sp, x28 ;; stur x0, [x28, #0x18] @@ -47,3 +54,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 90: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_gt_u/params.wat b/tests/disas/winch/aarch64/i64_gt_u/params.wat index b44eb8fb3a01..2fa1eafe2418 100644 --- a/tests/disas/winch/aarch64/i64_gt_u/params.wat +++ b/tests/disas/winch/aarch64/i64_gt_u/params.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x20 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x74 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x20 ;; mov sp, x28 ;; stur x0, [x28, #0x18] @@ -31,3 +38,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 74: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_le_s/const.wat b/tests/disas/winch/aarch64/i64_le_s/const.wat index 2d11dde2fe08..5714bb86afa4 100644 --- a/tests/disas/winch/aarch64/i64_le_s/const.wat +++ b/tests/disas/winch/aarch64/i64_le_s/const.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x6c +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -30,3 +37,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 6c: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_le_s/locals.wat b/tests/disas/winch/aarch64/i64_le_s/locals.wat index 9ab6f757bec6..6c11018f7f41 100644 --- a/tests/disas/winch/aarch64/i64_le_s/locals.wat +++ b/tests/disas/winch/aarch64/i64_le_s/locals.wat @@ -22,7 +22,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x20 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x90 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x20 ;; mov sp, x28 ;; stur x0, [x28, #0x18] @@ -47,3 +54,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 90: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_le_s/params.wat b/tests/disas/winch/aarch64/i64_le_s/params.wat index f59dbf2a1989..12261834391a 100644 --- a/tests/disas/winch/aarch64/i64_le_s/params.wat +++ b/tests/disas/winch/aarch64/i64_le_s/params.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x20 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x74 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x20 ;; mov sp, x28 ;; stur x0, [x28, #0x18] @@ -31,3 +38,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 74: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_le_u/const.wat b/tests/disas/winch/aarch64/i64_le_u/const.wat index 2c52238a98e0..978230d02d0b 100644 --- a/tests/disas/winch/aarch64/i64_le_u/const.wat +++ b/tests/disas/winch/aarch64/i64_le_u/const.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x68 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -29,3 +36,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_le_u/locals.wat b/tests/disas/winch/aarch64/i64_le_u/locals.wat index 55e6e9a3fc18..2bed58e0f9f1 100644 --- a/tests/disas/winch/aarch64/i64_le_u/locals.wat +++ b/tests/disas/winch/aarch64/i64_le_u/locals.wat @@ -22,7 +22,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x20 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x90 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x20 ;; mov sp, x28 ;; stur x0, [x28, #0x18] @@ -47,3 +54,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 90: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_le_u/params.wat b/tests/disas/winch/aarch64/i64_le_u/params.wat index e8d7508e1270..0542af73ddfe 100644 --- a/tests/disas/winch/aarch64/i64_le_u/params.wat +++ b/tests/disas/winch/aarch64/i64_le_u/params.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x20 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x74 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x20 ;; mov sp, x28 ;; stur x0, [x28, #0x18] @@ -31,3 +38,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 74: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_lt_s/const.wat b/tests/disas/winch/aarch64/i64_lt_s/const.wat index 73d611dd2bef..e9d056bd181b 100644 --- a/tests/disas/winch/aarch64/i64_lt_s/const.wat +++ b/tests/disas/winch/aarch64/i64_lt_s/const.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x6c +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -30,3 +37,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 6c: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_lt_s/locals.wat b/tests/disas/winch/aarch64/i64_lt_s/locals.wat index a4f6da770c36..9736e25c9694 100644 --- a/tests/disas/winch/aarch64/i64_lt_s/locals.wat +++ b/tests/disas/winch/aarch64/i64_lt_s/locals.wat @@ -22,7 +22,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x20 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x90 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x20 ;; mov sp, x28 ;; stur x0, [x28, #0x18] @@ -47,3 +54,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 90: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_lt_s/params.wat b/tests/disas/winch/aarch64/i64_lt_s/params.wat index 130e6b4afb85..e325f4d13b74 100644 --- a/tests/disas/winch/aarch64/i64_lt_s/params.wat +++ b/tests/disas/winch/aarch64/i64_lt_s/params.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x20 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x74 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x20 ;; mov sp, x28 ;; stur x0, [x28, #0x18] @@ -31,3 +38,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 74: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_lt_u/const.wat b/tests/disas/winch/aarch64/i64_lt_u/const.wat index ad921711fcda..b836b1366a49 100644 --- a/tests/disas/winch/aarch64/i64_lt_u/const.wat +++ b/tests/disas/winch/aarch64/i64_lt_u/const.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x68 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -29,3 +36,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_lt_u/locals.wat b/tests/disas/winch/aarch64/i64_lt_u/locals.wat index 7d45d1db7fe6..c3b3a03a2f71 100644 --- a/tests/disas/winch/aarch64/i64_lt_u/locals.wat +++ b/tests/disas/winch/aarch64/i64_lt_u/locals.wat @@ -22,7 +22,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x20 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x90 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x20 ;; mov sp, x28 ;; stur x0, [x28, #0x18] @@ -47,3 +54,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 90: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_lt_u/params.wat b/tests/disas/winch/aarch64/i64_lt_u/params.wat index 3bb03313e33c..24931fabded3 100644 --- a/tests/disas/winch/aarch64/i64_lt_u/params.wat +++ b/tests/disas/winch/aarch64/i64_lt_u/params.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x20 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x74 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x20 ;; mov sp, x28 ;; stur x0, [x28, #0x18] @@ -31,3 +38,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 74: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_mul/const.wat b/tests/disas/winch/aarch64/i64_mul/const.wat index d435460f0092..d711c1f048be 100644 --- a/tests/disas/winch/aarch64/i64_mul/const.wat +++ b/tests/disas/winch/aarch64/i64_mul/const.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x68 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -28,3 +35,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_mul/locals.wat b/tests/disas/winch/aarch64/i64_mul/locals.wat index 3f07314ffab6..bc4f661eb04d 100644 --- a/tests/disas/winch/aarch64/i64_mul/locals.wat +++ b/tests/disas/winch/aarch64/i64_mul/locals.wat @@ -22,7 +22,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x20 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x8c +;; 2c: mov x9, x0 ;; sub x28, x28, #0x20 ;; mov sp, x28 ;; stur x0, [x28, #0x18] @@ -46,3 +53,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 8c: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_mul/max.wat b/tests/disas/winch/aarch64/i64_mul/max.wat index a53cda462d6c..9736cfaf8a98 100644 --- a/tests/disas/winch/aarch64/i64_mul/max.wat +++ b/tests/disas/winch/aarch64/i64_mul/max.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x68 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -27,3 +34,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_mul/max_one.wat b/tests/disas/winch/aarch64/i64_mul/max_one.wat index 4900d202f000..add5e94715a0 100644 --- a/tests/disas/winch/aarch64/i64_mul/max_one.wat +++ b/tests/disas/winch/aarch64/i64_mul/max_one.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x68 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -28,3 +35,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_mul/mixed.wat b/tests/disas/winch/aarch64/i64_mul/mixed.wat index d892a836eb73..567e6f19587c 100644 --- a/tests/disas/winch/aarch64/i64_mul/mixed.wat +++ b/tests/disas/winch/aarch64/i64_mul/mixed.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x68 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -28,3 +35,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_mul/params.wat b/tests/disas/winch/aarch64/i64_mul/params.wat index 9fa7dc418d29..e0d13df18ba5 100644 --- a/tests/disas/winch/aarch64/i64_mul/params.wat +++ b/tests/disas/winch/aarch64/i64_mul/params.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x20 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x70 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x20 ;; mov sp, x28 ;; stur x0, [x28, #0x18] @@ -30,3 +37,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_mul/signed.wat b/tests/disas/winch/aarch64/i64_mul/signed.wat index 22bfb4cf2fed..eea966e92dec 100644 --- a/tests/disas/winch/aarch64/i64_mul/signed.wat +++ b/tests/disas/winch/aarch64/i64_mul/signed.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x68 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -28,3 +35,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 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 590e4d2ee215..1d751a0a1c38 100644 --- a/tests/disas/winch/aarch64/i64_mul/unsigned_with_zero.wat +++ b/tests/disas/winch/aarch64/i64_mul/unsigned_with_zero.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x68 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -28,3 +35,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_ne/const.wat b/tests/disas/winch/aarch64/i64_ne/const.wat index 73d8a5814454..5dc6c7805a46 100644 --- a/tests/disas/winch/aarch64/i64_ne/const.wat +++ b/tests/disas/winch/aarch64/i64_ne/const.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x68 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -29,3 +36,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_ne/locals.wat b/tests/disas/winch/aarch64/i64_ne/locals.wat index 3d603704b7e6..1072736fe555 100644 --- a/tests/disas/winch/aarch64/i64_ne/locals.wat +++ b/tests/disas/winch/aarch64/i64_ne/locals.wat @@ -22,7 +22,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x20 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x90 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x20 ;; mov sp, x28 ;; stur x0, [x28, #0x18] @@ -47,3 +54,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 90: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_ne/params.wat b/tests/disas/winch/aarch64/i64_ne/params.wat index d5f42f9ddea9..ff03a3075292 100644 --- a/tests/disas/winch/aarch64/i64_ne/params.wat +++ b/tests/disas/winch/aarch64/i64_ne/params.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x20 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x74 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x20 ;; mov sp, x28 ;; stur x0, [x28, #0x18] @@ -31,3 +38,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 74: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_or/32_const.wat b/tests/disas/winch/aarch64/i64_or/32_const.wat index 602bb25e4b2f..705877d0abd1 100644 --- a/tests/disas/winch/aarch64/i64_or/32_const.wat +++ b/tests/disas/winch/aarch64/i64_or/32_const.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x64 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -27,3 +34,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_or/64_const.wat b/tests/disas/winch/aarch64/i64_or/64_const.wat index 9fc0b29d9fa7..6a1eb260f321 100644 --- a/tests/disas/winch/aarch64/i64_or/64_const.wat +++ b/tests/disas/winch/aarch64/i64_or/64_const.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x64 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -27,3 +34,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_or/locals.wat b/tests/disas/winch/aarch64/i64_or/locals.wat index 3d2ff13ba37e..3f8179de775f 100644 --- a/tests/disas/winch/aarch64/i64_or/locals.wat +++ b/tests/disas/winch/aarch64/i64_or/locals.wat @@ -21,7 +21,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x20 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x8c +;; 2c: mov x9, x0 ;; sub x28, x28, #0x20 ;; mov sp, x28 ;; stur x0, [x28, #0x18] @@ -45,3 +52,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 8c: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_or/params.wat b/tests/disas/winch/aarch64/i64_or/params.wat index f7f324e5c374..5bf5a84da7c5 100644 --- a/tests/disas/winch/aarch64/i64_or/params.wat +++ b/tests/disas/winch/aarch64/i64_or/params.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x20 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x70 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x20 ;; mov sp, x28 ;; stur x0, [x28, #0x18] @@ -30,3 +37,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_popcnt/const.wat b/tests/disas/winch/aarch64/i64_popcnt/const.wat index d5726d7a5afc..877084a199d7 100644 --- a/tests/disas/winch/aarch64/i64_popcnt/const.wat +++ b/tests/disas/winch/aarch64/i64_popcnt/const.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x70 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -29,3 +36,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_popcnt/reg.wat b/tests/disas/winch/aarch64/i64_popcnt/reg.wat index 6fcd8a879f4b..06594feb35fd 100644 --- a/tests/disas/winch/aarch64/i64_popcnt/reg.wat +++ b/tests/disas/winch/aarch64/i64_popcnt/reg.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x70 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -29,3 +36,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_reinterpret_f64/const.wat b/tests/disas/winch/aarch64/i64_reinterpret_f64/const.wat index 62b5df4b6c77..2f9178131777 100644 --- a/tests/disas/winch/aarch64/i64_reinterpret_f64/const.wat +++ b/tests/disas/winch/aarch64/i64_reinterpret_f64/const.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x64 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -26,3 +33,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_reinterpret_f64/locals.wat b/tests/disas/winch/aarch64/i64_reinterpret_f64/locals.wat index 264788acdd3c..b6627af0d6e4 100644 --- a/tests/disas/winch/aarch64/i64_reinterpret_f64/locals.wat +++ b/tests/disas/winch/aarch64/i64_reinterpret_f64/locals.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x68 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -29,3 +36,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_reinterpret_f64/params.wat b/tests/disas/winch/aarch64/i64_reinterpret_f64/params.wat index b6c8e71d7d26..b506d65565e0 100644 --- a/tests/disas/winch/aarch64/i64_reinterpret_f64/params.wat +++ b/tests/disas/winch/aarch64/i64_reinterpret_f64/params.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x64 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -26,3 +33,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 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 6e9481ed7f71..d016528fe6a0 100644 --- a/tests/disas/winch/aarch64/i64_reinterpret_f64/ret_float.wat +++ b/tests/disas/winch/aarch64/i64_reinterpret_f64/ret_float.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x6c +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -30,3 +37,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 6c: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_rems/const.wat b/tests/disas/winch/aarch64/i64_rems/const.wat index 4d5f929af4d2..3d8291c33882 100644 --- a/tests/disas/winch/aarch64/i64_rems/const.wat +++ b/tests/disas/winch/aarch64/i64_rems/const.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x78 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -23,8 +30,8 @@ ;; mov x0, x16 ;; mov x16, #7 ;; mov x1, x16 -;; cbz x0, #0x5c -;; 38: sdiv x16, x1, x0 +;; cbz x0, #0x7c +;; 54: sdiv x16, x1, x0 ;; msub x1, x0, x16, x1 ;; mov x0, x1 ;; add x28, x28, #0x10 @@ -33,4 +40,5 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 5c: .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_rems/one_zero.wat b/tests/disas/winch/aarch64/i64_rems/one_zero.wat index 37906a2e4981..44a4ac35427a 100644 --- a/tests/disas/winch/aarch64/i64_rems/one_zero.wat +++ b/tests/disas/winch/aarch64/i64_rems/one_zero.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x78 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -23,8 +30,8 @@ ;; mov x0, x16 ;; mov x16, #1 ;; mov x1, x16 -;; cbz x0, #0x5c -;; 38: sdiv x16, x1, x0 +;; cbz x0, #0x7c +;; 54: sdiv x16, x1, x0 ;; msub x1, x0, x16, x1 ;; mov x0, x1 ;; add x28, x28, #0x10 @@ -33,4 +40,5 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 5c: .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_rems/overflow.wat b/tests/disas/winch/aarch64/i64_rems/overflow.wat index 15dc46f44e42..bbf126de2cc4 100644 --- a/tests/disas/winch/aarch64/i64_rems/overflow.wat +++ b/tests/disas/winch/aarch64/i64_rems/overflow.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x78 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -23,8 +30,8 @@ ;; mov x0, x16 ;; mov x16, #-0x8000000000000000 ;; mov x1, x16 -;; cbz x0, #0x5c -;; 38: sdiv x16, x1, x0 +;; cbz x0, #0x7c +;; 54: sdiv x16, x1, x0 ;; msub x1, x0, x16, x1 ;; mov x0, x1 ;; add x28, x28, #0x10 @@ -33,4 +40,5 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 5c: .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_rems/params.wat b/tests/disas/winch/aarch64/i64_rems/params.wat index c79cac6e660c..b370e0700efc 100644 --- a/tests/disas/winch/aarch64/i64_rems/params.wat +++ b/tests/disas/winch/aarch64/i64_rems/params.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x20 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x78 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x20 ;; mov sp, x28 ;; stur x0, [x28, #0x18] @@ -23,8 +30,8 @@ ;; stur x3, [x28] ;; ldur x0, [x28] ;; ldur x1, [x28, #8] -;; cbz x0, #0x5c -;; 38: sdiv x16, x1, x0 +;; cbz x0, #0x7c +;; 54: sdiv x16, x1, x0 ;; msub x1, x0, x16, x1 ;; mov x0, x1 ;; add x28, x28, #0x20 @@ -33,4 +40,5 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 5c: .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_rems/zero_zero.wat b/tests/disas/winch/aarch64/i64_rems/zero_zero.wat index be4c56a7ca6f..dd63217794ab 100644 --- a/tests/disas/winch/aarch64/i64_rems/zero_zero.wat +++ b/tests/disas/winch/aarch64/i64_rems/zero_zero.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x78 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -23,8 +30,8 @@ ;; mov x0, x16 ;; mov x16, #0 ;; mov x1, x16 -;; cbz x0, #0x5c -;; 38: sdiv x16, x1, x0 +;; cbz x0, #0x7c +;; 54: sdiv x16, x1, x0 ;; msub x1, x0, x16, x1 ;; mov x0, x1 ;; add x28, x28, #0x10 @@ -33,4 +40,5 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 5c: .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_remu/const.wat b/tests/disas/winch/aarch64/i64_remu/const.wat index 58e9f8b7f145..f2839f5ebb05 100644 --- a/tests/disas/winch/aarch64/i64_remu/const.wat +++ b/tests/disas/winch/aarch64/i64_remu/const.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x78 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -23,8 +30,8 @@ ;; mov x0, x16 ;; mov x16, #7 ;; mov x1, x16 -;; cbz x0, #0x5c -;; 38: udiv x16, x1, x0 +;; cbz x0, #0x7c +;; 54: udiv x16, x1, x0 ;; msub x1, x0, x16, x1 ;; mov x0, x1 ;; add x28, x28, #0x10 @@ -33,4 +40,5 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 5c: .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_remu/one_zero.wat b/tests/disas/winch/aarch64/i64_remu/one_zero.wat index 88a016ecc437..17a0d9c7a57b 100644 --- a/tests/disas/winch/aarch64/i64_remu/one_zero.wat +++ b/tests/disas/winch/aarch64/i64_remu/one_zero.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x78 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -23,8 +30,8 @@ ;; mov x0, x16 ;; mov x16, #1 ;; mov x1, x16 -;; cbz x0, #0x5c -;; 38: udiv x16, x1, x0 +;; cbz x0, #0x7c +;; 54: udiv x16, x1, x0 ;; msub x1, x0, x16, x1 ;; mov x0, x1 ;; add x28, x28, #0x10 @@ -33,4 +40,5 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 5c: .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_remu/params.wat b/tests/disas/winch/aarch64/i64_remu/params.wat index 8963c747bd18..ec5457ce8979 100644 --- a/tests/disas/winch/aarch64/i64_remu/params.wat +++ b/tests/disas/winch/aarch64/i64_remu/params.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x20 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x78 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x20 ;; mov sp, x28 ;; stur x0, [x28, #0x18] @@ -23,8 +30,8 @@ ;; stur x3, [x28] ;; ldur x0, [x28] ;; ldur x1, [x28, #8] -;; cbz x0, #0x5c -;; 38: udiv x16, x1, x0 +;; cbz x0, #0x7c +;; 54: udiv x16, x1, x0 ;; msub x1, x0, x16, x1 ;; mov x0, x1 ;; add x28, x28, #0x20 @@ -33,4 +40,5 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 5c: .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_remu/signed.wat b/tests/disas/winch/aarch64/i64_remu/signed.wat index 650c1b3270b3..bf5876ebb09e 100644 --- a/tests/disas/winch/aarch64/i64_remu/signed.wat +++ b/tests/disas/winch/aarch64/i64_remu/signed.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x78 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -23,8 +30,8 @@ ;; mov x0, x16 ;; mov x16, #-1 ;; mov x1, x16 -;; cbz x0, #0x5c -;; 38: udiv x16, x1, x0 +;; cbz x0, #0x7c +;; 54: udiv x16, x1, x0 ;; msub x1, x0, x16, x1 ;; mov x0, x1 ;; add x28, x28, #0x10 @@ -33,4 +40,5 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 5c: .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_remu/zero_zero.wat b/tests/disas/winch/aarch64/i64_remu/zero_zero.wat index 2c305fb05bfa..12ce6a6b52ae 100644 --- a/tests/disas/winch/aarch64/i64_remu/zero_zero.wat +++ b/tests/disas/winch/aarch64/i64_remu/zero_zero.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x78 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -23,8 +30,8 @@ ;; mov x0, x16 ;; mov x16, #0 ;; mov x1, x16 -;; cbz x0, #0x5c -;; 38: udiv x16, x1, x0 +;; cbz x0, #0x7c +;; 54: udiv x16, x1, x0 ;; msub x1, x0, x16, x1 ;; mov x0, x1 ;; add x28, x28, #0x10 @@ -33,4 +40,5 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 5c: .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_rotl/16_const.wat b/tests/disas/winch/aarch64/i64_rotl/16_const.wat index 6d830f6785be..3592859ad6b5 100644 --- a/tests/disas/winch/aarch64/i64_rotl/16_const.wat +++ b/tests/disas/winch/aarch64/i64_rotl/16_const.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x6c +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -29,3 +36,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 6c: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_rotl/8_const.wat b/tests/disas/winch/aarch64/i64_rotl/8_const.wat index ee6ad9e9817b..c6c4b1f21926 100644 --- a/tests/disas/winch/aarch64/i64_rotl/8_const.wat +++ b/tests/disas/winch/aarch64/i64_rotl/8_const.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x68 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -28,3 +35,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_rotl/locals.wat b/tests/disas/winch/aarch64/i64_rotl/locals.wat index 9468b2286d4b..fe65d1faa7ca 100644 --- a/tests/disas/winch/aarch64/i64_rotl/locals.wat +++ b/tests/disas/winch/aarch64/i64_rotl/locals.wat @@ -22,7 +22,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x20 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x90 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x20 ;; mov sp, x28 ;; stur x0, [x28, #0x18] @@ -47,3 +54,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 90: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_rotl/params.wat b/tests/disas/winch/aarch64/i64_rotl/params.wat index 0a8b119339e5..ee44d5b01f42 100644 --- a/tests/disas/winch/aarch64/i64_rotl/params.wat +++ b/tests/disas/winch/aarch64/i64_rotl/params.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x20 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x74 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x20 ;; mov sp, x28 ;; stur x0, [x28, #0x18] @@ -31,3 +38,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 74: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_rotr/16_const.wat b/tests/disas/winch/aarch64/i64_rotr/16_const.wat index 469c89f76347..9a4497c2f486 100644 --- a/tests/disas/winch/aarch64/i64_rotr/16_const.wat +++ b/tests/disas/winch/aarch64/i64_rotr/16_const.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x68 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -28,3 +35,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_rotr/8_const.wat b/tests/disas/winch/aarch64/i64_rotr/8_const.wat index 2048001ed05d..b60f58efae17 100644 --- a/tests/disas/winch/aarch64/i64_rotr/8_const.wat +++ b/tests/disas/winch/aarch64/i64_rotr/8_const.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x64 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -27,3 +34,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_rotr/locals.wat b/tests/disas/winch/aarch64/i64_rotr/locals.wat index bbcf33376d52..d6ba217520ef 100644 --- a/tests/disas/winch/aarch64/i64_rotr/locals.wat +++ b/tests/disas/winch/aarch64/i64_rotr/locals.wat @@ -22,7 +22,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x20 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x8c +;; 2c: mov x9, x0 ;; sub x28, x28, #0x20 ;; mov sp, x28 ;; stur x0, [x28, #0x18] @@ -46,3 +53,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 8c: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_rotr/params.wat b/tests/disas/winch/aarch64/i64_rotr/params.wat index 5a1809c05558..54106215ce4a 100644 --- a/tests/disas/winch/aarch64/i64_rotr/params.wat +++ b/tests/disas/winch/aarch64/i64_rotr/params.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x20 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x70 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x20 ;; mov sp, x28 ;; stur x0, [x28, #0x18] @@ -30,3 +37,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_shl/16_const.wat b/tests/disas/winch/aarch64/i64_shl/16_const.wat index c81208967dcb..6a10cd3fddc5 100644 --- a/tests/disas/winch/aarch64/i64_shl/16_const.wat +++ b/tests/disas/winch/aarch64/i64_shl/16_const.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x68 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -28,3 +35,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_shl/8_const.wat b/tests/disas/winch/aarch64/i64_shl/8_const.wat index c3f37d41f63d..421ef5de88c0 100644 --- a/tests/disas/winch/aarch64/i64_shl/8_const.wat +++ b/tests/disas/winch/aarch64/i64_shl/8_const.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x64 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -27,3 +34,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_shl/locals.wat b/tests/disas/winch/aarch64/i64_shl/locals.wat index 0c189f1bf483..ec50a2d64384 100644 --- a/tests/disas/winch/aarch64/i64_shl/locals.wat +++ b/tests/disas/winch/aarch64/i64_shl/locals.wat @@ -22,7 +22,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x20 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x8c +;; 2c: mov x9, x0 ;; sub x28, x28, #0x20 ;; mov sp, x28 ;; stur x0, [x28, #0x18] @@ -46,3 +53,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 8c: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_shl/params.wat b/tests/disas/winch/aarch64/i64_shl/params.wat index 7c4353fc9765..c734e4049f0f 100644 --- a/tests/disas/winch/aarch64/i64_shl/params.wat +++ b/tests/disas/winch/aarch64/i64_shl/params.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x20 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x70 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x20 ;; mov sp, x28 ;; stur x0, [x28, #0x18] @@ -30,3 +37,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 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 1d8761eac64a..32fc60371ed8 100644 --- a/tests/disas/winch/aarch64/i64_shr_s/16_const.wat +++ b/tests/disas/winch/aarch64/i64_shr_s/16_const.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x68 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -28,3 +35,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 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 92c0eaa62d13..64d8726a4aac 100644 --- a/tests/disas/winch/aarch64/i64_shr_s/8_const.wat +++ b/tests/disas/winch/aarch64/i64_shr_s/8_const.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x64 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -27,3 +34,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_shr_s/locals.wat b/tests/disas/winch/aarch64/i64_shr_s/locals.wat index c56b4aa4aa73..bedeab682ca3 100644 --- a/tests/disas/winch/aarch64/i64_shr_s/locals.wat +++ b/tests/disas/winch/aarch64/i64_shr_s/locals.wat @@ -22,7 +22,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x20 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x8c +;; 2c: mov x9, x0 ;; sub x28, x28, #0x20 ;; mov sp, x28 ;; stur x0, [x28, #0x18] @@ -46,3 +53,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 8c: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_shr_s/params.wat b/tests/disas/winch/aarch64/i64_shr_s/params.wat index 37fb6e3049de..dfa030c85650 100644 --- a/tests/disas/winch/aarch64/i64_shr_s/params.wat +++ b/tests/disas/winch/aarch64/i64_shr_s/params.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x20 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x70 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x20 ;; mov sp, x28 ;; stur x0, [x28, #0x18] @@ -30,3 +37,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 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 7907850ffa09..9b448d1e54af 100644 --- a/tests/disas/winch/aarch64/i64_shr_u/16_const.wat +++ b/tests/disas/winch/aarch64/i64_shr_u/16_const.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x68 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -28,3 +35,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 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 ce58bba1047c..d546a130d00d 100644 --- a/tests/disas/winch/aarch64/i64_shr_u/8_const.wat +++ b/tests/disas/winch/aarch64/i64_shr_u/8_const.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x64 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -27,3 +34,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_shr_u/locals.wat b/tests/disas/winch/aarch64/i64_shr_u/locals.wat index 22c84db848d9..9d01a767ef6c 100644 --- a/tests/disas/winch/aarch64/i64_shr_u/locals.wat +++ b/tests/disas/winch/aarch64/i64_shr_u/locals.wat @@ -22,7 +22,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x20 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x8c +;; 2c: mov x9, x0 ;; sub x28, x28, #0x20 ;; mov sp, x28 ;; stur x0, [x28, #0x18] @@ -46,3 +53,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 8c: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_shr_u/params.wat b/tests/disas/winch/aarch64/i64_shr_u/params.wat index 4712801f369a..94c8a793f76d 100644 --- a/tests/disas/winch/aarch64/i64_shr_u/params.wat +++ b/tests/disas/winch/aarch64/i64_shr_u/params.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x20 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x70 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x20 ;; mov sp, x28 ;; stur x0, [x28, #0x18] @@ -30,3 +37,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_sub/const.wat b/tests/disas/winch/aarch64/i64_sub/const.wat index e9cccdd242a2..257ec46a53c5 100644 --- a/tests/disas/winch/aarch64/i64_sub/const.wat +++ b/tests/disas/winch/aarch64/i64_sub/const.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x64 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -27,3 +34,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_sub/locals.wat b/tests/disas/winch/aarch64/i64_sub/locals.wat index 229354e0b788..e045229cf12f 100644 --- a/tests/disas/winch/aarch64/i64_sub/locals.wat +++ b/tests/disas/winch/aarch64/i64_sub/locals.wat @@ -22,7 +22,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x20 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x8c +;; 2c: mov x9, x0 ;; sub x28, x28, #0x20 ;; mov sp, x28 ;; stur x0, [x28, #0x18] @@ -46,3 +53,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 8c: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_sub/max.wat b/tests/disas/winch/aarch64/i64_sub/max.wat index 0c1dd461e206..e07b5cb8e93e 100644 --- a/tests/disas/winch/aarch64/i64_sub/max.wat +++ b/tests/disas/winch/aarch64/i64_sub/max.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x68 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -27,3 +34,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_sub/max_one.wat b/tests/disas/winch/aarch64/i64_sub/max_one.wat index db6576079da7..f383de40bb50 100644 --- a/tests/disas/winch/aarch64/i64_sub/max_one.wat +++ b/tests/disas/winch/aarch64/i64_sub/max_one.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x64 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -27,3 +34,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_sub/mixed.wat b/tests/disas/winch/aarch64/i64_sub/mixed.wat index 8e01e2f423d0..9579bd47bcd2 100644 --- a/tests/disas/winch/aarch64/i64_sub/mixed.wat +++ b/tests/disas/winch/aarch64/i64_sub/mixed.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x64 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -27,3 +34,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_sub/params.wat b/tests/disas/winch/aarch64/i64_sub/params.wat index aaf8a58a60f9..67760edc2b18 100644 --- a/tests/disas/winch/aarch64/i64_sub/params.wat +++ b/tests/disas/winch/aarch64/i64_sub/params.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x20 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x70 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x20 ;; mov sp, x28 ;; stur x0, [x28, #0x18] @@ -30,3 +37,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_sub/signed.wat b/tests/disas/winch/aarch64/i64_sub/signed.wat index f4620cadf116..f05a97d93bc5 100644 --- a/tests/disas/winch/aarch64/i64_sub/signed.wat +++ b/tests/disas/winch/aarch64/i64_sub/signed.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x68 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -28,3 +35,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 68: .byte 0x1f, 0xc1, 0x00, 0x00 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 6aa9ca45a9a3..3a808aaadbfa 100644 --- a/tests/disas/winch/aarch64/i64_sub/unsigned_with_zero.wat +++ b/tests/disas/winch/aarch64/i64_sub/unsigned_with_zero.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x64 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -27,3 +34,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 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 a932310d138e..56e91b279e47 100644 --- a/tests/disas/winch/aarch64/i64_trunc_f32_s/const.wat +++ b/tests/disas/winch/aarch64/i64_trunc_f32_s/const.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x8c +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -20,22 +27,23 @@ ;; mov x16, #0x3f800000 ;; fmov s0, w16 ;; fcmp s0, s0 -;; b.vs #0x70 -;; 34: mov x16, #0xdf000000 +;; b.vs #0x90 +;; 50: mov x16, #0xdf000000 ;; fmov s31, w16 ;; fcmp s31, s0 -;; b.le #0x74 -;; 44: mov x16, #0x5f000000 +;; b.le #0x94 +;; 60: mov x16, #0x5f000000 ;; fmov s31, w16 ;; fcmp s31, s0 -;; b.ge #0x78 -;; 54: fcvtzs x0, s0 +;; b.ge #0x98 +;; 70: fcvtzs x0, s0 ;; add x28, x28, #0x10 ;; 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 +;; 8c: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 90: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 94: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 98: .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 99835337e31b..4e1644891536 100644 --- a/tests/disas/winch/aarch64/i64_trunc_f32_s/locals.wat +++ b/tests/disas/winch/aarch64/i64_trunc_f32_s/locals.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x90 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -23,22 +30,23 @@ ;; stur x16, [x28] ;; ldur s0, [x28, #4] ;; fcmp s0, s0 -;; b.vs #0x74 -;; 38: mov x16, #0xdf000000 +;; b.vs #0x94 +;; 54: mov x16, #0xdf000000 ;; fmov s31, w16 ;; fcmp s31, s0 -;; b.le #0x78 -;; 48: mov x16, #0x5f000000 +;; b.le #0x98 +;; 64: mov x16, #0x5f000000 ;; fmov s31, w16 ;; fcmp s31, s0 -;; b.ge #0x7c -;; 58: fcvtzs x0, s0 +;; b.ge #0x9c +;; 74: fcvtzs x0, s0 ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 74: .byte 0x1f, 0xc1, 0x00, 0x00 -;; 78: .byte 0x1f, 0xc1, 0x00, 0x00 -;; 7c: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 90: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 94: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 98: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 9c: .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 a126a6df806f..471852793387 100644 --- a/tests/disas/winch/aarch64/i64_trunc_f32_s/params.wat +++ b/tests/disas/winch/aarch64/i64_trunc_f32_s/params.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x8c +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -20,22 +27,23 @@ ;; stur s0, [x28, #4] ;; ldur s0, [x28, #4] ;; fcmp s0, s0 -;; b.vs #0x70 -;; 34: mov x16, #0xdf000000 +;; b.vs #0x90 +;; 50: mov x16, #0xdf000000 ;; fmov s31, w16 ;; fcmp s31, s0 -;; b.le #0x74 -;; 44: mov x16, #0x5f000000 +;; b.le #0x94 +;; 60: mov x16, #0x5f000000 ;; fmov s31, w16 ;; fcmp s31, s0 -;; b.ge #0x78 -;; 54: fcvtzs x0, s0 +;; b.ge #0x98 +;; 70: fcvtzs x0, s0 ;; 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 +;; 8c: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 90: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 94: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 98: .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 8fb2e49ae9be..ddf177599bfc 100644 --- a/tests/disas/winch/aarch64/i64_trunc_f32_u/const.wat +++ b/tests/disas/winch/aarch64/i64_trunc_f32_u/const.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x88 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -20,21 +27,22 @@ ;; mov x16, #0x3f800000 ;; fmov s0, w16 ;; fcmp s0, s0 -;; b.vs #0x6c -;; 34: fmov s31, #-1.00000000 +;; b.vs #0x8c +;; 50: fmov s31, #-1.00000000 ;; fcmp s31, s0 -;; b.le #0x70 -;; 40: mov x16, #0x5f800000 +;; b.le #0x90 +;; 5c: mov x16, #0x5f800000 ;; fmov s31, w16 ;; fcmp s31, s0 -;; b.ge #0x74 -;; 50: fcvtzu x0, s0 +;; b.ge #0x94 +;; 6c: fcvtzu x0, s0 ;; 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 +;; 88: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 8c: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 90: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 94: .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 ff01533e4ebb..a821fbd5d342 100644 --- a/tests/disas/winch/aarch64/i64_trunc_f32_u/locals.wat +++ b/tests/disas/winch/aarch64/i64_trunc_f32_u/locals.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x8c +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -23,21 +30,22 @@ ;; stur x16, [x28] ;; ldur s0, [x28, #4] ;; fcmp s0, s0 -;; b.vs #0x70 -;; 38: fmov s31, #-1.00000000 +;; b.vs #0x90 +;; 54: fmov s31, #-1.00000000 ;; fcmp s31, s0 -;; b.le #0x74 -;; 44: mov x16, #0x5f800000 +;; b.le #0x94 +;; 60: mov x16, #0x5f800000 ;; fmov s31, w16 ;; fcmp s31, s0 -;; b.ge #0x78 -;; 54: fcvtzu x0, s0 +;; b.ge #0x98 +;; 70: fcvtzu x0, s0 ;; 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 +;; 8c: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 90: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 94: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 98: .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 212ff73c87b5..250a4eeec1e0 100644 --- a/tests/disas/winch/aarch64/i64_trunc_f32_u/params.wat +++ b/tests/disas/winch/aarch64/i64_trunc_f32_u/params.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x88 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -20,21 +27,22 @@ ;; stur s0, [x28, #4] ;; ldur s0, [x28, #4] ;; fcmp s0, s0 -;; b.vs #0x6c -;; 34: fmov s31, #-1.00000000 +;; b.vs #0x8c +;; 50: fmov s31, #-1.00000000 ;; fcmp s31, s0 -;; b.le #0x70 -;; 40: mov x16, #0x5f800000 +;; b.le #0x90 +;; 5c: mov x16, #0x5f800000 ;; fmov s31, w16 ;; fcmp s31, s0 -;; b.ge #0x74 -;; 50: fcvtzu x0, s0 +;; b.ge #0x94 +;; 6c: fcvtzu 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 +;; 88: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 8c: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 90: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 94: .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 d75de817b7fe..1e2db4fca0a5 100644 --- a/tests/disas/winch/aarch64/i64_trunc_f64_s/const.wat +++ b/tests/disas/winch/aarch64/i64_trunc_f64_s/const.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x8c +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -20,22 +27,23 @@ ;; mov x16, #0x3ff0000000000000 ;; fmov d0, x16 ;; fcmp d0, d0 -;; b.vs #0x70 -;; 34: mov x16, #-0x3c20000000000000 +;; b.vs #0x90 +;; 50: mov x16, #-0x3c20000000000000 ;; fmov d31, x16 ;; fcmp d31, d0 -;; b.le #0x74 -;; 44: mov x16, #0x43e0000000000000 +;; b.le #0x94 +;; 60: mov x16, #0x43e0000000000000 ;; fmov d31, x16 ;; fcmp d31, d0 -;; b.ge #0x78 -;; 54: fcvtzs x0, d0 +;; b.ge #0x98 +;; 70: fcvtzs x0, d0 ;; add x28, x28, #0x10 ;; 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 +;; 8c: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 90: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 94: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 98: .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 5dd57ac2776d..14b663ca3e61 100644 --- a/tests/disas/winch/aarch64/i64_trunc_f64_s/locals.wat +++ b/tests/disas/winch/aarch64/i64_trunc_f64_s/locals.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x90 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -23,22 +30,23 @@ ;; stur x16, [x28] ;; ldur d0, [x28] ;; fcmp d0, d0 -;; b.vs #0x74 -;; 38: mov x16, #-0x3c20000000000000 +;; b.vs #0x94 +;; 54: mov x16, #-0x3c20000000000000 ;; fmov d31, x16 ;; fcmp d31, d0 -;; b.le #0x78 -;; 48: mov x16, #0x43e0000000000000 +;; b.le #0x98 +;; 64: mov x16, #0x43e0000000000000 ;; fmov d31, x16 ;; fcmp d31, d0 -;; b.ge #0x7c -;; 58: fcvtzs x0, d0 +;; b.ge #0x9c +;; 74: fcvtzs x0, d0 ;; add x28, x28, #0x18 ;; mov sp, x28 ;; mov sp, x28 ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 74: .byte 0x1f, 0xc1, 0x00, 0x00 -;; 78: .byte 0x1f, 0xc1, 0x00, 0x00 -;; 7c: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 90: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 94: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 98: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 9c: .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 7f875ffbca0e..b810c99cc66b 100644 --- a/tests/disas/winch/aarch64/i64_trunc_f64_s/params.wat +++ b/tests/disas/winch/aarch64/i64_trunc_f64_s/params.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x8c +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -20,22 +27,23 @@ ;; stur d0, [x28] ;; ldur d0, [x28] ;; fcmp d0, d0 -;; b.vs #0x70 -;; 34: mov x16, #-0x3c20000000000000 +;; b.vs #0x90 +;; 50: mov x16, #-0x3c20000000000000 ;; fmov d31, x16 ;; fcmp d31, d0 -;; b.le #0x74 -;; 44: mov x16, #0x43e0000000000000 +;; b.le #0x94 +;; 60: mov x16, #0x43e0000000000000 ;; fmov d31, x16 ;; fcmp d31, d0 -;; b.ge #0x78 -;; 54: fcvtzs x0, d0 +;; b.ge #0x98 +;; 70: fcvtzs x0, 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 +;; 8c: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 90: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 94: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 98: .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 4f8582c1d2f7..694832cca0d9 100644 --- a/tests/disas/winch/aarch64/i64_trunc_f64_u/const.wat +++ b/tests/disas/winch/aarch64/i64_trunc_f64_u/const.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x88 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -20,21 +27,22 @@ ;; mov x16, #0x3ff0000000000000 ;; fmov d0, x16 ;; fcmp d0, d0 -;; b.vs #0x6c -;; 34: fmov d31, #-1.00000000 +;; b.vs #0x8c +;; 50: fmov d31, #-1.00000000 ;; fcmp d31, d0 -;; b.le #0x70 -;; 40: mov x16, #0x43f0000000000000 +;; b.le #0x90 +;; 5c: mov x16, #0x43f0000000000000 ;; fmov d31, x16 ;; fcmp d31, d0 -;; b.ge #0x74 -;; 50: fcvtzu x0, d0 +;; b.ge #0x94 +;; 6c: fcvtzu x0, 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 +;; 88: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 8c: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 90: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 94: .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 9427e6df7f30..d6330eeca593 100644 --- a/tests/disas/winch/aarch64/i64_trunc_f64_u/locals.wat +++ b/tests/disas/winch/aarch64/i64_trunc_f64_u/locals.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x8c +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -23,21 +30,22 @@ ;; stur x16, [x28] ;; ldur d0, [x28] ;; fcmp d0, d0 -;; b.vs #0x70 -;; 38: fmov d31, #-1.00000000 +;; b.vs #0x90 +;; 54: fmov d31, #-1.00000000 ;; fcmp d31, d0 -;; b.le #0x74 -;; 44: mov x16, #0x43f0000000000000 +;; b.le #0x94 +;; 60: mov x16, #0x43f0000000000000 ;; fmov d31, x16 ;; fcmp d31, d0 -;; b.ge #0x78 -;; 54: fcvtzu x0, d0 +;; b.ge #0x98 +;; 70: fcvtzu x0, 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 +;; 8c: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 90: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 94: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 98: .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 6df89ce9f2cb..9f4d895f3fd3 100644 --- a/tests/disas/winch/aarch64/i64_trunc_f64_u/params.wat +++ b/tests/disas/winch/aarch64/i64_trunc_f64_u/params.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x88 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -20,21 +27,22 @@ ;; stur d0, [x28] ;; ldur d0, [x28] ;; fcmp d0, d0 -;; b.vs #0x6c -;; 34: fmov d31, #-1.00000000 +;; b.vs #0x8c +;; 50: fmov d31, #-1.00000000 ;; fcmp d31, d0 -;; b.le #0x70 -;; 40: mov x16, #0x43f0000000000000 +;; b.le #0x90 +;; 5c: mov x16, #0x43f0000000000000 ;; fmov d31, x16 ;; fcmp d31, d0 -;; b.ge #0x74 -;; 50: fcvtzu x0, d0 +;; b.ge #0x94 +;; 6c: fcvtzu 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 +;; 88: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 8c: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 90: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 94: .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 dc043e1ca15b..8ebb3631538d 100644 --- a/tests/disas/winch/aarch64/i64_xor/32_const.wat +++ b/tests/disas/winch/aarch64/i64_xor/32_const.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x64 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -27,3 +34,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_xor/64_const.wat b/tests/disas/winch/aarch64/i64_xor/64_const.wat index 35b063d9f052..1332ed048d2b 100644 --- a/tests/disas/winch/aarch64/i64_xor/64_const.wat +++ b/tests/disas/winch/aarch64/i64_xor/64_const.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x64 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -27,3 +34,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 64: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_xor/locals.wat b/tests/disas/winch/aarch64/i64_xor/locals.wat index 68a5785e373c..e5cdff86e16b 100644 --- a/tests/disas/winch/aarch64/i64_xor/locals.wat +++ b/tests/disas/winch/aarch64/i64_xor/locals.wat @@ -21,7 +21,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x20 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x8c +;; 2c: mov x9, x0 ;; sub x28, x28, #0x20 ;; mov sp, x28 ;; stur x0, [x28, #0x18] @@ -45,3 +52,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 8c: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/i64_xor/params.wat b/tests/disas/winch/aarch64/i64_xor/params.wat index 75c50994e6be..f39faedd1fe8 100644 --- a/tests/disas/winch/aarch64/i64_xor/params.wat +++ b/tests/disas/winch/aarch64/i64_xor/params.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x20 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x70 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x20 ;; mov sp, x28 ;; stur x0, [x28, #0x18] @@ -30,3 +37,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 70: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/load/dynamic_heap.wat b/tests/disas/winch/aarch64/load/dynamic_heap.wat index 395938d7fb44..09a7bbc21577 100644 --- a/tests/disas/winch/aarch64/load/dynamic_heap.wat +++ b/tests/disas/winch/aarch64/load/dynamic_heap.wat @@ -24,7 +24,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x1 +;; ldur x16, [x1, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x28 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x15c +;; 2c: mov x9, x1 ;; sub x28, x28, #0x20 ;; mov sp, x28 ;; stur x1, [x28, #0x18] @@ -35,10 +42,10 @@ ;; ldur x1, [x9, #0x48] ;; mov w2, w0 ;; add x2, x2, #4 -;; b.hs #0x140 -;; 40: cmp x2, x1, uxtx -;; b.hi #0x144 -;; 48: ldur x3, [x9, #0x40] +;; b.hs #0x160 +;; 5c: cmp x2, x1, uxtx +;; b.hi #0x164 +;; 64: ldur x3, [x9, #0x40] ;; add x3, x3, x0, uxtx ;; mov x16, #0 ;; mov x4, x16 @@ -49,10 +56,10 @@ ;; ldur x2, [x9, #0x48] ;; mov w3, w1 ;; add x3, x3, #8 -;; b.hs #0x148 -;; 78: cmp x3, x2, uxtx -;; b.hi #0x14c -;; 80: ldur x4, [x9, #0x40] +;; b.hs #0x168 +;; 94: cmp x3, x2, uxtx +;; b.hi #0x16c +;; 9c: ldur x4, [x9, #0x40] ;; add x4, x4, x1, uxtx ;; add x4, x4, #4 ;; mov x16, #0 @@ -66,10 +73,10 @@ ;; mov w16, #3 ;; movk w16, #0x10, lsl #16 ;; add x4, x4, x16, uxtx -;; b.hs #0x150 -;; bc: cmp x4, x3, uxtx -;; b.hi #0x154 -;; c4: ldur x5, [x9, #0x40] +;; b.hs #0x170 +;; d8: cmp x4, x3, uxtx +;; b.hi #0x174 +;; e0: ldur x5, [x9, #0x40] ;; add x5, x5, x2, uxtx ;; orr x16, xzr, #0xfffff ;; add x5, x5, x16, uxtx @@ -100,9 +107,10 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 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 +;; 15c: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 160: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 164: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 168: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 16c: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 170: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 174: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/load/f32.wat b/tests/disas/winch/aarch64/load/f32.wat index bee23f99bae9..e1b3db61daf4 100644 --- a/tests/disas/winch/aarch64/load/f32.wat +++ b/tests/disas/winch/aarch64/load/f32.wat @@ -11,7 +11,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x6c +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -27,3 +34,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 6c: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/load/f64.wat b/tests/disas/winch/aarch64/load/f64.wat index a810d289fa02..46d51aeaef4b 100644 --- a/tests/disas/winch/aarch64/load/f64.wat +++ b/tests/disas/winch/aarch64/load/f64.wat @@ -10,7 +10,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x6c +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -26,3 +33,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 6c: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/load/i32.wat b/tests/disas/winch/aarch64/load/i32.wat index 609a247209a8..4f94361605f6 100644 --- a/tests/disas/winch/aarch64/load/i32.wat +++ b/tests/disas/winch/aarch64/load/i32.wat @@ -11,7 +11,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x6c +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -27,3 +34,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 6c: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/load/i64.wat b/tests/disas/winch/aarch64/load/i64.wat index cbfd6415b655..539a0e0275c7 100644 --- a/tests/disas/winch/aarch64/load/i64.wat +++ b/tests/disas/winch/aarch64/load/i64.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x18 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x98 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x18 ;; mov sp, x28 ;; stur x0, [x28, #0x10] @@ -39,3 +46,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 98: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/nop/nop.wat b/tests/disas/winch/aarch64/nop/nop.wat index f23460ec45a4..ee61218ca302 100644 --- a/tests/disas/winch/aarch64/nop/nop.wat +++ b/tests/disas/winch/aarch64/nop/nop.wat @@ -11,7 +11,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x58 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -22,3 +29,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 58: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/params/400_params.wat b/tests/disas/winch/aarch64/params/400_params.wat index 40ecce501097..53918251b90f 100644 --- a/tests/disas/winch/aarch64/params/400_params.wat +++ b/tests/disas/winch/aarch64/params/400_params.wat @@ -54,7 +54,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x28 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x74 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x28 ;; mov sp, x28 ;; stur x0, [x28, #0x20] @@ -72,3 +79,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 74: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/params/multi_values.wat b/tests/disas/winch/aarch64/params/multi_values.wat index 7df33a9de4dc..ff77e2ada6d5 100644 --- a/tests/disas/winch/aarch64/params/multi_values.wat +++ b/tests/disas/winch/aarch64/params/multi_values.wat @@ -14,7 +14,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x1 +;; ldur x16, [x1, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x34 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0xd4 +;; 2c: mov x9, x1 ;; sub x28, x28, #0x28 ;; mov sp, x28 ;; stur x1, [x28, #0x20] @@ -56,3 +63,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; d4: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/store/dynamic_heap.wat b/tests/disas/winch/aarch64/store/dynamic_heap.wat index 361d8cf76120..a0ba42036af6 100644 --- a/tests/disas/winch/aarch64/store/dynamic_heap.wat +++ b/tests/disas/winch/aarch64/store/dynamic_heap.wat @@ -24,7 +24,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x20 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x130 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x20 ;; mov sp, x28 ;; stur x0, [x28, #0x18] @@ -38,10 +45,10 @@ ;; ldur x2, [x9, #0x48] ;; mov w3, w1 ;; add x3, x3, #4 -;; b.hs #0x114 -;; 4c: cmp x3, x2, uxtx -;; b.hi #0x118 -;; 54: ldur x4, [x9, #0x40] +;; b.hs #0x134 +;; 68: cmp x3, x2, uxtx +;; b.hi #0x138 +;; 70: ldur x4, [x9, #0x40] ;; add x4, x4, x1, uxtx ;; mov x16, #0 ;; mov x5, x16 @@ -53,10 +60,10 @@ ;; ldur x2, [x9, #0x48] ;; mov w3, w1 ;; add x3, x3, #8 -;; b.hs #0x11c -;; 88: cmp x3, x2, uxtx -;; b.hi #0x120 -;; 90: ldur x4, [x9, #0x40] +;; b.hs #0x13c +;; a4: cmp x3, x2, uxtx +;; b.hi #0x140 +;; ac: ldur x4, [x9, #0x40] ;; add x4, x4, x1, uxtx ;; add x4, x4, #4 ;; mov x16, #0 @@ -71,10 +78,10 @@ ;; mov w16, #3 ;; movk w16, #0x10, lsl #16 ;; add x3, x3, x16, uxtx -;; b.hs #0x124 -;; d0: cmp x3, x2, uxtx -;; b.hi #0x128 -;; d8: ldur x4, [x9, #0x40] +;; b.hs #0x144 +;; ec: cmp x3, x2, uxtx +;; b.hi #0x148 +;; f4: ldur x4, [x9, #0x40] ;; add x4, x4, x1, uxtx ;; orr x16, xzr, #0xfffff ;; add x4, x4, x16, uxtx @@ -89,9 +96,10 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret -;; 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 +;; 130: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 134: .byte 0x1f, 0xc1, 0x00, 0x00 +;; 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 diff --git a/tests/disas/winch/aarch64/store/f32.wat b/tests/disas/winch/aarch64/store/f32.wat index 8da115fdce73..b2e79045bbd4 100644 --- a/tests/disas/winch/aarch64/store/f32.wat +++ b/tests/disas/winch/aarch64/store/f32.wat @@ -10,7 +10,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x74 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -28,3 +35,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 74: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/store/f64.wat b/tests/disas/winch/aarch64/store/f64.wat index 533f7b17d3d5..0035ac58432d 100644 --- a/tests/disas/winch/aarch64/store/f64.wat +++ b/tests/disas/winch/aarch64/store/f64.wat @@ -11,7 +11,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x74 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -29,3 +36,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 74: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/store/i32.wat b/tests/disas/winch/aarch64/store/i32.wat index 32b6466e80a0..f3973bd43248 100644 --- a/tests/disas/winch/aarch64/store/i32.wat +++ b/tests/disas/winch/aarch64/store/i32.wat @@ -12,7 +12,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x74 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -30,3 +37,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 74: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/tests/disas/winch/aarch64/store/i64.wat b/tests/disas/winch/aarch64/store/i64.wat index 8e3ba0a9b003..29234a678aa5 100644 --- a/tests/disas/winch/aarch64/store/i64.wat +++ b/tests/disas/winch/aarch64/store/i64.wat @@ -13,7 +13,14 @@ ;; mov x29, sp ;; str x28, [sp, #-0x10]! ;; mov x28, sp -;; mov x9, x0 +;; ldur x16, [x0, #8] +;; ldur x16, [x16, #0x10] +;; mov x17, #0 +;; movk x17, #0x10 +;; add x16, x16, x17 +;; cmp sp, x16 +;; b.lo #0x60 +;; 2c: mov x9, x0 ;; sub x28, x28, #0x10 ;; mov sp, x28 ;; stur x0, [x28, #8] @@ -26,3 +33,4 @@ ;; ldr x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret +;; 60: .byte 0x1f, 0xc1, 0x00, 0x00 diff --git a/winch/codegen/src/isa/aarch64/asm.rs b/winch/codegen/src/isa/aarch64/asm.rs index 5e4cbf414271..d895aa3ed02b 100644 --- a/winch/codegen/src/isa/aarch64/asm.rs +++ b/winch/codegen/src/isa/aarch64/asm.rs @@ -11,7 +11,11 @@ use crate::{ reg::{writable, Reg, WritableReg}, }; -use cranelift_codegen::isa::aarch64::inst::{ASIMDFPModImm, FpuToIntOp, UImm5, NZCV}; +use cranelift_codegen::isa::aarch64::inst::emit::{enc_arith_rrr, enc_move_wide, enc_movk}; +use cranelift_codegen::isa::aarch64::inst::{ + ASIMDFPModImm, FpuToIntOp, MoveWideConst, UImm5, NZCV, +}; +use cranelift_codegen::PatchRegion; use cranelift_codegen::{ ir::{ExternalName, MemFlags, SourceLoc, TrapCode, UserExternalNameRef}, isa::aarch64::inst::{ @@ -1284,3 +1288,85 @@ impl Assembler { }); } } + +/// Captures the region in a MachBuffer where an add-with-immediate instruction would be emitted, +/// but the immediate is not yet known. +pub(crate) struct PatchableAddToReg { + /// The region to be patched in the [`MachBuffer`]. It contains + /// space for 3 32-bit instructions, i.e. it's 12 bytes long. + region: PatchRegion, + + // The destination register for the add instruction. + reg: Writable, + + // The temporary register used to hold the immediate value. + tmp: Writable, +} + +impl PatchableAddToReg { + /// Create a new [`PatchableAddToReg`] by capturing a region in the output + /// buffer containing an instruction sequence that loads an immediate into a + /// register `tmp`, then adds it to a register `reg`. The [`MachBuffer`] + /// will have that instruction sequence written to the region, though the + /// immediate loaded into `tmp` will be `0` until the `::finalize` method is + /// called. + pub(crate) fn new(reg: Writable, tmp: Writable, buf: &mut MachBuffer) -> Self { + let insns = Self::add_immediate_instruction_sequence(reg, tmp, 0); + let open = buf.start_patchable(); + buf.put_data(&insns); + let region = buf.end_patchable(open); + + Self { region, reg, tmp } + } + + fn add_immediate_instruction_sequence( + reg: Writable, + tmp: Writable, + imm: i32, + ) -> [u8; 12] { + let imm_hi = imm as u64 & 0xffff_0000; + let imm_hi = MoveWideConst::maybe_from_u64(imm_hi).unwrap(); + + let imm_lo = imm as u64 & 0x0000_ffff; + let imm_lo = MoveWideConst::maybe_from_u64(imm_lo).unwrap(); + + let size = OperandSize::S64.into(); + + let tmp = tmp.map(Into::into); + let rd = reg.map(Into::into); + + // This is "movz to bits 16-31 of 64 bit reg tmp and zero the rest" + let mov_insn = enc_move_wide(inst::MoveWideOp::MovZ, tmp, imm_hi, size); + + // This is "movk to bits 0-15 of 64 bit reg tmp" + let movk_insn = enc_movk(tmp, imm_lo, size); + + // This is "add tmp to rd". The opcodes are somewhat buried in the + // instruction encoder so we just repeat them here. + let add_bits_31_21: u32 = 0b00001011_000 | (size.sf_bit() << 10); + let add_bits_15_10: u32 = 0; + let add_insn = enc_arith_rrr( + add_bits_31_21, + add_bits_15_10, + rd, + rd.to_reg(), + tmp.to_reg(), + ); + + let mut buf = [0u8; 12]; + buf[0..4].copy_from_slice(&mov_insn.to_le_bytes()); + buf[4..8].copy_from_slice(&movk_insn.to_le_bytes()); + buf[8..12].copy_from_slice(&add_insn.to_le_bytes()); + buf + } + + /// Patch the [`MachBuffer`] with the known constant to be added to the register. The final + /// value is passed in as an i32, but the instruction encoding is fixed when + /// [`PatchableAddToReg::new`] is called. + pub(crate) fn finalize(self, val: i32, buffer: &mut MachBuffer) { + let insns = Self::add_immediate_instruction_sequence(self.reg, self.tmp, val); + let slice = self.region.patch(buffer); + assert_eq!(slice.len(), insns.len()); + slice.copy_from_slice(&insns); + } +} diff --git a/winch/codegen/src/isa/aarch64/masm.rs b/winch/codegen/src/isa/aarch64/masm.rs index 2c1c171852b9..609aefbdfc70 100644 --- a/winch/codegen/src/isa/aarch64/masm.rs +++ b/winch/codegen/src/isa/aarch64/masm.rs @@ -1,4 +1,9 @@ -use super::{abi::Aarch64ABI, address::Address, asm::Assembler, regs, ABI}; +use super::{ + abi::Aarch64ABI, + address::Address, + asm::{Assembler, PatchableAddToReg}, + regs, ABI, +}; use crate::{ abi::{self, align_to, calculate_frame_adjustment, local::LocalSlot, vmctx}, codegen::{ptr_type_from_ptr_size, CodeGenContext, CodeGenError, Emission, FuncEnv}, @@ -30,6 +35,17 @@ use wasmtime_environ::{PtrSize, WasmValType}; /// Aarch64 MacroAssembler. pub(crate) struct MacroAssembler { + /// This value represents the maximum stack size seen while compiling the + /// function. While the function is still being compiled its value will not + /// be valid (the stack will grow and shrink as space is reserved and freed + /// during compilation), but once all instructions have been seen this value + /// will be the maximum stack usage seen. + sp_max: u32, + + /// Add-with-immediate patchable instruction sequence used to add the + /// constant stack max to a register. + stack_max_use_add: Option, + /// Low level assembler. asm: Assembler, /// Stack pointer offset. @@ -42,12 +58,23 @@ impl MacroAssembler { /// Create an Aarch64 MacroAssembler. pub fn new(ptr_size: impl PtrSize, shared_flags: settings::Flags) -> Result { Ok(Self { + sp_max: 0, + stack_max_use_add: None, asm: Assembler::new(shared_flags), sp_offset: 0u32, ptr_size: ptr_type_from_ptr_size(ptr_size.size()).try_into()?, }) } + /// Add the maximum stack used to a register, recording an obligation to update the + /// add-with-immediate instruction emitted to use the real stack max when the masm is being + /// finalized. + fn add_stack_max(&mut self, reg: WritableReg, tmp: WritableReg) { + assert!(self.stack_max_use_add.is_none()); + let patch = PatchableAddToReg::new(reg, tmp, self.asm.buffer_mut()); + self.stack_max_use_add.replace(patch); + } + /// Ensures that the stack pointer remains 16-byte aligned for the duration /// of the provided function. This alignment is necessary for AArch64 /// compliance, particularly for signal handlers that may be invoked @@ -114,8 +141,48 @@ impl Masm for MacroAssembler { Ok(()) } - fn check_stack(&mut self, _vmctx: Reg) -> Result<()> { - // TODO: Implement when we have more complete assembler support. + fn check_stack(&mut self, vmctx: Reg) -> Result<()> { + let ptr_size_u8: u8 = self.ptr_size.bytes().try_into().unwrap(); + + // The PatchableAddToReg construct on aarch64 is not a single + // add-immediate instruction, but a 3-instruction sequence that loads an + // immediate using 2 mov-immediate instructions into _another_ scratch + // register before adding it into the target scratch register. + // + // In other words, to make this work we use _two_ scratch registers, one + // to hold the limit we're calculating and one helper that's just used + // to load the immediate. + // + // Luckily on aarch64 we have 2 available scratch registers, ip0 and + // ip1. + + let scratch_stk_limit = regs::scratch(); + let scratch_tmp = regs::ip1(); + + self.load_ptr( + self.address_at_reg(vmctx, ptr_size_u8.vmcontext_store_context().into())?, + writable!(scratch_stk_limit), + )?; + + self.load_ptr( + Address::offset( + scratch_stk_limit, + ptr_size_u8.vmstore_context_stack_limit().into(), + ), + writable!(scratch_stk_limit), + )?; + + self.add_stack_max(writable!(scratch_stk_limit), writable!(scratch_tmp)); + + let ptr_size = self.ptr_size; + self.with_aligned_sp(|masm| { + // Aarch can only do a cmp with sp in the first operand, which means we + // use a less-than comparison, not a greater-than (stack grows down). + masm.cmp(regs::sp(), scratch_stk_limit.into(), ptr_size)?; + masm.asm + .trapif(IntCmpKind::LtU.into(), TrapCode::STACK_OVERFLOW); + Ok(()) + })?; Ok(()) } @@ -348,7 +415,11 @@ impl Masm for MacroAssembler { Ok(SPOffset::from_u32(self.sp_offset)) } - fn finalize(self, base: Option) -> Result> { + fn finalize(mut self, base: Option) -> Result> { + if let Some(patch) = self.stack_max_use_add { + patch.finalize(i32::try_from(self.sp_max).unwrap(), self.asm.buffer_mut()); + } + Ok(self.asm.finalize(base)) } @@ -1343,6 +1414,11 @@ impl Masm for MacroAssembler { impl MacroAssembler { fn increment_sp(&mut self, bytes: u32) { self.sp_offset += bytes; + + // NOTE: we use `max` here to track the largest stack allocation in `sp_max`. Once we have + // seen the entire function, this value will represent the maximum size for the stack + // frame. + self.sp_max = self.sp_max.max(self.sp_offset); } fn decrement_sp(&mut self, bytes: u32) {