summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/wasm/stack.js
blob: 3c0dc72c583034ef024783ed4575ff9a6037250c (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
61
62
63
64
65
66
67
// Test instructions with no return value interposed between pushes and pops.
wasmFullPass(` (module
   (memory 1)

   (func (result i32)
     (local $local f64)
     i32.const 0
     i32.const 16
     i32.store
     i32.const 0
     i32.load
     i32.const 0
     if
       i32.const 0
       call $returnVoid
       i32.const 21
       i32.store
       i32.const 22
       drop
     else
       i32.const 0
       i32.const 17
       i32.store
     end
     block (result i32)
     block (result i32)
     i32.const 2
     if (result i32)
       i32.const 500
     else
       i32.const 501
     end
     end
     end
     drop
     i32.const 0
     i32.load
     f64.const 5.0
     local.set $local
     f64.const 5.0
     local.tee $local
     drop
     block
       i32.const 0
       i32.const 18
       i32.store
       nop
       i32.const 0
       i32.const 19
       call $returnVoid
       i32.store
       loop
         i32.const 1
         if
           i32.const 0
           i32.const 20
           i32.store
         end
       end
     end
     i32.add
   )

   (func $returnVoid)

   (export "run" (func 0))
)`, 33);