wasmtime-cli 46.0.1

Command-line interface for Wasmtime
Documentation
;;! 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, #0x20
;;       ldr     x0, [x2, #8]
;;       ldr     x0, [x0, #0x18]
;;       mov     x1, sp
;;       cmp     x1, x0
;;       b.lo    #0x224
;;   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 0x35, slot at FP-0xb0, locals , stack 
;;       ╰─╼ breakpoint patch: wasm PC 0x35, patch bytes [71, 1, 0, 148]
;;       ldur    x0, [sp, #0x10]
;;       nop
;;       ├─╼ debug frame state (after previous inst): func key DefinedWasmFunction(StaticModuleIndex(0), DefinedFuncIndex(0)), wasm PC 0x37, slot at FP-0xb0, locals , stack 
;;       ╰─╼ breakpoint patch: wasm PC 0x37, patch bytes [69, 1, 0, 148]
;;       ldur    x0, [sp, #0x10]
;;       nop
;;       ├─╼ debug frame state (after previous inst): func key DefinedWasmFunction(StaticModuleIndex(0), DefinedFuncIndex(0)), wasm PC 0x3d, slot at FP-0xb0, locals , stack 
;;       ╰─╼ breakpoint patch: wasm PC 0x3d, patch bytes [67, 1, 0, 148]
;;       mov     w1, #0x2a
;;       stur    w1, [sp, #8]
;;       nop
;;       ├─╼ debug frame state (after previous inst): func key DefinedWasmFunction(StaticModuleIndex(0), DefinedFuncIndex(0)), wasm PC 0x3f, slot at FP-0xb0, locals , stack I32 @ slot+0x8
;;       ╰─╼ breakpoint patch: wasm PC 0x3f, patch bytes [64, 1, 0, 148]
;;       nop
;;       ├─╼ debug frame state (after previous inst): func key DefinedWasmFunction(StaticModuleIndex(0), DefinedFuncIndex(0)), wasm PC 0x40, slot at FP-0xb0, locals , stack 
;;       ╰─╼ breakpoint patch: wasm PC 0x40, patch bytes [63, 1, 0, 148]
;;       stur    w1, [sp, #8]
;;       nop
;;       ├─╼ debug frame state (after previous inst): func key DefinedWasmFunction(StaticModuleIndex(0), DefinedFuncIndex(0)), wasm PC 0x42, slot at FP-0xb0, locals , stack I32 @ slot+0x8
;;       ╰─╼ breakpoint patch: wasm PC 0x42, patch bytes [61, 1, 0, 148]
;;       ldur    x2, [sp, #0x10]
;;       bl      #0x4cc
;;   84: ldur    x0, [sp, #0x10]
;;       mov     x19, x2
;;       ldr     x4, [x0, #0x20]
;;       ldr     w3, [x4]
;;       mov     w5, w3
;;       add     x5, x5, #0x20
;;       ldr     w6, [x4, #4]
;;       cmp     x5, x6
;;       b.hi    #0x1b8
;;   a8: add     w7, w3, #0x20
;;       str     w7, [x4]
;;       mov     w9, #2
;;       movk    w9, #0x400, lsl #16
;;       ldur    x0, [sp, #0x10]
;;       ldr     x8, [x0, #8]
;;       ldr     x8, [x8, #0x20]
;;       add     x0, x8, w3, uxtw
;;       str     w9, [x8, w3, uxtw]
;;       ldur    x1, [sp, #0x10]
;;       ldr     x9, [x1, #0x28]
;;       ldr     w9, [x9, #8]
;;       add     x10, x8, #4
;;       str     w9, [x10, w3, uxtw]
;;       mov     x10, #0x20
;;       add     x11, x8, #8
;;       str     w10, [x11, w3, uxtw]
;;       mov     w12, #0x2a
;;       str     w12, [x0, #0x18]
;;       mov     x2, x19
;;       str     w2, [x0, #0x10]
;;       mov     w14, #0
;;       str     w14, [x0, #0x14]
;;       ldur    x2, [sp, #0x10]
;;       bl      #0x504
;;       ├─╼ exception frame offset: SP = FP - 0xb0
;;       ╰─╼ exception handler: tag=0, context at [SP+0x10], handler=0x124
;;  10c: mov     w3, #9
;;       ldur    x2, [sp, #0x10]
;;       bl      #0x460
;;  118: ldur    x2, [sp, #0x10]
;;       bl      #0x498
;;       ╰─╼ debug frame state (after previous inst): func key DefinedWasmFunction(StaticModuleIndex(0), DefinedFuncIndex(0)), wasm PC 0x42, slot at FP-0xb0, locals , stack I32 @ slot+0x8
;;  120: udf     #0xc11f
;;       mov     w1, w0
;;       mov     x2, #0x20
;;       adds    x1, x1, x2
;;       cset    x2, hs
;;       tst     w2, #0xff
;;       b.ne    #0x20c
;;  13c: ldur    x14, [sp, #0x10]
;;       ldr     x2, [x14, #8]
;;       ldr     x3, [x2, #0x28]
;;       cmp     x1, x3
;;       b.hi    #0x1f4
;;  150: ldr     x1, [x2, #0x20]
;;       add     x1, x1, #0x18
;;       ldr     w0, [x1, w0, uxtw]
;;       stur    w0, [sp, #8]
;;       ldur    x0, [sp, #0x10]
;;       nop
;;       ├─╼ debug frame state (after previous inst): func key DefinedWasmFunction(StaticModuleIndex(0), DefinedFuncIndex(0)), wasm PC 0x48, slot at FP-0xb0, locals , stack I32 @ slot+0x8
;;       ╰─╼ breakpoint patch: wasm PC 0x48, patch bytes [2, 1, 0, 148]
;;       ldur    x1, [sp, #0x10]
;;       ldr     x0, [x1, #0x38]
;;       ldr     x2, [x1, #0x48]
;;       ldur    x3, [sp, #0x10]
;;       blr     x0
;;       ╰─╼ debug frame state (after previous inst): func key DefinedWasmFunction(StaticModuleIndex(0), DefinedFuncIndex(0)), wasm PC 0x4a, slot at FP-0xb0, locals , stack I32 @ slot+0x8
;;  17c: ldur    x0, [sp, #0x10]
;;       nop
;;       ├─╼ debug frame state (after previous inst): func key DefinedWasmFunction(StaticModuleIndex(0), DefinedFuncIndex(0)), wasm PC 0x4a, slot at FP-0xb0, locals , stack I32 @ slot+0x8
;;       ╰─╼ breakpoint patch: wasm PC 0x4a, patch bytes [251, 0, 0, 148]
;;       nop
;;       ├─╼ debug frame state (after previous inst): func key DefinedWasmFunction(StaticModuleIndex(0), DefinedFuncIndex(0)), wasm PC 0x4b, slot at FP-0xb0, locals , stack 
;;       ╰─╼ breakpoint patch: wasm PC 0x4b, patch bytes [250, 0, 0, 148]
;;       add     sp, sp, #0x20
;;       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
;;  1b8: mov     w3, #2
;;  1bc: movk    w3, #0x400, lsl #16
;;  1c0: ldur    x0, [sp, #0x10]
;;  1c4: ldr     x6, [x0, #0x28]
;;  1c8: ldr     w4, [x6, #8]
;;  1cc: mov     w5, #0x20
;;  1d0: mov     w6, #0x10
;;  1d4: ldur    x2, [sp, #0x10]
;;  1d8: bl      #0x3f0
;;  1dc: ldur    x0, [sp, #0x10]
;;  1e0: ldr     x6, [x0, #8]
;;  1e4: ldr     x6, [x6, #0x20]
;;  1e8: add     x0, x6, w2, uxtw
;;  1ec: mov     x3, x2
;;  1f0: b       #0xec
;;  1f4: mov     w3, #0xfe
;;  1f8: ldur    x2, [sp, #0x10]
;;  1fc: bl      #0x460
;;  200: ldur    x2, [sp, #0x10]
;;  204: bl      #0x498
;;       ╰─╼ debug frame state (after previous inst): func key DefinedWasmFunction(StaticModuleIndex(0), DefinedFuncIndex(0)), wasm PC 0x37, slot at FP-0xb0, locals , stack 
;;  208: udf     #0xc11f
;;  20c: mov     w3, #0xfe
;;  210: ldur    x2, [sp, #0x10]
;;  214: bl      #0x460
;;  218: ldur    x2, [sp, #0x10]
;;  21c: bl      #0x498
;;       ╰─╼ debug frame state (after previous inst): func key DefinedWasmFunction(StaticModuleIndex(0), DefinedFuncIndex(0)), wasm PC 0x37, slot at FP-0xb0, locals , stack 
;;  220: udf     #0xc11f
;;  224: stur    x2, [sp, #0x10]
;;  228: mov     w3, #0
;;  22c: bl      #0x460
;;  230: ldur    x2, [sp, #0x10]
;;  234: bl      #0x498
;;       ╰─╼ debug frame state (after previous inst): func key DefinedWasmFunction(StaticModuleIndex(0), DefinedFuncIndex(0)), wasm PC 0x34, slot at FP-0xb0, locals , stack 
;;  238: udf     #0xc11f