;;! target = "aarch64" ;;! test = "compile" ;;! flags = ["-Wexceptions=yes", "-Wgc=yes", "-Dguest-debug=yes"] (module (tag $t (param i32)) (import "" "host" (func)) (func (export "main") (block $b (result i32) (try_table (catch $t $b) (drop (i32.const 42)) (throw $t (i32.const 42))) i32.const 0) (call 0) (drop))) ;; wasm[0]::function[1]: ;; stp x29, x30, [sp, #-0x10]! ;; mov x29, sp ;; stp x27, x28, [sp, #-0x10]! ;; stp x25, x26, [sp, #-0x10]! ;; stp x23, x24, [sp, #-0x10]! ;; stp x21, x22, [sp, #-0x10]! ;; stp x19, x20, [sp, #-0x10]! ;; stp d14, d15, [sp, #-0x10]! ;; stp d12, d13, [sp, #-0x10]! ;; stp d10, d11, [sp, #-0x10]! ;; stp d8, d9, [sp, #-0x10]! ;; sub sp, sp, #0x30 ;; ldr x3, [x2, #8] ;; ldr x3, [x3, #0x18] ;; mov x4, sp ;; cmp x4, x3 ;; b.lo #0x190 ;; 44: stur x2, [sp] ;; mov x0, x2 ;; stur x2, [sp, #0x10] ;; nop ;; ├─╼ debug frame state (after previous inst): func key DefinedWasmFunction(StaticModuleIndex(0), DefinedFuncIndex(0)), wasm PC 53, slot at FP-0xc0, locals , stack ;; ╰─╼ breakpoint patch: wasm PC 53, patch bytes [38, 1, 0, 148] ;; ldur x0, [sp, #0x10] ;; nop ;; ├─╼ debug frame state (after previous inst): func key DefinedWasmFunction(StaticModuleIndex(0), DefinedFuncIndex(0)), wasm PC 55, slot at FP-0xc0, locals , stack ;; ╰─╼ breakpoint patch: wasm PC 55, patch bytes [36, 1, 0, 148] ;; ldur x0, [sp, #0x10] ;; nop ;; ├─╼ debug frame state (after previous inst): func key DefinedWasmFunction(StaticModuleIndex(0), DefinedFuncIndex(0)), wasm PC 61, slot at FP-0xc0, locals , stack ;; ╰─╼ breakpoint patch: wasm PC 61, patch bytes [34, 1, 0, 148] ;; mov w22, #0x2a ;; stur w22, [sp, #8] ;; nop ;; ├─╼ debug frame state (after previous inst): func key DefinedWasmFunction(StaticModuleIndex(0), DefinedFuncIndex(0)), wasm PC 63, slot at FP-0xc0, locals , stack I32 @ slot+0x8 ;; ╰─╼ breakpoint patch: wasm PC 63, patch bytes [31, 1, 0, 148] ;; nop ;; ├─╼ debug frame state (after previous inst): func key DefinedWasmFunction(StaticModuleIndex(0), DefinedFuncIndex(0)), wasm PC 64, slot at FP-0xc0, locals , stack ;; ╰─╼ breakpoint patch: wasm PC 64, patch bytes [30, 1, 0, 148] ;; stur w22, [sp, #8] ;; nop ;; ├─╼ debug frame state (after previous inst): func key DefinedWasmFunction(StaticModuleIndex(0), DefinedFuncIndex(0)), wasm PC 66, slot at FP-0xc0, locals , stack I32 @ slot+0x8 ;; ╰─╼ breakpoint patch: wasm PC 66, patch bytes [28, 1, 0, 148] ;; ldur x2, [sp, #0x10] ;; bl #0x448 ;; 84: mov x24, x2 ;; mov w3, #0x4000000 ;; mov w4, #2 ;; mov w5, #0x28 ;; mov w6, #8 ;; ldur x2, [sp, #0x10] ;; bl #0x368 ;; a0: ldur x0, [sp, #0x10] ;; ldr x5, [x0, #8] ;; ldr x6, [x5, #0x20] ;; stur x5, [sp, #0x20] ;; add x15, x6, #0x20 ;; str w22, [x15, w2, uxtw] ;; add x3, x6, #0x18 ;; mov x1, x24 ;; str w1, [x3, w2, uxtw] ;; mov w3, #0 ;; add x4, x6, #0x1c ;; stur x6, [sp, #0x18] ;; str w3, [x4, w2, uxtw] ;; mov x3, x2 ;; ldur x2, [sp, #0x10] ;; bl #0x480 ;; ├─╼ exception frame offset: SP = FP - 0xc0 ;; ╰─╼ exception handler: tag=0, context at [SP+0x10], handler=0xf8 ;; e0: mov w3, #9 ;; ldur x2, [sp, #0x10] ;; bl #0x3dc ;; ec: ldur x2, [sp, #0x10] ;; bl #0x414 ;; f4: .byte 0x1f, 0xc1, 0x00, 0x00 ;; mov x9, x0 ;; mov w6, w9 ;; mov x7, #0x28 ;; adds x5, x6, x7 ;; cset x7, hs ;; uxtb w6, w7 ;; cbnz x6, #0x1a8 ;; 114: ldur x4, [sp, #0x20] ;; ldr x8, [x4, #0x28] ;; cmp x5, x8 ;; cset x10, hi ;; uxtb w10, w10 ;; cbnz x10, #0x1ac ;; 12c: ldur x6, [sp, #0x18] ;; add x10, x6, #0x20 ;; ldr w12, [x10, w9, uxtw] ;; stur w12, [sp, #8] ;; ldur x0, [sp, #0x10] ;; nop ;; ├─╼ debug frame state (after previous inst): func key DefinedWasmFunction(StaticModuleIndex(0), DefinedFuncIndex(0)), wasm PC 72, slot at FP-0xc0, locals , stack I32 @ slot+0x8 ;; ╰─╼ breakpoint patch: wasm PC 72, patch bytes [234, 0, 0, 148] ;; ldr x14, [x0, #0x30] ;; ldr x2, [x0, #0x40] ;; ldur x3, [sp, #0x10] ;; blr x14 ;; ╰─╼ debug frame state (after previous inst): func key DefinedWasmFunction(StaticModuleIndex(0), DefinedFuncIndex(0)), wasm PC 72, slot at FP-0xc0, locals , stack I32 @ slot+0x8 ;; 154: ldur x0, [sp, #0x10] ;; nop ;; ├─╼ debug frame state (after previous inst): func key DefinedWasmFunction(StaticModuleIndex(0), DefinedFuncIndex(0)), wasm PC 74, slot at FP-0xc0, locals , stack I32 @ slot+0x8 ;; ╰─╼ breakpoint patch: wasm PC 74, patch bytes [228, 0, 0, 148] ;; nop ;; ├─╼ debug frame state (after previous inst): func key DefinedWasmFunction(StaticModuleIndex(0), DefinedFuncIndex(0)), wasm PC 75, slot at FP-0xc0, locals , stack ;; ╰─╼ breakpoint patch: wasm PC 75, patch bytes [227, 0, 0, 148] ;; add sp, sp, #0x30 ;; ldp d8, d9, [sp], #0x10 ;; ldp d10, d11, [sp], #0x10 ;; ldp d12, d13, [sp], #0x10 ;; ldp d14, d15, [sp], #0x10 ;; ldp x19, x20, [sp], #0x10 ;; ldp x21, x22, [sp], #0x10 ;; ldp x23, x24, [sp], #0x10 ;; ldp x25, x26, [sp], #0x10 ;; ldp x27, x28, [sp], #0x10 ;; ldp x29, x30, [sp], #0x10 ;; ret ;; 190: stur x2, [sp, #0x10] ;; 194: mov w3, #0 ;; 198: bl #0x3dc ;; 19c: ldur x2, [sp, #0x10] ;; 1a0: bl #0x414 ;; 1a4: .byte 0x1f, 0xc1, 0x00, 0x00 ;; 1a8: .byte 0x1f, 0xc1, 0x00, 0x00 ;; 1ac: .byte 0x1f, 0xc1, 0x00, 0x00