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, #0x18] 31;; mov x4, sp 32;; cmp x4, x3 33;; b.lo #0x190 34;; 44: stur x2, [sp] 35;; mov x0, x2 36;; stur x2, [sp, #0x10] 37;; nop 38;; ├─╼ debug frame state (after previous inst): func key DefinedWasmFunction(StaticModuleIndex(0), DefinedFuncIndex(0)), wasm PC 53, slot at FP-0xc0, locals , stack 39;; ╰─╼ breakpoint patch: wasm PC 53, patch bytes [38, 1, 0, 148] 40;; ldur x0, [sp, #0x10] 41;; nop 42;; ├─╼ debug frame state (after previous inst): func key DefinedWasmFunction(StaticModuleIndex(0), DefinedFuncIndex(0)), wasm PC 55, slot at FP-0xc0, locals , stack 43;; ╰─╼ breakpoint patch: wasm PC 55, patch bytes [36, 1, 0, 148] 44;; ldur x0, [sp, #0x10] 45;; nop 46;; ├─╼ debug frame state (after previous inst): func key DefinedWasmFunction(StaticModuleIndex(0), DefinedFuncIndex(0)), wasm PC 61, slot at FP-0xc0, locals , stack 47;; ╰─╼ breakpoint patch: wasm PC 61, patch bytes [34, 1, 0, 148] 48;; mov w22, #0x2a 49;; stur w22, [sp, #8] 50;; nop 51;; ├─╼ 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 52;; ╰─╼ breakpoint patch: wasm PC 63, patch bytes [31, 1, 0, 148] 53;; nop 54;; ├─╼ debug frame state (after previous inst): func key DefinedWasmFunction(StaticModuleIndex(0), DefinedFuncIndex(0)), wasm PC 64, slot at FP-0xc0, locals , stack 55;; ╰─╼ breakpoint patch: wasm PC 64, patch bytes [30, 1, 0, 148] 56;; stur w22, [sp, #8] 57;; nop 58;; ├─╼ 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 59;; ╰─╼ breakpoint patch: wasm PC 66, patch bytes [28, 1, 0, 148] 60;; ldur x2, [sp, #0x10] 61;; bl #0x448 62;; 84: mov x24, x2 63;; mov w3, #0x4000000 64;; mov w4, #2 65;; mov w5, #0x28 66;; mov w6, #8 67;; ldur x2, [sp, #0x10] 68;; bl #0x368 69;; a0: ldur x0, [sp, #0x10] 70;; ldr x5, [x0, #8] 71;; ldr x6, [x5, #0x20] 72;; stur x5, [sp, #0x20] 73;; add x15, x6, #0x20 74;; str w22, [x15, w2, uxtw] 75;; add x3, x6, #0x18 76;; mov x1, x24 77;; str w1, [x3, w2, uxtw] 78;; mov w3, #0 79;; add x4, x6, #0x1c 80;; stur x6, [sp, #0x18] 81;; str w3, [x4, w2, uxtw] 82;; mov x3, x2 83;; ldur x2, [sp, #0x10] 84;; bl #0x480 85;; ├─╼ exception frame offset: SP = FP - 0xc0 86;; ╰─╼ exception handler: tag=0, context at [SP+0x10], handler=0xf8 87;; e0: mov w3, #9 88;; ldur x2, [sp, #0x10] 89;; bl #0x3dc 90;; ec: ldur x2, [sp, #0x10] 91;; bl #0x414 92;; f4: .byte 0x1f, 0xc1, 0x00, 0x00 93;; mov x9, x0 94;; mov w6, w9 95;; mov x7, #0x28 96;; adds x5, x6, x7 97;; cset x7, hs 98;; uxtb w6, w7 99;; cbnz x6, #0x1a8 100;; 114: ldur x4, [sp, #0x20] 101;; ldr x8, [x4, #0x28] 102;; cmp x5, x8 103;; cset x10, hi 104;; uxtb w10, w10 105;; cbnz x10, #0x1ac 106;; 12c: ldur x6, [sp, #0x18] 107;; add x10, x6, #0x20 108;; ldr w12, [x10, w9, uxtw] 109;; stur w12, [sp, #8] 110;; ldur x0, [sp, #0x10] 111;; nop 112;; ├─╼ 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 113;; ╰─╼ breakpoint patch: wasm PC 72, patch bytes [234, 0, 0, 148] 114;; ldr x14, [x0, #0x30] 115;; ldr x2, [x0, #0x40] 116;; ldur x3, [sp, #0x10] 117;; blr x14 118;; ╰─╼ 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 119;; 154: ldur x0, [sp, #0x10] 120;; nop 121;; ├─╼ 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 122;; ╰─╼ breakpoint patch: wasm PC 74, patch bytes [228, 0, 0, 148] 123;; nop 124;; ├─╼ debug frame state (after previous inst): func key DefinedWasmFunction(StaticModuleIndex(0), DefinedFuncIndex(0)), wasm PC 75, slot at FP-0xc0, locals , stack 125;; ╰─╼ breakpoint patch: wasm PC 75, patch bytes [227, 0, 0, 148] 126;; add sp, sp, #0x30 127;; ldp d8, d9, [sp], #0x10 128;; ldp d10, d11, [sp], #0x10 129;; ldp d12, d13, [sp], #0x10 130;; ldp d14, d15, [sp], #0x10 131;; ldp x19, x20, [sp], #0x10 132;; ldp x21, x22, [sp], #0x10 133;; ldp x23, x24, [sp], #0x10 134;; ldp x25, x26, [sp], #0x10 135;; ldp x27, x28, [sp], #0x10 136;; ldp x29, x30, [sp], #0x10 137;; ret 138;; 190: stur x2, [sp, #0x10] 139;; 194: mov w3, #0 140;; 198: bl #0x3dc 141;; 19c: ldur x2, [sp, #0x10] 142;; 1a0: bl #0x414 143;; 1a4: .byte 0x1f, 0xc1, 0x00, 0x00 144;; 1a8: .byte 0x1f, 0xc1, 0x00, 0x00 145;; 1ac: .byte 0x1f, 0xc1, 0x00, 0x00 146