summaryrefslogtreecommitdiff
path: root/test/interp/basic-tracing.txt
blob: 5a5e20fdb4a6ac4eb3610e8cc4a2988a250f4590 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
;;; TOOL: run-interp
;;; ARGS: --trace
(module
  (func $fib (param $n i32) (result i32)
    local.get $n
    i32.const 1
    i32.le_s
    if (result i32)
      i32.const 1
    else
      local.get $n
      i32.const 1
      i32.sub
      call $fib
      local.get $n
      i32.mul
    end)

  (func (export "main") (result i32)
    i32.const 3
    call $fib))
(;; STDOUT ;;;
>>> running export "main":
#0.  100: V:0  | i32.const 3
#0.  108: V:1  | call $0
#1.    0: V:1  | local.get $1
#1.    8: V:2  | i32.const 1
#1.   16: V:3  | i32.le_s 3, 1
#1.   20: V:2  | br_unless @44, 0
#1.   44: V:1  | local.get $1
#1.   52: V:2  | i32.const 1
#1.   60: V:3  | i32.sub 3, 1
#1.   64: V:2  | call $0
#2.    0: V:2  | local.get $1
#2.    8: V:3  | i32.const 1
#2.   16: V:4  | i32.le_s 2, 1
#2.   20: V:3  | br_unless @44, 0
#2.   44: V:2  | local.get $1
#2.   52: V:3  | i32.const 1
#2.   60: V:4  | i32.sub 2, 1
#2.   64: V:3  | call $0
#3.    0: V:3  | local.get $1
#3.    8: V:4  | i32.const 1
#3.   16: V:5  | i32.le_s 1, 1
#3.   20: V:4  | br_unless @44, 1
#3.   28: V:3  | i32.const 1
#3.   36: V:4  | br @84
#3.   84: V:4  | drop_keep $1 $1
#3.   96: V:3  | return
#2.   72: V:3  | local.get $2
#2.   80: V:4  | i32.mul 1, 2
#2.   84: V:3  | drop_keep $1 $1
#2.   96: V:2  | return
#1.   72: V:2  | local.get $2
#1.   80: V:3  | i32.mul 2, 3
#1.   84: V:2  | drop_keep $1 $1
#1.   96: V:1  | return
#0.  116: V:1  | return
main() => i32:6
;;; STDOUT ;;)