1;;! target = "aarch64"
2;;! test = "compile"
3;;! flags = ["-Wexceptions=yes", "-Wgc=yes", "-Dguest-debug=yes"]
4
5(module
6  (tag $t (param i32))
7  (import "" "host" (func))
8  (func (export "main")
9    (block $b (result i32)
10      (try_table (catch $t $b)
11        (drop (i32.const 42))
12        (throw $t (i32.const 42)))
13      i32.const 0)
14    (call 0)
15    (drop)))
16;; wasm[0]::function[1]:
17;;       stp     x29, x30, [sp, #-0x10]!
18;;       mov     x29, sp
19;;       ldur    x16, [x2, #8]
20;;       ldur    x16, [x16, #0x10]
21;;       add     x16, x16, #0xc0
22;;       cmp     sp, x16
23;;       b.lo    #0x110
24;;   1c: stp     x27, x28, [sp, #-0x10]!
25;;       stp     x25, x26, [sp, #-0x10]!
26;;       stp     x23, x24, [sp, #-0x10]!
27;;       stp     x21, x22, [sp, #-0x10]!
28;;       stp     x19, x20, [sp, #-0x10]!
29;;       stp     d14, d15, [sp, #-0x10]!
30;;       stp     d12, d13, [sp, #-0x10]!
31;;       stp     d10, d11, [sp, #-0x10]!
32;;       stp     d8, d9, [sp, #-0x10]!
33;;       sub     sp, sp, #0x20
34;;       stur    x2, [sp]
35;;       stur    x2, [sp, #0x10]
36;;       mov     w27, #0x2a
37;;       ╰─╼ debug frame state (before next inst): func key DefinedWasmFunction(StaticModuleIndex(0), DefinedFuncIndex(0)), wasm PC 61, slot at FP-0xb0, locals , stack
38;;       stur    w27, [sp, #8]
39;;       stur    w27, [sp, #8]
40;;       ╰─╼ debug frame state (before next inst): func key DefinedWasmFunction(StaticModuleIndex(0), DefinedFuncIndex(0)), wasm PC 64, slot at FP-0xb0, locals , stack
41;;       ldur    x2, [sp, #0x10]
42;;       ╰─╼ debug frame state (before next inst): func key DefinedWasmFunction(StaticModuleIndex(0), DefinedFuncIndex(0)), wasm PC 66, slot at FP-0xb0, locals , stack I32 @ slot+0x8
43;;       bl      #0x31c
44;;   60: mov     x21, x2
45;;       mov     w3, #0x4000000
46;;       mov     w4, #2
47;;       mov     w5, #0x28
48;;       mov     w6, #8
49;;       ldur    x2, [sp, #0x10]
50;;       bl      #0x2a8
51;;   7c: ldur    x11, [sp, #0x10]
52;;       ldr     x0, [x11, #8]
53;;       ldr     x5, [x0, #0x18]
54;;       add     x0, x5, #0x20
55;;       str     w27, [x0, w2, uxtw]
56;;       add     x3, x5, #0x18
57;;       mov     x4, x21
58;;       str     w4, [x3, w2, uxtw]
59;;       mov     w3, #0
60;;       add     x4, x5, #0x1c
61;;       stur    x5, [sp, #0x18]
62;;       str     w3, [x4, w2, uxtw]
63;;       mov     x3, x2
64;;       ldur    x2, [sp, #0x10]
65;;       bl      #0x354
66;;       ├─╼ exception frame offset: SP = FP - 0xb0
67;;       ╰─╼ exception handler: tag=0, context at [SP+0x10], handler=0xbc
68;;   b8: .byte   0x1f, 0xc1, 0x00, 0x00
69;;       ldur    x5, [sp, #0x18]
70;;       add     x4, x5, #0x20
71;;       ldr     w6, [x4, w0, uxtw]
72;;       stur    w6, [sp, #8]
73;;       ldur    x2, [sp, #0x10]
74;;       ╰─╼ debug frame state (before next inst): func key DefinedWasmFunction(StaticModuleIndex(0), DefinedFuncIndex(0)), wasm PC 72, slot at FP-0xb0, locals , stack I32 @ slot+0x8
75;;       ldr     x8, [x2, #0x30]
76;;       ldr     x2, [x2, #0x40]
77;;       ldur    x3, [sp, #0x10]
78;;       blr     x8
79;;       ╰─╼ debug frame state (after previous inst): func key DefinedWasmFunction(StaticModuleIndex(0), DefinedFuncIndex(0)), wasm PC 72, slot at FP-0xb0, locals , stack I32 @ slot+0x8
80;;   e0: add     sp, sp, #0x20
81;;       ╰─╼ debug frame state (before next inst): func key DefinedWasmFunction(StaticModuleIndex(0), DefinedFuncIndex(0)), wasm PC 75, slot at FP-0xb0, locals , stack
82;;       ldp     d8, d9, [sp], #0x10
83;;       ldp     d10, d11, [sp], #0x10
84;;       ldp     d12, d13, [sp], #0x10
85;;       ldp     d14, d15, [sp], #0x10
86;;       ldp     x19, x20, [sp], #0x10
87;;       ldp     x21, x22, [sp], #0x10
88;;       ldp     x23, x24, [sp], #0x10
89;;       ldp     x25, x26, [sp], #0x10
90;;       ldp     x27, x28, [sp], #0x10
91;;       ldp     x29, x30, [sp], #0x10
92;;       ret
93;;  110: .byte   0x1f, 0xc1, 0x00, 0x00
94