| (module |
| (memory 100 100) |
| (func $basics |
| (local $x i32) |
| (local $y i32) |
| (drop |
| (i32.add (i32.const 1) (i32.const 2)) |
| ) |
| (drop |
| (i32.add (i32.const 1) (i32.const 2)) |
| ) |
| (if (i32.const 0) (nop)) |
| (drop ;; we can't do this yet, non-linear |
| (i32.add (i32.const 1) (i32.const 2)) |
| ) |
| (drop |
| (i32.add (get_local $x) (get_local $y)) |
| ) |
| (drop |
| (i32.add (get_local $x) (get_local $y)) |
| ) |
| (drop |
| (i32.add (get_local $x) (get_local $y)) |
| ) |
| (call $basics) ;; side effects, but no matter for our locals |
| (drop |
| (i32.add (get_local $x) (get_local $y)) |
| ) |
| (set_local $x (i32.const 100)) |
| (drop ;; x was changed! |
| (i32.add (get_local $x) (get_local $y)) |
| ) |
| ) |
| (func $recursive1 |
| (local $x i32) |
| (local $y i32) |
| (drop |
| (i32.add |
| (i32.const 1) |
| (i32.add |
| (i32.const 2) |
| (i32.const 3) |
| ) |
| ) |
| ) |
| (drop |
| (i32.add |
| (i32.const 1) |
| (i32.add |
| (i32.const 2) |
| (i32.const 3) |
| ) |
| ) |
| ) |
| (drop |
| (i32.add |
| (i32.const 2) |
| (i32.const 3) |
| ) |
| ) |
| ) |
| (func $recursive2 |
| (local $x i32) |
| (local $y i32) |
| (drop |
| (i32.add |
| (i32.const 1) |
| (i32.add |
| (i32.const 2) |
| (i32.const 3) |
| ) |
| ) |
| ) |
| (drop |
| (i32.add |
| (i32.const 2) |
| (i32.const 3) |
| ) |
| ) |
| (drop |
| (i32.add |
| (i32.const 1) |
| (i32.add |
| (i32.const 2) |
| (i32.const 3) |
| ) |
| ) |
| ) |
| ) |
| (func $self |
| (local $x i32) |
| (local $y i32) |
| (drop |
| (i32.add |
| (i32.add |
| (i32.const 2) |
| (i32.const 3) |
| ) |
| (i32.add |
| (i32.const 2) |
| (i32.const 3) |
| ) |
| ) |
| ) |
| (drop |
| (i32.add |
| (i32.const 2) |
| (i32.const 3) |
| ) |
| ) |
| ) |
| (func $loads |
| (drop |
| (i32.load (i32.const 10)) |
| ) |
| (drop |
| (i32.load (i32.const 10)) ;; implicit traps, sad |
| ) |
| ) |
| (func $8 (param $var$0 i32) (result i32) |
| (local $var$1 i32) |
| (local $var$2 i32) |
| (local $var$3 i32) |
| (block $label$0 i32 |
| (i32.store |
| (tee_local $var$2 |
| (i32.add |
| (get_local $var$1) |
| (i32.const 4) |
| ) |
| ) |
| (i32.and |
| (i32.load |
| (get_local $var$2) |
| ) |
| (i32.xor |
| (tee_local $var$2 |
| (i32.const 74) |
| ) |
| (i32.const -1) |
| ) |
| ) |
| ) |
| (i32.store |
| (tee_local $var$1 |
| (i32.add |
| (get_local $var$1) |
| (i32.const 4) |
| ) |
| ) |
| (i32.or |
| (i32.load |
| (get_local $var$1) |
| ) |
| (i32.and |
| (get_local $var$2) |
| (i32.const 8) |
| ) |
| ) |
| ) |
| ) |
| ) |
| ) |