summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/wasm/multi-value/call-run.js
blob: 67662a4af5296274d8ac852e08059dacc3009dae (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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
wasmFullPass(`
  (module
    (func (result i32 i32)
      (i32.const 52)
      (i32.const 10))
    (func (export "run") (result i32)
      (call 0)
      i32.sub))`,
            42);

wasmFullPass(`
  (module
    (func (param i32 i32) (result i32 i32)
      (local.get 0)
      (local.get 1))
    (func (export "run") (result i32)
      (i32.const 52)
      (i32.const 10)
      (call 0)
      i32.sub))`,
            42);

wasmFullPass(`
  (module
    (func (param i32 i32 i32 i32 i32
                 i32 i32 i32 i32 i32)
          (result i32 i32)
      (local.get 8)
      (local.get 9))
    (func (export "run") (result i32)
      (i32.const 0)
      (i32.const 1)
      (i32.const 2)
      (i32.const 3)
      (i32.const 4)
      (i32.const 5)
      (i32.const 6)
      (i32.const 7)
      (i32.const 52)
      (i32.const 10)
      (call 0)
      i32.sub))`,
            42);

wasmFullPass(`
  (module
    (func (param i32 i32 i32 i32 i32
                 i32 i32 i32 i32 i32)
          (result i32 i32)
      (local i32 i32 i32 i32)
      (local.get 8)
      (local.get 9))
    (func (export "run") (result i32)
      (i32.const 0)
      (i32.const 1)
      (i32.const 2)
      (i32.const 3)
      (i32.const 4)
      (i32.const 5)
      (i32.const 6)
      (i32.const 7)
      (i32.const 52)
      (i32.const 10)
      (call 0)
      i32.sub))`,
            42);

wasmFullPass(`
  (module
    (func (param i32 i32 i32 i32 i32
                 i32 i32 i32 i32 i32)
          (result i32 i32 i32)
      (local i32 i32 i32 i32)
      (local.get 7)
      (local.get 8)
      (local.get 9))
    (func (export "run") (result i32)
      (i32.const 0)
      (i32.const 1)
      (i32.const 2)
      (i32.const 3)
      (i32.const 4)
      (i32.const 5)
      (i32.const 6)
      (i32.const 7)
      (i32.const 52)
      (i32.const 10)
      (call 0)
      i32.sub
      i32.sub))`,
            -35);

wasmFullPass(`
  (module
    (func (param i32 i64 i32 i64 i32
                 i64 i32 i64 i32 i64)
          (result i64 i32 i64)
      (local i32 i64 i32 i64)
      (local.get 7)
      (local.get 8)
      (local.get 9))
    (func (export "run") (result i32)
      (i32.const 0)
      (i64.const 1)
      (i32.const 2)
      (i64.const 3)
      (i32.const 4)
      (i64.const 5)
      (i32.const 6)
      (i64.const 7)
      (i32.const 52)
      (i64.const 10)
      (call 0)
      i32.wrap_i64
      i32.sub
      i64.extend_i32_s
      i64.sub
      i32.wrap_i64))`,
            -35);