remove if/else dispatch from compile chain

This commit is contained in:
2026-02-14 17:57:48 -06:00
parent a93218e1ff
commit a765872017
16 changed files with 184177 additions and 231986 deletions

View File

@@ -9,7 +9,7 @@
[
"get",
3,
3,
1,
1,
16,
7
@@ -32,7 +32,7 @@
[
"get",
5,
3,
1,
1,
17,
12
@@ -224,7 +224,7 @@
[
"get",
21,
3,
1,
1,
20,
5
@@ -335,7 +335,7 @@
[
"get",
11,
2,
4,
1,
30,
8
@@ -569,7 +569,7 @@
[
"get",
29,
2,
4,
1,
34,
21
@@ -764,7 +764,7 @@
[
"get",
42,
17,
19,
1,
35,
50
@@ -862,7 +862,7 @@
[
"get",
9,
4,
6,
1,
51,
20
@@ -930,7 +930,7 @@
[
"get",
13,
4,
6,
1,
52,
57
@@ -938,7 +938,7 @@
[
"get",
15,
18,
14,
1,
52,
13
@@ -2234,7 +2234,7 @@
[
"get",
77,
1,
2,
1,
68,
10
@@ -2297,7 +2297,7 @@
[
"get",
8,
11,
7,
1,
72,
18
@@ -2349,7 +2349,7 @@
[
"get",
12,
14,
17,
1,
73,
19
@@ -2664,7 +2664,7 @@
[
"get",
8,
3,
1,
1,
85,
7
@@ -2687,7 +2687,7 @@
[
"get",
10,
3,
1,
1,
86,
12
@@ -2879,7 +2879,7 @@
[
"get",
26,
3,
1,
1,
91,
5
@@ -2960,7 +2960,7 @@
[
"get",
34,
2,
4,
1,
97,
7
@@ -3102,7 +3102,7 @@
[
"get",
43,
2,
4,
1,
98,
23
@@ -3297,7 +3297,7 @@
[
"get",
56,
8,
10,
1,
99,
54
@@ -3384,7 +3384,7 @@
[
"get",
61,
3,
1,
1,
100,
5
@@ -3431,7 +3431,7 @@
[
"get",
65,
2,
4,
1,
106,
8
@@ -3638,7 +3638,7 @@
[
"get",
81,
2,
4,
1,
108,
7
@@ -3780,7 +3780,7 @@
[
"get",
90,
2,
4,
1,
109,
19
@@ -3970,7 +3970,7 @@
[
"get",
103,
7,
9,
1,
110,
11
@@ -4035,7 +4035,7 @@
[
"get",
107,
8,
10,
1,
111,
39
@@ -4051,7 +4051,7 @@
[
"get",
109,
10,
12,
1,
111,
14
@@ -4119,7 +4119,7 @@
[
"get",
112,
3,
1,
1,
112,
5
@@ -4243,9 +4243,8 @@
}
],
"main": {
"nr_args": 0,
"nr_close_slots": 0,
"nr_slots": 161,
"nr_close_slots": 0,
"instructions": [
[
"function",
@@ -4256,7 +4255,7 @@
],
[
"move",
17,
19,
20,
0,
0
@@ -4270,7 +4269,7 @@
],
[
"move",
12,
3,
21,
0,
0
@@ -4284,7 +4283,7 @@
],
[
"move",
7,
9,
22,
0,
0
@@ -4298,7 +4297,7 @@
],
[
"move",
10,
12,
23,
0,
0
@@ -4312,7 +4311,7 @@
],
[
"move",
8,
10,
24,
0,
0
@@ -4389,7 +4388,7 @@
],
[
"move",
2,
4,
28,
8,
10
@@ -4401,7 +4400,7 @@
],
[
"move",
3,
1,
31,
10,
17
@@ -4415,8 +4414,8 @@
],
[
"store_field",
3,
2,
1,
4,
32,
11,
11
@@ -4441,7 +4440,7 @@
],
[
"store_field",
3,
1,
33,
34,
12,
@@ -4467,7 +4466,7 @@
],
[
"store_field",
3,
1,
35,
36,
13,
@@ -4483,7 +4482,7 @@
[
"frame",
39,
12,
3,
1,
38,
20
@@ -4519,7 +4518,7 @@
],
[
"move",
4,
6,
38,
38,
20
@@ -4534,7 +4533,7 @@
[
"frame",
43,
12,
3,
1,
39,
17
@@ -4570,7 +4569,7 @@
],
[
"move",
18,
14,
42,
39,
17
@@ -4585,7 +4584,7 @@
[
"frame",
47,
12,
3,
1,
40,
16
@@ -4621,7 +4620,7 @@
],
[
"move",
1,
2,
46,
40,
16
@@ -4636,7 +4635,7 @@
[
"frame",
51,
12,
3,
1,
41,
17
@@ -4672,7 +4671,7 @@
],
[
"move",
11,
7,
50,
41,
17
@@ -4687,7 +4686,7 @@
[
"frame",
55,
12,
3,
1,
42,
22
@@ -4723,7 +4722,7 @@
],
[
"move",
14,
17,
54,
42,
22
@@ -4737,8 +4736,8 @@
],
[
"store_field",
3,
4,
1,
6,
57,
44,
11
@@ -4752,8 +4751,8 @@
],
[
"store_field",
3,
18,
1,
14,
58,
45,
11
@@ -4767,8 +4766,8 @@
],
[
"store_field",
3,
1,
2,
59,
46,
11
@@ -4782,8 +4781,8 @@
],
[
"store_field",
3,
11,
1,
7,
60,
47,
11
@@ -4797,8 +4796,8 @@
],
[
"store_field",
3,
14,
1,
17,
61,
48,
11
@@ -4831,7 +4830,7 @@
],
[
"move",
15,
16,
64,
121,
20
@@ -4845,40 +4844,40 @@
],
[
"move",
9,
11,
65,
122,
17
],
[
"access",
5,
8,
1,
123,
10
],
[
"null",
16,
15,
124,
17
],
[
"null",
6,
5,
125,
14
],
[
"null",
19,
18,
126,
11
],
"_nop_bl_1",
[
"jump_true",
15,
16,
"if_else_63",
128,
6
@@ -4973,7 +4972,7 @@
[
"is_int",
75,
5,
8,
133,
20
],
@@ -4989,7 +4988,7 @@
[
"lt_int",
74,
5,
8,
73,
133,
20
@@ -5004,7 +5003,7 @@
[
"is_num",
75,
5,
8,
133,
20
],
@@ -5020,7 +5019,7 @@
[
"lt_float",
74,
5,
8,
73,
133,
20
@@ -5035,7 +5034,7 @@
[
"is_text",
75,
5,
8,
133,
20
],
@@ -5056,7 +5055,7 @@
[
"lt_text",
74,
5,
8,
73,
133,
20
@@ -5096,14 +5095,14 @@
"load_dynamic",
78,
77,
5,
8,
134,
24
],
[
"is_array",
79,
9,
11,
134,
24
],
@@ -5116,7 +5115,7 @@
],
[
"push",
9,
11,
78,
134,
24
@@ -5144,14 +5143,14 @@
[
"add",
81,
5,
8,
80,
135,
13
],
[
"move",
5,
8,
81,
135,
13
@@ -5173,14 +5172,14 @@
[
"add",
83,
15,
16,
82,
138,
23
],
[
"move",
16,
15,
83,
138,
23
@@ -5188,7 +5187,7 @@
[
"is_proxy",
85,
2,
4,
139,
6
],
@@ -5222,14 +5221,14 @@
[
"push",
88,
16,
15,
139,
6
],
[
"frame",
89,
2,
4,
2,
139,
6
@@ -5275,7 +5274,7 @@
[
"load_field",
90,
2,
4,
"is_file",
139,
6
@@ -5292,7 +5291,7 @@
"setarg",
91,
0,
2,
4,
139,
6
],
@@ -5300,7 +5299,7 @@
"setarg",
91,
1,
16,
15,
139,
6
],
@@ -5350,7 +5349,7 @@
"add",
96,
95,
15,
16,
140,
33
],
@@ -5371,7 +5370,7 @@
],
[
"move",
16,
15,
98,
140,
43
@@ -5387,7 +5386,7 @@
[
"is_proxy",
100,
2,
4,
141,
6
],
@@ -5421,14 +5420,14 @@
[
"push",
103,
16,
15,
141,
6
],
[
"frame",
104,
2,
4,
2,
141,
6
@@ -5474,7 +5473,7 @@
[
"load_field",
105,
2,
4,
"is_file",
141,
6
@@ -5491,7 +5490,7 @@
"setarg",
106,
0,
2,
4,
141,
6
],
@@ -5499,7 +5498,7 @@
"setarg",
106,
1,
16,
15,
141,
6
],
@@ -5529,14 +5528,14 @@
[
"add",
109,
15,
16,
108,
142,
25
],
[
"move",
16,
15,
109,
142,
25
@@ -5544,7 +5543,7 @@
[
"is_proxy",
111,
2,
4,
143,
8
],
@@ -5578,14 +5577,14 @@
[
"push",
114,
16,
15,
143,
8
],
[
"frame",
115,
2,
4,
2,
143,
8
@@ -5631,7 +5630,7 @@
[
"load_field",
116,
2,
4,
"is_file",
143,
8
@@ -5648,7 +5647,7 @@
"setarg",
117,
0,
2,
4,
143,
8
],
@@ -5656,7 +5655,7 @@
"setarg",
117,
1,
16,
15,
143,
8
],
@@ -5706,7 +5705,7 @@
"add",
122,
121,
15,
16,
144,
35
],
@@ -5727,7 +5726,7 @@
],
[
"move",
16,
15,
124,
144,
45
@@ -5751,7 +5750,7 @@
[
"is_proxy",
126,
2,
4,
146,
6
],
@@ -5785,14 +5784,14 @@
[
"push",
129,
16,
15,
146,
6
],
[
"frame",
130,
2,
4,
2,
146,
6
@@ -5838,7 +5837,7 @@
[
"load_field",
131,
2,
4,
"is_file",
146,
6
@@ -5855,7 +5854,7 @@
"setarg",
132,
0,
2,
4,
146,
6
],
@@ -5863,7 +5862,7 @@
"setarg",
132,
1,
16,
15,
146,
6
],
@@ -5894,7 +5893,7 @@
"add",
135,
134,
15,
16,
147,
39
],
@@ -5977,7 +5976,7 @@
[
"is_proxy",
143,
2,
4,
151,
15
],
@@ -6011,14 +6010,14 @@
[
"push",
146,
16,
15,
151,
15
],
[
"frame",
147,
2,
4,
2,
151,
15
@@ -6064,7 +6063,7 @@
[
"load_field",
148,
2,
4,
"slurp",
151,
15
@@ -6081,7 +6080,7 @@
"setarg",
149,
0,
2,
4,
151,
15
],
@@ -6089,7 +6088,7 @@
"setarg",
149,
1,
16,
15,
151,
15
],
@@ -6151,7 +6150,7 @@
],
[
"move",
6,
5,
150,
151,
10
@@ -6159,7 +6158,7 @@
[
"frame",
155,
7,
9,
2,
152,
7
@@ -6182,7 +6181,7 @@
"setarg",
155,
1,
6,
5,
152,
7
],
@@ -6190,7 +6189,7 @@
"setarg",
155,
2,
16,
15,
152,
7
],
@@ -6203,7 +6202,7 @@
],
[
"move",
19,
18,
154,
152,
7
@@ -6216,7 +6215,7 @@
[
"store_field",
157,
8,
10,
"use",
153,
29
@@ -6224,7 +6223,7 @@
[
"store_field",
157,
9,
11,
"args",
153,
43
@@ -6232,7 +6231,7 @@
[
"frame",
159,
10,
12,
3,
153,
1
@@ -6255,7 +6254,7 @@
"setarg",
159,
1,
15,
16,
153,
1
],
@@ -6263,7 +6262,7 @@
"setarg",
159,
2,
19,
18,
153,
1
],
@@ -6288,7 +6287,8 @@
153,
1
]
]
],
"nr_args": 0
},
"filename": "boot/seed_bootstrap.cm",
"data": {}