Skip to content

Commit 330e369

Browse files
committed
adding wat files for examples
1 parent 074e7ed commit 330e369

File tree

6 files changed

+27162
-0
lines changed

6 files changed

+27162
-0
lines changed

examples/0000-if.wat

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
(module
2+
(type (;0;) (func))
3+
(type (;1;) (func (result i32)))
4+
(func (;0;) (type 0)
5+
i32.const 0
6+
if ;; label = @1
7+
i32.const 0
8+
drop
9+
else
10+
i32.const 1
11+
drop
12+
end)
13+
(func (;1;) (type 1) (result i32)
14+
i32.const 0
15+
if (result i32) ;; label = @1
16+
i32.const 0
17+
else
18+
i32.const 1
19+
end)
20+
(func (;2;) (type 1) (result i32)
21+
i32.const 0
22+
if (result i32) ;; label = @1
23+
i32.const 0
24+
return
25+
else
26+
i32.const 1
27+
end)
28+
(func (;3;) (type 1) (result i32)
29+
i32.const 0
30+
if (result i32) ;; label = @1
31+
i32.const 0
32+
else
33+
i32.const 1
34+
return
35+
end)
36+
(func (;4;) (type 1) (result i32)
37+
i32.const 0
38+
if (result i32) ;; label = @1
39+
i32.const 0
40+
return
41+
else
42+
i32.const 1
43+
return
44+
end))

examples/0001-loop.wat

Lines changed: 119 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,119 @@
1+
(module
2+
(type (;0;) (func))
3+
(type (;1;) (func (result i32)))
4+
(func (;0;) (type 0)
5+
i32.const 0
6+
loop ;; label = @1
7+
end
8+
i32.const 1
9+
drop
10+
drop)
11+
(func (;1;) (type 0)
12+
loop ;; label = @1
13+
br 0 (;@1;)
14+
end)
15+
(func (;2;) (type 0)
16+
block ;; label = @1
17+
loop ;; label = @2
18+
i32.const 0
19+
br_if 0 (;@2;)
20+
br 1 (;@1;)
21+
end
22+
i32.const 1234
23+
drop
24+
end
25+
i32.const 5678
26+
drop)
27+
(func (;3;) (type 1) (result i32)
28+
block ;; label = @1
29+
loop ;; label = @2
30+
i32.const 0
31+
br_if 0 (;@2;)
32+
i32.const 1
33+
br_if 1 (;@1;)
34+
i32.const 2
35+
br_if 0 (;@2;)
36+
i32.const 3
37+
br_if 1 (;@1;)
38+
i32.const 4
39+
return
40+
end
41+
end
42+
i32.const 1234)
43+
(func (;4;) (type 1) (result i32)
44+
loop (result i32) ;; label = @1
45+
loop (result i32) ;; label = @2
46+
loop (result i32) ;; label = @3
47+
loop (result i32) ;; label = @4
48+
loop (result i32) ;; label = @5
49+
loop (result i32) ;; label = @6
50+
loop (result i32) ;; label = @7
51+
loop (result i32) ;; label = @8
52+
loop (result i32) ;; label = @9
53+
loop (result i32) ;; label = @10
54+
loop (result i32) ;; label = @11
55+
loop (result i32) ;; label = @12
56+
loop (result i32) ;; label = @13
57+
loop (result i32) ;; label = @14
58+
loop (result i32) ;; label = @15
59+
loop (result i32) ;; label = @16
60+
loop (result i32) ;; label = @17
61+
loop (result i32) ;; label = @18
62+
loop (result i32) ;; label = @19
63+
loop (result i32) ;; label = @20
64+
loop (result i32) ;; label = @21
65+
i32.const 0
66+
i32.const 1
67+
br_if 20 (;@1;)
68+
end
69+
end
70+
end
71+
end
72+
end
73+
end
74+
end
75+
end
76+
end
77+
end
78+
end
79+
end
80+
end
81+
end
82+
end
83+
end
84+
end
85+
end
86+
end
87+
end
88+
end)
89+
(func (;5;) (type 0)
90+
block ;; label = @1
91+
loop ;; label = @2
92+
i32.const 0
93+
drop
94+
block ;; label = @3
95+
loop ;; label = @4
96+
i32.const 1
97+
drop
98+
block ;; label = @5
99+
loop ;; label = @6
100+
i32.const 2
101+
drop
102+
br 5 (;@1;)
103+
br 4 (;@2;)
104+
br 3 (;@3;)
105+
br 2 (;@4;)
106+
br 1 (;@5;)
107+
br 0 (;@6;)
108+
end
109+
end
110+
i32.const 8002
111+
drop
112+
end
113+
end
114+
i32.const 8001
115+
drop
116+
end
117+
end
118+
i32.const 8000
119+
drop))

examples/0002-call_and_tables.wat

Lines changed: 143 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,143 @@
1+
(module
2+
(type (;0;) (func (param i32 i32) (result i32)))
3+
(type (;1;) (func (result i32)))
4+
(type (;2;) (func))
5+
(func (;0;) (type 1) (result i32)
6+
block (result i32) ;; label = @1
7+
block (result i32) ;; label = @2
8+
block (result i32) ;; label = @3
9+
block (result i32) ;; label = @4
10+
block (result i32) ;; label = @5
11+
block (result i32) ;; label = @6
12+
block (result i32) ;; label = @7
13+
block (result i32) ;; label = @8
14+
block (result i32) ;; label = @9
15+
block (result i32) ;; label = @10
16+
block (result i32) ;; label = @11
17+
block (result i32) ;; label = @12
18+
block (result i32) ;; label = @13
19+
block (result i32) ;; label = @14
20+
block (result i32) ;; label = @15
21+
block (result i32) ;; label = @16
22+
block (result i32) ;; label = @17
23+
block (result i32) ;; label = @18
24+
block (result i32) ;; label = @19
25+
block (result i32) ;; label = @20
26+
block (result i32) ;; label = @21
27+
i32.const 10
28+
i32.const 8
29+
br_table 20 (;@1;) 19 (;@2;) 18 (;@3;) 17 (;@4;) 16 (;@5;) 15 (;@6;) 14 (;@7;) 13 (;@8;) 12 (;@9;) 11 (;@10;) 10 (;@11;) 9 (;@12;) 8 (;@13;) 7 (;@14;) 6 (;@15;) 5 (;@16;) 4 (;@17;) 3 (;@18;) 2 (;@19;) 1 (;@20;) 0 (;@21;)
30+
end
31+
i32.const 20
32+
drop
33+
end
34+
i32.const 19
35+
drop
36+
end
37+
i32.const 18
38+
drop
39+
end
40+
i32.const 17
41+
drop
42+
end
43+
i32.const 16
44+
drop
45+
end
46+
i32.const 15
47+
drop
48+
end
49+
i32.const 14
50+
drop
51+
end
52+
i32.const 13
53+
drop
54+
end
55+
i32.const 12
56+
drop
57+
end
58+
i32.const 11
59+
drop
60+
end
61+
i32.const 10
62+
drop
63+
end
64+
i32.const 9
65+
drop
66+
end
67+
i32.const 8
68+
drop
69+
end
70+
i32.const 7
71+
drop
72+
end
73+
i32.const 6
74+
drop
75+
end
76+
i32.const 5
77+
drop
78+
end
79+
i32.const 4
80+
drop
81+
end
82+
i32.const 3
83+
drop
84+
end
85+
i32.const 2
86+
drop
87+
end
88+
i32.const 1
89+
drop
90+
end
91+
i32.const 0
92+
drop)
93+
(func (;1;) (type 0) (param i32 i32) (result i32)
94+
i32.const 0
95+
i32.const 1
96+
i32.add)
97+
(func (;2;) (type 2)
98+
i32.const 10
99+
i32.const 20
100+
call 1
101+
drop)
102+
(func (;3;) (type 2)
103+
(local i32 i32)
104+
i32.const 10
105+
i32.const 20
106+
call 1
107+
drop)
108+
(func (;4;) (type 2)
109+
i32.const 10
110+
i32.const 20
111+
i32.const 3
112+
call_indirect (type 0)
113+
drop)
114+
(func (;5;) (type 2)
115+
(local i32 i32)
116+
i32.const 10
117+
i32.const 20
118+
i32.const 3
119+
call_indirect (type 0)
120+
drop)
121+
(func (;6;) (type 0) (param i32 i32) (result i32)
122+
i32.const 0
123+
i32.const 1
124+
i32.add)
125+
(func (;7;) (type 0) (param i32 i32) (result i32)
126+
i32.const 0
127+
i32.const 1
128+
i32.add)
129+
(func (;8;) (type 0) (param i32 i32) (result i32)
130+
i32.const 0
131+
i32.const 1
132+
i32.add)
133+
(func (;9;) (type 0) (param i32 i32) (result i32)
134+
i32.const 0
135+
i32.const 1
136+
i32.add)
137+
(func (;10;) (type 0) (param i32 i32) (result i32)
138+
i32.const 0
139+
i32.const 1
140+
i32.add)
141+
(table (;0;) 5 5 funcref)
142+
(export "dummy0" (func 6))
143+
(elem (;0;) (i32.const 0) func 6 7 8 9 10))

examples/0003-locals_and_globals.wat

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
(module
2+
(global (;0;) (mut i32) (i32.const 1))
3+
(global (;1;) (mut i32) (i32.const 2))
4+
(export "myglobal" (global 0)))

examples/basic.wat

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
(module
2+
(type (;0;) (func (result i32)))
3+
(func (;0;) (type 0) (result i32)
4+
i32.const 42
5+
return))

0 commit comments

Comments
 (0)