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;; stp x27, x28, [sp, #-0x10]! 20;; stp x25, x26, [sp, #-0x10]! 21;; stp x23, x24, [sp, #-0x10]! 22;; stp x21, x22, [sp, #-0x10]! 23;; stp x19, x20, [sp, #-0x10]! 24;; stp d14, d15, [sp, #-0x10]! 25;; stp d12, d13, [sp, #-0x10]! 26;; stp d10, d11, [sp, #-0x10]! 27;; stp d8, d9, [sp, #-0x10]! 28;; sub sp, sp, #0x30 29;; ldr x3, [x2, #8] 30;; ldr x3, [x3, #0x10] 31;; mov x4, sp 32;; cmp x4, x3 33;; b.lo #0x15c 34;; 44: stur x2, [sp] 35;; stur x2, [sp, #0x10] 36;; mov w22, #0x2a 37;; ╰─╼ debug frame state (before next inst): func key DefinedWasmFunction(StaticModuleIndex(0), DefinedFuncIndex(0)), wasm PC 61, slot at FP-0xc0, locals , stack 38;; stur w22, [sp, #8] 39;; stur w22, [sp, #8] 40;; ╰─╼ debug frame state (before next inst): func key DefinedWasmFunction(StaticModuleIndex(0), DefinedFuncIndex(0)), wasm PC 64, slot at FP-0xc0, 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-0xc0, locals , stack I32 @ slot+0x8 43;; bl #0x3f0 44;; 60: mov x24, x2 45;; mov w3, #0x4000000 46;; mov w4, #2 47;; mov w5, #0x28 48;; mov w6, #8 49;; ldur x2, [sp, #0x10] 50;; bl #0x310 51;; 7c: ldur x13, [sp, #0x10] 52;; ldr x5, [x13, #8] 53;; ldr x6, [x5, #0x18] 54;; stur x5, [sp, #0x20] 55;; add x15, x6, #0x20 56;; str w22, [x15, w2, uxtw] 57;; add x3, x6, #0x18 58;; mov x7, x24 59;; str w7, [x3, w2, uxtw] 60;; mov w3, #0 61;; add x4, x6, #0x1c 62;; stur x6, [sp, #0x18] 63;; str w3, [x4, w2, uxtw] 64;; mov x3, x2 65;; ldur x2, [sp, #0x10] 66;; bl #0x428 67;; ├─╼ exception frame offset: SP = FP - 0xc0 68;; ╰─╼ exception handler: tag=0, context at [SP+0x10], handler=0xd4 69;; bc: mov w3, #9 70;; ldur x2, [sp, #0x10] 71;; bl #0x384 72;; c8: ldur x2, [sp, #0x10] 73;; bl #0x3bc 74;; d0: .byte 0x1f, 0xc1, 0x00, 0x00 75;; mov x15, x0 76;; mov w6, w15 77;; mov x7, #0x28 78;; adds x5, x6, x7 79;; cset x7, hs 80;; uxtb w6, w7 81;; cbnz x6, #0x174 82;; f0: ldur x12, [sp, #0x20] 83;; ldr x8, [x12, #0x20] 84;; cmp x5, x8 85;; cset x9, hi 86;; uxtb w9, w9 87;; cbnz x9, #0x178 88;; 108: ldur x6, [sp, #0x18] 89;; add x10, x6, #0x20 90;; ldr w12, [x10, w15, uxtw] 91;; stur w12, [sp, #8] 92;; ldur x2, [sp, #0x10] 93;; ╰─╼ debug frame state (before next inst): func key DefinedWasmFunction(StaticModuleIndex(0), DefinedFuncIndex(0)), wasm PC 72, slot at FP-0xc0, locals , stack I32 @ slot+0x8 94;; ldr x14, [x2, #0x30] 95;; ldr x2, [x2, #0x40] 96;; ldur x3, [sp, #0x10] 97;; blr x14 98;; ╰─╼ 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 99;; 12c: add sp, sp, #0x30 100;; ╰─╼ debug frame state (before next inst): func key DefinedWasmFunction(StaticModuleIndex(0), DefinedFuncIndex(0)), wasm PC 75, slot at FP-0xc0, locals , stack 101;; ldp d8, d9, [sp], #0x10 102;; ldp d10, d11, [sp], #0x10 103;; ldp d12, d13, [sp], #0x10 104;; ldp d14, d15, [sp], #0x10 105;; ldp x19, x20, [sp], #0x10 106;; ldp x21, x22, [sp], #0x10 107;; ldp x23, x24, [sp], #0x10 108;; ldp x25, x26, [sp], #0x10 109;; ldp x27, x28, [sp], #0x10 110;; ldp x29, x30, [sp], #0x10 111;; ret 112;; 15c: stur x2, [sp, #0x10] 113;; 160: mov w3, #0 114;; 164: bl #0x384 115;; 168: ldur x2, [sp, #0x10] 116;; 16c: bl #0x3bc 117;; 170: .byte 0x1f, 0xc1, 0x00, 0x00 118;; 174: .byte 0x1f, 0xc1, 0x00, 0x00 119;; 178: .byte 0x1f, 0xc1, 0x00, 0x00 120