diff --git a/html/050_write.subx.html b/html/050_write.subx.html
index 2369ce10..967cf9d8 100644
--- a/html/050_write.subx.html
+++ b/html/050_write.subx.html
@@ -70,7 +70,7 @@ if ('onhashchange' in window) {
11 b8/copy-to-eax 1/imm32/exit
12 cd/syscall 0x80/imm8
13
-14 _write:
+14 _write:
15
16 55/push-ebp
17 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
@@ -80,12 +80,12 @@ if ('onhashchange' in window) {
21 52/push-edx
22 53/push-ebx
23
-24
+24
25 8b/copy 1/mod/*+disp8 5/rm32/ebp . . . 3/r32/ebx 8/disp8 .
-26
+26
27 8b/copy 1/mod/*+disp8 5/rm32/ebp . . . 1/r32/ecx 0xc/disp8 .
28 81 0/subop/add 3/mod/direct 1/rm32/ecx . . . . . 4/imm32
-29
+29
30 8b/copy 1/mod/*+disp8 5/rm32/ebp . . . 2/r32/edx 0xc/disp8 .
31 8b/copy 0/mod/indirect 2/rm32/edx . . . 2/r32/edx . .
32
diff --git a/html/051test.subx.html b/html/051test.subx.html
index de31e3dd..df19d51b 100644
--- a/html/051test.subx.html
+++ b/html/051test.subx.html
@@ -80,7 +80,7 @@ if ('onhashchange' in window) {
21 cd/syscall 0x80/imm8
22
23
- 24 check-ints-equal:
+ 24 check-ints-equal:
25
26 55/push-ebp
27 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
@@ -140,7 +140,7 @@ if ('onhashchange' in window) {
81
82
83 Newline:
- 84
+ 84
85 1/imm32
86
87 0a/newline
@@ -151,14 +151,14 @@ if ('onhashchange' in window) {
92
93
94 Space:
- 95
+ 95
96 1/imm32
97
98 20/space
99
100
101 Slash:
-102
+102
103 1/imm32
104
105 2f/slash
diff --git a/html/052kernel-string-equal.subx.html b/html/052kernel-string-equal.subx.html
index ff234b34..3a09cf75 100644
--- a/html/052kernel-string-equal.subx.html
+++ b/html/052kernel-string-equal.subx.html
@@ -92,7 +92,7 @@ if ('onhashchange' in window) {
30
31
32
- 33 kernel-string-equal?:
+ 33 kernel-string-equal?:
34
35
36
@@ -123,19 +123,19 @@ if ('onhashchange' in window) {
61 53/push-ebx
62 56/push-esi
63 57/push-edi
- 64
+ 64
65 8b/copy 1/mod/*+disp8 5/rm32/ebp . . . 7/r32/edi 8/disp8 .
- 66
+ 66
67 8b/copy 1/mod/*+disp8 5/rm32/ebp . . . 2/r32/edx 0xc/disp8 .
68 8b/copy 0/mod/indirect 2/rm32/edx . . . 2/r32/edx . .
- 69
+ 69
70 8b/copy 1/mod/*+disp8 5/rm32/ebp . . . 6/r32/esi 0xc/disp8 .
71 81 0/subop/add 3/mod/direct 6/rm32/esi . . . . . 4/imm32
- 72
+ 72
73 b9/copy-to-ecx 0/imm32/exit
- 74
+ 74
75 b8/copy-to-eax 0/imm32
- 76
+ 76
77 bb/copy-to-ebx 0/imm32
78 $kernel-string-equal?:loop:
79
diff --git a/html/053new-segment.subx.html b/html/053new-segment.subx.html
index 0fdfaff2..fac198a7 100644
--- a/html/053new-segment.subx.html
+++ b/html/053new-segment.subx.html
@@ -65,8 +65,8 @@ if ('onhashchange' in window) {
5
6
7
- 8
- 9
+ 8
+ 9
10
11
12
@@ -77,7 +77,7 @@ if ('onhashchange' in window) {
17
18
19 Entry:
-20
+20
21 68/push 0/imm32/limit
22 68/push 0/imm32/curr
23 89/copy 3/mod/direct 1/rm32/ecx . . . 4/r32/esp . .
@@ -89,7 +89,7 @@ if ('onhashchange' in window) {
29 e8/call new-segment/disp32
30
31 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 8/imm32
-32
+32
33 8b/copy 0/mod/indirect 1/rm32/ecx . . . 0/r32/eax . .
34
35 c7 0/subop/copy 0/mod/direct 0/rm32/eax . . . . . 0x34/imm32
@@ -98,7 +98,7 @@ if ('onhashchange' in window) {
38 b8/copy-to-eax 1/imm32/exit
39 cd/syscall 0x80/imm8
40
-41 new-segment:
+41 new-segment:
42
43 55/push-ebp
44 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
@@ -115,9 +115,9 @@ if ('onhashchange' in window) {
55
56
57 8b/copy 1/mod/*+disp8 5/rm32/ebp . . . 3/r32/ebx 0xc/disp8 .
-58
+58
59 89/copy 0/mod/indirect 3/rm32/ebx . . . 0/r32/eax . .
-60
+60
61 03/add 1/mod/*+disp8 5/rm32/ebp . . . 0/r32/eax 8/disp8 .
62 89/copy 1/mod/*+disp8 3/rm32/ebx . . . 0/r32/eax 4/disp8 .
63 $new-segment:end:
diff --git a/html/054string-equal.subx.html b/html/054string-equal.subx.html
index c41c7042..246f58a2 100644
--- a/html/054string-equal.subx.html
+++ b/html/054string-equal.subx.html
@@ -75,7 +75,7 @@ if ('onhashchange' in window) {
13 b8/copy-to-eax 1/imm32/exit
14 cd/syscall 0x80/imm8
15
- 16 string-equal?:
+ 16 string-equal?:
17
18
19
@@ -113,15 +113,15 @@ if ('onhashchange' in window) {
51
52 39/compare 0/mod/indirect 7/rm32/edi . . . 1/r32/ecx . .
53 75/jump-if-!= $string-equal?:false/disp8
- 54
+ 54
55 81 0/subop/add 3/mod/direct 6/rm32/esi . . . . . 4/imm32
- 56
+ 56
57 01/add 3/mod/direct 1/rm32/ecx . . . 6/r32/esi . .
- 58
+ 58
59 81 0/subop/add 3/mod/direct 7/rm32/edi . . . . . 4/imm32
- 60
+ 60
61 31/xor 3/mod/direct 0/rm32/eax . . . 0/r32/eax . .
- 62
+ 62
63 31/xor 3/mod/direct 2/rm32/edx . . . 2/r32/edx . .
64 $string-equal?:loop:
65
@@ -238,13 +238,13 @@ if ('onhashchange' in window) {
176 c3/return
177
178
-179 check-strings-equal:
+179 check-strings-equal:
180
181 55/push-ebp
182 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
183
184 50/push-eax
-185
+185
186
187 ff 6/subop/push 1/mod/*+disp8 5/rm32/ebp . . . . 0xc/disp8 .
188 ff 6/subop/push 1/mod/*+disp8 5/rm32/ebp . . . . 8/disp8 .
diff --git a/html/055stream.subx.html b/html/055stream.subx.html
index 7bd7705b..e08d690c 100644
--- a/html/055stream.subx.html
+++ b/html/055stream.subx.html
@@ -59,9 +59,9 @@ if ('onhashchange' in window) {
1
2
3
- 4
- 5
- 6
+ 4
+ 5
+ 6
7
8
9
@@ -72,7 +72,7 @@ if ('onhashchange' in window) {
14
15
16
-17 clear-stream:
+17 clear-stream:
18
19 55/push-ebp
20 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
@@ -81,15 +81,15 @@ if ('onhashchange' in window) {
23 51/push-ecx
24
25 8b/copy 1/mod/*+disp8 5/rm32/ebp . . 0/r32/eax 8/disp8 .
-26
+26
27 8b/copy 1/mod/*+disp8 0/rm32/eax . . . 1/r32/ecx 8/disp8 .
-28
+28
29 8d/copy-address 1/mod/*+disp8 4/rm32/sib 0/base/eax 1/index/ecx . 1/r32/ecx 0xc/disp8 .
30
31 c7 0/subop/copy 0/mod/direct 0/rm32/eax . . . . . 0/imm32
32
33 c7 0/subop/copy 1/mod/*+disp8 0/rm32/eax . . . . 4/disp8 0/imm32
-34
+34
35 81 0/subop/add 3/mod/direct 0/rm32/eax . . . . . 0xc/imm32
36 $clear-stream:loop:
37
@@ -109,7 +109,7 @@ if ('onhashchange' in window) {
51 5d/pop-to-ebp
52 c3/return
53
-54 rewind-stream:
+54 rewind-stream:
55
56 55/push-ebp
57 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
diff --git a/html/056trace.subx.html b/html/056trace.subx.html
index 26cf8a0f..62071659 100644
--- a/html/056trace.subx.html
+++ b/html/056trace.subx.html
@@ -64,9 +64,9 @@ if ('onhashchange' in window) {
1
2
3
- 4
- 5
- 6
+ 4
+ 5
+ 6
7
8
9
@@ -108,7 +108,7 @@ if ('onhashchange' in window) {
45
46
47
- 48 initialize-trace-stream:
+ 48 initialize-trace-stream:
49
50 55/push-ebp
51 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
@@ -146,7 +146,7 @@ if ('onhashchange' in window) {
83
84
85
- 86 trace:
+ 86 trace:
87
88 55/push-ebp
89 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
@@ -157,13 +157,13 @@ if ('onhashchange' in window) {
94 53/push-ebx
95 56/push-esi
96 57/push-edi
- 97
+ 97
98 8b/copy 0/mod/indirect 5/rm32/.disp32 . . 7/r32/edi Trace-stream/disp32
99
100 8b/copy 1/mod/*+disp8 5/rm32/ebp . . 6/r32/esi 8/disp8 .
-101
+101
102 8b/copy 0/mod/indirect 7/rm32/edi . . . 1/r32/ecx . .
-103
+103
104 8b/copy 1/mod/*+disp8 7/rm32/edi . . . 2/r32/edx 8/disp8 .
105
106
@@ -313,7 +313,7 @@ if ('onhashchange' in window) {
250
251 c3/return
252
-253 check-trace-contains:
+253 check-trace-contains:
254
255 55/push-ebp
256 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
@@ -338,7 +338,7 @@ if ('onhashchange' in window) {
275 5d/pop-to-ebp
276 c3/return
277
-278 check-trace-scans-to:
+278 check-trace-scans-to:
279
280 55/push-ebp
281 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
@@ -369,7 +369,7 @@ if ('onhashchange' in window) {
306 c3/return
307
308
-309 trace-scan:
+309 trace-scan:
310
311
312
@@ -621,7 +621,7 @@ if ('onhashchange' in window) {
558
559 c3/return
560
-561 next-line-matches?:
+561 next-line-matches?:
562
563
564
@@ -642,24 +642,24 @@ if ('onhashchange' in window) {
579 57/push-edi
580
581 8b/copy 1/mod/*+disp8 5/rm32/ebp . . 2/r32/edx 0xc/disp8 .
-582
+582
583
584 8d/copy-address 1/mod/*+disp8 2/rm32/edx . . . 6/r32/esi 4/disp8 .
-585
+585
586
587 8b/copy 0/mod/indirect 2/rm32/edx . . 0/r32/eax . .
588
589 8d/copy-address 0/mod/indirect 4/rm32/sib 6/base/esi 0/index/eax . 1/r32/ecx . .
590
591 8b/copy 1/mod/*+disp8 5/rm32/ebp . . 7/r32/edi 8/disp8 .
-592
+592
593 8d/copy-address 1/mod/*+disp8 7/rm32/edi . . . 3/r32/ebx 0xc/disp8 .
-594
+594
595
596 8b/copy 0/mod/indirect 7/rm32/edi . . 0/r32/eax . .
597
598 8d/copy-address 0/mod/indirect 4/rm32/sib 3/base/ebx 0/index/eax . 2/r32/edx . .
-599
+599
600
601 8b/copy 1/mod/*+disp8 7/rm32/edi . . 0/r32/eax 4/disp8 .
602
@@ -676,9 +676,9 @@ if ('onhashchange' in window) {
613
614 31/xor 3/mod/direct 0/rm32/eax . . . 0/r32/eax . .
615 31/xor 3/mod/direct 3/rm32/eax . . . 3/r32/eax . .
-616
+616
617 8a/copy-byte 0/mod/indirect 7/rm32/edi . . 0/r32/eax . .
-618
+618
619 8a/copy-byte 0/mod/indirect 6/rm32/esi . . 3/r32/ebx . .
620
621 39/compare 3/mod/direct 0/rm32/eax . . . 3/r32/ebx . .
@@ -693,7 +693,7 @@ if ('onhashchange' in window) {
630 $next-line-matches?:break:
631
632 31/xor 3/mod/direct 0/rm32/eax . . . 0/r32/eax . .
-633
+633
634 8a/copy-byte 0/mod/indirect 7/rm32/edi . . 0/r32/eax . .
635 3d/compare-eax-and 0xa/imm32/newline
636
@@ -797,7 +797,7 @@ if ('onhashchange' in window) {
734 c3/return
735
736
-737 skip-next-line:
+737 skip-next-line:
738
739
740
@@ -823,13 +823,13 @@ if ('onhashchange' in window) {
760 8d/copy-address 1/mod/*+disp8 1/rm32/ecx . . . 2/r32/edx 0xc/disp8 .
761
762 8b/copy 0/mod/indirect 1/rm32/ecx . . . 0/r32/eax . .
-763
+763
764 8d/copy-address 0/mod/indirect 4/rm32/sib 2/base/edx 0/index/eax . 3/r32/ebx . .
765
766 8b/copy 1/mod/*+disp8 1/rm32/ecx . . . 0/r32/eax 4/disp8 .
-767
+767
768 8d/copy-address 0/mod/indirect 4/rm32/sib 2/base/edx 0/index/eax . 1/r32/ecx . .
-769
+769
770 89/copy 3/mod/direct 2/rm32/edx . . . 0/r32/eax . .
771 $skip-next-line:loop:
772
@@ -925,7 +925,7 @@ if ('onhashchange' in window) {
862
863
864
-865 _append-3:
+865 _append-3:
866
867 55/push-ebp
868 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
@@ -957,7 +957,7 @@ if ('onhashchange' in window) {
894 c3/return
895
896
-897 _append-4:
+897 _append-4:
898
899 55/push-ebp
900 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
diff --git a/html/057write.subx.html b/html/057write.subx.html
index d890be19..0cfc4ac4 100644
--- a/html/057write.subx.html
+++ b/html/057write.subx.html
@@ -81,7 +81,7 @@ if ('onhashchange' in window) {
21
22
23
- 24 write:
+ 24 write:
25
26 55/push-ebp
27 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
diff --git a/html/058stream-equal.subx.html b/html/058stream-equal.subx.html
index 231f300e..2d38ddef 100644
--- a/html/058stream-equal.subx.html
+++ b/html/058stream-equal.subx.html
@@ -65,7 +65,7 @@ if ('onhashchange' in window) {
6
7
8
- 9 stream-data-equal?:
+ 9 stream-data-equal?:
10
11 55/push-ebp
12 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
@@ -78,9 +78,9 @@ if ('onhashchange' in window) {
19 8b/copy 1/mod/*+disp8 5/rm32/ebp . . . 6/r32/esi 8/disp8 .
20
21 8b/copy 0/mod/indirect 6/rm32/esi . . . 0/r32/eax . .
- 22
+ 22
23 8d/copy-address 1/mod/*+disp8 4/rm32/sib 6/base/esi 0/index/eax . 2/r32/edx 0xc/disp8 .
- 24
+ 24
25 81 0/subop/add 3/mod/direct 6/rm32/esi . . . . . 0xc/imm32
26
27 8b/copy 1/mod/*+disp8 5/rm32/ebp . . . 7/r32/edi 0xc/disp8 .
@@ -88,11 +88,11 @@ if ('onhashchange' in window) {
29
30 39/compare 0/mod/indirect 7/rm32/edi . . . 0/r32/eax . .
31 75/jump-if-!= $stream-data-equal?:false/disp8
- 32
+ 32
33 81 0/subop/add 3/mod/direct 7/rm32/edi . . . . . 4/imm32
- 34
+ 34
35 31/xor 3/mod/direct 0/rm32/eax . . . 0/r32/eax . .
- 36
+ 36
37 31/xor 3/mod/direct 1/rm32/ecx . . . 1/r32/ecx . .
38 $stream-data-equal?:loop:
39
@@ -250,7 +250,7 @@ if ('onhashchange' in window) {
191 c3/return
192
193
-194 check-stream-equal:
+194 check-stream-equal:
195
196 55/push-ebp
197 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
@@ -286,10 +286,10 @@ if ('onhashchange' in window) {
227
228
229
-230 next-stream-line-equal?:
+230 next-stream-line-equal?:
231
232
-233
+233
234
235
236
@@ -303,7 +303,7 @@ if ('onhashchange' in window) {
244
245
246
-247
+247
248
249
250
@@ -333,15 +333,15 @@ if ('onhashchange' in window) {
274 57/push-edi
275
276 8b/copy 1/mod/*+disp8 5/rm32/ebp . . . 6/r32/esi 8/disp8 .
-277
+277
278 8b/copy 1/mod/*+disp8 6/rm32/esi . . . 1/r32/ecx 4/disp8 .
279
280 8b/copy 1/mod/*+disp8 5/rm32/ebp . . . 7/r32/edi 0xc/disp8 .
-281
+281
282 31/xor 3/mod/direct 2/rm32/edx . . . 2/r32/edx . .
-283
+283
284 31/xor 3/mod/direct 0/rm32/eax . . . 0/r32/eax . .
-285
+285
286 31/xor 3/mod/direct 3/rm32/ebx . . . 3/r32/ebx . .
287 $next-stream-line-equal?:loop:
288
diff --git a/html/059stop.subx.html b/html/059stop.subx.html
index 5493a95d..c94eda2d 100644
--- a/html/059stop.subx.html
+++ b/html/059stop.subx.html
@@ -77,8 +77,8 @@ if ('onhashchange' in window) {
16
17
18
- 19
- 20
+ 19
+ 20
21
22
23
@@ -102,7 +102,7 @@ if ('onhashchange' in window) {
41
42
43
- 44 tailor-exit-descriptor:
+ 44 tailor-exit-descriptor:
45
46 55/push-ebp
47 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
@@ -150,7 +150,7 @@ if ('onhashchange' in window) {
89 5d/pop-to-ebp
90 c3/return
91
- 92 stop:
+ 92 stop:
93
94
95 8b/copy 1/mod/*+disp8 4/rm32/sib 4/base/esp 4/index/none . 0/r32/eax 4/disp8 .
@@ -184,7 +184,7 @@ if ('onhashchange' in window) {
123
124
125
-126
+126
127 68/push 0/imm32
128 68/push 0/imm32
129 89/copy 3/mod/direct 0/rm32/eax . . . 4/r32/esp . .
@@ -222,7 +222,7 @@ if ('onhashchange' in window) {
161 5d/pop-to-ebp
162 c3/return
163
-164 _test-stop-1:
+164 _test-stop-1:
165
166 55/push-ebp
167 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
@@ -249,7 +249,7 @@ if ('onhashchange' in window) {
188 5d/pop-to-ebp
189 c3/return
190
-191 _test-stop-2:
+191 _test-stop-2:
192
193 55/push-ebp
194 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
diff --git a/html/060read.subx.html b/html/060read.subx.html
index dc314fea..140a0e95 100644
--- a/html/060read.subx.html
+++ b/html/060read.subx.html
@@ -106,7 +106,7 @@ if ('onhashchange' in window) {
45
46
47
- 48 read:
+ 48 read:
49
50 55/push-ebp
51 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
@@ -171,7 +171,7 @@ if ('onhashchange' in window) {
110
111
112
-113 _buffer-3:
+113 _buffer-3:
114
115 55/push-ebp
116 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
@@ -203,7 +203,7 @@ if ('onhashchange' in window) {
142 c3/return
143
144
-145 _buffer-4:
+145 _buffer-4:
146
147 55/push-ebp
148 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
@@ -256,7 +256,7 @@ if ('onhashchange' in window) {
195
196
197
-198 _read:
+198 _read:
199
200 55/push-ebp
201 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
@@ -272,11 +272,11 @@ if ('onhashchange' in window) {
211
212 8b/copy 1/mod/*+disp8 6/rm32/esi . . . 2/r32/edx 8/disp8 .
213
-214
+214
215 8b/copy 1/mod/*+disp8 5/rm32/ebp . . . 3/r32/ebx 8/disp8 .
-216
+216
217 8d/copy-address 1/mod/*+disp8 4/rm32/sib 6/base/esi 0/index/eax . 1/r32/ecx 0xc/disp8 .
-218
+218
219 29/subtract 3/mod/direct 2/rm32/edx . . . 0/r32/eax . .
220
221 b8/copy-to-eax 3/imm32/read
diff --git a/html/061read-byte.subx.html b/html/061read-byte.subx.html
index 0be60e25..8ffe504e 100644
--- a/html/061read-byte.subx.html
+++ b/html/061read-byte.subx.html
@@ -97,7 +97,7 @@ if ('onhashchange' in window) {
35
36
37
- 38 read-byte-buffered:
+ 38 read-byte-buffered:
39
40 55/push-ebp
41 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
diff --git a/html/062write-stream.subx.html b/html/062write-stream.subx.html
index f698d844..9bc2c29f 100644
--- a/html/062write-stream.subx.html
+++ b/html/062write-stream.subx.html
@@ -76,7 +76,7 @@ if ('onhashchange' in window) {
15
16
17
- 18 write-stream:
+ 18 write-stream:
19
20 55/push-ebp
21 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
@@ -136,7 +136,7 @@ if ('onhashchange' in window) {
75 5d/pop-to-ebp
76 c3/return
77
- 78 _write-stream:
+ 78 _write-stream:
79
80 55/push-ebp
81 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
@@ -154,11 +154,11 @@ if ('onhashchange' in window) {
93
94 8b/copy 0/mod/indirect 6/rm32/esi . . . 2/r32/edx . .
95
- 96
+ 96
97 8b/copy 1/mod/*+disp8 5/rm32/ebp . . . 3/r32/ebx 8/disp8 .
- 98
+ 98
99 8d/copy-address 1/mod/*+disp8 4/rm32/sib 6/base/esi 7/index/edi . 1/r32/ecx 0xc/disp8 .
-100
+100
101 29/subtract 3/mod/direct 2/rm32/edx . . . 7/r32/edi . .
102
103 b8/copy-to-eax 4/imm32/write
diff --git a/html/063error.subx.html b/html/063error.subx.html
index b32602f1..e9f1dea4 100644
--- a/html/063error.subx.html
+++ b/html/063error.subx.html
@@ -65,7 +65,7 @@ if ('onhashchange' in window) {
6
7
8
- 9 error:
+ 9 error:
10
11 55/push-ebp
12 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
diff --git a/html/064write-byte.subx.html b/html/064write-byte.subx.html
index 8555f857..e58556f9 100644
--- a/html/064write-byte.subx.html
+++ b/html/064write-byte.subx.html
@@ -92,7 +92,7 @@ if ('onhashchange' in window) {
30
31
32
- 33 write-byte-buffered:
+ 33 write-byte-buffered:
34
35 55/push-ebp
36 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
@@ -140,7 +140,7 @@ if ('onhashchange' in window) {
78 5d/pop-to-ebp
79 c3/return
80
- 81 flush:
+ 81 flush:
82
83 55/push-ebp
84 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
@@ -267,7 +267,7 @@ if ('onhashchange' in window) {
205
206
207
-208 append-byte:
+208 append-byte:
209
210 55/push-ebp
211 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
diff --git a/html/065write-buffered.subx.html b/html/065write-buffered.subx.html
index de4e5509..755994e9 100644
--- a/html/065write-buffered.subx.html
+++ b/html/065write-buffered.subx.html
@@ -66,7 +66,7 @@ if ('onhashchange' in window) {
5
6
7
- 8 write-buffered:
+ 8 write-buffered:
9
10
11
@@ -99,9 +99,9 @@ if ('onhashchange' in window) {
38 57/push-edi
39
40 8b/copy 1/mod/*+disp8 5/rm32/ebp . . 0/r32/eax 0xc/disp8 .
- 41
+ 41
42 8d/copy-address 1/mod/*+disp8 0/rm32/eax . . . 6/r32/esi 4/disp8 .
- 43
+ 43
44 8b/copy 0/mod/indirect 0/rm32/eax . . . 1/r32/ecx . .
45 8d/copy-address 0/mod/indirect 4/rm32/sib 6/base/esi 1/index/ecx . 1/r32/ecx . .
46
diff --git a/html/066print-int.subx.html b/html/066print-int.subx.html
index 3da50115..9c077c58 100644
--- a/html/066print-int.subx.html
+++ b/html/066print-int.subx.html
@@ -67,7 +67,7 @@ if ('onhashchange' in window) {
6
7
8
- 9 to-hex-char:
+ 9 to-hex-char:
10
11
12 3d/compare-eax-with 0x9/imm32/9
@@ -79,7 +79,7 @@ if ('onhashchange' in window) {
18 05/add-to-eax 0x57/imm32/a-10
19 c3/return
20
- 21 append-byte-hex:
+ 21 append-byte-hex:
22
23 55/push-ebp
24 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
@@ -151,7 +151,7 @@ if ('onhashchange' in window) {
90 c3/return
91
92
- 93 print-byte-buffered:
+ 93 print-byte-buffered:
94
95 55/push-ebp
96 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
@@ -236,7 +236,7 @@ if ('onhashchange' in window) {
175
176 c3/return
177
-178 print-int32:
+178 print-int32:
179
180
181
@@ -324,7 +324,7 @@ if ('onhashchange' in window) {
263
264 c3/return
265
-266 print-int32-buffered:
+266 print-int32-buffered:
267
268
269
diff --git a/html/067parse-hex.subx.html b/html/067parse-hex.subx.html
index 227519e1..13b04099 100644
--- a/html/067parse-hex.subx.html
+++ b/html/067parse-hex.subx.html
@@ -66,7 +66,7 @@ if ('onhashchange' in window) {
6
7
8
- 9 is-hex-int?:
+ 9 is-hex-int?:
10
11 55/push-ebp
12 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
@@ -78,7 +78,7 @@ if ('onhashchange' in window) {
18 8b/copy 1/mod/*+disp8 5/rm32/ebp . . . 1/r32/ecx 8/disp8 .
19
20 8b/copy 1/mod/*+disp8 1/rm32/ecx . . . 2/r32/edx 4/disp8 .
- 21
+ 21
22 8b/copy 0/mod/indirect 1/rm32/ecx . . . 1/r32/ecx . .
23
24 b8/copy-to-eax 0/imm32/false
@@ -116,7 +116,7 @@ if ('onhashchange' in window) {
56
57 39/compare 3/mod/direct 1/rm32/ecx . . . 2/r32/edx . .
58 73/jump-if-addr>= $is-hex-int?:true/disp8
- 59
+ 59
60
61 8a/copy-byte 0/mod/indirect 1/rm32/ecx . . . 0/r32/AL . .
62 50/push-eax
@@ -153,7 +153,7 @@ if ('onhashchange' in window) {
93 8b/copy 0/mod/indirect 0/rm32/eax . . . 1/r32/ecx . .
94 8d/copy-address 1/mod/*+disp8 4/rm32/sib 0/base/eax 1/index/ecx . 1/r32/ecx 4/disp8 .
95 05/add-to-eax 4/imm32
- 96
+ 96
97 51/push-ecx
98 50/push-eax
99 89/copy 3/mod/direct 1/rm32/ecx . . . 4/r32/esp . .
@@ -187,7 +187,7 @@ if ('onhashchange' in window) {
127 8b/copy 0/mod/indirect 0/rm32/eax . . . 1/r32/ecx . .
128 8d/copy-address 1/mod/*+disp8 4/rm32/sib 0/base/eax 1/index/ecx . 1/r32/ecx 4/disp8 .
129 05/add-to-eax 4/imm32
-130
+130
131 51/push-ecx
132 50/push-eax
133 89/copy 3/mod/direct 1/rm32/ecx . . . 4/r32/esp . .
@@ -221,7 +221,7 @@ if ('onhashchange' in window) {
161 8b/copy 0/mod/indirect 0/rm32/eax . . . 1/r32/ecx . .
162 8d/copy-address 1/mod/*+disp8 4/rm32/sib 0/base/eax 1/index/ecx . 1/r32/ecx 4/disp8 .
163 05/add-to-eax 4/imm32
-164
+164
165 51/push-ecx
166 50/push-eax
167 89/copy 3/mod/direct 1/rm32/ecx . . . 4/r32/esp . .
@@ -255,7 +255,7 @@ if ('onhashchange' in window) {
195 8b/copy 0/mod/indirect 0/rm32/eax . . . 1/r32/ecx . .
196 8d/copy-address 1/mod/*+disp8 4/rm32/sib 0/base/eax 1/index/ecx . 1/r32/ecx 4/disp8 .
197 05/add-to-eax 4/imm32
-198
+198
199 51/push-ecx
200 50/push-eax
201 89/copy 3/mod/direct 1/rm32/ecx . . . 4/r32/esp . .
@@ -284,7 +284,7 @@ if ('onhashchange' in window) {
224
225 55/push-ebp
226 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
-227
+227
228 68/push 0/imm32
229 68/push 0/imm32
230 89/copy 3/mod/direct 1/rm32/ecx . . . 4/r32/esp . .
@@ -318,7 +318,7 @@ if ('onhashchange' in window) {
258 8b/copy 0/mod/indirect 0/rm32/eax . . . 1/r32/ecx . .
259 8d/copy-address 1/mod/*+disp8 4/rm32/sib 0/base/eax 1/index/ecx . 1/r32/ecx 4/disp8 .
260 05/add-to-eax 4/imm32
-261
+261
262 51/push-ecx
263 50/push-eax
264 89/copy 3/mod/direct 1/rm32/ecx . . . 4/r32/esp . .
@@ -352,7 +352,7 @@ if ('onhashchange' in window) {
292 8b/copy 0/mod/indirect 0/rm32/eax . . . 1/r32/ecx . .
293 8d/copy-address 1/mod/*+disp8 4/rm32/sib 0/base/eax 1/index/ecx . 1/r32/ecx 4/disp8 .
294 05/add-to-eax 4/imm32
-295
+295
296 51/push-ecx
297 50/push-eax
298 89/copy 3/mod/direct 1/rm32/ecx . . . 4/r32/esp . .
@@ -386,7 +386,7 @@ if ('onhashchange' in window) {
326 8b/copy 0/mod/indirect 0/rm32/eax . . . 1/r32/ecx . .
327 8d/copy-address 1/mod/*+disp8 4/rm32/sib 0/base/eax 1/index/ecx . 1/r32/ecx 4/disp8 .
328 05/add-to-eax 4/imm32
-329
+329
330 51/push-ecx
331 50/push-eax
332 89/copy 3/mod/direct 1/rm32/ecx . . . 4/r32/esp . .
@@ -411,7 +411,7 @@ if ('onhashchange' in window) {
351 5d/pop-to-ebp
352 c3/return
353
-354 parse-hex-int:
+354 parse-hex-int:
355
356 55/push-ebp
357 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
@@ -420,15 +420,15 @@ if ('onhashchange' in window) {
360 52/push-edx
361 53/push-ebx
362 56/push-esi
-363
+363
364 31/xor 3/mod/direct 3/rm32/ebx . . . 3/r32/ebx . .
365
366 8b/copy 1/mod/*+disp8 5/rm32/ebp . . . 1/r32/ecx 8/disp8 .
367
368 8b/copy 1/mod/*+disp8 1/rm32/ecx . . . 2/r32/edx 4/disp8 .
-369
+369
370 8b/copy 0/mod/indirect 1/rm32/ecx . . . 1/r32/ecx . .
-371
+371
372 31/xor 3/mod/direct 6/rm32/esi . . . 6/r32/esi . .
373 $parse-hex-int:negative:
374
@@ -463,7 +463,7 @@ if ('onhashchange' in window) {
403
404 39/compare 3/mod/direct 1/rm32/ecx . . . 2/r32/edx . .
405 73/jump-if-addr>= $parse-hex-int:negate/disp8
-406
+406
407
408 8a/copy-byte 0/mod/indirect 1/rm32/ecx . . . 0/r32/AL . .
409
@@ -502,7 +502,7 @@ if ('onhashchange' in window) {
442 8b/copy 0/mod/indirect 0/rm32/eax . . . 1/r32/ecx . .
443 8d/copy-address 1/mod/*+disp8 4/rm32/sib 0/base/eax 1/index/ecx . 1/r32/ecx 4/disp8 .
444 05/add-to-eax 4/imm32
-445
+445
446 51/push-ecx
447 50/push-eax
448 89/copy 3/mod/direct 1/rm32/ecx . . . 4/r32/esp . .
@@ -536,7 +536,7 @@ if ('onhashchange' in window) {
476 8b/copy 0/mod/indirect 0/rm32/eax . . . 1/r32/ecx . .
477 8d/copy-address 1/mod/*+disp8 4/rm32/sib 0/base/eax 1/index/ecx . 1/r32/ecx 4/disp8 .
478 05/add-to-eax 4/imm32
-479
+479
480 51/push-ecx
481 50/push-eax
482 89/copy 3/mod/direct 1/rm32/ecx . . . 4/r32/esp . .
@@ -570,7 +570,7 @@ if ('onhashchange' in window) {
510 8b/copy 0/mod/indirect 0/rm32/eax . . . 1/r32/ecx . .
511 8d/copy-address 1/mod/*+disp8 4/rm32/sib 0/base/eax 1/index/ecx . 1/r32/ecx 4/disp8 .
512 05/add-to-eax 4/imm32
-513
+513
514 51/push-ecx
515 50/push-eax
516 89/copy 3/mod/direct 1/rm32/ecx . . . 4/r32/esp . .
@@ -604,7 +604,7 @@ if ('onhashchange' in window) {
544 8b/copy 0/mod/indirect 0/rm32/eax . . . 1/r32/ecx . .
545 8d/copy-address 1/mod/*+disp8 4/rm32/sib 0/base/eax 1/index/ecx . 1/r32/ecx 4/disp8 .
546 05/add-to-eax 4/imm32
-547
+547
548 51/push-ecx
549 50/push-eax
550 89/copy 3/mod/direct 1/rm32/ecx . . . 4/r32/esp . .
@@ -638,7 +638,7 @@ if ('onhashchange' in window) {
578 8b/copy 0/mod/indirect 0/rm32/eax . . . 1/r32/ecx . .
579 8d/copy-address 1/mod/*+disp8 4/rm32/sib 0/base/eax 1/index/ecx . 1/r32/ecx 4/disp8 .
580 05/add-to-eax 4/imm32
-581
+581
582 51/push-ecx
583 50/push-eax
584 89/copy 3/mod/direct 1/rm32/ecx . . . 4/r32/esp . .
@@ -672,7 +672,7 @@ if ('onhashchange' in window) {
612 8b/copy 0/mod/indirect 0/rm32/eax . . . 1/r32/ecx . .
613 8d/copy-address 1/mod/*+disp8 4/rm32/sib 0/base/eax 1/index/ecx . 1/r32/ecx 4/disp8 .
614 05/add-to-eax 4/imm32
-615
+615
616 51/push-ecx
617 50/push-eax
618 89/copy 3/mod/direct 1/rm32/ecx . . . 4/r32/esp . .
@@ -697,7 +697,7 @@ if ('onhashchange' in window) {
637 5d/pop-to-ebp
638 c3/return
639
-640 is-hex-digit?:
+640 is-hex-digit?:
641
642 55/push-ebp
643 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
@@ -860,7 +860,7 @@ if ('onhashchange' in window) {
800 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 0xc/imm32
801 c3/return
802
-803 from-hex-char:
+803 from-hex-char:
804 $from-hex-char:check0:
805
806 3d/compare-eax-with 0x30/imm32/0
diff --git a/html/068error-byte.subx.html b/html/068error-byte.subx.html
index 578555da..4ef793ac 100644
--- a/html/068error-byte.subx.html
+++ b/html/068error-byte.subx.html
@@ -66,7 +66,7 @@ if ('onhashchange' in window) {
6
7
8
- 9
+ 9
10
11
12
@@ -84,7 +84,7 @@ if ('onhashchange' in window) {
24
25
26
-27 error-byte:
+27 error-byte:
28
29 55/push-ebp
30 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
diff --git a/html/069allocate.subx.html b/html/069allocate.subx.html
index d6ffe82c..fb2de9fd 100644
--- a/html/069allocate.subx.html
+++ b/html/069allocate.subx.html
@@ -117,7 +117,7 @@ if ('onhashchange' in window) {
56
57
58
- 59 allocate:
+ 59 allocate:
60
61 55/push-ebp
62 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
@@ -165,11 +165,11 @@ if ('onhashchange' in window) {
104
105 55/push-ebp
106 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
-107
+107
108 68/push 0xf/imm32/limit
109 68/push 0xb/imm32/curr
110 89/copy 3/mod/direct 1/rm32/ecx . . . 4/r32/esp . .
-111
+111
112
113 68/push 3/imm32
114 51/push-ecx
@@ -204,11 +204,11 @@ if ('onhashchange' in window) {
143
144 55/push-ebp
145 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
-146
+146
147 68/push 0xf/imm32/limit
148 68/push 0xb/imm32/curr
149 89/copy 3/mod/direct 1/rm32/ecx . . . 4/r32/esp . .
-150
+150
151
152 68/push 6/imm32
153 51/push-ecx
@@ -241,7 +241,7 @@ if ('onhashchange' in window) {
180 c3/return
181
182
-183 allocate-region:
+183 allocate-region:
184
185 55/push-ebp
186 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
diff --git a/html/070new-stream.subx.html b/html/070new-stream.subx.html
index 8b826643..1275b225 100644
--- a/html/070new-stream.subx.html
+++ b/html/070new-stream.subx.html
@@ -64,13 +64,13 @@ if ('onhashchange' in window) {
5
6
7
- 8 new-stream:
+ 8 new-stream:
9
10 55/push-ebp
11 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
12
13 52/push-edx
- 14
+ 14
15
16 8b/copy 1/mod/*+disp8 5/rm32/ebp . . . 0/r32/eax 0x10/disp8 .
17
@@ -83,7 +83,7 @@ if ('onhashchange' in window) {
24 89/copy 3/mod/direct 2/rm32/edx . . . 0/r32/eax . .
25
26 05/add-to-eax 0xc/imm32
- 27
+ 27
28
29 50/push-eax
30 ff 6/subop/push 1/mod/*+disp8 5/rm32/ebp . . . . 8/disp8 .
@@ -127,7 +127,7 @@ if ('onhashchange' in window) {
68
69 55/push-ebp
70 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
- 71
+ 71
72 68/push 0/imm32/limit
73 68/push 0/imm32/curr
74 89/copy 3/mod/direct 1/rm32/ecx . . . 4/r32/esp . .
@@ -141,7 +141,7 @@ if ('onhashchange' in window) {
82 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 8/imm32
83
84 8b/copy 0/mod/indirect 1/rm32/ecx . . . 2/r32/edx . .
- 85
+ 85
86
87 68/push 2/imm32
88 68/push 3/imm32
diff --git a/html/071read-line.subx.html b/html/071read-line.subx.html
index 3d4d8ffb..8f26841f 100644
--- a/html/071read-line.subx.html
+++ b/html/071read-line.subx.html
@@ -66,7 +66,7 @@ if ('onhashchange' in window) {
6
7
8
- 9 read-line-buffered:
+ 9 read-line-buffered:
10
11
12
@@ -276,7 +276,7 @@ if ('onhashchange' in window) {
216
217
218
-219 read-line:
+219 read-line:
220
221
222
diff --git a/html/072slice.subx.html b/html/072slice.subx.html
index 4e128127..2de664ab 100644
--- a/html/072slice.subx.html
+++ b/html/072slice.subx.html
@@ -67,7 +67,7 @@ if ('onhashchange' in window) {
6
7
8
- 9 slice-empty?:
+ 9 slice-empty?:
10
11 55/push-ebp
12 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
@@ -95,7 +95,7 @@ if ('onhashchange' in window) {
34
35 55/push-ebp
36 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
- 37
+ 37
38 68/push 34/imm32/end
39 68/push 34/imm32/start
40 89/copy 3/mod/direct 1/rm32/ecx . . . 4/r32/esp . .
@@ -124,7 +124,7 @@ if ('onhashchange' in window) {
63
64 55/push-ebp
65 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
- 66
+ 66
67 68/push 34/imm32/end
68 68/push 32/imm32/start
69 89/copy 3/mod/direct 1/rm32/ecx . . . 4/r32/esp . .
@@ -153,7 +153,7 @@ if ('onhashchange' in window) {
92
93 55/push-ebp
94 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
- 95
+ 95
96 68/push 32/imm32/end
97 68/push 34/imm32/start
98 89/copy 3/mod/direct 1/rm32/ecx . . . 4/r32/esp . .
@@ -178,7 +178,7 @@ if ('onhashchange' in window) {
117 5d/pop-to-ebp
118 c3/return
119
- 120 slice-equal?:
+ 120 slice-equal?:
121
122
123
@@ -208,11 +208,11 @@ if ('onhashchange' in window) {
147 56/push-esi
148
149 8b/copy 1/mod/*+disp8 5/rm32/ebp . . . 6/r32/esi 8/disp8 .
- 150
+ 150
151 8b/copy 0/mod/indirect 6/rm32/esi . . . 2/r32/edx . .
- 152
+ 152
153 8b/copy 1/mod/*+disp8 6/rm32/esi . . . 6/r32/esi 4/disp8 .
- 154
+ 154
155 89/copy 3/mod/direct 0/rm32/eax . . . 6/r32/esi . .
156 29/subtract 3/mod/direct 0/rm32/eax . . . 2/r32/edx . .
157
@@ -229,11 +229,11 @@ if ('onhashchange' in window) {
168
169 39/compare 0/mod/indirect 3/rm32/ebx . . . 0/r32/eax . .
170 75/jump-if-!= $slice-equal?:false/disp8
- 171
+ 171
172 81 0/subop/add 3/mod/direct 3/rm32/ebx . . . . . 4/imm32
- 173
+ 173
174 31/xor 3/mod/direct 0/rm32/eax . . . 0/r32/eax . .
- 175
+ 175
176 31/xor 3/mod/direct 1/rm32/ecx . . . 1/r32/ecx . .
177 $slice-equal?:loop:
178
@@ -277,7 +277,7 @@ if ('onhashchange' in window) {
216 8b/copy 0/mod/indirect 0/rm32/eax . . . 1/r32/ecx . .
217 8d/copy-address 1/mod/*+disp8 4/rm32/sib 0/base/eax 1/index/ecx . 1/r32/ecx 4/disp8 .
218 05/add-to-eax 4/imm32
- 219
+ 219
220 51/push-ecx
221 50/push-eax
222 89/copy 3/mod/direct 1/rm32/ecx . . . 4/r32/esp . .
@@ -313,7 +313,7 @@ if ('onhashchange' in window) {
252 8b/copy 0/mod/indirect 0/rm32/eax . . . 1/r32/ecx . .
253 8d/copy-address 1/mod/*+disp8 4/rm32/sib 0/base/eax 1/index/ecx . 1/r32/ecx 4/disp8 .
254 05/add-to-eax 4/imm32
- 255
+ 255
256 51/push-ecx
257 50/push-eax
258 89/copy 3/mod/direct 1/rm32/ecx . . . 4/r32/esp . .
@@ -349,7 +349,7 @@ if ('onhashchange' in window) {
288 8b/copy 0/mod/indirect 0/rm32/eax . . . 1/r32/ecx . .
289 8d/copy-address 1/mod/*+disp8 4/rm32/sib 0/base/eax 1/index/ecx . 1/r32/ecx 4/disp8 .
290 05/add-to-eax 4/imm32
- 291
+ 291
292 51/push-ecx
293 50/push-eax
294 89/copy 3/mod/direct 1/rm32/ecx . . . 4/r32/esp . .
@@ -385,7 +385,7 @@ if ('onhashchange' in window) {
324 8b/copy 0/mod/indirect 0/rm32/eax . . . 1/r32/ecx . .
325 8d/copy-address 1/mod/*+disp8 4/rm32/sib 0/base/eax 1/index/ecx . 1/r32/ecx 4/disp8 .
326 05/add-to-eax 4/imm32
- 327
+ 327
328 51/push-ecx
329 50/push-eax
330 89/copy 3/mod/direct 1/rm32/ecx . . . 4/r32/esp . .
@@ -416,7 +416,7 @@ if ('onhashchange' in window) {
355
356 55/push-ebp
357 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
- 358
+ 358
359 68/push 0/imm32/end
360 68/push 0/imm32/start
361 89/copy 3/mod/direct 1/rm32/ecx . . . 4/r32/esp . .
@@ -452,7 +452,7 @@ if ('onhashchange' in window) {
391 8b/copy 0/mod/indirect 0/rm32/eax . . . 1/r32/ecx . .
392 8d/copy-address 1/mod/*+disp8 4/rm32/sib 0/base/eax 1/index/ecx . 1/r32/ecx 4/disp8 .
393 05/add-to-eax 4/imm32
- 394
+ 394
395 51/push-ecx
396 50/push-eax
397 89/copy 3/mod/direct 1/rm32/ecx . . . 4/r32/esp . .
@@ -483,7 +483,7 @@ if ('onhashchange' in window) {
422
423 55/push-ebp
424 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
- 425
+ 425
426 68/push 0/imm32/end
427 68/push 0/imm32/start
428 89/copy 3/mod/direct 1/rm32/ecx . . . 4/r32/esp . .
@@ -519,7 +519,7 @@ if ('onhashchange' in window) {
458 8b/copy 0/mod/indirect 0/rm32/eax . . . 1/r32/ecx . .
459 8d/copy-address 1/mod/*+disp8 4/rm32/sib 0/base/eax 1/index/ecx . 1/r32/ecx 4/disp8 .
460 05/add-to-eax 4/imm32
- 461
+ 461
462 51/push-ecx
463 50/push-eax
464 89/copy 3/mod/direct 1/rm32/ecx . . . 4/r32/esp . .
@@ -545,7 +545,7 @@ if ('onhashchange' in window) {
484 5d/pop-to-ebp
485 c3/return
486
- 487 slice-starts-with?:
+ 487 slice-starts-with?:
488
489
490
@@ -578,25 +578,25 @@ if ('onhashchange' in window) {
517 57/push-edi
518
519 8b/copy 1/mod/*+disp8 5/rm32/ebp . . . 6/r32/esi 8/disp8 .
- 520
+ 520
521 8b/copy 1/mod/*+disp8 6/rm32/esi . . . 1/r32/ecx 4/disp8 .
522 2b/subtract 0/mod/indirect 6/rm32/esi . . . 1/r32/ecx . .
523
524 8b/copy 1/mod/*+disp8 5/rm32/ebp . . . 7/r32/edi 0xc/disp8 .
- 525
+ 525
526 8b/copy 0/mod/indirect 7/rm32/edi . . . 2/r32/edx . .
527
528 39/compare 3/mod/direct 2/rm32/edx . . . 1/r32/ecx . .
529 7f/jump-if-> $slice-starts-with?:false/disp8
- 530
+ 530
531 8b/subtract 0/mod/indirect 6/rm32/esi . . . 6/r32/esi . .
- 532
+ 532
533 81 0/subop/add 3/mod/direct 7/rm32/edi . . . . . 4/imm32
- 534
+ 534
535 31/xor 3/mod/direct 1/rm32/ecx . . . 1/r32/ecx . .
- 536
+ 536
537 31/xor 3/mod/direct 0/rm32/eax . . . 0/r32/eax . .
- 538
+ 538
539 31/xor 3/mod/direct 3/rm32/ebx . . . 3/r32/ebx . .
540 $slice-starts-with?:loop:
541
@@ -643,7 +643,7 @@ if ('onhashchange' in window) {
582 8b/copy 0/mod/indirect 0/rm32/eax . . . 1/r32/ecx . .
583 8d/copy-address 1/mod/*+disp8 4/rm32/sib 0/base/eax 1/index/ecx . 1/r32/ecx 4/disp8 .
584 05/add-to-eax 4/imm32
- 585
+ 585
586 51/push-ecx
587 50/push-eax
588 89/copy 3/mod/direct 1/rm32/ecx . . . 4/r32/esp . .
@@ -679,7 +679,7 @@ if ('onhashchange' in window) {
618 8b/copy 0/mod/indirect 0/rm32/eax . . . 1/r32/ecx . .
619 8d/copy-address 1/mod/*+disp8 4/rm32/sib 0/base/eax 1/index/ecx . 1/r32/ecx 4/disp8 .
620 05/add-to-eax 4/imm32
- 621
+ 621
622 51/push-ecx
623 50/push-eax
624 89/copy 3/mod/direct 1/rm32/ecx . . . 4/r32/esp . .
@@ -715,7 +715,7 @@ if ('onhashchange' in window) {
654 8b/copy 0/mod/indirect 0/rm32/eax . . . 1/r32/ecx . .
655 8d/copy-address 1/mod/*+disp8 4/rm32/sib 0/base/eax 1/index/ecx . 1/r32/ecx 4/disp8 .
656 05/add-to-eax 4/imm32
- 657
+ 657
658 51/push-ecx
659 50/push-eax
660 89/copy 3/mod/direct 1/rm32/ecx . . . 4/r32/esp . .
@@ -751,7 +751,7 @@ if ('onhashchange' in window) {
690 8b/copy 0/mod/indirect 0/rm32/eax . . . 1/r32/ecx . .
691 8d/copy-address 1/mod/*+disp8 4/rm32/sib 0/base/eax 1/index/ecx . 1/r32/ecx 4/disp8 .
692 05/add-to-eax 4/imm32
- 693
+ 693
694 51/push-ecx
695 50/push-eax
696 89/copy 3/mod/direct 1/rm32/ecx . . . 4/r32/esp . .
@@ -787,7 +787,7 @@ if ('onhashchange' in window) {
726 8b/copy 0/mod/indirect 0/rm32/eax . . . 1/r32/ecx . .
727 8d/copy-address 1/mod/*+disp8 4/rm32/sib 0/base/eax 1/index/ecx . 1/r32/ecx 4/disp8 .
728 05/add-to-eax 4/imm32
- 729
+ 729
730 51/push-ecx
731 50/push-eax
732 89/copy 3/mod/direct 1/rm32/ecx . . . 4/r32/esp . .
@@ -823,7 +823,7 @@ if ('onhashchange' in window) {
762 8b/copy 0/mod/indirect 0/rm32/eax . . . 1/r32/ecx . .
763 8d/copy-address 1/mod/*+disp8 4/rm32/sib 0/base/eax 1/index/ecx . 1/r32/ecx 4/disp8 .
764 05/add-to-eax 4/imm32
- 765
+ 765
766 51/push-ecx
767 50/push-eax
768 89/copy 3/mod/direct 1/rm32/ecx . . . 4/r32/esp . .
@@ -851,7 +851,7 @@ if ('onhashchange' in window) {
790
791
792
- 793 write-slice:
+ 793 write-slice:
794
795 55/push-ebp
796 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
@@ -864,9 +864,9 @@ if ('onhashchange' in window) {
803 57/push-edi
804
805 8b/copy 1/mod/*+disp8 5/rm32/ebp . . . 6/r32/esi 0xc/disp8 .
- 806
+ 806
807 8b/copy 0/mod/indirect 6/rm32/esi . . . 1/r32/ecx . .
- 808
+ 808
809 8b/copy 1/mod/*+disp8 6/rm32/esi . . . 6/r32/esi 4/disp8 .
810
811 8b/copy 1/mod/*+disp8 5/rm32/ebp . . 7/r32/edi 8/disp8 .
@@ -940,7 +940,7 @@ if ('onhashchange' in window) {
879 8b/copy 0/mod/indirect 0/rm32/eax . . . 1/r32/ecx . .
880 8d/copy-address 1/mod/*+disp8 4/rm32/sib 0/base/eax 1/index/ecx . 1/r32/ecx 4/disp8 .
881 05/add-to-eax 4/imm32
- 882
+ 882
883 51/push-ecx
884 50/push-eax
885 89/copy 3/mod/direct 1/rm32/ecx . . . 4/r32/esp . .
@@ -967,7 +967,7 @@ if ('onhashchange' in window) {
906 c3/return
907
908
- 909 write-slice-buffered:
+ 909 write-slice-buffered:
910
911 55/push-ebp
912 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
@@ -980,9 +980,9 @@ if ('onhashchange' in window) {
919 57/push-edi
920
921 8b/copy 1/mod/*+disp8 5/rm32/ebp . . . 6/r32/esi 0xc/disp8 .
- 922
+ 922
923 8b/copy 0/mod/indirect 6/rm32/esi . . . 1/r32/ecx . .
- 924
+ 924
925 8b/copy 1/mod/*+disp8 6/rm32/esi . . . 6/r32/esi 4/disp8 .
926
927 8b/copy 1/mod/*+disp8 5/rm32/ebp . . 7/r32/edi 8/disp8 .
@@ -1068,7 +1068,7 @@ if ('onhashchange' in window) {
1007 8b/copy 0/mod/indirect 0/rm32/eax . . . 1/r32/ecx . .
1008 8d/copy-address 1/mod/*+disp8 4/rm32/sib 0/base/eax 1/index/ecx . 1/r32/ecx 4/disp8 .
1009 05/add-to-eax 4/imm32
-1010
+1010
1011 51/push-ecx
1012 50/push-eax
1013 89/copy 3/mod/direct 1/rm32/ecx . . . 4/r32/esp . .
@@ -1102,7 +1102,7 @@ if ('onhashchange' in window) {
1041 c3/return
1042
1043
-1044 slice-to-string:
+1044 slice-to-string:
1045
1046 55/push-ebp
1047 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
@@ -1113,15 +1113,15 @@ if ('onhashchange' in window) {
1052 56/push-esi
1053
1054 8b/copy 1/mod/*+disp8 5/rm32/ebp . . . 6/r32/esi 0xc/disp8 .
-1055
+1055
1056 8b/copy 0/mod/indirect 6/rm32/esi . . . 2/r32/edx . .
-1057
+1057
1058 8b/copy 1/mod/*+disp8 6/rm32/esi . . . 3/r32/ebx 4/disp8 .
-1059
+1059
1060 89/copy 3/mod/direct 1/rm32/ecx . . . 3/r32/ebx . .
1061 29/subtract 3/mod/direct 1/rm32/ecx . . . 2/r32/edx . .
1062 81 0/subop/add 3/mod/direct 1/rm32/ecx . . . . . 4/imm32
-1063
+1063
1064
1065 51/push-ecx
1066 ff 6/subop/push 1/mod/*+disp8 5/rm32/ebp . . . . 8/disp8 .
@@ -1184,7 +1184,7 @@ if ('onhashchange' in window) {
1123
1124 55/push-ebp
1125 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
-1126
+1126
1127 68/push 0/imm32/limit
1128 68/push 0/imm32/curr
1129 89/copy 3/mod/direct 2/rm32/edx . . . 4/r32/esp . .
@@ -1201,7 +1201,7 @@ if ('onhashchange' in window) {
1140 8b/copy 0/mod/indirect 0/rm32/eax . . . 1/r32/ecx . .
1141 8d/copy-address 1/mod/*+disp8 4/rm32/sib 0/base/eax 1/index/ecx . 1/r32/ecx 4/disp8 .
1142 05/add-to-eax 4/imm32
-1143
+1143
1144 51/push-ecx
1145 50/push-eax
1146 89/copy 3/mod/direct 1/rm32/ecx . . . 4/r32/esp . .
diff --git a/html/073next-token.subx.html b/html/073next-token.subx.html
index 1f8bb778..d4a7c4fb 100644
--- a/html/073next-token.subx.html
+++ b/html/073next-token.subx.html
@@ -66,7 +66,7 @@ if ('onhashchange' in window) {
7
8
9
- 10 next-token:
+ 10 next-token:
11
12 55/push-ebp
13 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
@@ -125,7 +125,7 @@ if ('onhashchange' in window) {
66 e8/call clear-stream/disp32
67
68 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 4/imm32
- 69
+ 69
70 68/push 0/imm32/end
71 68/push 0/imm32/start
72 89/copy 3/mod/direct 1/rm32/ecx . . . 4/r32/esp . .
@@ -189,7 +189,7 @@ if ('onhashchange' in window) {
130 e8/call clear-stream/disp32
131
132 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 4/imm32
- 133
+ 133
134 68/push 0/imm32/end
135 68/push 0/imm32/start
136 89/copy 3/mod/direct 1/rm32/ecx . . . 4/r32/esp . .
@@ -219,7 +219,7 @@ if ('onhashchange' in window) {
160
161
162
- 163 next-token-from-slice:
+ 163 next-token-from-slice:
164
165 55/push-ebp
166 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
@@ -275,7 +275,7 @@ if ('onhashchange' in window) {
216 8b/copy 0/mod/indirect 0/rm32/eax . . . 1/r32/ecx . .
217 8d/copy-address 1/mod/*+disp8 4/rm32/sib 0/base/eax 1/index/ecx . 1/r32/ecx 4/disp8 .
218 05/add-to-eax 4/imm32
- 219
+ 219
220 68/push 0/imm32/end
221 68/push 0/imm32/start
222 89/copy 3/mod/direct 7/rm32/edi . . . 4/r32/esp . .
@@ -324,7 +324,7 @@ if ('onhashchange' in window) {
265
266 55/push-ebp
267 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
- 268
+ 268
269 68/push 0/imm32/end
270 68/push 0/imm32/start
271 89/copy 3/mod/direct 7/rm32/edi . . . 4/r32/esp . .
@@ -365,7 +365,7 @@ if ('onhashchange' in window) {
306 8b/copy 0/mod/indirect 0/rm32/eax . . . 1/r32/ecx . .
307 8d/copy-address 1/mod/*+disp8 4/rm32/sib 0/base/eax 1/index/ecx . 1/r32/ecx 4/disp8 .
308 05/add-to-eax 4/imm32
- 309
+ 309
310 68/push 0/imm32/end
311 68/push 0/imm32/start
312 89/copy 3/mod/direct 7/rm32/edi . . . 4/r32/esp . .
@@ -397,7 +397,7 @@ if ('onhashchange' in window) {
338 5d/pop-to-ebp
339 c3/return
340
- 341 skip-chars-matching:
+ 341 skip-chars-matching:
342
343 55/push-ebp
344 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
@@ -520,7 +520,7 @@ if ('onhashchange' in window) {
461
462 c3/return
463
- 464 skip-chars-matching-whitespace:
+ 464 skip-chars-matching-whitespace:
465
466 55/push-ebp
467 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
@@ -610,7 +610,7 @@ if ('onhashchange' in window) {
551 c3/return
552
553
- 554 skip-chars-not-matching:
+ 554 skip-chars-not-matching:
555
556 55/push-ebp
557 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
@@ -772,7 +772,7 @@ if ('onhashchange' in window) {
713
714 c3/return
715
- 716 skip-chars-not-matching-whitespace:
+ 716 skip-chars-not-matching-whitespace:
717
718 55/push-ebp
719 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
@@ -860,7 +860,7 @@ if ('onhashchange' in window) {
801
802 c3/return
803
- 804 skip-chars-matching-in-slice:
+ 804 skip-chars-matching-in-slice:
805
806 55/push-ebp
807 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
@@ -874,7 +874,7 @@ if ('onhashchange' in window) {
815 8b/copy 1/mod/*+disp8 5/rm32/ebp . . . 1/r32/ecx 0xc/disp8 .
816
817 8b/copy 1/mod/*+disp8 5/rm32/ebp . . . 2/r32/edx 0x10/disp8 .
- 818
+ 818
819 31/xor 3/mod/direct 3/rm32/ebx . . . 3/r32/ebx . .
820 $skip-chars-matching-in-slice:loop:
821
@@ -956,7 +956,7 @@ if ('onhashchange' in window) {
897
898 c3/return
899
- 900 skip-chars-matching-whitespace-in-slice:
+ 900 skip-chars-matching-whitespace-in-slice:
901
902 55/push-ebp
903 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
@@ -967,7 +967,7 @@ if ('onhashchange' in window) {
908 8b/copy 1/mod/*+disp8 5/rm32/ebp . . . 0/r32/eax 8/disp8 .
909
910 8b/copy 1/mod/*+disp8 5/rm32/ebp . . . 1/r32/ecx 0xc/disp8 .
- 911
+ 911
912 31/xor 3/mod/direct 3/rm32/ebx . . . 3/r32/ebx . .
913 $skip-chars-matching-whitespace-in-slice:loop:
914
@@ -1029,7 +1029,7 @@ if ('onhashchange' in window) {
970 c3/return
971
972
- 973 skip-chars-not-matching-in-slice:
+ 973 skip-chars-not-matching-in-slice:
974
975 55/push-ebp
976 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
@@ -1043,7 +1043,7 @@ if ('onhashchange' in window) {
984 8b/copy 1/mod/*+disp8 5/rm32/ebp . . . 1/r32/ecx 0xc/disp8 .
985
986 8b/copy 1/mod/*+disp8 5/rm32/ebp . . . 2/r32/edx 0x10/disp8 .
- 987
+ 987
988 31/xor 3/mod/direct 3/rm32/ebx . . . 3/r32/ebx . .
989 $skip-chars-not-matching-in-slice:loop:
990
@@ -1154,7 +1154,7 @@ if ('onhashchange' in window) {
1095
1096 c3/return
1097
-1098 skip-chars-not-matching-whitespace-in-slice:
+1098 skip-chars-not-matching-whitespace-in-slice:
1099
1100 55/push-ebp
1101 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
@@ -1165,7 +1165,7 @@ if ('onhashchange' in window) {
1106 8b/copy 1/mod/*+disp8 5/rm32/ebp . . . 0/r32/eax 8/disp8 .
1107
1108 8b/copy 1/mod/*+disp8 5/rm32/ebp . . . 1/r32/ecx 0xc/disp8 .
-1109
+1109
1110 31/xor 3/mod/direct 3/rm32/ebx . . . 3/r32/ebx . .
1111 $skip-chars-not-matching-whitespace-in-slice:loop:
1112
@@ -1227,7 +1227,7 @@ if ('onhashchange' in window) {
1168
1169
1170
-1171 skip-string:
+1171 skip-string:
1172
1173 55/push-ebp
1174 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
@@ -1469,7 +1469,7 @@ if ('onhashchange' in window) {
1410 5d/pop-to-ebp
1411 c3/return
1412
-1413 skip-string-in-slice:
+1413 skip-string-in-slice:
1414
1415 55/push-ebp
1416 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
@@ -1481,7 +1481,7 @@ if ('onhashchange' in window) {
1422 8b/copy 1/mod/*+disp8 5/rm32/ebp . . 1/r32/ecx 8/disp8 .
1423
1424 8b/copy 1/mod/*+disp8 5/rm32/ebp . . 2/r32/edx 0xc/disp8 .
-1425
+1425
1426 31/xor 3/mod/direct 0/rm32/eax . . . 0/r32/eax . .
1427
1428 41/increment-ecx
@@ -1655,7 +1655,7 @@ if ('onhashchange' in window) {
1596
1597
1598
-1599 skip-until-close-paren:
+1599 skip-until-close-paren:
1600
1601 55/push-ebp
1602 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
@@ -1842,7 +1842,7 @@ if ('onhashchange' in window) {
1783 5d/pop-to-ebp
1784 c3/return
1785
-1786 skip-until-close-paren-in-slice:
+1786 skip-until-close-paren-in-slice:
1787
1788 55/push-ebp
1789 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
@@ -1853,7 +1853,7 @@ if ('onhashchange' in window) {
1794 8b/copy 1/mod/*+disp8 5/rm32/ebp . . 1/r32/ecx 8/disp8 .
1795
1796 8b/copy 1/mod/*+disp8 5/rm32/ebp . . 2/r32/edx 0xc/disp8 .
-1797
+1797
1798 31/xor 3/mod/direct 0/rm32/eax . . . 0/r32/eax . .
1799
1800 41/increment-ecx
diff --git a/html/074write-stream-data.subx.html b/html/074write-stream-data.subx.html
index 4d899d5f..8076bf1f 100644
--- a/html/074write-stream-data.subx.html
+++ b/html/074write-stream-data.subx.html
@@ -67,7 +67,7 @@ if ('onhashchange' in window) {
8
9
10
- 11 write-stream-data:
+ 11 write-stream-data:
12
13 55/push-ebp
14 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
@@ -77,7 +77,7 @@ if ('onhashchange' in window) {
18 56/push-esi
19
20 8b/copy 1/mod/*+disp8 5/rm32/ebp . . . 6/r32/esi 0xc/disp8 .
- 21
+ 21
22
23 8b/copy 0/mod/indirect 6/rm32/esi . . . 0/r32/eax . .
24 8d/copy-address 1/mod/*+disp8 4/rm32/sib 6/base/esi 0/index/eax . 0/r32/eax 0xc/disp8 .
diff --git a/html/075print-int-decimal.subx.html b/html/075print-int-decimal.subx.html
index bf35a3be..75271d9a 100644
--- a/html/075print-int-decimal.subx.html
+++ b/html/075print-int-decimal.subx.html
@@ -66,7 +66,7 @@ if ('onhashchange' in window) {
5
6
7
- 8 print-int32-decimal:
+ 8 print-int32-decimal:
9
10
11
@@ -109,7 +109,7 @@ if ('onhashchange' in window) {
48 b9/copy-to-ecx 0xa/imm32
49
50 68/push 0/imm32/sentinel
- 51
+ 51
52 8b/copy 1/mod/*+disp8 5/rm32/ebp . . . 0/r32/eax 0xc/disp8 .
53 3d/compare-eax-with 0/imm32
54 7d/jump-if->= $print-int32-decimal:read-loop/disp8
@@ -135,11 +135,11 @@ if ('onhashchange' in window) {
74 $print-int32-decimal:write:
75
76 8b/copy 1/mod/*+disp8 5/rm32/ebp . . . 7/r32/edi 8/disp8 .
- 77
+ 77
78 8b/copy 0/mod/indirect 7/rm32/edi . . . 2/r32/edx . .
- 79
+ 79
80 8d/copy-address 1/mod/*+disp8 4/rm32/sib 7/base/edi 2/index/edx . 1/r32/ecx 0xc/disp8 .
- 81
+ 81
82 8b/copy 1/mod/*+disp8 7/rm32/edi . . . 3/r32/ebx 8/disp8 .
83 8d/copy-address 1/mod/*+disp8 4/rm32/sib 7/base/edi 3/index/ebx . 3/r32/ebx 0xc/disp8 .
84 $print-int32-decimal:write-loop:
@@ -340,7 +340,7 @@ if ('onhashchange' in window) {
304
305 c3/return
306
-307 is-decimal-digit?:
+307 is-decimal-digit?:
308
309 55/push-ebp
310 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
diff --git a/html/076next-word.subx.html b/html/076next-word.subx.html
index 90aa0113..7d573edb 100644
--- a/html/076next-word.subx.html
+++ b/html/076next-word.subx.html
@@ -66,7 +66,7 @@ if ('onhashchange' in window) {
7
8
9
- 10 next-word:
+ 10 next-word:
11
12 55/push-ebp
13 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
@@ -154,7 +154,7 @@ if ('onhashchange' in window) {
95 e8/call clear-stream/disp32
96
97 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 4/imm32
- 98
+ 98
99 68/push 0/imm32/end
100 68/push 0/imm32/start
101 89/copy 3/mod/direct 1/rm32/ecx . . . 4/r32/esp . .
@@ -217,7 +217,7 @@ if ('onhashchange' in window) {
158 e8/call clear-stream/disp32
159
160 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 4/imm32
-161
+161
162 68/push 0/imm32/end
163 68/push 0/imm32/start
164 89/copy 3/mod/direct 1/rm32/ecx . . . 4/r32/esp . .
@@ -280,7 +280,7 @@ if ('onhashchange' in window) {
221 e8/call clear-stream/disp32
222
223 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 4/imm32
-224
+224
225 68/push 0/imm32/end
226 68/push 0/imm32/start
227 89/copy 3/mod/direct 1/rm32/ecx . . . 4/r32/esp . .
diff --git a/html/077subx-words.subx.html b/html/077subx-words.subx.html
index 300f8a6a..39970cd9 100644
--- a/html/077subx-words.subx.html
+++ b/html/077subx-words.subx.html
@@ -64,9 +64,9 @@ if ('onhashchange' in window) {
5
6
7
- 8 has-metadata?:
+ 8 has-metadata?:
9
- 10
+ 10
11
12
13
@@ -84,9 +84,9 @@ if ('onhashchange' in window) {
25 57/push-edi
26
27 8b/copy 1/mod/*+disp8 5/rm32/ebp . . . 6/r32/esi 8/disp8 .
- 28
+ 28
29 8b/copy 1/mod/*+disp8 6/rm32/esi . . . 2/r32/edx 4/disp8 .
- 30
+ 30
31 68/push 0/imm32/end
32 68/push 0/imm32/start
33 89/copy 3/mod/direct 7/rm32/edi . . . 4/r32/esp . .
@@ -160,7 +160,7 @@ if ('onhashchange' in window) {
101 8b/copy 0/mod/indirect 0/rm32/eax . . . 1/r32/ecx . .
102 8d/copy-address 1/mod/*+disp8 4/rm32/sib 0/base/eax 1/index/ecx . 1/r32/ecx 4/disp8 .
103 05/add-to-eax 4/imm32
-104
+104
105 51/push-ecx
106 50/push-eax
107 89/copy 3/mod/direct 6/rm32/esi . . . 4/r32/esp . .
@@ -195,7 +195,7 @@ if ('onhashchange' in window) {
136 8b/copy 0/mod/indirect 0/rm32/eax . . . 1/r32/ecx . .
137 8d/copy-address 1/mod/*+disp8 4/rm32/sib 0/base/eax 1/index/ecx . 1/r32/ecx 4/disp8 .
138 05/add-to-eax 4/imm32
-139
+139
140 51/push-ecx
141 50/push-eax
142 89/copy 3/mod/direct 6/rm32/esi . . . 4/r32/esp . .
@@ -230,7 +230,7 @@ if ('onhashchange' in window) {
171 8b/copy 0/mod/indirect 0/rm32/eax . . . 1/r32/ecx . .
172 8d/copy-address 1/mod/*+disp8 4/rm32/sib 0/base/eax 1/index/ecx . 1/r32/ecx 4/disp8 .
173 05/add-to-eax 4/imm32
-174
+174
175 51/push-ecx
176 50/push-eax
177 89/copy 3/mod/direct 6/rm32/esi . . . 4/r32/esp . .
@@ -265,7 +265,7 @@ if ('onhashchange' in window) {
206 8b/copy 0/mod/indirect 0/rm32/eax . . . 1/r32/ecx . .
207 8d/copy-address 1/mod/*+disp8 4/rm32/sib 0/base/eax 1/index/ecx . 1/r32/ecx 4/disp8 .
208 05/add-to-eax 4/imm32
-209
+209
210 51/push-ecx
211 50/push-eax
212 89/copy 3/mod/direct 6/rm32/esi . . . 4/r32/esp . .
@@ -300,7 +300,7 @@ if ('onhashchange' in window) {
241 8b/copy 0/mod/indirect 0/rm32/eax . . . 1/r32/ecx . .
242 8d/copy-address 1/mod/*+disp8 4/rm32/sib 0/base/eax 1/index/ecx . 1/r32/ecx 4/disp8 .
243 05/add-to-eax 4/imm32
-244
+244
245 51/push-ecx
246 50/push-eax
247 89/copy 3/mod/direct 6/rm32/esi . . . 4/r32/esp . .
@@ -334,7 +334,7 @@ if ('onhashchange' in window) {
275
276
277
-278 is-valid-name?:
+278 is-valid-name?:
279
280 55/push-ebp
281 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
@@ -343,21 +343,21 @@ if ('onhashchange' in window) {
284 56/push-esi
285
286 8b/copy 1/mod/*+disp8 5/rm32/ebp . . . 6/r32/esi 8/disp8 .
-287
+287
288 8b/copy 0/mod/indirect 6/rm32/esi . . . 1/r32/ecx . .
289 $is-valid-name?:check0:
290
291 3b/compare 1/mod/*+disp8 6/rm32/esi . . . 1/r32/ecx 4/disp8 .
292 73/jump-if-addr>= $is-valid-name?:false/disp8
293 $is-valid-name?:check1:
-294
+294
295 8b/copy 1/mod/*+disp8 6/rm32/esi . . . 0/r32/eax 4/disp8 .
296 29/subtract 3/mod/direct 0/rm32/eax . . . 1/r32/ecx . .
297
298 3d/compare-eax-and 2/imm32
299 74/jump-if-= $is-valid-name?:false/disp8
300 $is-valid-name?:check2:
-301
+301
302 31/xor 3/mod/direct 0/rm32/eax . . . 0/r32/eax . .
303 8a/copy-byte 0/mod/indirect 1/rm32/ecx . . . 0/r32/AL . .
304
@@ -396,7 +396,7 @@ if ('onhashchange' in window) {
337 8b/copy 0/mod/indirect 0/rm32/eax . . . 1/r32/ecx . .
338 8d/copy-address 1/mod/*+disp8 4/rm32/sib 0/base/eax 1/index/ecx . 1/r32/ecx 4/disp8 .
339 05/add-to-eax 4/imm32
-340
+340
341 51/push-ecx
342 50/push-eax
343 89/copy 3/mod/direct 1/rm32/ecx . . . 4/r32/esp . .
@@ -430,7 +430,7 @@ if ('onhashchange' in window) {
371 8b/copy 0/mod/indirect 0/rm32/eax . . . 1/r32/ecx . .
372 8d/copy-address 1/mod/*+disp8 4/rm32/sib 0/base/eax 1/index/ecx . 1/r32/ecx 4/disp8 .
373 05/add-to-eax 4/imm32
-374
+374
375 51/push-ecx
376 50/push-eax
377 89/copy 3/mod/direct 1/rm32/ecx . . . 4/r32/esp . .
@@ -464,7 +464,7 @@ if ('onhashchange' in window) {
405 8b/copy 0/mod/indirect 0/rm32/eax . . . 1/r32/ecx . .
406 8d/copy-address 1/mod/*+disp8 4/rm32/sib 0/base/eax 1/index/ecx . 1/r32/ecx 4/disp8 .
407 05/add-to-eax 4/imm32
-408
+408
409 51/push-ecx
410 50/push-eax
411 89/copy 3/mod/direct 1/rm32/ecx . . . 4/r32/esp . .
@@ -498,7 +498,7 @@ if ('onhashchange' in window) {
439 8b/copy 0/mod/indirect 0/rm32/eax . . . 1/r32/ecx . .
440 8d/copy-address 1/mod/*+disp8 4/rm32/sib 0/base/eax 1/index/ecx . 1/r32/ecx 4/disp8 .
441 05/add-to-eax 4/imm32
-442
+442
443 51/push-ecx
444 50/push-eax
445 89/copy 3/mod/direct 1/rm32/ecx . . . 4/r32/esp . .
@@ -532,7 +532,7 @@ if ('onhashchange' in window) {
473 8b/copy 0/mod/indirect 0/rm32/eax . . . 1/r32/ecx . .
474 8d/copy-address 1/mod/*+disp8 4/rm32/sib 0/base/eax 1/index/ecx . 1/r32/ecx 4/disp8 .
475 05/add-to-eax 4/imm32
-476
+476
477 51/push-ecx
478 50/push-eax
479 89/copy 3/mod/direct 1/rm32/ecx . . . 4/r32/esp . .
@@ -566,7 +566,7 @@ if ('onhashchange' in window) {
507 8b/copy 0/mod/indirect 0/rm32/eax . . . 1/r32/ecx . .
508 8d/copy-address 1/mod/*+disp8 4/rm32/sib 0/base/eax 1/index/ecx . 1/r32/ecx 4/disp8 .
509 05/add-to-eax 4/imm32
-510
+510
511 51/push-ecx
512 50/push-eax
513 89/copy 3/mod/direct 1/rm32/ecx . . . 4/r32/esp . .
@@ -591,7 +591,7 @@ if ('onhashchange' in window) {
532 5d/pop-to-ebp
533 c3/return
534
-535 is-label?:
+535 is-label?:
536
537 55/push-ebp
538 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
@@ -599,7 +599,7 @@ if ('onhashchange' in window) {
540 51/push-ecx
541
542 8b/copy 1/mod/*+disp8 5/rm32/ebp . . . 1/r32/ecx 8/disp8 .
-543
+543
544 8b/copy 1/mod/*+disp8 1/rm32/ecx . . . 1/r32/ecx 4/disp8 .
545
546
@@ -628,7 +628,7 @@ if ('onhashchange' in window) {
569 8b/copy 0/mod/indirect 0/rm32/eax . . . 1/r32/ecx . .
570 8d/copy-address 1/mod/*+disp8 4/rm32/sib 0/base/eax 1/index/ecx . 1/r32/ecx 4/disp8 .
571 05/add-to-eax 4/imm32
-572
+572
573 51/push-ecx
574 50/push-eax
575 89/copy 3/mod/direct 1/rm32/ecx . . . 4/r32/esp . .
@@ -654,7 +654,7 @@ if ('onhashchange' in window) {
595 8b/copy 0/mod/indirect 0/rm32/eax . . . 1/r32/ecx . .
596 8d/copy-address 1/mod/*+disp8 4/rm32/sib 0/base/eax 1/index/ecx . 1/r32/ecx 4/disp8 .
597 05/add-to-eax 4/imm32
-598
+598
599 51/push-ecx
600 50/push-eax
601 89/copy 3/mod/direct 1/rm32/ecx . . . 4/r32/esp . .
diff --git a/html/078emit-hex.subx.html b/html/078emit-hex.subx.html
index 838851a6..cd6d982c 100644
--- a/html/078emit-hex.subx.html
+++ b/html/078emit-hex.subx.html
@@ -63,7 +63,7 @@ if ('onhashchange' in window) {
4
5
6
- 7 emit-hex:
+ 7 emit-hex:
8
9 55/push-ebp
10 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
@@ -79,7 +79,7 @@ if ('onhashchange' in window) {
20 8b/copy 1/mod/*+disp8 5/rm32/ebp . . . 3/r32/ebx 0xc/disp8 .
21
22 8b/copy 1/mod/*+disp8 5/rm32/ebp . . . 2/r32/edx 0x10/disp8 .
- 23
+ 23
24 31/xor 3/mod/direct 1/rm32/ecx . . . 1/r32/ecx . .
25 $emit-hex:loop:
26
diff --git a/html/079emit.subx.html b/html/079emit.subx.html
index a0505be1..233ebed6 100644
--- a/html/079emit.subx.html
+++ b/html/079emit.subx.html
@@ -68,7 +68,7 @@ if ('onhashchange' in window) {
7
8
9
- 10 emit:
+ 10 emit:
11
12 55/push-ebp
13 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
@@ -78,7 +78,7 @@ if ('onhashchange' in window) {
17 57/push-edi
18
19 8b/copy 1/mod/*+disp8 5/rm32/ebp . . . 6/r32/esi 0xc/disp8 .
- 20
+ 20
21 68/push 0/imm32/end
22 68/push 0/imm32/start
23 89/copy 3/mod/direct 7/rm32/edi . . . 4/r32/esp . .
@@ -129,7 +129,7 @@ if ('onhashchange' in window) {
68
69
70 $emit:hex-int:
- 71
+ 71
72
73 57/push-edi
74
@@ -181,7 +181,7 @@ if ('onhashchange' in window) {
120 8b/copy 0/mod/indirect 0/rm32/eax . . . 1/r32/ecx . .
121 8d/copy-address 1/mod/*+disp8 4/rm32/sib 0/base/eax 1/index/ecx . 1/r32/ecx 4/disp8 .
122 05/add-to-eax 4/imm32
-123
+123
124 51/push-ecx
125 50/push-eax
126 89/copy 3/mod/direct 1/rm32/ecx . . . 4/r32/esp . .
@@ -240,7 +240,7 @@ if ('onhashchange' in window) {
179 8b/copy 0/mod/indirect 0/rm32/eax . . . 1/r32/ecx . .
180 8d/copy-address 1/mod/*+disp8 4/rm32/sib 0/base/eax 1/index/ecx . 1/r32/ecx 4/disp8 .
181 05/add-to-eax 4/imm32
-182
+182
183 51/push-ecx
184 50/push-eax
185 89/copy 3/mod/direct 1/rm32/ecx . . . 4/r32/esp . .
@@ -298,7 +298,7 @@ if ('onhashchange' in window) {
237 8b/copy 0/mod/indirect 0/rm32/eax . . . 1/r32/ecx . .
238 8d/copy-address 1/mod/*+disp8 4/rm32/sib 0/base/eax 1/index/ecx . 1/r32/ecx 4/disp8 .
239 05/add-to-eax 4/imm32
-240
+240
241 51/push-ecx
242 50/push-eax
243 89/copy 3/mod/direct 1/rm32/ecx . . . 4/r32/esp . .
@@ -357,7 +357,7 @@ if ('onhashchange' in window) {
296 8b/copy 0/mod/indirect 0/rm32/eax . . . 1/r32/ecx . .
297 8d/copy-address 1/mod/*+disp8 4/rm32/sib 0/base/eax 1/index/ecx . 1/r32/ecx 4/disp8 .
298 05/add-to-eax 4/imm32
-299
+299
300 51/push-ecx
301 50/push-eax
302 89/copy 3/mod/direct 1/rm32/ecx . . . 4/r32/esp . .
@@ -415,7 +415,7 @@ if ('onhashchange' in window) {
354 8b/copy 0/mod/indirect 0/rm32/eax . . . 1/r32/ecx . .
355 8d/copy-address 1/mod/*+disp8 4/rm32/sib 0/base/eax 1/index/ecx . 1/r32/ecx 4/disp8 .
356 05/add-to-eax 4/imm32
-357
+357
358 51/push-ecx
359 50/push-eax
360 89/copy 3/mod/direct 1/rm32/ecx . . . 4/r32/esp . .
@@ -473,7 +473,7 @@ if ('onhashchange' in window) {
412 8b/copy 0/mod/indirect 0/rm32/eax . . . 1/r32/ecx . .
413 8d/copy-address 1/mod/*+disp8 4/rm32/sib 0/base/eax 1/index/ecx . 1/r32/ecx 4/disp8 .
414 05/add-to-eax 4/imm32
-415
+415
416 51/push-ecx
417 50/push-eax
418 89/copy 3/mod/direct 1/rm32/ecx . . . 4/r32/esp . .
diff --git a/html/080zero-out.subx.html b/html/080zero-out.subx.html
index 203e38db..1c4b1fae 100644
--- a/html/080zero-out.subx.html
+++ b/html/080zero-out.subx.html
@@ -64,7 +64,7 @@ if ('onhashchange' in window) {
5
6
7
- 8 zero-out:
+ 8 zero-out:
9
10
11
@@ -84,7 +84,7 @@ if ('onhashchange' in window) {
25 56/push-esi
26
27 8b/copy 1/mod/*+disp8 5/rm32/ebp . . . 6/r32/esi 8/disp8 .
-28
+28
29 31/xor 3/mod/direct 1/rm32/ecx . . . 1/r32/ecx . .
30
31 8b/copy 1/mod/*+disp8 5/rm32/ebp . . . 2/r32/edx 0xc/disp8 .
diff --git a/html/081table.subx.html b/html/081table.subx.html
index 6d456997..673cd16e 100644
--- a/html/081table.subx.html
+++ b/html/081table.subx.html
@@ -85,7 +85,7 @@ if ('onhashchange' in window) {
24
25
26
- 27 get:
+ 27 get:
28
29
30
@@ -104,9 +104,9 @@ if ('onhashchange' in window) {
43 56/push-esi
44
45 8b/copy 1/mod/*+disp8 5/rm32/ebp . . . 6/r32/esi 8/disp8 .
- 46
+ 46
47 8d/copy-address 1/mod/*+disp8 6/rm32/esi . . . 1/r32/ecx 0xc/disp8 .
- 48
+ 48
49 8b/copy 0/mod/indirect 6/rm32/esi . . . 2/r32/edx . .
50 8d/copy-address 0/mod/indirect 4/rm32/sib 1/base/ecx 2/index/edx . 2/r32/edx . .
51 $get:search-loop:
@@ -186,7 +186,7 @@ if ('onhashchange' in window) {
125 55/push-ebp
126 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
127
- 128
+ 128
129 81 5/subop/subtract 3/mod/direct 4/rm32/esp . . . . . 0x10/imm32
130 68/push 0x10/imm32/length
131 68/push 0/imm32/read
@@ -259,7 +259,7 @@ if ('onhashchange' in window) {
198 c3/return
199
200
- 201 get-slice:
+ 201 get-slice:
202
203
204
@@ -278,9 +278,9 @@ if ('onhashchange' in window) {
217 56/push-esi
218
219 8b/copy 1/mod/*+disp8 5/rm32/ebp . . . 6/r32/esi 8/disp8 .
- 220
+ 220
221 8d/copy-address 1/mod/*+disp8 6/rm32/esi . . . 1/r32/ecx 0xc/disp8 .
- 222
+ 222
223 8b/copy 0/mod/indirect 6/rm32/esi . . . 2/r32/edx . .
224 8d/copy-address 0/mod/indirect 4/rm32/sib 1/base/ecx 2/index/edx . 2/r32/edx . .
225 $get-slice:search-loop:
@@ -367,7 +367,7 @@ if ('onhashchange' in window) {
306 55/push-ebp
307 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
308
- 309
+ 309
310 81 5/subop/subtract 3/mod/direct 4/rm32/esp . . . . . 0x10/imm32
311 68/push 0x10/imm32/length
312 68/push 0/imm32/read
@@ -397,7 +397,7 @@ if ('onhashchange' in window) {
336 8b/copy 0/mod/indirect 0/rm32/eax . . . 2/r32/edx . .
337 8d/copy-address 1/mod/*+disp8 4/rm32/sib 0/base/eax 2/index/edx . 2/r32/edx 4/disp8 .
338 05/add-to-eax 4/imm32
- 339
+ 339
340 52/push-edx
341 50/push-eax
342 89/copy 3/mod/direct 2/rm32/edx . . . 4/r32/esp . .
@@ -427,7 +427,7 @@ if ('onhashchange' in window) {
366 8b/copy 0/mod/indirect 0/rm32/eax . . . 2/r32/edx . .
367 8d/copy-address 1/mod/*+disp8 4/rm32/sib 0/base/eax 2/index/edx . 2/r32/edx 4/disp8 .
368 05/add-to-eax 4/imm32
- 369
+ 369
370 52/push-edx
371 50/push-eax
372 89/copy 3/mod/direct 2/rm32/edx . . . 4/r32/esp . .
@@ -462,7 +462,7 @@ if ('onhashchange' in window) {
401
402
403
- 404 get-or-insert:
+ 404 get-or-insert:
405
406
407
@@ -486,9 +486,9 @@ if ('onhashchange' in window) {
425 56/push-esi
426
427 8b/copy 1/mod/*+disp8 5/rm32/ebp . . . 6/r32/esi 8/disp8 .
- 428
+ 428
429 8d/copy-address 1/mod/*+disp8 6/rm32/esi . . . 1/r32/ecx 0xc/disp8 .
- 430
+ 430
431 8b/copy 0/mod/indirect 6/rm32/esi . . . 2/r32/edx . .
432 8d/copy-address 0/mod/indirect 4/rm32/sib 1/base/ecx 2/index/edx . 2/r32/edx . .
433 $get-or-insert:search-loop:
@@ -573,7 +573,7 @@ if ('onhashchange' in window) {
512
513 55/push-ebp
514 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
- 515
+ 515
516 81 5/subop/subtract 3/mod/direct 4/rm32/esp . . . . . 0x10/imm32
517 68/push 0x10/imm32/length
518 68/push 0/imm32/read
@@ -713,7 +713,7 @@ if ('onhashchange' in window) {
652
653
654
- 655 leaky-get-or-insert-slice:
+ 655 leaky-get-or-insert-slice:
656
657
658
@@ -737,9 +737,9 @@ if ('onhashchange' in window) {
676 56/push-esi
677
678 8b/copy 1/mod/*+disp8 5/rm32/ebp . . . 6/r32/esi 8/disp8 .
- 679
+ 679
680 8d/copy-address 1/mod/*+disp8 6/rm32/esi . . . 1/r32/ecx 0xc/disp8 .
- 681
+ 681
682 8b/copy 0/mod/indirect 6/rm32/esi . . . 2/r32/edx . .
683 8d/copy-address 0/mod/indirect 4/rm32/sib 1/base/ecx 2/index/edx . 2/r32/edx . .
684 $leaky-get-or-insert-slice:search-loop:
@@ -830,7 +830,7 @@ if ('onhashchange' in window) {
769
770 55/push-ebp
771 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
- 772
+ 772
773 81 5/subop/subtract 3/mod/direct 4/rm32/esp . . . . . 0x10/imm32
774 68/push 0x10/imm32/length
775 68/push 0/imm32/read
@@ -841,7 +841,7 @@ if ('onhashchange' in window) {
780 8b/copy 0/mod/indirect 0/rm32/eax . . . 2/r32/edx . .
781 8d/copy-address 1/mod/*+disp8 4/rm32/sib 0/base/eax 2/index/edx . 2/r32/edx 4/disp8 .
782 05/add-to-eax 4/imm32
- 783
+ 783
784 52/push-edx
785 50/push-eax
786 89/copy 3/mod/direct 2/rm32/edx . . . 4/r32/esp . .
@@ -934,7 +934,7 @@ if ('onhashchange' in window) {
873 8b/copy 0/mod/indirect 0/rm32/eax . . . 2/r32/edx . .
874 8d/copy-address 1/mod/*+disp8 4/rm32/sib 0/base/eax 2/index/edx . 2/r32/edx 4/disp8 .
875 05/add-to-eax 4/imm32
- 876
+ 876
877 52/push-edx
878 50/push-eax
879 89/copy 3/mod/direct 2/rm32/edx . . . 4/r32/esp . .
@@ -985,9 +985,9 @@ if ('onhashchange' in window) {
924 c3/return
925
926
- 927 get-or-stop:
- 928
- 929
+ 927 get-or-stop:
+ 928
+ 929
930
931
932
@@ -1007,9 +1007,9 @@ if ('onhashchange' in window) {
946 56/push-esi
947
948 8b/copy 1/mod/*+disp8 5/rm32/ebp . . . 6/r32/esi 8/disp8 .
- 949
+ 949
950 8d/copy-address 1/mod/*+disp8 6/rm32/esi . . . 1/r32/ecx 0xc/disp8 .
- 951
+ 951
952 8b/copy 0/mod/indirect 6/rm32/esi . . . 2/r32/edx . .
953 8d/copy-address 0/mod/indirect 4/rm32/sib 1/base/ecx 2/index/edx . 2/r32/edx . .
954 $get-or-stop:search-loop:
@@ -1112,13 +1112,13 @@ if ('onhashchange' in window) {
1051 e8/call clear-stream/disp32
1052
1053 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 4/imm32
-1054
+1054
1055 81 5/subop/subtract 3/mod/direct 4/rm32/esp . . . . . 0x10/imm32
1056 68/push 0x10/imm32/length
1057 68/push 0/imm32/read
1058 68/push 0/imm32/write
1059 89/copy 3/mod/direct 1/rm32/ecx . . . 4/r32/esp . .
-1060
+1060
1061 68/push 0/imm32
1062 68/push 0/imm32
1063 89/copy 3/mod/direct 2/rm32/edx . . . 4/r32/esp . .
@@ -1201,9 +1201,9 @@ if ('onhashchange' in window) {
1140 c3/return
1141
1142
-1143 get-slice-or-stop:
-1144
-1145
+1143 get-slice-or-stop:
+1144
+1145
1146
1147
1148
@@ -1223,9 +1223,9 @@ if ('onhashchange' in window) {
1162 56/push-esi
1163
1164 8b/copy 1/mod/*+disp8 5/rm32/ebp . . . 6/r32/esi 8/disp8 .
-1165
+1165
1166 8d/copy-address 1/mod/*+disp8 6/rm32/esi . . . 1/r32/ecx 0xc/disp8 .
-1167
+1167
1168 8b/copy 0/mod/indirect 6/rm32/esi . . . 2/r32/edx . .
1169 8d/copy-address 0/mod/indirect 4/rm32/sib 1/base/ecx 2/index/edx . 2/r32/edx . .
1170 $get-slice-or-stop:search-loop:
@@ -1328,17 +1328,17 @@ if ('onhashchange' in window) {
1267 e8/call clear-stream/disp32
1268
1269 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 4/imm32
-1270
+1270
1271 81 5/subop/subtract 3/mod/direct 4/rm32/esp . . . . . 0x10/imm32
1272 68/push 0x10/imm32/length
1273 68/push 0/imm32/read
1274 68/push 0/imm32/write
1275 89/copy 3/mod/direct 1/rm32/ecx . . . 4/r32/esp . .
-1276
+1276
1277 68/push 0/imm32
1278 68/push 0/imm32
1279 89/copy 3/mod/direct 2/rm32/edx . . . 4/r32/esp . .
-1280
+1280
1281
1282 b8/copy-to-eax "code"/imm32
1283 8b/copy 0/mod/indirect 0/rm32/eax . . . 3/r32/ebx . .
@@ -1440,7 +1440,7 @@ if ('onhashchange' in window) {
1379 c3/return
1380
1381
-1382 maybe-get:
+1382 maybe-get:
1383
1384
1385
@@ -1459,9 +1459,9 @@ if ('onhashchange' in window) {
1398 56/push-esi
1399
1400 8b/copy 1/mod/*+disp8 5/rm32/ebp . . . 6/r32/esi 8/disp8 .
-1401
+1401
1402 8d/copy-address 1/mod/*+disp8 6/rm32/esi . . . 1/r32/ecx 0xc/disp8 .
-1403
+1403
1404 8b/copy 0/mod/indirect 6/rm32/esi . . . 2/r32/edx . .
1405 8d/copy-address 0/mod/indirect 4/rm32/sib 1/base/ecx 2/index/edx . 2/r32/edx . .
1406 $maybe-get:search-loop:
@@ -1504,7 +1504,7 @@ if ('onhashchange' in window) {
1443 55/push-ebp
1444 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
1445
-1446
+1446
1447 81 5/subop/subtract 3/mod/direct 4/rm32/esp . . . . . 0x10/imm32
1448 68/push 0x10/imm32/length
1449 68/push 0/imm32/read
@@ -1587,7 +1587,7 @@ if ('onhashchange' in window) {
1526 c3/return
1527
1528
-1529 maybe-get-slice:
+1529 maybe-get-slice:
1530
1531
1532
@@ -1606,9 +1606,9 @@ if ('onhashchange' in window) {
1545 56/push-esi
1546
1547 8b/copy 1/mod/*+disp8 5/rm32/ebp . . . 6/r32/esi 8/disp8 .
-1548
+1548
1549 8d/copy-address 1/mod/*+disp8 6/rm32/esi . . . 1/r32/ecx 0xc/disp8 .
-1550
+1550
1551 8b/copy 0/mod/indirect 6/rm32/esi . . . 2/r32/edx . .
1552 8d/copy-address 0/mod/indirect 4/rm32/sib 1/base/ecx 2/index/edx . 2/r32/edx . .
1553 $maybe-get-slice:search-loop:
@@ -1651,7 +1651,7 @@ if ('onhashchange' in window) {
1590 55/push-ebp
1591 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
1592
-1593
+1593
1594 81 5/subop/subtract 3/mod/direct 4/rm32/esp . . . . . 0x10/imm32
1595 68/push 0x10/imm32/length
1596 68/push 0/imm32/read
@@ -1673,7 +1673,7 @@ if ('onhashchange' in window) {
1612 8b/copy 0/mod/indirect 0/rm32/eax . . . 2/r32/edx . .
1613 8d/copy-address 1/mod/*+disp8 4/rm32/sib 0/base/eax 2/index/edx . 2/r32/edx 4/disp8 .
1614 05/add-to-eax 4/imm32
-1615
+1615
1616 52/push-edx
1617 50/push-eax
1618 89/copy 3/mod/direct 2/rm32/edx . . . 4/r32/esp . .
@@ -1723,7 +1723,7 @@ if ('onhashchange' in window) {
1662 8b/copy 0/mod/indirect 0/rm32/eax . . . 2/r32/edx . .
1663 8d/copy-address 1/mod/*+disp8 4/rm32/sib 0/base/eax 2/index/edx . 2/r32/edx 4/disp8 .
1664 05/add-to-eax 4/imm32
-1665
+1665
1666 52/push-edx
1667 50/push-eax
1668 89/copy 3/mod/direct 2/rm32/edx . . . 4/r32/esp . .
diff --git a/html/082slurp.subx.html b/html/082slurp.subx.html
index 9491c189..b182707c 100644
--- a/html/082slurp.subx.html
+++ b/html/082slurp.subx.html
@@ -64,7 +64,7 @@ if ('onhashchange' in window) {
5
6
7
- 8 slurp:
+ 8 slurp:
9
10
11
@@ -122,7 +122,7 @@ if ('onhashchange' in window) {
63 3d/compare-eax-and 0/imm32
64 74/jump-if-= $slurp:end/disp8
65 $slurp:from-stream:
- 66
+ 66
67 31/xor 3/mod/direct 0/rm32/eax . . . 0/r32/eax . .
68 8a/copy-byte 1/mod/*+disp8 4/rm32/sib 6/base/esi 1/index/ecx . 0/r32/AL 0x10/disp8 .
69
diff --git a/html/083subx-widths.subx.html b/html/083subx-widths.subx.html
index b6341472..5b219d66 100644
--- a/html/083subx-widths.subx.html
+++ b/html/083subx-widths.subx.html
@@ -67,7 +67,7 @@ if ('onhashchange' in window) {
8
9
10
- 11 compute-width:
+ 11 compute-width:
12
13 55/push-ebp
14 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
@@ -75,12 +75,12 @@ if ('onhashchange' in window) {
16 51/push-ecx
17
18 8b/copy 1/mod/*+disp8 5/rm32/ebp . . . 0/r32/eax 8/disp8 .
- 19
+ 19
20 8b/copy 0/mod/indirect 0/rm32/eax . . . 1/r32/ecx . .
21 8d/copy-address 1/mod/*+disp8 4/rm32/sib 0/base/eax 1/index/ecx . 1/r32/ecx 4/disp8 .
22
23 05/add-to-eax 4/imm32
- 24
+ 24
25 51/push-ecx
26 50/push-eax
27 89/copy 3/mod/direct 1/rm32/ecx . . . 4/r32/esp . .
@@ -101,7 +101,7 @@ if ('onhashchange' in window) {
42 5d/pop-to-ebp
43 c3/return
44
- 45 compute-width-of-slice:
+ 45 compute-width-of-slice:
46
47 55/push-ebp
48 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
diff --git a/html/084emit-hex-array.subx.html b/html/084emit-hex-array.subx.html
index db2762e5..fb0e7885 100644
--- a/html/084emit-hex-array.subx.html
+++ b/html/084emit-hex-array.subx.html
@@ -64,7 +64,7 @@ if ('onhashchange' in window) {
4
5
6
- 7 emit-hex-array:
+ 7 emit-hex-array:
8
9 55/push-ebp
10 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
@@ -77,12 +77,12 @@ if ('onhashchange' in window) {
17 8b/copy 1/mod/*+disp8 5/rm32/ebp . . . 7/r32/edi 8/disp8 .
18
19 8b/copy 1/mod/*+disp8 5/rm32/ebp . . . 2/r32/edx 0xc/disp8 .
- 20
+ 20
21 8d/copy-address 1/mod/*+disp8 2/rm32/edx . . . 1/r32/ecx 4/disp8 .
- 22
+ 22
23 8b/copy 0/mod/indirect 2/rm32/edx . . . 2/r32/edx . .
24 01/add 3/mod/direct 2/rm32/edx . . . 1/r32/ecx . .
- 25
+ 25
26 31/xor 3/mod/direct 0/rm32/eax . . . 0/r32/eax . .
27 $emit-hex-array:loop:
28
diff --git a/html/085next-word-or-string.subx.html b/html/085next-word-or-string.subx.html
index 4671ca51..ecb3d241 100644
--- a/html/085next-word-or-string.subx.html
+++ b/html/085next-word-or-string.subx.html
@@ -64,7 +64,7 @@ if ('onhashchange' in window) {
5
6
7
- 8 next-word-or-string:
+ 8 next-word-or-string:
9
10 55/push-ebp
11 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
@@ -170,7 +170,7 @@ if ('onhashchange' in window) {
111 e8/call clear-stream/disp32
112
113 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 4/imm32
-114
+114
115 68/push 0/imm32/end
116 68/push 0/imm32/start
117 89/copy 3/mod/direct 1/rm32/ecx . . . 4/r32/esp . .
@@ -243,7 +243,7 @@ if ('onhashchange' in window) {
184 e8/call clear-stream/disp32
185
186 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 4/imm32
-187
+187
188 68/push 0/imm32/end
189 68/push 0/imm32/start
190 89/copy 3/mod/direct 1/rm32/ecx . . . 4/r32/esp . .
@@ -316,7 +316,7 @@ if ('onhashchange' in window) {
257 e8/call clear-stream/disp32
258
259 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 4/imm32
-260
+260
261 68/push 0/imm32/end
262 68/push 0/imm32/start
263 89/copy 3/mod/direct 1/rm32/ecx . . . 4/r32/esp . .
@@ -358,7 +358,7 @@ if ('onhashchange' in window) {
299 e8/call clear-stream/disp32
300
301 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 4/imm32
-302
+302
303 68/push 0/imm32/end
304 68/push 0/imm32/start
305 89/copy 3/mod/direct 1/rm32/ecx . . . 4/r32/esp . .
@@ -421,7 +421,7 @@ if ('onhashchange' in window) {
362 e8/call clear-stream/disp32
363
364 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 4/imm32
-365
+365
366 68/push 0/imm32/end
367 68/push 0/imm32/start
368 89/copy 3/mod/direct 1/rm32/ecx . . . 4/r32/esp . .
diff --git a/html/091write-int.subx.html b/html/091write-int.subx.html
index 16538350..da0c18a9 100644
--- a/html/091write-int.subx.html
+++ b/html/091write-int.subx.html
@@ -65,7 +65,7 @@ if ('onhashchange' in window) {
5
6
7
- 8 write-int:
+ 8 write-int:
9
10 55/push-ebp
11 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
diff --git a/html/092stack.subx.html b/html/092stack.subx.html
index 8427a1f8..4ccbbe55 100644
--- a/html/092stack.subx.html
+++ b/html/092stack.subx.html
@@ -67,7 +67,7 @@ if ('onhashchange' in window) {
7
8
9
- 10 clear-stack:
+ 10 clear-stack:
11
12 55/push-ebp
13 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
@@ -76,12 +76,12 @@ if ('onhashchange' in window) {
16 51/push-ecx
17
18 8b/copy 1/mod/*+disp8 5/rm32/ebp . . . 0/r32/eax 8/disp8 .
- 19
+ 19
20 8b/copy 1/mod/*+disp8 0/rm32/eax . . . 1/r32/ecx 4/disp8 .
21 8d/copy-address 1/mod/*+disp8 4/rm32/sib 0/base/eax 1/index/ecx . 1/r32/ecx 8/disp8 .
22
23 c7 0/subop/copy 0/mod/direct 0/rm32/eax . . . . . 0/imm32
- 24
+ 24
25 81 0/subop/add 3/mod/direct 0/rm32/eax . . . . . 8/imm32
26 $clear-stack:loop:
27
@@ -167,7 +167,7 @@ if ('onhashchange' in window) {
107 5d/pop-to-ebp
108 c3/return
109
-110 push:
+110 push:
111
112 55/push-ebp
113 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
@@ -287,7 +287,7 @@ if ('onhashchange' in window) {
227 5d/pop-to-ebp
228 c3/return
229
-230 pop:
+230 pop:
231
232 55/push-ebp
233 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
@@ -391,7 +391,7 @@ if ('onhashchange' in window) {
331 5d/pop-to-ebp
332 c3/return
333
-334 top:
+334 top:
335
336 55/push-ebp
337 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
diff --git a/html/100array-equal.subx.html b/html/100array-equal.subx.html
index ab7a0357..356bc7d1 100644
--- a/html/100array-equal.subx.html
+++ b/html/100array-equal.subx.html
@@ -62,7 +62,7 @@ if ('onhashchange' in window) {
2
3 == code
4
- 5 array-equal?:
+ 5 array-equal?:
6
7
8
@@ -97,27 +97,27 @@ if ('onhashchange' in window) {
37 8b/-> *(ebp+8) 6/r32/esi
38
39 8b/-> *(ebp+0xc) 7/r32/edi
- 40
+ 40
41 8b/-> *esi 2/r32/edx
42 $array-equal?:lengths:
43
44 39/compare *edi 2/r32/edx
45 75/jump-if-!= $array-equal?:false/disp8
- 46
+ 46
47 81 0/subop/add %esi 4/imm32
- 48
+ 48
49 81 0/subop/add %edi 4/imm32
- 50
+ 50
51 31/xor %ecx 1/r32/ecx
- 52
- 53
+ 52
+ 53
54 $array-equal?:loop:
55
56 39/compare %ecx 2/r32/edx
57 7d/jump-if->= $array-equal?:true/disp8
- 58
+ 58
59 8b/-> *esi 0/r32/eax
- 60
+ 60
61 8b/-> *edi 3/r32/ebx
62
63 39/compare %eax 3/r32/ebx
@@ -150,10 +150,10 @@ if ('onhashchange' in window) {
90
91 55/push-ebp
92 89/<- %ebp 4/r32/esp
- 93
+ 93
94 68/push 0/imm32/size
95 89/<- %ecx 4/r32/esp
- 96
+ 96
97 68/push 0/imm32/size
98 89/<- %edx 4/r32/esp
99
@@ -182,11 +182,11 @@ if ('onhashchange' in window) {
122
123 55/push-ebp
124 89/<- %ebp 4/r32/esp
-125
+125
126 68/push 1/imm32
127 68/push 4/imm32/size
128 89/<- %ecx 4/r32/esp
-129
+129
130 68/push 0/imm32/size
131 89/<- %edx 4/r32/esp
132
@@ -215,13 +215,13 @@ if ('onhashchange' in window) {
155
156 55/push-ebp
157 89/<- %ebp 4/r32/esp
-158
+158
159 68/push 3/imm32
160 68/push 2/imm32
161 68/push 1/imm32
162 68/push 0xc/imm32/size
163 89/<- %ecx 4/r32/esp
-164
+164
165 68/push 3/imm32
166 68/push 2/imm32
167 68/push 1/imm32
@@ -253,13 +253,13 @@ if ('onhashchange' in window) {
193
194 55/push-ebp
195 89/<- %ebp 4/r32/esp
-196
+196
197 68/push 3/imm32
198 68/push 4/imm32
199 68/push 1/imm32
200 68/push 0xc/imm32/size
201 89/<- %ecx 4/r32/esp
-202
+202
203 68/push 3/imm32
204 68/push 2/imm32
205 68/push 1/imm32
@@ -287,7 +287,7 @@ if ('onhashchange' in window) {
227 5d/pop-to-ebp
228 c3/return
229
-230 parse-array-of-ints:
+230 parse-array-of-ints:
231
232
233
@@ -300,7 +300,7 @@ if ('onhashchange' in window) {
240
241
242
-243
+243
244
245
246
@@ -323,14 +323,14 @@ if ('onhashchange' in window) {
263 57/push-edi
264
265 8b/-> *(ebp+0xc) 6/r32/esi
-266
+266
267 8d/copy-address *(esi+4) 1/r32/ecx
-268
+268
269
270 8b/-> *esi 2/r32/edx
271
272 01/add %edx 1/r32/ecx
-273
+273
274 31/xor %ebx 3/r32/ebx
275 $parse-array-of-ints:loop1:
276
@@ -367,7 +367,7 @@ if ('onhashchange' in window) {
307 81 0/subop/add %ebx 4/imm32
308 eb/jump $parse-array-of-ints:loop1/disp8
309 $parse-array-of-ints:break1:
-310
+310
311
312
313 89/<- %eax 3/r32/ebx
@@ -383,12 +383,12 @@ if ('onhashchange' in window) {
323
324 89/<- *eax 3/r32/ebx
325 $parse-array-of-ints:pass2:
-326
+326
327 68/push 0/imm32/end
328 8d/copy-address *(esi+4) 1/r32/ecx
329 51/push-ecx
330 89/<- %ecx 4/r32/esp
-331
+331
332 8d/copy-address *(eax+4) 3/r32/ebx
333 $parse-array-of-ints:loop2:
334
@@ -458,7 +458,7 @@ if ('onhashchange' in window) {
398
399 55/push-ebp
400 89/<- %ebp 4/r32/esp
-401
+401
402 68/push 3/imm32
403 68/push 2/imm32
404 68/push 1/imm32
@@ -552,7 +552,7 @@ if ('onhashchange' in window) {
492
493 55/push-ebp
494 89/<- %ebp 4/r32/esp
-495
+495
496 68/push 3/imm32
497 68/push 2/imm32
498 68/push 1/imm32
@@ -590,13 +590,13 @@ if ('onhashchange' in window) {
530
531
532
-533 check-array-equal:
+533 check-array-equal:
534
535 55/push-ebp
536 89/<- %ebp 4/r32/esp
537
538 50/push-eax
-539
+539
540
541
542 ff 6/subop/push *(ebp+0xc)
@@ -636,7 +636,7 @@ if ('onhashchange' in window) {
576
577 55/push-ebp
578 89/<- %ebp 4/r32/esp
-579
+579
580 68/push 3/imm32
581 68/push 2/imm32
582 68/push 1/imm32
diff --git a/html/apps/assort.subx.html b/html/apps/assort.subx.html
index 662db279..6f2c21bd 100644
--- a/html/apps/assort.subx.html
+++ b/html/apps/assort.subx.html
@@ -122,7 +122,7 @@ if ('onhashchange' in window) {
60 eb/jump $subx-assort-main:end/disp8
61 $subx-assort-main:interactive:
62
- 63
+ 63
64 81 5/subop/subtract 3/mod/direct 4/rm32/esp . . . . . 8/imm32
65 89/copy 3/mod/direct 0/rm32/eax . . . 4/r32/esp . .
66
@@ -148,9 +148,9 @@ if ('onhashchange' in window) {
86
87
88
- 89 subx-assort:
+ 89 subx-assort:
90
- 91
+ 91
92
93
94
@@ -159,7 +159,7 @@ if ('onhashchange' in window) {
97 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
98
99 51/push-ecx
-100
+100
101 81 5/subop/subtract 3/mod/direct 4/rm32/esp . . . . . 0x50/imm32
102 68/push 0x50/imm32/length
103 68/push 0/imm32/read
@@ -467,10 +467,10 @@ if ('onhashchange' in window) {
453
454
455
-456 read-segments:
+456 read-segments:
457
-458
-459
+458
+459
460
461
462
@@ -510,13 +510,13 @@ if ('onhashchange' in window) {
496 52/push-edx
497 53/push-ebx
498 56/push-esi
-499
+499
500 81 5/subop/subtract 3/mod/direct 4/rm32/esp . . . . . 0x200/imm32
501 68/push 0x200/imm32/length
502 68/push 0/imm32/read
503 68/push 0/imm32/write
504 89/copy 3/mod/direct 1/rm32/ecx . . . 4/r32/esp . .
-505
+505
506 68/push 0/imm32/end
507 68/push 0/imm32/start
508 89/copy 3/mod/direct 2/rm32/edx . . . 4/r32/esp . .
@@ -565,9 +565,9 @@ if ('onhashchange' in window) {
591 $read-segments:check-for-comment:
592 +-- 9 lines: #? # print("check for comment\n") ----------------------------------------------------------------------------------------------------------
601
-602
+602
603 8b/copy 0/mod/indirect 2/rm32/edx . . . 6/r32/esi . .
-604
+604
605 31/xor 3/mod/direct 0/rm32/eax . . . 0/r32/eax . .
606 8a/copy-byte 0/mod/indirect 6/rm32/esi . . . 0/r32/AL . .
607
@@ -597,7 +597,7 @@ if ('onhashchange' in window) {
678
679 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 8/imm32
680 +-- 40 lines: #? # dump segment name ---------------------------------------------------------------------------------------------------------------------
-720
+720
721
722 68/push 8/imm32/row-size
723 52/push-edx
@@ -606,7 +606,7 @@ if ('onhashchange' in window) {
726 e8/call leaky-get-or-insert-slice/disp32
727
728 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 0xc/imm32
-729
+729
730 8b/copy 0/mod/indirect 0/rm32/eax . . . 3/r32/ebx . .
731
732 81 7/subop/compare 3/mod/direct 3/rm32/ebx . . . . . 0/imm32
@@ -667,7 +667,7 @@ if ('onhashchange' in window) {
843 5d/pop-to-ebp
844 c3/return
845
-846 write-segments:
+846 write-segments:
847
848
849
@@ -686,17 +686,17 @@ if ('onhashchange' in window) {
862 56/push-esi
863
864 8b/copy 1/mod/*+disp8 5/rm32/ebp . . . 6/r32/esi 0xc/disp8 .
-865
+865
866 8b/copy 0/mod/indirect 6/rm32/esi . . . 2/r32/edx . .
-867
+867
868 81 0/subop/add 3/mod/direct 6/rm32/esi . . . . . 0xc/imm32
-869
+869
870 01/add 3/mod/direct 2/rm32/edx . . . 6/r32/esi . .
871 $write-segments:loop:
872
873 39/compare 3/mod/direct 6/rm32/esi . . . 2/r32/edx . .
874 73/jump-if-addr>= $write-segments:break/disp8
-875
+875
876 8b/copy 1/mod/*+disp8 6/rm32/esi . . . 0/r32/eax 4/disp8 .
877
878
diff --git a/html/apps/braces.subx.html b/html/apps/braces.subx.html
index bc8eb925..28d0515e 100644
--- a/html/apps/braces.subx.html
+++ b/html/apps/braces.subx.html
@@ -134,11 +134,11 @@ if ('onhashchange' in window) {
75 b8/copy-to-eax 1/imm32/exit
76 cd/syscall 0x80/imm8
77
- 78 subx-braces:
+ 78 subx-braces:
79
- 80
- 81
- 82
+ 80
+ 81
+ 82
83
84
85
@@ -154,7 +154,7 @@ if ('onhashchange' in window) {
95
96
97
- 98
+ 98
99
100
101
@@ -182,20 +182,20 @@ if ('onhashchange' in window) {
123 57/push-edi
124
125 8b/-> *(ebp+8) 6/r32/esi
-126
+126
127 81 5/subop/subtract %esp 0x200/imm32
128 68/push 0x200/imm32/length
129 68/push 0/imm32/read
130 68/push 0/imm32/write
131 89/<- %ecx 4/r32/esp
-132
+132
133 81 5/subop/subtract %esp 0x80/imm32
134 68/push 0x80/imm32/length
135 68/push 0/imm32/top
136 89/<- %edx 4/r32/esp
-137
+137
138 c7 0/subop/copy %ebx 1/imm32
-139
+139
140 68/push 0/imm32/end
141 68/push 0/imm32/start
142 89/<- %edi 4/r32/esp
diff --git a/html/apps/calls.subx.html b/html/apps/calls.subx.html
index 149ef8c7..e23c2d8b 100644
--- a/html/apps/calls.subx.html
+++ b/html/apps/calls.subx.html
@@ -136,10 +136,10 @@ if ('onhashchange' in window) {
75 b8/copy-to-eax 1/imm32/exit
76 cd/syscall 0x80/imm8
77
- 78 subx-calls:
+ 78 subx-calls:
79
- 80
- 81
+ 80
+ 81
82
83
84
@@ -166,13 +166,13 @@ if ('onhashchange' in window) {
105 51/push-ecx
106 52/push-edx
107 56/push-esi
- 108
+ 108
109 81 5/subop/subtract %esp 0x200/imm32
110 68/push 0x200/imm32/length
111 68/push 0/imm32/read
112 68/push 0/imm32/write
113 89/<- %esi 4/r32/esp
- 114
+ 114
115 81 5/subop/subtract %esp 0x80/imm32
116 68/push 0x80/imm32/length
117 68/push 0/imm32/read
@@ -293,9 +293,9 @@ if ('onhashchange' in window) {
232 5d/pop-to-ebp
233 c3/return
234
- 235 parse-line:
+ 235 parse-line:
236
- 237
+ 237
238
239
240
@@ -308,7 +308,7 @@ if ('onhashchange' in window) {
247 89/<- %ebp 4/r32/esp
248
249 51/push-ecx
- 250
+ 250
251 68/push 0/imm32/end
252 68/push 0/imm32/start
253 89/<- %ecx 4/r32/esp
@@ -363,7 +363,7 @@ if ('onhashchange' in window) {
341 5d/pop-to-ebp
342 c3/return
343
- 344 emit-call:
+ 344 emit-call:
345
346
347
@@ -404,9 +404,9 @@ if ('onhashchange' in window) {
382 8b/-> *esi 1/r32/ecx
383 81 5/subop/subtract %ecx 8/imm32
384 0f 8c/jump-if-< $emit-call:error1/disp32
- 385
+ 385
386 8d/copy-address *(esi+ecx+0xc) 1/r32/ecx
- 387
+ 387
388 8d/copy-address *(esi+0xc) 2/r32/edx
389
390 $emit-call:push-loop:
@@ -414,9 +414,9 @@ if ('onhashchange' in window) {
392 39/compare %ecx 2/r32/edx
393 0f 8e/jump-if-<= $emit-call:call-instruction/disp32
394
- 395
+ 395
396 8b/-> *ecx 0/r32/eax
- 397
+ 397
398 8b/-> *eax 0/r32/eax
399 81 4/subop/and %eax 0xff/imm32
400
@@ -732,7 +732,7 @@ if ('onhashchange' in window) {
742 5d/pop-to-ebp
743 c3/return
744
- 745 next-word-string-or-expression-without-metadata:
+ 745 next-word-string-or-expression-without-metadata:
746
747
748
@@ -821,7 +821,7 @@ if ('onhashchange' in window) {
831 8d/copy-address *(esi+ecx+0xc) 0/r32/eax
832 89/<- *edi 0/r32/eax
833
- 834
+ 834
835 31/xor %eax 0/r32/eax
836 8a/copy-byte *(esi+ecx+0xc) 0/r32/AL
837
@@ -1182,7 +1182,7 @@ if ('onhashchange' in window) {
1192 e8/call clear-stream/disp32
1193
1194 81 0/subop/add %esp 4/imm32
-1195
+1195
1196 68/push 0/imm32/end
1197 68/push 0/imm32/start
1198 89/<- %ecx 4/r32/esp
@@ -1255,7 +1255,7 @@ if ('onhashchange' in window) {
1265 e8/call clear-stream/disp32
1266
1267 81 0/subop/add %esp 4/imm32
-1268
+1268
1269 68/push 0/imm32/end
1270 68/push 0/imm32/start
1271 89/<- %ecx 4/r32/esp
@@ -1328,7 +1328,7 @@ if ('onhashchange' in window) {
1338 e8/call clear-stream/disp32
1339
1340 81 0/subop/add %esp 4/imm32
-1341
+1341
1342 68/push 0/imm32/end
1343 68/push 0/imm32/start
1344 89/<- %ecx 4/r32/esp
@@ -1370,7 +1370,7 @@ if ('onhashchange' in window) {
1380 e8/call clear-stream/disp32
1381
1382 81 0/subop/add %esp 4/imm32
-1383
+1383
1384 68/push 0/imm32/end
1385 68/push 0/imm32/start
1386 89/<- %ecx 4/r32/esp
@@ -1433,7 +1433,7 @@ if ('onhashchange' in window) {
1443 e8/call clear-stream/disp32
1444
1445 81 0/subop/add %esp 4/imm32
-1446
+1446
1447 68/push 0/imm32/end
1448 68/push 0/imm32/start
1449 89/<- %ecx 4/r32/esp
@@ -1496,7 +1496,7 @@ if ('onhashchange' in window) {
1506 e8/call clear-stream/disp32
1507
1508 81 0/subop/add %esp 4/imm32
-1509
+1509
1510 68/push 0/imm32/end
1511 68/push 0/imm32/start
1512 89/<- %ecx 4/r32/esp
@@ -1559,7 +1559,7 @@ if ('onhashchange' in window) {
1569 e8/call clear-stream/disp32
1570
1571 81 0/subop/add %esp 4/imm32
-1572
+1572
1573 68/push 0/imm32/end
1574 68/push 0/imm32/start
1575 89/<- %ecx 4/r32/esp
@@ -1614,7 +1614,7 @@ if ('onhashchange' in window) {
1624 e8/call clear-stream/disp32
1625
1626 81 0/subop/add %esp 4/imm32
-1627
+1627
1628 68/push 0/imm32/end
1629 68/push 0/imm32/start
1630 89/<- %ecx 4/r32/esp
@@ -1669,7 +1669,7 @@ if ('onhashchange' in window) {
1679 e8/call clear-stream/disp32
1680
1681 81 0/subop/add %esp 4/imm32
-1682
+1682
1683 68/push 0/imm32/end
1684 68/push 0/imm32/start
1685 89/<- %ecx 4/r32/esp
@@ -1724,7 +1724,7 @@ if ('onhashchange' in window) {
1734 e8/call clear-stream/disp32
1735
1736 81 0/subop/add %esp 4/imm32
-1737
+1737
1738 68/push 0/imm32/end
1739 68/push 0/imm32/start
1740 89/<- %ecx 4/r32/esp
diff --git a/html/apps/crenshaw2-1.subx.html b/html/apps/crenshaw2-1.subx.html
index e42c901c..3f26523a 100644
--- a/html/apps/crenshaw2-1.subx.html
+++ b/html/apps/crenshaw2-1.subx.html
@@ -128,7 +128,7 @@ if ('onhashchange' in window) {
67 eb/jump $main:end/disp8
68 $run-main:
69
- 70
+ 70
71 81 5/subop/subtract 3/mod/direct 4/rm32/esp . . . . . 8/imm32
72 89/copy 3/mod/direct 0/rm32/eax . . . 4/r32/esp . .
73
@@ -151,7 +151,7 @@ if ('onhashchange' in window) {
90 cd/syscall 0x80/imm8
91
92
- 93 compile:
+ 93 compile:
94
95 55/push-ebp
96 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
@@ -166,7 +166,7 @@ if ('onhashchange' in window) {
105 e8/call get-char/disp32
106
107 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 4/imm32
-108
+108
109
110
111
@@ -252,7 +252,7 @@ if ('onhashchange' in window) {
191
192
193
-194 get-num:
+194 get-num:
195
196
197
@@ -400,7 +400,7 @@ if ('onhashchange' in window) {
339
340 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 8/imm32
341
-342
+342
343 81 5/subop/subtract 3/mod/direct 4/rm32/esp . . . . . 8/imm32
344 89/copy 3/mod/direct 0/rm32/eax . . . 4/r32/esp . .
345
@@ -489,7 +489,7 @@ if ('onhashchange' in window) {
428
429 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 8/imm32
430
-431
+431
432 81 5/subop/subtract 3/mod/direct 4/rm32/esp . . . . . 8/imm32
433 89/copy 3/mod/direct 0/rm32/eax . . . 4/r32/esp . .
434
@@ -531,7 +531,7 @@ if ('onhashchange' in window) {
470
471
472
-473 expected:
+473 expected:
474
475 55/push-ebp
476 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
@@ -573,7 +573,7 @@ if ('onhashchange' in window) {
512 c3/return
513
514
-515 get-char:
+515 get-char:
516
517 55/push-ebp
518 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
@@ -596,7 +596,7 @@ if ('onhashchange' in window) {
535 5d/pop-to-ebp
536 c3/return
537
-538 is-digit?:
+538 is-digit?:
539
540 55/push-ebp
541 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
diff --git a/html/apps/crenshaw2-1b.subx.html b/html/apps/crenshaw2-1b.subx.html
index ae74e982..c4022fd8 100644
--- a/html/apps/crenshaw2-1b.subx.html
+++ b/html/apps/crenshaw2-1b.subx.html
@@ -128,7 +128,7 @@ if ('onhashchange' in window) {
67 eb/jump $main:end/disp8
68 $run-main:
69
- 70
+ 70
71 81 5/subop/subtract 3/mod/direct 4/rm32/esp . . . . . 8/imm32
72 89/copy 3/mod/direct 0/rm32/eax . . . 4/r32/esp . .
73
@@ -151,7 +151,7 @@ if ('onhashchange' in window) {
90 cd/syscall 0x80/imm8
91
92
- 93 compile:
+ 93 compile:
94
95 55/push-ebp
96 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
@@ -166,7 +166,7 @@ if ('onhashchange' in window) {
105 e8/call get-char/disp32
106
107 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 4/imm32
-108
+108
109
110
111
@@ -252,7 +252,7 @@ if ('onhashchange' in window) {
191
192
193
-194 get-num:
+194 get-num:
195
196
197
@@ -416,7 +416,7 @@ if ('onhashchange' in window) {
355
356 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 8/imm32
357
-358
+358
359 81 5/subop/subtract 3/mod/direct 4/rm32/esp . . . . . 8/imm32
360 89/copy 3/mod/direct 0/rm32/eax . . . 4/r32/esp . .
361
@@ -505,7 +505,7 @@ if ('onhashchange' in window) {
444
445 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 8/imm32
446
-447
+447
448 81 5/subop/subtract 3/mod/direct 4/rm32/esp . . . . . 8/imm32
449 89/copy 3/mod/direct 0/rm32/eax . . . 4/r32/esp . .
450
@@ -588,7 +588,7 @@ if ('onhashchange' in window) {
527
528 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 8/imm32
529
-530
+530
531 81 5/subop/subtract 3/mod/direct 4/rm32/esp . . . . . 8/imm32
532 89/copy 3/mod/direct 0/rm32/eax . . . 4/r32/esp . .
533
@@ -677,7 +677,7 @@ if ('onhashchange' in window) {
616
617 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 8/imm32
618
-619
+619
620 81 5/subop/subtract 3/mod/direct 4/rm32/esp . . . . . 8/imm32
621 89/copy 3/mod/direct 0/rm32/eax . . . 4/r32/esp . .
622
@@ -725,7 +725,7 @@ if ('onhashchange' in window) {
664
665
666
-667 expected:
+667 expected:
668
669 55/push-ebp
670 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
@@ -767,7 +767,7 @@ if ('onhashchange' in window) {
706 c3/return
707
708
-709 get-char:
+709 get-char:
710
711 55/push-ebp
712 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
@@ -790,7 +790,7 @@ if ('onhashchange' in window) {
729 5d/pop-to-ebp
730 c3/return
731
-732 is-digit?:
+732 is-digit?:
733
734 55/push-ebp
735 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
diff --git a/html/apps/dquotes.subx.html b/html/apps/dquotes.subx.html
index 71ed40a3..aeefeaf7 100644
--- a/html/apps/dquotes.subx.html
+++ b/html/apps/dquotes.subx.html
@@ -119,7 +119,7 @@ if ('onhashchange' in window) {
56 eb/jump $subx-dquotes-main:end/disp8
57 $subx-dquotes-main:interactive:
58
- 59
+ 59
60 81 5/subop/subtract 3/mod/direct 4/rm32/esp . . . . . 8/imm32
61 89/copy 3/mod/direct 0/rm32/eax . . . 4/r32/esp . .
62
@@ -145,10 +145,10 @@ if ('onhashchange' in window) {
82
83
84
- 85 subx-dquotes:
+ 85 subx-dquotes:
86
- 87
- 88
+ 87
+ 88
89
90
91
@@ -188,13 +188,13 @@ if ('onhashchange' in window) {
125 53/push-ebx
126 56/push-esi
127 57/push-edi
- 128
+ 128
129 81 5/subop/subtract 3/mod/direct 4/rm32/esp . . . . . 0x200/imm32
130 68/push 0x200/imm32/length
131 68/push 0/imm32/read
132 68/push 0/imm32/write
133 89/copy 3/mod/direct 1/rm32/ecx . . . 4/r32/esp . .
- 134
+ 134
135 68/push 0/imm32/end
136 68/push 0/imm32/start
137 89/copy 3/mod/direct 2/rm32/edx . . . 4/r32/esp . .
@@ -261,9 +261,9 @@ if ('onhashchange' in window) {
198 0f 85/jump-if-!= $subx-dquotes:next-line/disp32
199 $subx-dquotes:check-for-comment:
200
- 201
+ 201
202 8b/copy 0/mod/indirect 2/rm32/edx . . . 6/r32/esi . .
- 203
+ 203
204 31/xor 3/mod/direct 0/rm32/eax . . . 0/r32/eax . .
205 8a/copy-byte 0/mod/indirect 6/rm32/esi . . . 0/r32/AL . .
206
@@ -350,7 +350,7 @@ if ('onhashchange' in window) {
287
288
289
- 290 process-string-literal:
+ 290 process-string-literal:
291
292
293
@@ -363,7 +363,7 @@ if ('onhashchange' in window) {
300 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
301
302 51/push-ecx
- 303
+ 303
304 81 5/subop/subtract 3/mod/direct 4/rm32/esp . . . . . 0xa/imm32
305 68/push 0xa/imm32/decimal-digits-in-32bit-number
306 68/push 0/imm32/read
@@ -852,7 +852,7 @@ if ('onhashchange' in window) {
846 c3/return
847
848
- 849 emit-string-literal-data:
+ 849 emit-string-literal-data:
850
851
852
@@ -891,14 +891,14 @@ if ('onhashchange' in window) {
885 56/push-esi
886
887 8b/copy 1/mod/*+disp8 5/rm32/ebp . . . 6/r32/esi 0xc/disp8 .
- 888
+ 888
889 31/xor 3/mod/direct 3/rm32/ebx . . . 3/r32/ebx . .
- 890
+ 890
891 8b/copy 0/mod/indirect 6/rm32/esi . . . 2/r32/edx . .
- 892
+ 892
893 8b/copy 1/mod/*+disp8 6/rm32/esi . . . 6/r32/esi 4/disp8 .
894 $emit-string-literal-data:emit-length:
- 895
+ 895
896
897 56/push-esi
898 52/push-edx
@@ -926,7 +926,7 @@ if ('onhashchange' in window) {
920 $emit-string-literal-data:loop-init:
921
922 42/increment-edx
- 923
+ 923
924 31/xor 3/mod/direct 1/rm32/ecx . . . 1/r32/ecx . .
925 $emit-string-literal-data:loop:
926
@@ -961,7 +961,7 @@ if ('onhashchange' in window) {
955
956 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 8/imm32
957
- 958
+ 958
959
960 51/push-ecx
961
@@ -1027,7 +1027,7 @@ if ('onhashchange' in window) {
1021 5d/pop-to-ebp
1022 c3/return
1023
-1024 is-alphanumeric?:
+1024 is-alphanumeric?:
1025
1026 55/push-ebp
1027 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
@@ -1260,9 +1260,9 @@ if ('onhashchange' in window) {
1379 c3/return
1380
1381
-1382 emit-metadata:
+1382 emit-metadata:
1383
-1384
+1384
1385
1386
1387
@@ -1287,11 +1287,11 @@ if ('onhashchange' in window) {
1406 56/push-esi
1407
1408 8b/copy 1/mod/*+disp8 5/rm32/ebp . . . 6/r32/esi 0xc/disp8 .
-1409
+1409
1410 8b/copy 0/mod/indirect 6/rm32/esi . . . 1/r32/ecx . .
-1411
+1411
1412 8b/copy 1/mod/*+disp8 6/rm32/esi . . . 2/r32/edx 4/disp8 .
-1413
+1413
1414 52/push-edx
1415 68/push 0/imm32
1416 89/copy 3/mod/direct 3/rm32/ebx . . . 4/r32/esp . .
@@ -1634,7 +1634,7 @@ if ('onhashchange' in window) {
1778 5d/pop-to-ebp
1779 c3/return
1780
-1781 string-length-at-start-of-slice:
+1781 string-length-at-start-of-slice:
1782
1783 55/push-ebp
1784 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
@@ -1646,9 +1646,9 @@ if ('onhashchange' in window) {
1790 8b/copy 1/mod/*+disp8 5/rm32/ebp . . 1/r32/ecx 8/disp8 .
1791
1792 8b/copy 1/mod/*+disp8 5/rm32/ebp . . 2/r32/edx 0xc/disp8 .
-1793
+1793
1794 31/xor 3/mod/direct 0/rm32/eax . . . 0/r32/eax . .
-1795
+1795
1796 31/xor 3/mod/direct 3/rm32/ebx . . . 3/r32/ebx . .
1797
1798 41/increment-ecx
diff --git a/html/apps/ex10.subx.html b/html/apps/ex10.subx.html
index 79fbfc5c..d12a00cf 100644
--- a/html/apps/ex10.subx.html
+++ b/html/apps/ex10.subx.html
@@ -92,7 +92,7 @@ if ('onhashchange' in window) {
33
34
35
-36 argv-equal:
+36 argv-equal:
37
38 8b/copy 1/mod/*+disp8 4/rm32/sib 4/base/esp 4/index/none . 1/r32/ecx 4/disp8 .
39 8b/copy 1/mod/*+disp8 4/rm32/sib 4/base/esp 4/index/none . 2/r32/edx 8/disp8 .
diff --git a/html/apps/ex11.subx.html b/html/apps/ex11.subx.html
index d9c64f2a..ca69cdaa 100644
--- a/html/apps/ex11.subx.html
+++ b/html/apps/ex11.subx.html
@@ -89,7 +89,7 @@ if ('onhashchange' in window) {
27
28
29
- 30 kernel-string-equal?:
+ 30 kernel-string-equal?:
31
32
33
@@ -320,7 +320,7 @@ if ('onhashchange' in window) {
258
259
260
-261 check-ints-equal:
+261 check-ints-equal:
262
263 55/push-ebp
264 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
@@ -369,7 +369,7 @@ if ('onhashchange' in window) {
307 5d/pop-to-ebp
308 c3/return
309
-310 write-stderr:
+310 write-stderr:
311
312 55/push-ebp
313 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
diff --git a/html/apps/ex8.subx.html b/html/apps/ex8.subx.html
index df27c764..4055c3f0 100644
--- a/html/apps/ex8.subx.html
+++ b/html/apps/ex8.subx.html
@@ -93,7 +93,7 @@ if ('onhashchange' in window) {
34 89/copy 3/mod/direct 3/rm32/ebx . . . 0/r32/eax . .
35 e8/call syscall_exit/disp32
36
-37 ascii-length:
+37 ascii-length:
38
39 8b/copy 1/mod/*+disp8 4/rm32/sib 4/base/esp 4/index/none . 2/r32/edx 4/disp8 .
40
diff --git a/html/apps/ex9.subx.html b/html/apps/ex9.subx.html
index bddb6ff0..3558ac1c 100644
--- a/html/apps/ex9.subx.html
+++ b/html/apps/ex9.subx.html
@@ -96,7 +96,7 @@ if ('onhashchange' in window) {
38 89/copy 3/mod/direct 3/rm32/ebx . . . 0/r32/eax . .
39 e8/call syscall_exit/disp32
40
-41 ascii-difference:
+41 ascii-difference:
42
43 8b/copy 1/mod/*+disp8 4/rm32/sib 4/base/esp 4/index/none 0/r32/eax 4/disp8 .
44 8b/copy 0/mod/indirect 0/rm32/eax . . . 0/r32/eax . .
diff --git a/html/apps/factorial.subx.html b/html/apps/factorial.subx.html
index 5aa74fc5..8c637957 100644
--- a/html/apps/factorial.subx.html
+++ b/html/apps/factorial.subx.html
@@ -129,7 +129,7 @@ if ('onhashchange' in window) {
68 b8/copy-to-eax 1/imm32/exit
69 cd/syscall 0x80/imm8
70
- 71 factorial:
+ 71 factorial:
72
73 55/push-ebp
74 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
@@ -138,10 +138,10 @@ if ('onhashchange' in window) {
77 b8/copy-to-eax 1/imm32
78 81 7/subop/compare 1/mod/*+disp8 5/rm32/ebp . . . . 8/disp8 1/imm32
79 7e/jump-if-<= $factorial:end/disp8
- 80
+ 80
81 8b/copy 1/mod/*+disp8 5/rm32/ebp . . 3/r32/ebx 8/disp8 .
82 4b/decrement-ebx
- 83
+ 83
84
85 53/push-ebx
86
diff --git a/html/apps/factorial2.subx.html b/html/apps/factorial2.subx.html
index fa0eb720..4d59c774 100644
--- a/html/apps/factorial2.subx.html
+++ b/html/apps/factorial2.subx.html
@@ -128,7 +128,7 @@ if ('onhashchange' in window) {
68 b8/copy-to-eax 1/imm32/exit
69 cd/syscall 0x80/imm8
70
- 71 factorial:
+ 71 factorial:
72
73 55/push-ebp
74 89/<- %ebp 4/r32/esp
@@ -137,10 +137,10 @@ if ('onhashchange' in window) {
77 b8/copy-to-eax 1/imm32
78 81 7/subop/compare *(ebp+8) 1/imm32
79 7e/jump-if-<= $factorial:end/disp8
- 80
+ 80
81 8b/-> *(ebp+8) 3/r32/ebx
82 4b/decrement-ebx
- 83
+ 83
84
85 53/push-ebx
86
diff --git a/html/apps/factorial3.subx.html b/html/apps/factorial3.subx.html
index 7b7cefe3..7ad4a9fd 100644
--- a/html/apps/factorial3.subx.html
+++ b/html/apps/factorial3.subx.html
@@ -108,7 +108,7 @@ if ('onhashchange' in window) {
49 b8/copy-to-eax 1/imm32/exit
50 cd/syscall 0x80/imm8
51
-52 factorial:
+52 factorial:
53
54 55/push-ebp
55 89/<- %ebp 4/r32/esp
@@ -118,7 +118,7 @@ if ('onhashchange' in window) {
59 b8/copy-to-eax 1/imm32
60 81 7/subop/compare *(ebp+8) 1/imm32
61 7e/jump-if-<= $factorial:end/disp8
-62
+62
63 8b/-> *(ebp+8) 3/r32/ebx
64 4b/decrement-ebx
65
diff --git a/html/apps/factorial4.subx.html b/html/apps/factorial4.subx.html
index db3331d9..8759c2f9 100644
--- a/html/apps/factorial4.subx.html
+++ b/html/apps/factorial4.subx.html
@@ -114,7 +114,7 @@ if ('onhashchange' in window) {
55 b8/copy-to-eax 1/imm32/exit
56 cd/syscall 0x80/imm8
57
-58 factorial:
+58 factorial:
59
60 55/push-ebp
61 89/<- %ebp 4/r32/esp
@@ -129,7 +129,7 @@ if ('onhashchange' in window) {
70
71 {
72 7e/jump-if-<= break/disp8
-73
+73
74 8b/-> *(ebp+8) 3/r32/ebx
75 4b/decrement-ebx
76 (factorial %ebx)
diff --git a/html/apps/handle.subx.html b/html/apps/handle.subx.html
index a3489f99..fc0ce1a8 100644
--- a/html/apps/handle.subx.html
+++ b/html/apps/handle.subx.html
@@ -107,7 +107,7 @@ if ('onhashchange' in window) {
44 b8/copy-to-eax 1/imm32/exit
45 cd/syscall 0x80/imm8
46
- 47 new:
+ 47 new:
48
49 55/push-ebp
50 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
@@ -118,7 +118,7 @@ if ('onhashchange' in window) {
55
56 8b/copy 1/mod/*+disp8 5/rm32/ebp . . . 1/r32/ecx 0xc/disp8 .
57 81 0/subop/add 3/mod/direct 1/rm32/ecx . . . . . 4/imm32
- 58
+ 58
59
60 51/push-ecx
61 ff 6/subop/push 1/mod/*+disp8 5/rm32/ebp . . . . 8/disp8 .
@@ -159,7 +159,7 @@ if ('onhashchange' in window) {
96
97 55/push-ebp
98 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
- 99
+ 99
100 68/push 0/imm32/limit
101 68/push 0/imm32/curr
102 89/copy 3/mod/direct 2/rm32/edx . . . 4/r32/esp . .
@@ -173,7 +173,7 @@ if ('onhashchange' in window) {
110 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 8/imm32
111
112 c7 0/subop/copy 0/mod/indirect 5/rm32/.disp32 . . . Next-alloc-id/disp32 0x34/imm32
-113
+113
114 68/push 0/imm32/address
115 68/push 0/imm32/alloc-id
116 89/copy 3/mod/direct 1/rm32/ecx . . . 4/r32/esp . .
@@ -229,7 +229,7 @@ if ('onhashchange' in window) {
166
167 c7 0/subop/copy 0/mod/indirect 5/rm32/.disp32 . . . Next-alloc-id/disp32 0x34/imm32
168
-169
+169
170 68/push 0x10/imm32/limit
171 68/push 0x10/imm32/curr
172 89/copy 3/mod/direct 0/rm32/eax . . . 4/r32/esp . .
@@ -284,7 +284,7 @@ if ('onhashchange' in window) {
221 5d/pop-to-ebp
222 c3/return
223
-224 lookup:
+224 lookup:
225
226 55/push-ebp
227 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
@@ -345,7 +345,7 @@ if ('onhashchange' in window) {
282 55/push-ebp
283 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
284
-285
+285
286 68/push 0/imm32/limit
287 68/push 0/imm32/curr
288 89/copy 3/mod/direct 3/rm32/ebx . . . 4/r32/esp . .
@@ -357,7 +357,7 @@ if ('onhashchange' in window) {
294 e8/call new-segment/disp32
295
296 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 8/imm32
-297
+297
298 68/push 0/imm32/address
299 68/push 0/imm32/alloc-id
300 89/copy 3/mod/direct 1/rm32/ecx . . . 4/r32/esp . .
@@ -413,7 +413,7 @@ if ('onhashchange' in window) {
350
351 55/push-ebp
352 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
-353
+353
354 68/push 0/imm32/limit
355 68/push 0/imm32/curr
356 89/copy 3/mod/direct 6/rm32/esi . . . 4/r32/esp . .
@@ -425,7 +425,7 @@ if ('onhashchange' in window) {
362 e8/call new-segment/disp32
363
364 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 8/imm32
-365
+365
366 68/push 0/imm32/address
367 68/push 0/imm32/alloc-id
368 89/copy 3/mod/direct 1/rm32/ecx . . . 4/r32/esp . .
@@ -444,7 +444,7 @@ if ('onhashchange' in window) {
381
382 89/copy 0/mod/indirect 6/rm32/esi . . . 3/r32/ebx . .
383
-384
+384
385 68/push 0/imm32/address
386 68/push 0/imm32/alloc-id
387 89/copy 3/mod/direct 2/rm32/edx . . . 4/r32/esp . .
diff --git a/html/apps/hex.subx.html b/html/apps/hex.subx.html
index 1ea0f352..f9dfea23 100644
--- a/html/apps/hex.subx.html
+++ b/html/apps/hex.subx.html
@@ -115,7 +115,7 @@ if ('onhashchange' in window) {
54 eb/jump $subx-hex-main:end/disp8
55 $subx-hex-main:interactive:
56
- 57
+ 57
58 81 5/subop/subtract 3/mod/direct 4/rm32/esp . . . . . 8/imm32
59 89/copy 3/mod/direct 0/rm32/eax . . . 4/r32/esp . .
60
@@ -138,7 +138,7 @@ if ('onhashchange' in window) {
77 cd/syscall 0x80/imm8
78
79
- 80 subx-hex:
+ 80 subx-hex:
81
82
83
@@ -196,7 +196,7 @@ if ('onhashchange' in window) {
135
136
137
- 138 convert-next-octet:
+ 138 convert-next-octet:
139
140
141
@@ -308,7 +308,7 @@ if ('onhashchange' in window) {
247
248 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 8/imm32
249
- 250
+ 250
251 81 5/subop/subtract 3/mod/direct 4/rm32/esp . . . . . 8/imm32
252 89/copy 3/mod/direct 1/rm32/ecx . . . 4/r32/esp . .
253
@@ -398,7 +398,7 @@ if ('onhashchange' in window) {
337 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 4/imm32
338
339
- 340
+ 340
341 81 5/subop/subtract 3/mod/direct 4/rm32/esp . . . . . 8/imm32
342 89/copy 3/mod/direct 1/rm32/ecx . . . 4/r32/esp . .
343
@@ -496,7 +496,7 @@ if ('onhashchange' in window) {
435
436 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 8/imm32
437
- 438
+ 438
439 81 5/subop/subtract 3/mod/direct 4/rm32/esp . . . . . 8/imm32
440 89/copy 3/mod/direct 1/rm32/ecx . . . 4/r32/esp . .
441
@@ -542,7 +542,7 @@ if ('onhashchange' in window) {
481
482
483
- 484 scan-next-byte:
+ 484 scan-next-byte:
485
486
487
@@ -665,7 +665,7 @@ if ('onhashchange' in window) {
604
605 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 8/imm32
606
- 607
+ 607
608 81 5/subop/subtract 3/mod/direct 4/rm32/esp . . . . . 8/imm32
609 89/copy 3/mod/direct 1/rm32/ecx . . . 4/r32/esp . .
610
@@ -763,7 +763,7 @@ if ('onhashchange' in window) {
702
703 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 8/imm32
704
- 705
+ 705
706 81 5/subop/subtract 3/mod/direct 4/rm32/esp . . . . . 8/imm32
707 89/copy 3/mod/direct 1/rm32/ecx . . . 4/r32/esp . .
708
@@ -869,7 +869,7 @@ if ('onhashchange' in window) {
808
809 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 8/imm32
810
- 811
+ 811
812 81 5/subop/subtract 3/mod/direct 4/rm32/esp . . . . . 8/imm32
813 89/copy 3/mod/direct 1/rm32/ecx . . . 4/r32/esp . .
814
@@ -975,7 +975,7 @@ if ('onhashchange' in window) {
914
915 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 8/imm32
916
- 917
+ 917
918 81 5/subop/subtract 3/mod/direct 4/rm32/esp . . . . . 8/imm32
919 89/copy 3/mod/direct 1/rm32/ecx . . . 4/r32/esp . .
920
@@ -1083,7 +1083,7 @@ if ('onhashchange' in window) {
1022
1023 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 8/imm32
1024
-1025
+1025
1026 81 5/subop/subtract 3/mod/direct 4/rm32/esp . . . . . 8/imm32
1027 89/copy 3/mod/direct 1/rm32/ecx . . . 4/r32/esp . .
1028
@@ -1181,7 +1181,7 @@ if ('onhashchange' in window) {
1120
1121 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 8/imm32
1122
-1123
+1123
1124 81 5/subop/subtract 3/mod/direct 4/rm32/esp . . . . . 8/imm32
1125 89/copy 3/mod/direct 1/rm32/ecx . . . 4/r32/esp . .
1126
@@ -1271,7 +1271,7 @@ if ('onhashchange' in window) {
1210 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 4/imm32
1211
1212
-1213
+1213
1214 81 5/subop/subtract 3/mod/direct 4/rm32/esp . . . . . 8/imm32
1215 89/copy 3/mod/direct 1/rm32/ecx . . . 4/r32/esp . .
1216
@@ -1369,7 +1369,7 @@ if ('onhashchange' in window) {
1308
1309 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 8/imm32
1310
-1311
+1311
1312 81 5/subop/subtract 3/mod/direct 4/rm32/esp . . . . . 8/imm32
1313 89/copy 3/mod/direct 1/rm32/ecx . . . 4/r32/esp . .
1314
@@ -1411,7 +1411,7 @@ if ('onhashchange' in window) {
1350 5d/pop-to-ebp
1351 c3/return
1352
-1353 skip-until-newline:
+1353 skip-until-newline:
1354
1355
1356
diff --git a/html/apps/mu.subx.html b/html/apps/mu.subx.html
index 78d6532b..5c360a39 100644
--- a/html/apps/mu.subx.html
+++ b/html/apps/mu.subx.html
@@ -132,12 +132,12 @@ if ('onhashchange' in window) {
70
71
72
- 73
+ 73
74
75
76
- 77
- 78
+ 77
+ 78
79
80
81
@@ -450,7 +450,7 @@ if ('onhashchange' in window) {
388 b8/copy-to-eax 1/imm32/exit
389 cd/syscall 0x80/imm8
390
- 391 convert-mu:
+ 391 convert-mu:
392
393 55/push-ebp
394 89/<- %ebp 4/r32/esp
@@ -979,11 +979,11 @@ if ('onhashchange' in window) {
962
963
964
- 965 parse-mu:
+ 965 parse-mu:
966
- 967
- 968
- 969
+ 967
+ 968
+ 969
970
971
972
@@ -994,8 +994,8 @@ if ('onhashchange' in window) {
977
978
979
- 980
- 981
+ 980
+ 981
982
983
984
@@ -1013,19 +1013,19 @@ if ('onhashchange' in window) {
996 52/push-edx
997 53/push-ebx
998 57/push-edi
- 999
+ 999
1000 81 5/subop/subtract %esp 0x200/imm32
1001 68/push 0x200/imm32/length
1002 68/push 0/imm32/read
1003 68/push 0/imm32/write
1004 89/<- %ecx 4/r32/esp
-1005
+1005
1006 68/push 0/imm32/end
1007 68/push 0/imm32/start
1008 89/<- %edx 4/r32/esp
-1009
+1009
1010 bf/copy-to-edi Program/imm32
-1011
+1011
1012 81 5/subop/subtract %esp 0x400/imm32
1013 68/push 0x400/imm32/length
1014 68/push 0/imm32/top
@@ -1057,7 +1057,7 @@ if ('onhashchange' in window) {
1045 (slice-equal? %edx "fn")
1046 3d/compare-eax-and 0/imm32
1047 0f 84/jump-if-= break/disp32
-1048
+1048
1049 (allocate Heap *Function-size)
1050 (zero-out %eax *Function-size)
1051 (clear-stack %ebx)
@@ -1118,17 +1118,17 @@ if ('onhashchange' in window) {
1106
1107
1108
-1109
-1110
+1109
+1110
1111
1112
-1113 populate-mu-function-header:
+1113 populate-mu-function-header:
1114
-1115
+1115
1116
1117
1118
-1119
+1119
1120
1121
1122
@@ -1136,7 +1136,7 @@ if ('onhashchange' in window) {
1124
1125
1126
-1127
+1127
1128
1129
1130
@@ -1147,7 +1147,7 @@ if ('onhashchange' in window) {
1135
1136
1137
-1138
+1138
1139
1140
1141
@@ -1163,7 +1163,7 @@ if ('onhashchange' in window) {
1151 57/push-edi
1152
1153 8b/-> *(ebp+0xc) 7/r32/edi
-1154
+1154
1155 68/push 0/imm32/end
1156 68/push 0/imm32/start
1157 89/<- %ecx 4/r32/esp
@@ -1205,7 +1205,7 @@ if ('onhashchange' in window) {
1193 (slice-equal? %ecx "}")
1194 3d/compare-eax-and 0/imm32
1195 0f 85/jump-if-!= $populate-mu-function-header:error1/disp32
-1196
+1196
1197 (parse-var-with-type %ecx *(ebp+8))
1198 89/<- %ebx 0/r32/eax
1199
@@ -1315,11 +1315,11 @@ if ('onhashchange' in window) {
1303
1304 (clear-stream _test-input-stream)
1305 (write _test-input-stream "foo n : int {\n")
-1306
+1306
1307 2b/subtract-> *Function-size 4/r32/esp
1308 89/<- %ecx 4/r32/esp
1309 (zero-out %ecx *Function-size)
-1310
+1310
1311 81 5/subop/subtract %esp 0x10/imm32
1312 68/push 0x10/imm32/length
1313 68/push 0/imm32/top
@@ -1328,9 +1328,9 @@ if ('onhashchange' in window) {
1316 (populate-mu-function-header _test-input-stream %ecx %ebx)
1317
1318 (check-strings-equal *ecx "foo" "F - test-function-header-with-arg/name")
-1319
+1319
1320 8b/-> *(ecx+8) 2/r32/edx
-1321
+1321
1322 8b/-> *edx 3/r32/ebx
1323 (check-strings-equal *ebx "n" "F - test-function-header-with-arg/inout:0")
1324 8b/-> *(ebx+4) 3/r32/ebx
@@ -1349,11 +1349,11 @@ if ('onhashchange' in window) {
1337
1338 (clear-stream _test-input-stream)
1339 (write _test-input-stream "foo a: int, b: int c: int {\n")
-1340
+1340
1341 2b/subtract-> *Function-size 4/r32/esp
1342 89/<- %ecx 4/r32/esp
1343 (zero-out %ecx *Function-size)
-1344
+1344
1345 81 5/subop/subtract %esp 0x10/imm32
1346 68/push 0x10/imm32/length
1347 68/push 0/imm32/top
@@ -1362,10 +1362,10 @@ if ('onhashchange' in window) {
1350 (populate-mu-function-header _test-input-stream %ecx %ebx)
1351
1352 (check-strings-equal *ecx "foo")
-1353
+1353
1354 8b/-> *(ecx+8) 2/r32/edx
1355 $test-function-header-with-multiple-args:inout0:
-1356
+1356
1357 8b/-> *edx 3/r32/ebx
1358 (check-strings-equal *ebx "a" "F - test-function-header-with-multiple-args/inout:0")
1359 8b/-> *(ebx+4) 3/r32/ebx
@@ -1401,12 +1401,12 @@ if ('onhashchange' in window) {
1389 89/<- %ebp 4/r32/esp
1390
1391 (clear-stream _test-input-stream)
-1392 (write _test-input-stream "foo a: int, b: int, c: int -> x/ecx: int y/edx : int {\n")
-1393
+1392 (write _test-input-stream "foo a: int, b: int, c: int -> x/ecx: int y/edx: int {\n")
+1393
1394 2b/subtract-> *Function-size 4/r32/esp
1395 89/<- %ecx 4/r32/esp
1396 (zero-out %ecx *Function-size)
-1397
+1397
1398 81 5/subop/subtract %esp 0x10/imm32
1399 68/push 0x10/imm32/length
1400 68/push 0/imm32/top
@@ -1415,9 +1415,9 @@ if ('onhashchange' in window) {
1403 (populate-mu-function-header _test-input-stream %ecx %ebx)
1404
1405 (check-strings-equal *ecx "foo")
-1406
+1406
1407 8b/-> *(ecx+8) 2/r32/edx
-1408
+1408
1409 8b/-> *edx 3/r32/ebx
1410 (check-strings-equal *ebx "a" "F - test-function-header-with-multiple-args-and-outputs/inout:0")
1411 8b/-> *(ebx+4) 3/r32/ebx
@@ -1439,9 +1439,9 @@ if ('onhashchange' in window) {
1427 8b/-> *(ebx+4) 3/r32/ebx
1428 (check-ints-equal *ebx 1 "F - test-function-header-with-multiple-args-and-outputs/inout:2/type:0")
1429 (check-ints-equal *(ebx+4) 0 "F - test-function-header-with-multiple-args-and-outputs/inout:2/type:1")
-1430
+1430
1431 8b/-> *(ecx+0xc) 2/r32/edx
-1432
+1432
1433 8b/-> *edx 3/r32/ebx
1434 (check-strings-equal *ebx "x" "F - test-function-header-with-multiple-args-and-outputs/output:0")
1435 (check-strings-equal *(ebx+0x10) "ecx" "F - test-function-header-with-multiple-args-and-outputs/output:0/register")
@@ -1463,16 +1463,16 @@ if ('onhashchange' in window) {
1451 c3/return
1452
1453
-1454
+1454
1455
1456
1457
1458 parse-var-with-type:
1459
-1460
-1461
+1460
+1461
1462
-1463
+1463
1464
1465
1466
@@ -1487,7 +1487,7 @@ if ('onhashchange' in window) {
1475
1476
1477
-1478
+1478
1479
1480
1481
@@ -1500,13 +1500,13 @@ if ('onhashchange' in window) {
1488 53/push-ebx
1489 56/push-esi
1490 57/push-edi
-1491
+1491
1492 (allocate Heap *Var-size)
1493 (zero-out %eax *Var-size)
1494 89/<- %edi 0/r32/eax
1495
1496 8b/-> *(ebp+8) 6/r32/esi
-1497
+1497
1498 68/push 0/imm32/end
1499 68/push 0/imm32/start
1500 89/<- %ecx 4/r32/esp
@@ -1846,7 +1846,7 @@ if ('onhashchange' in window) {
1834
1835 8d/copy-address *(esi+ecx+0xc) 0/r32/eax
1836 89/<- *edi 0/r32/eax
-1837
+1837
1838 31/xor %eax 0/r32/eax
1839 8a/copy-byte *(esi+ecx+0xc) 0/r32/AL
1840 {
@@ -2088,7 +2088,7 @@ if ('onhashchange' in window) {
2076 8b/-> *eax 1/r32/ecx
2077 8d/copy-address *(eax+ecx+4) 1/r32/ecx
2078 05/add-to-eax 4/imm32
-2079
+2079
2080 51/push-ecx
2081 50/push-eax
2082 89/<- %ecx 4/r32/esp
@@ -2116,7 +2116,7 @@ if ('onhashchange' in window) {
2104 8b/-> *eax 1/r32/ecx
2105 8d/copy-address *(eax+ecx+4) 1/r32/ecx
2106 05/add-to-eax 4/imm32
-2107
+2107
2108 51/push-ecx
2109 50/push-eax
2110 89/<- %ecx 4/r32/esp
@@ -2146,7 +2146,7 @@ if ('onhashchange' in window) {
2134 8b/-> *eax 1/r32/ecx
2135 8d/copy-address *(eax+ecx+4) 1/r32/ecx
2136 05/add-to-eax 4/imm32
-2137
+2137
2138 51/push-ecx
2139 50/push-eax
2140 89/<- %ecx 4/r32/esp
@@ -2176,7 +2176,7 @@ if ('onhashchange' in window) {
2164 8b/-> *eax 1/r32/ecx
2165 8d/copy-address *(eax+ecx+4) 1/r32/ecx
2166 05/add-to-eax 4/imm32
-2167
+2167
2168 51/push-ecx
2169 50/push-eax
2170 89/<- %ecx 4/r32/esp
@@ -2206,7 +2206,7 @@ if ('onhashchange' in window) {
2194 8b/-> *eax 1/r32/ecx
2195 8d/copy-address *(eax+ecx+4) 1/r32/ecx
2196 05/add-to-eax 4/imm32
-2197
+2197
2198 51/push-ecx
2199 50/push-eax
2200 89/<- %ecx 4/r32/esp
@@ -2238,7 +2238,7 @@ if ('onhashchange' in window) {
2226
2227
2228
-2229 is-identifier?:
+2229 is-identifier?:
2230
2231 55/push-ebp
2232 89/<- %ebp 4/r32/esp
@@ -2246,7 +2246,7 @@ if ('onhashchange' in window) {
2234 (slice-empty? *(ebp+8))
2235 3d/compare-eax-and 0/imm32
2236 75/jump-if-!= $is-identifier?:false/disp8
-2237
+2237
2238 8b/-> *(ebp+8) 0/r32/eax
2239 8b/-> *eax 0/r32/eax
2240 8a/copy-byte *eax 0/r32/AL
@@ -2286,7 +2286,7 @@ if ('onhashchange' in window) {
2274 8b/-> *eax 1/r32/ecx
2275 8d/copy-address *(eax+ecx+4) 1/r32/ecx
2276 05/add-to-eax 4/imm32
-2277
+2277
2278 51/push-ecx
2279 50/push-eax
2280 89/<- %ecx 4/r32/esp
@@ -2307,7 +2307,7 @@ if ('onhashchange' in window) {
2295 8b/-> *eax 1/r32/ecx
2296 8d/copy-address *(eax+ecx+4) 1/r32/ecx
2297 05/add-to-eax 4/imm32
-2298
+2298
2299 51/push-ecx
2300 50/push-eax
2301 89/<- %ecx 4/r32/esp
@@ -2328,7 +2328,7 @@ if ('onhashchange' in window) {
2316 8b/-> *eax 1/r32/ecx
2317 8d/copy-address *(eax+ecx+4) 1/r32/ecx
2318 05/add-to-eax 4/imm32
-2319
+2319
2320 51/push-ecx
2321 50/push-eax
2322 89/<- %ecx 4/r32/esp
@@ -2349,7 +2349,7 @@ if ('onhashchange' in window) {
2337 8b/-> *eax 1/r32/ecx
2338 8d/copy-address *(eax+ecx+4) 1/r32/ecx
2339 05/add-to-eax 4/imm32
-2340
+2340
2341 51/push-ecx
2342 50/push-eax
2343 89/<- %ecx 4/r32/esp
@@ -2370,7 +2370,7 @@ if ('onhashchange' in window) {
2358 8b/-> *eax 1/r32/ecx
2359 8d/copy-address *(eax+ecx+4) 1/r32/ecx
2360 05/add-to-eax 4/imm32
-2361
+2361
2362 51/push-ecx
2363 50/push-eax
2364 89/<- %ecx 4/r32/esp
@@ -2391,7 +2391,7 @@ if ('onhashchange' in window) {
2379 8b/-> *eax 1/r32/ecx
2380 8d/copy-address *(eax+ecx+4) 1/r32/ecx
2381 05/add-to-eax 4/imm32
-2382
+2382
2383 51/push-ecx
2384 50/push-eax
2385 89/<- %ecx 4/r32/esp
@@ -2413,7 +2413,7 @@ if ('onhashchange' in window) {
2401 8b/-> *eax 1/r32/ecx
2402 8d/copy-address *(eax+ecx+4) 1/r32/ecx
2403 05/add-to-eax 4/imm32
-2404
+2404
2405 51/push-ecx
2406 50/push-eax
2407 89/<- %ecx 4/r32/esp
@@ -2435,7 +2435,7 @@ if ('onhashchange' in window) {
2423 8b/-> *eax 1/r32/ecx
2424 8d/copy-address *(eax+ecx+4) 1/r32/ecx
2425 05/add-to-eax 4/imm32
-2426
+2426
2427 51/push-ecx
2428 50/push-eax
2429 89/<- %ecx 4/r32/esp
@@ -2457,7 +2457,7 @@ if ('onhashchange' in window) {
2445 8b/-> *eax 1/r32/ecx
2446 8d/copy-address *(eax+ecx+4) 1/r32/ecx
2447 05/add-to-eax 4/imm32
-2448
+2448
2449 51/push-ecx
2450 50/push-eax
2451 89/<- %ecx 4/r32/esp
@@ -2479,7 +2479,7 @@ if ('onhashchange' in window) {
2467 8b/-> *eax 1/r32/ecx
2468 8d/copy-address *(eax+ecx+4) 1/r32/ecx
2469 05/add-to-eax 4/imm32
-2470
+2470
2471 51/push-ecx
2472 50/push-eax
2473 89/<- %ecx 4/r32/esp
@@ -2500,7 +2500,7 @@ if ('onhashchange' in window) {
2488 8b/-> *eax 1/r32/ecx
2489 8d/copy-address *(eax+ecx+4) 1/r32/ecx
2490 05/add-to-eax 4/imm32
-2491
+2491
2492 51/push-ecx
2493 50/push-eax
2494 89/<- %ecx 4/r32/esp
@@ -2522,7 +2522,7 @@ if ('onhashchange' in window) {
2510 8b/-> *eax 1/r32/ecx
2511 8d/copy-address *(eax+ecx+4) 1/r32/ecx
2512 05/add-to-eax 4/imm32
-2513
+2513
2514 51/push-ecx
2515 50/push-eax
2516 89/<- %ecx 4/r32/esp
@@ -2534,7 +2534,7 @@ if ('onhashchange' in window) {
2522 5d/pop-to-ebp
2523 c3/return
2524
-2525 populate-mu-function-body:
+2525 populate-mu-function-body:
2526
2527 55/push-ebp
2528 89/<- %ebp 4/r32/esp
@@ -2546,7 +2546,7 @@ if ('onhashchange' in window) {
2534 8b/-> *(ebp+8) 6/r32/esi
2535
2536 8b/-> *(ebp+0xc) 7/r32/edi
-2537
+2537
2538 (parse-mu-block %esi *(ebp+0x10) %edi)
2539
2540 89/<- *(edi+0x10) 0/r32/eax
@@ -2561,10 +2561,10 @@ if ('onhashchange' in window) {
2549 c3/return
2550
2551
-2552 parse-mu-block:
+2552 parse-mu-block:
2553
-2554
-2555
+2554
+2555
2556
2557
2558
@@ -2601,13 +2601,13 @@ if ('onhashchange' in window) {
2589 52/push-edx
2590 53/push-ebx
2591 57/push-edi
-2592
+2592
2593 81 5/subop/subtract %esp 0x200/imm32
2594 68/push 0x200/imm32/length
2595 68/push 0/imm32/read
2596 68/push 0/imm32/write
2597 89/<- %ecx 4/r32/esp
-2598
+2598
2599 68/push 0/imm32/end
2600 68/push 0/imm32/start
2601 89/<- %edx 4/r32/esp
@@ -2722,14 +2722,14 @@ if ('onhashchange' in window) {
2710 cd/syscall 0x80/imm8
2711
2712
-2713 check-no-tokens-left:
+2713 check-no-tokens-left:
2714
2715 55/push-ebp
2716 89/<- %ebp 4/r32/esp
2717
2718 50/push-eax
2719 51/push-ecx
-2720
+2720
2721 68/push 0/imm32/end
2722 68/push 0/imm32/start
2723 89/<- %ecx 4/r32/esp
@@ -2769,10 +2769,10 @@ if ('onhashchange' in window) {
2757 5d/pop-to-ebp
2758 c3/return
2759
-2760 parse-mu-named-block:
+2760 parse-mu-named-block:
2761
-2762
-2763
+2762
+2763
2764
2765
2766
@@ -2813,7 +2813,7 @@ if ('onhashchange' in window) {
2801 5d/pop-to-ebp
2802 c3/return
2803
-2804 parse-mu-var-def:
+2804 parse-mu-var-def:
2805
2806
2807
@@ -2822,11 +2822,11 @@ if ('onhashchange' in window) {
2810
2811 51/push-ecx
2812 52/push-edx
-2813
+2813
2814 68/push 0/imm32/end
2815 68/push 0/imm32/start
2816 89/<- %ecx 4/r32/esp
-2817
+2817
2818 (next-word *(ebp+8) %ecx)
2819 (parse-var-with-type %ecx *(ebp+8))
2820 89/<- %edx 0/r32/eax
@@ -2884,7 +2884,7 @@ if ('onhashchange' in window) {
2872
2873 (clear-stream _test-input-stream)
2874 (write _test-input-stream "n: int\n")
-2875
+2875
2876 81 5/subop/subtract %esp 0x10/imm32
2877 68/push 0x10/imm32/length
2878 68/push 0/imm32/top
@@ -2916,7 +2916,7 @@ if ('onhashchange' in window) {
2904
2905 (clear-stream _test-input-stream)
2906 (write _test-input-stream "n/eax: int <- copy 0\n")
-2907
+2907
2908 81 5/subop/subtract %esp 0x10/imm32
2909 68/push 0x10/imm32/length
2910 68/push 0/imm32/top
@@ -2940,16 +2940,16 @@ if ('onhashchange' in window) {
2928 5d/pop-to-ebp
2929 c3/return
2930
-2931 parse-mu-stmt:
+2931 parse-mu-stmt:
2932
-2933
+2933
2934
2935
2936
2937
2938
2939
-2940
+2940
2941
2942
2943
@@ -2959,11 +2959,11 @@ if ('onhashchange' in window) {
2947
2948 51/push-ecx
2949 57/push-edi
-2950
+2950
2951 68/push 0/imm32/end
2952 68/push 0/imm32/start
2953 89/<- %ecx 4/r32/esp
-2954
+2954
2955 (allocate Heap *Stmt-size)
2956 (zero-out %eax *Stmt-size)
2957 89/<- %edi 0/r32/eax
@@ -3022,7 +3022,7 @@ if ('onhashchange' in window) {
3010 cd/syscall 0x80/imm8
3011
3012
-3013 add-operation-and-inputs-to-stmt:
+3013 add-operation-and-inputs-to-stmt:
3014
3015
3016
@@ -3039,7 +3039,7 @@ if ('onhashchange' in window) {
3027 57/push-edi
3028
3029 8b/-> *(ebp+8) 7/r32/edi
-3030
+3030
3031 68/push 0/imm32/end
3032 68/push 0/imm32/start
3033 89/<- %ecx 4/r32/esp
@@ -3091,13 +3091,13 @@ if ('onhashchange' in window) {
3079 cd/syscall 0x80/imm8
3080
3081
-3082 stmt-has-outputs?:
+3082 stmt-has-outputs?:
3083
3084 55/push-ebp
3085 89/<- %ebp 4/r32/esp
3086
3087 51/push-ecx
-3088
+3088
3089 68/push 0/imm32/end
3090 68/push 0/imm32/start
3091 89/<- %ecx 4/r32/esp
@@ -3139,7 +3139,7 @@ if ('onhashchange' in window) {
3127
3128
3129
-3130 lookup-var-or-literal:
+3130 lookup-var-or-literal:
3131
3132 55/push-ebp
3133 89/<- %ebp 4/r32/esp
@@ -3152,7 +3152,7 @@ if ('onhashchange' in window) {
3140 (slice-empty? %esi)
3141 3d/compare-eax-and 0/imm32
3142 0f 85/jump-if-!= $lookup-var-or-literal:abort/disp32
-3143
+3143
3144 8b/-> *esi 1/r32/ecx
3145 8a/copy-byte *ecx 1/r32/CL
3146 81 4/subop/and %ecx 0xff/imm32
@@ -3187,11 +3187,11 @@ if ('onhashchange' in window) {
3175
3176
3177
-3178 lookup-var:
+3178 lookup-var:
3179
3180 55/push-ebp
3181 89/<- %ebp 4/r32/esp
-3182
+3182
3183 (slice-to-string Heap *(ebp+8))
3184
3185 (lookup-var-helper %eax *(ebp+0xc))
@@ -3216,12 +3216,12 @@ if ('onhashchange' in window) {
3204
3205
3206
-3207 lookup-var-helper:
+3207 lookup-var-helper:
3208
-3209
+3209
3210
3211
-3212
+3212
3213
3214
3215
@@ -3240,9 +3240,9 @@ if ('onhashchange' in window) {
3228
3229 3b/compare 0/r32/eax *(esi+4)
3230 0f 8f/jump-if-> $lookup-var-helper:error1/disp32
-3231
+3231
3232 8d/copy-address *(esi+8) 2/r32/edx
-3233
+3233
3234 81 5/subop/subtract %ebx 4/imm32
3235 8d/copy-address *(esi+ebx+8) 3/r32/ebx
3236 {
@@ -3250,7 +3250,7 @@ if ('onhashchange' in window) {
3238 39/compare %ebx 2/r32/edx
3239 b8/copy-to-eax 0/imm32
3240 0f 82/jump-if-addr< break/disp32
-3241
+3241
3242 8b/-> *ebx 0/r32/eax
3243
3244 (string-equal? *eax *(ebp+8))
@@ -3283,13 +3283,13 @@ if ('onhashchange' in window) {
3271
3272
3273
-3274 lookup-or-define-var:
+3274 lookup-or-define-var:
3275
3276 55/push-ebp
3277 89/<- %ebp 4/r32/esp
3278
3279 51/push-ecx
-3280
+3280
3281 (slice-to-string Heap *(ebp+8))
3282 89/<- %ecx 0/r32/eax
3283
@@ -3314,20 +3314,20 @@ if ('onhashchange' in window) {
3302 5d/pop-to-ebp
3303 c3/return
3304
-3305 find-in-function-outputs:
+3305 find-in-function-outputs:
3306
3307 55/push-ebp
3308 89/<- %ebp 4/r32/esp
3309
3310 51/push-ecx
-3311
+3311
3312 8b/-> *(ebp+8) 1/r32/ecx
3313 8b/-> *(ecx+0xc) 1/r32/ecx
3314
3315 {
3316 81 7/subop/compare %ecx 0/imm32
3317 74/jump-if-= break/disp8
-3318
+3318
3319 8b/-> *ecx 0/r32/eax
3320
3321 50/push-eax
@@ -3356,13 +3356,13 @@ if ('onhashchange' in window) {
3344
3345 (clear-stream _test-input-stream)
3346 (write _test-input-stream "increment n\n")
-3347
+3347
3348 81 5/subop/subtract %esp 0x10/imm32
3349 68/push 0x10/imm32/length
3350 68/push 0/imm32/top
3351 89/<- %ecx 4/r32/esp
3352 (clear-stack %ecx)
-3353
+3353
3354 81 5/subop/subtract %esp 0x14/imm32
3355 89/<- %edx 4/r32/esp
3356 (zero-out %edx 0x14)
@@ -3375,9 +3375,9 @@ if ('onhashchange' in window) {
3363
3364 (check-ints-equal *eax 1 "F - test-parse-mu-stmt/tag")
3365 (check-strings-equal *(eax+4) "increment" "F - test-parse-mu-stmt/name")
-3366
+3366
3367 8b/-> *(eax+8) 2/r32/edx
-3368
+3368
3369 8b/-> *edx 3/r32/ebx
3370 (check-strings-equal *ebx "n" "F - test-parse-mu-stmt/inout:0")
3371
@@ -3449,7 +3449,7 @@ if ('onhashchange' in window) {
3437 (is-hex-int? *(ebp+0xc))
3438 3d/compare-eax-and 0/imm32
3439 0f 84/jump-if-= $new-literal-integer:abort/disp32
-3440
+3440
3441 (slice-to-string Heap *(ebp+0xc))
3442 89/<- %ecx 0/r32/eax
3443
@@ -3564,7 +3564,7 @@ if ('onhashchange' in window) {
3552 5d/pop-to-ebp
3553 c3/return
3554
-3555 new-list:
+3555 new-list:
3556
3557 55/push-ebp
3558 89/<- %ebp 4/r32/esp
@@ -3584,7 +3584,7 @@ if ('onhashchange' in window) {
3572 5d/pop-to-ebp
3573 c3/return
3574
-3575 append-list:
+3575 append-list:
3576
3577 55/push-ebp
3578 89/<- %ebp 4/r32/esp
@@ -3653,7 +3653,7 @@ if ('onhashchange' in window) {
3641 5d/pop-to-ebp
3642 c3/return
3643
-3644 size-of:
+3644 size-of:
3645
3646 55/push-ebp
3647 89/<- %ebp 4/r32/esp
@@ -3669,7 +3669,7 @@ if ('onhashchange' in window) {
3657
3658
3659
-3660 emit-subx:
+3660 emit-subx:
3661
3662 55/push-ebp
3663 89/<- %ebp 4/r32/esp
@@ -3679,7 +3679,7 @@ if ('onhashchange' in window) {
3667 57/push-edi
3668
3669 8b/-> *(ebp+8) 7/r32/edi
-3670
+3670
3671 8b/-> *Program 1/r32/ecx
3672 {
3673
@@ -3700,7 +3700,7 @@ if ('onhashchange' in window) {
3688 5d/pop-to-ebp
3689 c3/return
3690
-3691 emit-subx-function:
+3691 emit-subx-function:
3692
3693 55/push-ebp
3694 89/<- %ebp 4/r32/esp
@@ -3715,9 +3715,9 @@ if ('onhashchange' in window) {
3703
3704 (write-buffered %edi *ecx)
3705 (write-buffered %edi ":\n")
-3706 (emit-subx-prologue %edi)
+3706 (emit-subx-prologue %edi)
3707 (emit-subx-block %edi *(ecx+0x10))
-3708 (emit-subx-epilogue %edi)
+3708 (emit-subx-epilogue %edi)
3709 $emit-subx-function:end:
3710
3711 5f/pop-to-edi
@@ -3728,1183 +3728,1183 @@ if ('onhashchange' in window) {
3716 5d/pop-to-ebp
3717 c3/return
3718
-3719 emit-subx-block:
+3719 emit-subx-block:
3720
3721 55/push-ebp
3722 89/<- %ebp 4/r32/esp
-3723
-3724 8b/-> *(ebp+0xc) 6/r32/esi
-3725 8b/-> *(esi+4) 6/r32/esi
-3726
-3727 {
-3728 $emit-subx-block:check-empty:
-3729 81 7/subop/compare %esi 0/imm32
-3730 0f 84/jump-if-= break/disp32
-3731 (write-buffered *(ebp+8) "{\n")
-3732 {
-3733 $emit-subx-block:stmt:
-3734 81 7/subop/compare %esi 0/imm32
-3735 74/jump-if-= break/disp8
-3736 (emit-subx-statement *(ebp+8) *esi Primitives *Program)
-3737 (write-buffered *(ebp+8) Newline)
-3738 8b/-> *(esi+4) 6/r32/esi
-3739 eb/jump loop/disp8
-3740 }
-3741 (write-buffered *(ebp+8) "}\n")
-3742 }
-3743 $emit-subx-block:end:
-3744
-3745 89/<- %esp 5/r32/ebp
-3746 5d/pop-to-ebp
-3747 c3/return
-3748
-3749 emit-subx-statement:
-3750
-3751 55/push-ebp
-3752 89/<- %ebp 4/r32/esp
-3753
-3754 50/push-eax
-3755 51/push-ecx
-3756
-3757 {
-3758 $emit-subx-statement:primitive:
-3759 (find-matching-primitive *(ebp+0x10) *(ebp+0xc))
-3760 3d/compare-eax-and 0/imm32
-3761 74/jump-if-= break/disp8
-3762 (emit-subx-primitive *(ebp+8) *(ebp+0xc) %eax)
-3763 e9/jump $emit-subx-statement:end/disp32
-3764 }
-3765
-3766 {
-3767 $emit-subx-statement:call:
-3768 (find-matching-function *(ebp+0x14) *(ebp+0xc))
-3769 3d/compare-eax-and 0/imm32
-3770 74/jump-if-= break/disp8
-3771 (emit-subx-call *(ebp+8) *(ebp+0xc) %eax)
-3772 e9/jump $emit-subx-statement:end/disp32
-3773 }
-3774
-3775 e9/jump $emit-subx-statement:abort/disp32
-3776 $emit-subx-statement:end:
-3777
-3778 59/pop-to-ecx
-3779 58/pop-to-eax
-3780
-3781 89/<- %esp 5/r32/ebp
-3782 5d/pop-to-ebp
-3783 c3/return
-3784
-3785 $emit-subx-statement:abort:
-3786
-3787 (write-buffered Stderr "couldn't translate '")
-3788
-3789 (write-buffered Stderr "'\n")
-3790 (flush Stderr)
-3791
-3792 bb/copy-to-ebx 1/imm32
-3793 b8/copy-to-eax 1/imm32/exit
-3794 cd/syscall 0x80/imm8
-3795
-3796
-3797
-3798
-3799 == data
-3800 Primitives:
-3801
-3802 _Primitive-inc-eax:
-3803
-3804 "increment"/imm32/name
-3805 0/imm32/no-inouts
-3806 Single-int-var-in-eax/imm32/outputs
-3807 "40/increment-eax"/imm32/subx-name
-3808 0/imm32/no-rm32
-3809 0/imm32/no-r32
-3810 0/imm32/no-imm32
-3811 0/imm32/output-is-write-only
-3812 _Primitive-inc-ecx/imm32/next
-3813 _Primitive-inc-ecx:
-3814
-3815 "increment"/imm32/name
-3816 0/imm32/no-inouts
-3817 Single-int-var-in-ecx/imm32/outputs
-3818 "41/increment-ecx"/imm32/subx-name
-3819 0/imm32/no-rm32
-3820 0/imm32/no-r32
-3821 0/imm32/no-imm32
-3822 0/imm32/output-is-write-only
-3823 _Primitive-inc-edx/imm32/next
-3824 _Primitive-inc-edx:
-3825
-3826 "increment"/imm32/name
-3827 0/imm32/no-inouts
-3828 Single-int-var-in-edx/imm32/outputs
-3829 "42/increment-edx"/imm32/subx-name
-3830 0/imm32/no-rm32
-3831 0/imm32/no-r32
-3832 0/imm32/no-imm32
-3833 0/imm32/output-is-write-only
-3834 _Primitive-inc-ebx/imm32/next
-3835 _Primitive-inc-ebx:
-3836
-3837 "increment"/imm32/name
-3838 0/imm32/no-inouts
-3839 Single-int-var-in-ebx/imm32/outputs
-3840 "43/increment-ebx"/imm32/subx-name
-3841 0/imm32/no-rm32
-3842 0/imm32/no-r32
-3843 0/imm32/no-imm32
-3844 0/imm32/output-is-write-only
-3845 _Primitive-inc-esi/imm32/next
-3846 _Primitive-inc-esi:
-3847
-3848 "increment"/imm32/name
-3849 0/imm32/no-inouts
-3850 Single-int-var-in-esi/imm32/outputs
-3851 "46/increment-esi"/imm32/subx-name
-3852 0/imm32/no-rm32
-3853 0/imm32/no-r32
-3854 0/imm32/no-imm32
-3855 0/imm32/output-is-write-only
-3856 _Primitive-inc-edi/imm32/next
-3857 _Primitive-inc-edi:
-3858
-3859 "increment"/imm32/name
-3860 0/imm32/no-inouts
-3861 Single-int-var-in-edi/imm32/outputs
-3862 "47/increment-edi"/imm32/subx-name
-3863 0/imm32/no-rm32
-3864 0/imm32/no-r32
-3865 0/imm32/no-imm32
-3866 0/imm32/output-is-write-only
-3867 _Primitive-dec-eax/imm32/next
-3868 _Primitive-dec-eax:
-3869
-3870 "decrement"/imm32/name
-3871 0/imm32/no-inouts
-3872 Single-int-var-in-eax/imm32/outputs
-3873 "48/decrement-eax"/imm32/subx-name
-3874 0/imm32/no-rm32
-3875 0/imm32/no-r32
-3876 0/imm32/no-imm32
-3877 0/imm32/output-is-write-only
-3878 _Primitive-dec-ecx/imm32/next
-3879 _Primitive-dec-ecx:
-3880
-3881 "decrement"/imm32/name
-3882 0/imm32/no-inouts
-3883 Single-int-var-in-ecx/imm32/outputs
-3884 "49/decrement-ecx"/imm32/subx-name
-3885 0/imm32/no-rm32
-3886 0/imm32/no-r32
-3887 0/imm32/no-imm32
-3888 0/imm32/output-is-write-only
-3889 _Primitive-dec-edx/imm32/next
-3890 _Primitive-dec-edx:
-3891
-3892 "decrement"/imm32/name
-3893 0/imm32/no-inouts
-3894 Single-int-var-in-edx/imm32/outputs
-3895 "4a/decrement-edx"/imm32/subx-name
-3896 0/imm32/no-rm32
-3897 0/imm32/no-r32
-3898 0/imm32/no-imm32
-3899 0/imm32/output-is-write-only
-3900 _Primitive-dec-ebx/imm32/next
-3901 _Primitive-dec-ebx:
-3902
-3903 "decrement"/imm32/name
-3904 0/imm32/no-inouts
-3905 Single-int-var-in-ebx/imm32/outputs
-3906 "4b/decrement-ebx"/imm32/subx-name
-3907 0/imm32/no-rm32
-3908 0/imm32/no-r32
-3909 0/imm32/no-imm32
-3910 0/imm32/output-is-write-only
-3911 _Primitive-dec-esi/imm32/next
-3912 _Primitive-dec-esi:
-3913
-3914 "decrement"/imm32/name
-3915 0/imm32/no-inouts
-3916 Single-int-var-in-esi/imm32/outputs
-3917 "4e/decrement-esi"/imm32/subx-name
-3918 0/imm32/no-rm32
-3919 0/imm32/no-r32
-3920 0/imm32/no-imm32
-3921 0/imm32/output-is-write-only
-3922 _Primitive-dec-edi/imm32/next
-3923 _Primitive-dec-edi:
-3924
-3925 "decrement"/imm32/name
-3926 0/imm32/no-inouts
-3927 Single-int-var-in-edi/imm32/outputs
-3928 "4f/decrement-edi"/imm32/subx-name
-3929 0/imm32/no-rm32
-3930 0/imm32/no-r32
-3931 0/imm32/no-imm32
-3932 0/imm32/output-is-write-only
-3933 _Primitive-inc-mem/imm32/next
-3934 _Primitive-inc-mem:
-3935
-3936 "increment"/imm32/name
-3937 Single-int-var-on-stack/imm32/inouts
-3938 0/imm32/no-outputs
-3939 "ff 0/subop/increment"/imm32/subx-name
-3940 1/imm32/rm32-is-first-inout
-3941 0/imm32/no-r32
-3942 0/imm32/no-imm32
-3943 0/imm32/output-is-write-only
-3944 _Primitive-inc-reg/imm32/next
-3945 _Primitive-inc-reg:
-3946
-3947 "increment"/imm32/name
-3948 0/imm32/no-inouts
-3949 Single-int-var-in-some-register/imm32/outputs
-3950 "ff 0/subop/increment"/imm32/subx-name
-3951 3/imm32/rm32-is-first-output
-3952 0/imm32/no-r32
-3953 0/imm32/no-imm32
-3954 0/imm32/output-is-write-only
-3955 _Primitive-dec-mem/imm32/next
-3956 _Primitive-dec-mem:
-3957
-3958 "decrement"/imm32/name
-3959 Single-int-var-on-stack/imm32/inouts
-3960 0/imm32/no-outputs
-3961 "ff 1/subop/decrement"/imm32/subx-name
-3962 1/imm32/rm32-is-first-inout
-3963 0/imm32/no-r32
-3964 0/imm32/no-imm32
-3965 0/imm32/output-is-write-only
-3966 _Primitive-dec-reg/imm32/next
-3967 _Primitive-dec-reg:
-3968
-3969 "decrement"/imm32/name
-3970 0/imm32/no-inouts
-3971 Single-int-var-in-some-register/imm32/outputs
-3972 "ff 1/subop/decrement"/imm32/subx-name
-3973 3/imm32/rm32-is-first-output
-3974 0/imm32/no-r32
-3975 0/imm32/no-imm32
-3976 0/imm32/output-is-write-only
-3977 _Primitive-add-to-eax/imm32/next
-3978
-3979 _Primitive-add-to-eax:
-3980
-3981 "add"/imm32/name
-3982 Single-lit-var/imm32/inouts
-3983 Single-int-var-in-eax/imm32/outputs
-3984 "05/add-to-eax"/imm32/subx-name
-3985 0/imm32/no-rm32
-3986 0/imm32/no-r32
-3987 1/imm32/imm32-is-first-inout
-3988 0/imm32/output-is-write-only
-3989 _Primitive-add-reg-to-reg/imm32/next
-3990 _Primitive-add-reg-to-reg:
-3991
-3992 "add"/imm32/name
-3993 Single-int-var-in-some-register/imm32/inouts
-3994 Single-int-var-in-some-register/imm32/outputs
-3995 "01/add-to"/imm32/subx-name
-3996 3/imm32/rm32-is-first-output
-3997 1/imm32/r32-is-first-inout
-3998 0/imm32/no-imm32
-3999 0/imm32/output-is-write-only
-4000 _Primitive-add-reg-to-mem/imm32/next
-4001 _Primitive-add-reg-to-mem:
-4002
-4003 "add-to"/imm32/name
-4004 Int-var-and-second-int-var-in-some-register/imm32/inouts
-4005 0/imm32/outputs
-4006 "01/add-to"/imm32/subx-name
-4007 1/imm32/rm32-is-first-inout
-4008 2/imm32/r32-is-second-inout
-4009 0/imm32/no-imm32
-4010 0/imm32/output-is-write-only
-4011 _Primitive-add-mem-to-reg/imm32/next
-4012 _Primitive-add-mem-to-reg:
-4013
-4014 "add"/imm32/name
-4015 Single-int-var-on-stack/imm32/inouts
-4016 Single-int-var-in-some-register/imm32/outputs
-4017 "03/add"/imm32/subx-name
-4018 1/imm32/rm32-is-first-inout
-4019 3/imm32/r32-is-first-output
-4020 0/imm32/no-imm32
-4021 0/imm32/output-is-write-only
-4022 _Primitive-add-lit-to-reg/imm32/next
-4023 _Primitive-add-lit-to-reg:
-4024
-4025 "add"/imm32/name
-4026 Single-lit-var/imm32/inouts
-4027 Single-int-var-in-some-register/imm32/outputs
-4028 "81 0/subop/add"/imm32/subx-name
-4029 3/imm32/rm32-is-first-output
-4030 0/imm32/no-r32
-4031 1/imm32/imm32-is-first-inout
-4032 0/imm32/output-is-write-only
-4033 _Primitive-add-lit-to-mem/imm32/next
-4034 _Primitive-add-lit-to-mem:
-4035
-4036 "add-to"/imm32/name
-4037 Int-var-and-literal/imm32/inouts
-4038 0/imm32/outputs
-4039 "81 0/subop/add"/imm32/subx-name
-4040 1/imm32/rm32-is-first-inout
-4041 0/imm32/no-r32
-4042 2/imm32/imm32-is-first-inout
-4043 0/imm32/output-is-write-only
-4044 _Primitive-subtract-from-eax/imm32/next
-4045
-4046 _Primitive-subtract-from-eax:
-4047
-4048 "subtract"/imm32/name
-4049 Single-lit-var/imm32/inouts
-4050 Single-int-var-in-eax/imm32/outputs
-4051 "2d/subtract-from-eax"/imm32/subx-name
-4052 0/imm32/no-rm32
-4053 0/imm32/no-r32
-4054 1/imm32/imm32-is-first-inout
-4055 0/imm32/output-is-write-only
-4056 _Primitive-subtract-reg-from-reg/imm32/next
-4057 _Primitive-subtract-reg-from-reg:
-4058
-4059 "subtract"/imm32/name
-4060 Single-int-var-in-some-register/imm32/inouts
-4061 Single-int-var-in-some-register/imm32/outputs
-4062 "29/subtract-from"/imm32/subx-name
-4063 3/imm32/rm32-is-first-output
-4064 1/imm32/r32-is-first-inout
-4065 0/imm32/no-imm32
-4066 0/imm32/output-is-write-only
-4067 _Primitive-subtract-reg-from-mem/imm32/next
-4068 _Primitive-subtract-reg-from-mem:
-4069
-4070 "subtract-from"/imm32/name
-4071 Int-var-and-second-int-var-in-some-register/imm32/inouts
-4072 0/imm32/outputs
-4073 "29/subtract-from"/imm32/subx-name
-4074 1/imm32/rm32-is-first-inout
-4075 2/imm32/r32-is-second-inout
-4076 0/imm32/no-imm32
-4077 0/imm32/output-is-write-only
-4078 _Primitive-subtract-mem-from-reg/imm32/next
-4079 _Primitive-subtract-mem-from-reg:
-4080
-4081 "subtract"/imm32/name
-4082 Single-int-var-on-stack/imm32/inouts
-4083 Single-int-var-in-some-register/imm32/outputs
-4084 "2b/subtract"/imm32/subx-name
-4085 1/imm32/rm32-is-first-inout
-4086 3/imm32/r32-is-first-output
-4087 0/imm32/no-imm32
-4088 0/imm32/output-is-write-only
-4089 _Primitive-subtract-lit-from-reg/imm32/next
-4090 _Primitive-subtract-lit-from-reg:
-4091
-4092 "subtract"/imm32/name
-4093 Single-lit-var/imm32/inouts
-4094 Single-int-var-in-some-register/imm32/outputs
-4095 "81 5/subop/subtract"/imm32/subx-name
-4096 3/imm32/rm32-is-first-output
-4097 0/imm32/no-r32
-4098 1/imm32/imm32-is-first-inout
-4099 0/imm32/output-is-write-only
-4100 _Primitive-subtract-lit-from-mem/imm32/next
-4101 _Primitive-subtract-lit-from-mem:
-4102
-4103 "subtract-from"/imm32/name
-4104 Int-var-and-literal/imm32/inouts
-4105 0/imm32/outputs
-4106 "81 5/subop/subtract"/imm32/subx-name
-4107 1/imm32/rm32-is-first-inout
-4108 0/imm32/no-r32
-4109 2/imm32/imm32-is-first-inout
-4110 0/imm32/output-is-write-only
-4111 _Primitive-and-with-eax/imm32/next
-4112
-4113 _Primitive-and-with-eax:
-4114
-4115 "and"/imm32/name
-4116 Single-lit-var/imm32/inouts
-4117 Single-int-var-in-eax/imm32/outputs
-4118 "25/and-with-eax"/imm32/subx-name
-4119 0/imm32/no-rm32
-4120 0/imm32/no-r32
-4121 1/imm32/imm32-is-first-inout
-4122 0/imm32/output-is-write-only
-4123 _Primitive-and-reg-with-reg/imm32/next
-4124 _Primitive-and-reg-with-reg:
-4125
-4126 "and"/imm32/name
-4127 Single-int-var-in-some-register/imm32/inouts
-4128 Single-int-var-in-some-register/imm32/outputs
-4129 "21/and-with"/imm32/subx-name
-4130 3/imm32/rm32-is-first-output
-4131 1/imm32/r32-is-first-inout
-4132 0/imm32/no-imm32
-4133 0/imm32/output-is-write-only
-4134 _Primitive-and-reg-with-mem/imm32/next
-4135 _Primitive-and-reg-with-mem:
-4136
-4137 "and-with"/imm32/name
-4138 Int-var-and-second-int-var-in-some-register/imm32/inouts
-4139 0/imm32/outputs
-4140 "21/and-with"/imm32/subx-name
-4141 1/imm32/rm32-is-first-inout
-4142 2/imm32/r32-is-second-inout
-4143 0/imm32/no-imm32
-4144 0/imm32/output-is-write-only
-4145 _Primitive-and-mem-with-reg/imm32/next
-4146 _Primitive-and-mem-with-reg:
-4147
-4148 "and"/imm32/name
-4149 Single-int-var-on-stack/imm32/inouts
-4150 Single-int-var-in-some-register/imm32/outputs
-4151 "23/and"/imm32/subx-name
-4152 1/imm32/rm32-is-first-inout
-4153 3/imm32/r32-is-first-output
-4154 0/imm32/no-imm32
-4155 0/imm32/output-is-write-only
-4156 _Primitive-and-lit-with-reg/imm32/next
-4157 _Primitive-and-lit-with-reg:
-4158
-4159 "and"/imm32/name
-4160 Single-lit-var/imm32/inouts
-4161 Single-int-var-in-some-register/imm32/outputs
-4162 "81 4/subop/and"/imm32/subx-name
-4163 3/imm32/rm32-is-first-output
-4164 0/imm32/no-r32
-4165 1/imm32/imm32-is-first-inout
-4166 0/imm32/output-is-write-only
-4167 _Primitive-and-lit-with-mem/imm32/next
-4168 _Primitive-and-lit-with-mem:
-4169
-4170 "and-with"/imm32/name
-4171 Int-var-and-literal/imm32/inouts
-4172 0/imm32/outputs
-4173 "81 4/subop/and"/imm32/subx-name
-4174 1/imm32/rm32-is-first-inout
-4175 0/imm32/no-r32
-4176 2/imm32/imm32-is-first-inout
-4177 0/imm32/output-is-write-only
-4178 _Primitive-or-with-eax/imm32/next
-4179
-4180 _Primitive-or-with-eax:
-4181
-4182 "or"/imm32/name
-4183 Single-lit-var/imm32/inouts
-4184 Single-int-var-in-eax/imm32/outputs
-4185 "0d/or-with-eax"/imm32/subx-name
-4186 0/imm32/no-rm32
-4187 0/imm32/no-r32
-4188 1/imm32/imm32-is-first-inout
-4189 0/imm32/output-is-write-only
-4190 _Primitive-or-reg-with-reg/imm32/next
-4191 _Primitive-or-reg-with-reg:
-4192
-4193 "or"/imm32/name
-4194 Single-int-var-in-some-register/imm32/inouts
-4195 Single-int-var-in-some-register/imm32/outputs
-4196 "09/or-with"/imm32/subx-name
-4197 3/imm32/rm32-is-first-output
-4198 1/imm32/r32-is-first-inout
-4199 0/imm32/no-imm32
-4200 0/imm32/output-is-write-only
-4201 _Primitive-or-reg-with-mem/imm32/next
-4202 _Primitive-or-reg-with-mem:
-4203
-4204 "or-with"/imm32/name
-4205 Int-var-and-second-int-var-in-some-register/imm32/inouts
-4206 0/imm32/outputs
-4207 "09/or-with"/imm32/subx-name
-4208 1/imm32/rm32-is-first-inout
-4209 2/imm32/r32-is-second-inout
-4210 0/imm32/no-imm32
-4211 0/imm32/output-is-write-only
-4212 _Primitive-or-mem-with-reg/imm32/next
-4213 _Primitive-or-mem-with-reg:
-4214
-4215 "or"/imm32/name
-4216 Single-int-var-on-stack/imm32/inouts
-4217 Single-int-var-in-some-register/imm32/outputs
-4218 "0b/or"/imm32/subx-name
-4219 1/imm32/rm32-is-first-inout
-4220 3/imm32/r32-is-first-output
-4221 0/imm32/no-imm32
-4222 0/imm32/output-is-write-only
-4223 _Primitive-or-lit-with-reg/imm32/next
-4224 _Primitive-or-lit-with-reg:
-4225
-4226 "or"/imm32/name
-4227 Single-lit-var/imm32/inouts
-4228 Single-int-var-in-some-register/imm32/outputs
-4229 "81 4/subop/or"/imm32/subx-name
-4230 3/imm32/rm32-is-first-output
-4231 0/imm32/no-r32
-4232 1/imm32/imm32-is-first-inout
-4233 0/imm32/output-is-write-only
-4234 _Primitive-or-lit-with-mem/imm32/next
-4235 _Primitive-or-lit-with-mem:
-4236
-4237 "or-with"/imm32/name
-4238 Int-var-and-literal/imm32/inouts
-4239 0/imm32/outputs
-4240 "81 4/subop/or"/imm32/subx-name
-4241 1/imm32/rm32-is-first-inout
-4242 0/imm32/no-r32
-4243 2/imm32/imm32-is-first-inout
-4244 0/imm32/output-is-write-only
-4245 _Primitive-xor-with-eax/imm32/next
-4246
-4247 _Primitive-xor-with-eax:
-4248
-4249 "xor"/imm32/name
-4250 Single-lit-var/imm32/inouts
-4251 Single-int-var-in-eax/imm32/outputs
-4252 "35/xor-with-eax"/imm32/subx-name
-4253 0/imm32/no-rm32
-4254 0/imm32/no-r32
-4255 1/imm32/imm32-is-first-inout
-4256 0/imm32/output-is-write-only
-4257 _Primitive-xor-reg-with-reg/imm32/next
-4258 _Primitive-xor-reg-with-reg:
-4259
-4260 "xor"/imm32/name
-4261 Single-int-var-in-some-register/imm32/inouts
-4262 Single-int-var-in-some-register/imm32/outputs
-4263 "31/xor-with"/imm32/subx-name
-4264 3/imm32/rm32-is-first-output
-4265 1/imm32/r32-is-first-inout
-4266 0/imm32/no-imm32
-4267 0/imm32/output-is-write-only
-4268 _Primitive-xor-reg-with-mem/imm32/next
-4269 _Primitive-xor-reg-with-mem:
-4270
-4271 "xor-with"/imm32/name
-4272 Int-var-and-second-int-var-in-some-register/imm32/inouts
-4273 0/imm32/outputs
-4274 "31/xor-with"/imm32/subx-name
-4275 1/imm32/rm32-is-first-inout
-4276 2/imm32/r32-is-second-inout
-4277 0/imm32/no-imm32
-4278 0/imm32/output-is-write-only
-4279 _Primitive-xor-mem-with-reg/imm32/next
-4280 _Primitive-xor-mem-with-reg:
-4281
-4282 "xor"/imm32/name
-4283 Single-int-var-on-stack/imm32/inouts
-4284 Single-int-var-in-some-register/imm32/outputs
-4285 "33/xor"/imm32/subx-name
-4286 1/imm32/rm32-is-first-inout
-4287 3/imm32/r32-is-first-output
-4288 0/imm32/no-imm32
-4289 0/imm32/output-is-write-only
-4290 _Primitive-xor-lit-with-reg/imm32/next
-4291 _Primitive-xor-lit-with-reg:
-4292
-4293 "xor"/imm32/name
-4294 Single-lit-var/imm32/inouts
-4295 Single-int-var-in-some-register/imm32/outputs
-4296 "81 4/subop/xor"/imm32/subx-name
-4297 3/imm32/rm32-is-first-output
-4298 0/imm32/no-r32
-4299 1/imm32/imm32-is-first-inout
-4300 0/imm32/output-is-write-only
-4301 _Primitive-xor-lit-with-mem/imm32/next
-4302 _Primitive-xor-lit-with-mem:
-4303
-4304 "xor-with"/imm32/name
-4305 Int-var-and-literal/imm32/inouts
-4306 0/imm32/outputs
-4307 "81 4/subop/xor"/imm32/subx-name
-4308 1/imm32/rm32-is-first-inout
-4309 0/imm32/no-r32
-4310 2/imm32/imm32-is-first-inout
-4311 0/imm32/output-is-write-only
-4312 _Primitive-copy-to-eax/imm32/next
-4313
-4314 _Primitive-copy-to-eax:
-4315
-4316 "copy"/imm32/name
-4317 Single-lit-var/imm32/inouts
-4318 Single-int-var-in-eax/imm32/outputs
-4319 "b8/copy-to-eax"/imm32/subx-name
-4320 0/imm32/no-rm32
-4321 0/imm32/no-r32
-4322 1/imm32/imm32-is-first-inout
-4323 1/imm32/output-is-write-only
-4324 _Primitive-copy-to-ecx/imm32/next
-4325 _Primitive-copy-to-ecx:
-4326
-4327 "copy"/imm32/name
-4328 Single-lit-var/imm32/inouts
-4329 Single-int-var-in-ecx/imm32/outputs
-4330 "b9/copy-to-ecx"/imm32/subx-name
-4331 0/imm32/no-rm32
-4332 0/imm32/no-r32
-4333 1/imm32/imm32-is-first-inout
-4334 1/imm32/output-is-write-only
-4335 _Primitive-copy-to-edx/imm32/next
-4336 _Primitive-copy-to-edx:
-4337
-4338 "copy"/imm32/name
-4339 Single-lit-var/imm32/inouts
-4340 Single-int-var-in-edx/imm32/outputs
-4341 "ba/copy-to-edx"/imm32/subx-name
-4342 0/imm32/no-rm32
-4343 0/imm32/no-r32
-4344 1/imm32/imm32-is-first-inout
-4345 1/imm32/output-is-write-only
-4346 _Primitive-copy-to-ebx/imm32/next
-4347 _Primitive-copy-to-ebx:
-4348
-4349 "copy"/imm32/name
-4350 Single-lit-var/imm32/inouts
-4351 Single-int-var-in-ebx/imm32/outputs
-4352 "bb/copy-to-ebx"/imm32/subx-name
-4353 0/imm32/no-rm32
-4354 0/imm32/no-r32
-4355 1/imm32/imm32-is-first-inout
-4356 1/imm32/output-is-write-only
-4357 _Primitive-copy-to-esi/imm32/next
-4358 _Primitive-copy-to-esi:
-4359
-4360 "copy"/imm32/name
-4361 Single-lit-var/imm32/inouts
-4362 Single-int-var-in-esi/imm32/outputs
-4363 "be/copy-to-esi"/imm32/subx-name
-4364 0/imm32/no-rm32
-4365 0/imm32/no-r32
-4366 1/imm32/imm32-is-first-inout
-4367 1/imm32/output-is-write-only
-4368 _Primitive-copy-to-edi/imm32/next
-4369 _Primitive-copy-to-edi:
-4370
-4371 "copy"/imm32/name
-4372 Single-lit-var/imm32/inouts
-4373 Single-int-var-in-edi/imm32/outputs
-4374 "bf/copy-to-edi"/imm32/subx-name
-4375 0/imm32/no-rm32
-4376 0/imm32/no-r32
-4377 1/imm32/imm32-is-first-inout
-4378 1/imm32/output-is-write-only
-4379 _Primitive-copy-reg-to-reg/imm32/next
-4380 _Primitive-copy-reg-to-reg:
-4381
-4382 "copy"/imm32/name
-4383 Single-int-var-in-some-register/imm32/inouts
-4384 Single-int-var-in-some-register/imm32/outputs
-4385 "89/copy-to"/imm32/subx-name
-4386 3/imm32/rm32-is-first-output
-4387 1/imm32/r32-is-first-inout
-4388 0/imm32/no-imm32
-4389 1/imm32/output-is-write-only
-4390 _Primitive-copy-reg-to-mem/imm32/next
-4391 _Primitive-copy-reg-to-mem:
-4392
-4393 "copy-to"/imm32/name
-4394 Int-var-and-second-int-var-in-some-register/imm32/inouts
-4395 0/imm32/outputs
-4396 "89/copy-to"/imm32/subx-name
-4397 1/imm32/rm32-is-first-inout
-4398 2/imm32/r32-is-second-inout
-4399 0/imm32/no-imm32
-4400 1/imm32/output-is-write-only
-4401 _Primitive-copy-mem-to-reg/imm32/next
-4402 _Primitive-copy-mem-to-reg:
-4403
-4404 "copy"/imm32/name
-4405 Single-int-var-on-stack/imm32/inouts
-4406 Single-int-var-in-some-register/imm32/outputs
-4407 "8b/copy-from"/imm32/subx-name
-4408 1/imm32/rm32-is-first-inout
-4409 3/imm32/r32-is-first-output
-4410 0/imm32/no-imm32
-4411 1/imm32/output-is-write-only
-4412 _Primitive-copy-lit-to-reg/imm32/next
-4413 _Primitive-copy-lit-to-reg:
-4414
-4415 "copy"/imm32/name
-4416 Single-lit-var/imm32/inouts
-4417 Single-int-var-in-some-register/imm32/outputs
-4418 "c7 0/subop/copy"/imm32/subx-name
-4419 3/imm32/rm32-is-first-output
-4420 0/imm32/no-r32
-4421 1/imm32/imm32-is-first-inout
-4422 1/imm32/output-is-write-only
-4423 _Primitive-copy-lit-to-mem/imm32/next
-4424 _Primitive-copy-lit-to-mem:
-4425
-4426 "copy-to"/imm32/name
-4427 Int-var-and-literal/imm32/inouts
-4428 0/imm32/outputs
-4429 "c7 0/subop/copy"/imm32/subx-name
-4430 1/imm32/rm32-is-first-inout
-4431 0/imm32/no-r32
-4432 2/imm32/imm32-is-first-inout
-4433 1/imm32/output-is-write-only
-4434 0/imm32/next
-4435
-4436 Single-int-var-on-stack:
-4437 Int-var-on-stack/imm32
-4438 0/imm32/next
-4439
-4440 Int-var-on-stack:
-4441 "arg1"/imm32/name
-4442 Type-int/imm32
-4443 1/imm32/some-block-depth
-4444 1/imm32/some-stack-offset
-4445 0/imm32/no-register
-4446
-4447 Int-var-and-second-int-var-in-some-register:
-4448 Int-var-on-stack/imm32
-4449 Single-int-var-in-some-register/imm32/next
-4450
-4451 Int-var-and-literal:
-4452 Int-var-on-stack/imm32
-4453 Single-lit-var/imm32/next
-4454
-4455 Single-int-var-in-some-register:
-4456 Int-var-in-some-register/imm32
-4457 0/imm32/next
-4458
-4459 Int-var-in-some-register:
-4460 "arg1"/imm32/name
-4461 Type-int/imm32
-4462 1/imm32/some-block-depth
-4463 0/imm32/no-stack-offset
-4464 "*"/imm32/register
-4465
-4466 Single-int-var-in-eax:
-4467 Int-var-in-eax/imm32
-4468 0/imm32/next
-4469
-4470 Int-var-in-eax:
-4471 "arg1"/imm32/name
-4472 Type-int/imm32
-4473 1/imm32/some-block-depth
-4474 0/imm32/no-stack-offset
-4475 "eax"/imm32/register
-4476
-4477 Single-int-var-in-ecx:
-4478 Int-var-in-ecx/imm32
-4479 0/imm32/next
-4480
-4481 Int-var-in-ecx:
-4482 "arg1"/imm32/name
-4483 Type-int/imm32
-4484 1/imm32/some-block-depth
-4485 0/imm32/no-stack-offset
-4486 "ecx"/imm32/register
-4487
-4488 Single-int-var-in-edx:
-4489 Int-var-in-edx/imm32
-4490 0/imm32/next
-4491
-4492 Int-var-in-edx:
-4493 "arg1"/imm32/name
-4494 Type-int/imm32
-4495 1/imm32/some-block-depth
-4496 0/imm32/no-stack-offset
-4497 "edx"/imm32/register
-4498
-4499 Single-int-var-in-ebx:
-4500 Int-var-in-ebx/imm32
-4501 0/imm32/next
-4502
-4503 Int-var-in-ebx:
-4504 "arg1"/imm32/name
-4505 Type-int/imm32
-4506 1/imm32/some-block-depth
-4507 0/imm32/no-stack-offset
-4508 "ebx"/imm32/register
-4509
-4510 Single-int-var-in-esi:
-4511 Int-var-in-esi/imm32
-4512 0/imm32/next
-4513
-4514 Int-var-in-esi:
-4515 "arg1"/imm32/name
-4516 Type-int/imm32
-4517 1/imm32/some-block-depth
-4518 0/imm32/no-stack-offset
-4519 "esi"/imm32/register
-4520
-4521 Single-int-var-in-edi:
-4522 Int-var-in-edi/imm32
-4523 0/imm32/next
-4524
-4525 Int-var-in-edi:
-4526 "arg1"/imm32/name
-4527 Type-int/imm32
-4528 1/imm32/some-block-depth
-4529 0/imm32/no-stack-offset
-4530 "edi"/imm32/register
-4531
-4532 Single-lit-var:
-4533 Lit-var/imm32
-4534 0/imm32/next
-4535
-4536 Lit-var:
-4537 "literal"/imm32/name
-4538 Type-literal/imm32
-4539 1/imm32/some-block-depth
-4540 0/imm32/no-stack-offset
-4541 0/imm32/no-register
-4542
-4543 Type-int:
-4544 1/imm32/left/int
-4545 0/imm32/right/null
-4546
-4547 Type-literal:
-4548 0/imm32/left/literal
-4549 0/imm32/right/null
-4550
-4551 == code
-4552 emit-subx-primitive:
-4553
-4554 55/push-ebp
-4555 89/<- %ebp 4/r32/esp
-4556
-4557 50/push-eax
-4558 51/push-ecx
-4559
-4560 8b/-> *(ebp+0x10) 1/r32/ecx
-4561
-4562 (write-buffered *(ebp+8) *(ecx+0xc))
-4563
-4564 (emit-subx-rm32 *(ebp+8) *(ecx+0x10) *(ebp+0xc))
-4565
-4566 (emit-subx-r32 *(ebp+8) *(ecx+0x14) *(ebp+0xc))
-4567
-4568 (emit-subx-imm32 *(ebp+8) *(ecx+0x18) *(ebp+0xc))
-4569 $emit-subx-primitive:end:
-4570
-4571 59/pop-to-ecx
-4572 58/pop-to-eax
-4573
-4574 89/<- %esp 5/r32/ebp
-4575 5d/pop-to-ebp
-4576 c3/return
+3723
+3724 50/push-eax
+3725 56/push-esi
+3726
+3727 8b/-> *(ebp+0xc) 6/r32/esi
+3728 8b/-> *(esi+4) 6/r32/esi
+3729
+3730 {
+3731 $emit-subx-block:check-empty:
+3732 81 7/subop/compare %esi 0/imm32
+3733 0f 84/jump-if-= break/disp32
+3734 (write-buffered *(ebp+8) "{\n")
+3735 {
+3736 $emit-subx-block:loop:
+3737 81 7/subop/compare %esi 0/imm32
+3738 74/jump-if-= break/disp8
+3739
+3740 8b/-> *esi 0/r32/eax
+3741 {
+3742 $emit-subx-block:check-for-block:
+3743 81 7/subop/compare *eax 0/imm32/block
+3744 75/jump-if-not-equal break/disp8
+3745 $emit-subx-block:block:
+3746
+3747 }
+3748 {
+3749 $emit-subx-block:check-for-stmt:
+3750 81 7/subop/compare *eax 1/imm32/stmt1
+3751 75/jump-if-not-equal break/disp8
+3752 $emit-subx-block:stmt:
+3753 (emit-subx-statement *(ebp+8) %eax Primitives *Program)
+3754 }
+3755 {
+3756 $emit-subx-block:check-for-vardef:
+3757 81 7/subop/compare *eax 2/imm32/vardef
+3758 75/jump-if-not-equal break/disp8
+3759 $emit-subx-block:vardef:
+3760
+3761 }
+3762 {
+3763 $emit-subx-block:check-for-regvardef:
+3764 81 7/subop/compare *eax 3/imm32/regvardef
+3765 75/jump-if-not-equal break/disp8
+3766 $emit-subx-block:regvardef:
+3767
+3768 }
+3769 {
+3770 $emit-subx-block:check-for-named-block:
+3771 81 7/subop/compare *eax 4/imm32/named-block
+3772 75/jump-if-not-equal break/disp8
+3773 $emit-subx-block:named-block:
+3774
+3775 }
+3776 (write-buffered *(ebp+8) Newline)
+3777 8b/-> *(esi+4) 6/r32/esi
+3778 eb/jump loop/disp8
+3779 }
+3780 (write-buffered *(ebp+8) "}\n")
+3781 }
+3782 $emit-subx-block:end:
+3783
+3784 5e/pop-to-esi
+3785 58/pop-to-eax
+3786
+3787 89/<- %esp 5/r32/ebp
+3788 5d/pop-to-ebp
+3789 c3/return
+3790
+3791 emit-subx-statement:
+3792
+3793 55/push-ebp
+3794 89/<- %ebp 4/r32/esp
+3795
+3796 50/push-eax
+3797 51/push-ecx
+3798
+3799 {
+3800 $emit-subx-statement:primitive:
+3801 (find-matching-primitive *(ebp+0x10) *(ebp+0xc))
+3802 3d/compare-eax-and 0/imm32
+3803 74/jump-if-= break/disp8
+3804 (emit-subx-primitive *(ebp+8) *(ebp+0xc) %eax)
+3805 e9/jump $emit-subx-statement:end/disp32
+3806 }
+3807
+3808 {
+3809 $emit-subx-statement:call:
+3810 (find-matching-function *(ebp+0x14) *(ebp+0xc))
+3811 3d/compare-eax-and 0/imm32
+3812 74/jump-if-= break/disp8
+3813 (emit-subx-call *(ebp+8) *(ebp+0xc) %eax)
+3814 e9/jump $emit-subx-statement:end/disp32
+3815 }
+3816
+3817 e9/jump $emit-subx-statement:abort/disp32
+3818 $emit-subx-statement:end:
+3819
+3820 59/pop-to-ecx
+3821 58/pop-to-eax
+3822
+3823 89/<- %esp 5/r32/ebp
+3824 5d/pop-to-ebp
+3825 c3/return
+3826
+3827 $emit-subx-statement:abort:
+3828
+3829 (write-buffered Stderr "couldn't translate '")
+3830
+3831 (write-buffered Stderr "'\n")
+3832 (flush Stderr)
+3833
+3834 bb/copy-to-ebx 1/imm32
+3835 b8/copy-to-eax 1/imm32/exit
+3836 cd/syscall 0x80/imm8
+3837
+3838
+3839
+3840
+3841 == data
+3842 Primitives:
+3843
+3844 _Primitive-inc-eax:
+3845
+3846 "increment"/imm32/name
+3847 0/imm32/no-inouts
+3848 Single-int-var-in-eax/imm32/outputs
+3849 "40/increment-eax"/imm32/subx-name
+3850 0/imm32/no-rm32
+3851 0/imm32/no-r32
+3852 0/imm32/no-imm32
+3853 0/imm32/output-is-write-only
+3854 _Primitive-inc-ecx/imm32/next
+3855 _Primitive-inc-ecx:
+3856
+3857 "increment"/imm32/name
+3858 0/imm32/no-inouts
+3859 Single-int-var-in-ecx/imm32/outputs
+3860 "41/increment-ecx"/imm32/subx-name
+3861 0/imm32/no-rm32
+3862 0/imm32/no-r32
+3863 0/imm32/no-imm32
+3864 0/imm32/output-is-write-only
+3865 _Primitive-inc-edx/imm32/next
+3866 _Primitive-inc-edx:
+3867
+3868 "increment"/imm32/name
+3869 0/imm32/no-inouts
+3870 Single-int-var-in-edx/imm32/outputs
+3871 "42/increment-edx"/imm32/subx-name
+3872 0/imm32/no-rm32
+3873 0/imm32/no-r32
+3874 0/imm32/no-imm32
+3875 0/imm32/output-is-write-only
+3876 _Primitive-inc-ebx/imm32/next
+3877 _Primitive-inc-ebx:
+3878
+3879 "increment"/imm32/name
+3880 0/imm32/no-inouts
+3881 Single-int-var-in-ebx/imm32/outputs
+3882 "43/increment-ebx"/imm32/subx-name
+3883 0/imm32/no-rm32
+3884 0/imm32/no-r32
+3885 0/imm32/no-imm32
+3886 0/imm32/output-is-write-only
+3887 _Primitive-inc-esi/imm32/next
+3888 _Primitive-inc-esi:
+3889
+3890 "increment"/imm32/name
+3891 0/imm32/no-inouts
+3892 Single-int-var-in-esi/imm32/outputs
+3893 "46/increment-esi"/imm32/subx-name
+3894 0/imm32/no-rm32
+3895 0/imm32/no-r32
+3896 0/imm32/no-imm32
+3897 0/imm32/output-is-write-only
+3898 _Primitive-inc-edi/imm32/next
+3899 _Primitive-inc-edi:
+3900
+3901 "increment"/imm32/name
+3902 0/imm32/no-inouts
+3903 Single-int-var-in-edi/imm32/outputs
+3904 "47/increment-edi"/imm32/subx-name
+3905 0/imm32/no-rm32
+3906 0/imm32/no-r32
+3907 0/imm32/no-imm32
+3908 0/imm32/output-is-write-only
+3909 _Primitive-dec-eax/imm32/next
+3910 _Primitive-dec-eax:
+3911
+3912 "decrement"/imm32/name
+3913 0/imm32/no-inouts
+3914 Single-int-var-in-eax/imm32/outputs
+3915 "48/decrement-eax"/imm32/subx-name
+3916 0/imm32/no-rm32
+3917 0/imm32/no-r32
+3918 0/imm32/no-imm32
+3919 0/imm32/output-is-write-only
+3920 _Primitive-dec-ecx/imm32/next
+3921 _Primitive-dec-ecx:
+3922
+3923 "decrement"/imm32/name
+3924 0/imm32/no-inouts
+3925 Single-int-var-in-ecx/imm32/outputs
+3926 "49/decrement-ecx"/imm32/subx-name
+3927 0/imm32/no-rm32
+3928 0/imm32/no-r32
+3929 0/imm32/no-imm32
+3930 0/imm32/output-is-write-only
+3931 _Primitive-dec-edx/imm32/next
+3932 _Primitive-dec-edx:
+3933
+3934 "decrement"/imm32/name
+3935 0/imm32/no-inouts
+3936 Single-int-var-in-edx/imm32/outputs
+3937 "4a/decrement-edx"/imm32/subx-name
+3938 0/imm32/no-rm32
+3939 0/imm32/no-r32
+3940 0/imm32/no-imm32
+3941 0/imm32/output-is-write-only
+3942 _Primitive-dec-ebx/imm32/next
+3943 _Primitive-dec-ebx:
+3944
+3945 "decrement"/imm32/name
+3946 0/imm32/no-inouts
+3947 Single-int-var-in-ebx/imm32/outputs
+3948 "4b/decrement-ebx"/imm32/subx-name
+3949 0/imm32/no-rm32
+3950 0/imm32/no-r32
+3951 0/imm32/no-imm32
+3952 0/imm32/output-is-write-only
+3953 _Primitive-dec-esi/imm32/next
+3954 _Primitive-dec-esi:
+3955
+3956 "decrement"/imm32/name
+3957 0/imm32/no-inouts
+3958 Single-int-var-in-esi/imm32/outputs
+3959 "4e/decrement-esi"/imm32/subx-name
+3960 0/imm32/no-rm32
+3961 0/imm32/no-r32
+3962 0/imm32/no-imm32
+3963 0/imm32/output-is-write-only
+3964 _Primitive-dec-edi/imm32/next
+3965 _Primitive-dec-edi:
+3966
+3967 "decrement"/imm32/name
+3968 0/imm32/no-inouts
+3969 Single-int-var-in-edi/imm32/outputs
+3970 "4f/decrement-edi"/imm32/subx-name
+3971 0/imm32/no-rm32
+3972 0/imm32/no-r32
+3973 0/imm32/no-imm32
+3974 0/imm32/output-is-write-only
+3975 _Primitive-inc-mem/imm32/next
+3976 _Primitive-inc-mem:
+3977
+3978 "increment"/imm32/name
+3979 Single-int-var-on-stack/imm32/inouts
+3980 0/imm32/no-outputs
+3981 "ff 0/subop/increment"/imm32/subx-name
+3982 1/imm32/rm32-is-first-inout
+3983 0/imm32/no-r32
+3984 0/imm32/no-imm32
+3985 0/imm32/output-is-write-only
+3986 _Primitive-inc-reg/imm32/next
+3987 _Primitive-inc-reg:
+3988
+3989 "increment"/imm32/name
+3990 0/imm32/no-inouts
+3991 Single-int-var-in-some-register/imm32/outputs
+3992 "ff 0/subop/increment"/imm32/subx-name
+3993 3/imm32/rm32-is-first-output
+3994 0/imm32/no-r32
+3995 0/imm32/no-imm32
+3996 0/imm32/output-is-write-only
+3997 _Primitive-dec-mem/imm32/next
+3998 _Primitive-dec-mem:
+3999
+4000 "decrement"/imm32/name
+4001 Single-int-var-on-stack/imm32/inouts
+4002 0/imm32/no-outputs
+4003 "ff 1/subop/decrement"/imm32/subx-name
+4004 1/imm32/rm32-is-first-inout
+4005 0/imm32/no-r32
+4006 0/imm32/no-imm32
+4007 0/imm32/output-is-write-only
+4008 _Primitive-dec-reg/imm32/next
+4009 _Primitive-dec-reg:
+4010
+4011 "decrement"/imm32/name
+4012 0/imm32/no-inouts
+4013 Single-int-var-in-some-register/imm32/outputs
+4014 "ff 1/subop/decrement"/imm32/subx-name
+4015 3/imm32/rm32-is-first-output
+4016 0/imm32/no-r32
+4017 0/imm32/no-imm32
+4018 0/imm32/output-is-write-only
+4019 _Primitive-add-to-eax/imm32/next
+4020
+4021 _Primitive-add-to-eax:
+4022
+4023 "add"/imm32/name
+4024 Single-lit-var/imm32/inouts
+4025 Single-int-var-in-eax/imm32/outputs
+4026 "05/add-to-eax"/imm32/subx-name
+4027 0/imm32/no-rm32
+4028 0/imm32/no-r32
+4029 1/imm32/imm32-is-first-inout
+4030 0/imm32/output-is-write-only
+4031 _Primitive-add-reg-to-reg/imm32/next
+4032 _Primitive-add-reg-to-reg:
+4033
+4034 "add"/imm32/name
+4035 Single-int-var-in-some-register/imm32/inouts
+4036 Single-int-var-in-some-register/imm32/outputs
+4037 "01/add-to"/imm32/subx-name
+4038 3/imm32/rm32-is-first-output
+4039 1/imm32/r32-is-first-inout
+4040 0/imm32/no-imm32
+4041 0/imm32/output-is-write-only
+4042 _Primitive-add-reg-to-mem/imm32/next
+4043 _Primitive-add-reg-to-mem:
+4044
+4045 "add-to"/imm32/name
+4046 Int-var-and-second-int-var-in-some-register/imm32/inouts
+4047 0/imm32/outputs
+4048 "01/add-to"/imm32/subx-name
+4049 1/imm32/rm32-is-first-inout
+4050 2/imm32/r32-is-second-inout
+4051 0/imm32/no-imm32
+4052 0/imm32/output-is-write-only
+4053 _Primitive-add-mem-to-reg/imm32/next
+4054 _Primitive-add-mem-to-reg:
+4055
+4056 "add"/imm32/name
+4057 Single-int-var-on-stack/imm32/inouts
+4058 Single-int-var-in-some-register/imm32/outputs
+4059 "03/add"/imm32/subx-name
+4060 1/imm32/rm32-is-first-inout
+4061 3/imm32/r32-is-first-output
+4062 0/imm32/no-imm32
+4063 0/imm32/output-is-write-only
+4064 _Primitive-add-lit-to-reg/imm32/next
+4065 _Primitive-add-lit-to-reg:
+4066
+4067 "add"/imm32/name
+4068 Single-lit-var/imm32/inouts
+4069 Single-int-var-in-some-register/imm32/outputs
+4070 "81 0/subop/add"/imm32/subx-name
+4071 3/imm32/rm32-is-first-output
+4072 0/imm32/no-r32
+4073 1/imm32/imm32-is-first-inout
+4074 0/imm32/output-is-write-only
+4075 _Primitive-add-lit-to-mem/imm32/next
+4076 _Primitive-add-lit-to-mem:
+4077
+4078 "add-to"/imm32/name
+4079 Int-var-and-literal/imm32/inouts
+4080 0/imm32/outputs
+4081 "81 0/subop/add"/imm32/subx-name
+4082 1/imm32/rm32-is-first-inout
+4083 0/imm32/no-r32
+4084 2/imm32/imm32-is-first-inout
+4085 0/imm32/output-is-write-only
+4086 _Primitive-subtract-from-eax/imm32/next
+4087
+4088 _Primitive-subtract-from-eax:
+4089
+4090 "subtract"/imm32/name
+4091 Single-lit-var/imm32/inouts
+4092 Single-int-var-in-eax/imm32/outputs
+4093 "2d/subtract-from-eax"/imm32/subx-name
+4094 0/imm32/no-rm32
+4095 0/imm32/no-r32
+4096 1/imm32/imm32-is-first-inout
+4097 0/imm32/output-is-write-only
+4098 _Primitive-subtract-reg-from-reg/imm32/next
+4099 _Primitive-subtract-reg-from-reg:
+4100
+4101 "subtract"/imm32/name
+4102 Single-int-var-in-some-register/imm32/inouts
+4103 Single-int-var-in-some-register/imm32/outputs
+4104 "29/subtract-from"/imm32/subx-name
+4105 3/imm32/rm32-is-first-output
+4106 1/imm32/r32-is-first-inout
+4107 0/imm32/no-imm32
+4108 0/imm32/output-is-write-only
+4109 _Primitive-subtract-reg-from-mem/imm32/next
+4110 _Primitive-subtract-reg-from-mem:
+4111
+4112 "subtract-from"/imm32/name
+4113 Int-var-and-second-int-var-in-some-register/imm32/inouts
+4114 0/imm32/outputs
+4115 "29/subtract-from"/imm32/subx-name
+4116 1/imm32/rm32-is-first-inout
+4117 2/imm32/r32-is-second-inout
+4118 0/imm32/no-imm32
+4119 0/imm32/output-is-write-only
+4120 _Primitive-subtract-mem-from-reg/imm32/next
+4121 _Primitive-subtract-mem-from-reg:
+4122
+4123 "subtract"/imm32/name
+4124 Single-int-var-on-stack/imm32/inouts
+4125 Single-int-var-in-some-register/imm32/outputs
+4126 "2b/subtract"/imm32/subx-name
+4127 1/imm32/rm32-is-first-inout
+4128 3/imm32/r32-is-first-output
+4129 0/imm32/no-imm32
+4130 0/imm32/output-is-write-only
+4131 _Primitive-subtract-lit-from-reg/imm32/next
+4132 _Primitive-subtract-lit-from-reg:
+4133
+4134 "subtract"/imm32/name
+4135 Single-lit-var/imm32/inouts
+4136 Single-int-var-in-some-register/imm32/outputs
+4137 "81 5/subop/subtract"/imm32/subx-name
+4138 3/imm32/rm32-is-first-output
+4139 0/imm32/no-r32
+4140 1/imm32/imm32-is-first-inout
+4141 0/imm32/output-is-write-only
+4142 _Primitive-subtract-lit-from-mem/imm32/next
+4143 _Primitive-subtract-lit-from-mem:
+4144
+4145 "subtract-from"/imm32/name
+4146 Int-var-and-literal/imm32/inouts
+4147 0/imm32/outputs
+4148 "81 5/subop/subtract"/imm32/subx-name
+4149 1/imm32/rm32-is-first-inout
+4150 0/imm32/no-r32
+4151 2/imm32/imm32-is-first-inout
+4152 0/imm32/output-is-write-only
+4153 _Primitive-and-with-eax/imm32/next
+4154
+4155 _Primitive-and-with-eax:
+4156
+4157 "and"/imm32/name
+4158 Single-lit-var/imm32/inouts
+4159 Single-int-var-in-eax/imm32/outputs
+4160 "25/and-with-eax"/imm32/subx-name
+4161 0/imm32/no-rm32
+4162 0/imm32/no-r32
+4163 1/imm32/imm32-is-first-inout
+4164 0/imm32/output-is-write-only
+4165 _Primitive-and-reg-with-reg/imm32/next
+4166 _Primitive-and-reg-with-reg:
+4167
+4168 "and"/imm32/name
+4169 Single-int-var-in-some-register/imm32/inouts
+4170 Single-int-var-in-some-register/imm32/outputs
+4171 "21/and-with"/imm32/subx-name
+4172 3/imm32/rm32-is-first-output
+4173 1/imm32/r32-is-first-inout
+4174 0/imm32/no-imm32
+4175 0/imm32/output-is-write-only
+4176 _Primitive-and-reg-with-mem/imm32/next
+4177 _Primitive-and-reg-with-mem:
+4178
+4179 "and-with"/imm32/name
+4180 Int-var-and-second-int-var-in-some-register/imm32/inouts
+4181 0/imm32/outputs
+4182 "21/and-with"/imm32/subx-name
+4183 1/imm32/rm32-is-first-inout
+4184 2/imm32/r32-is-second-inout
+4185 0/imm32/no-imm32
+4186 0/imm32/output-is-write-only
+4187 _Primitive-and-mem-with-reg/imm32/next
+4188 _Primitive-and-mem-with-reg:
+4189
+4190 "and"/imm32/name
+4191 Single-int-var-on-stack/imm32/inouts
+4192 Single-int-var-in-some-register/imm32/outputs
+4193 "23/and"/imm32/subx-name
+4194 1/imm32/rm32-is-first-inout
+4195 3/imm32/r32-is-first-output
+4196 0/imm32/no-imm32
+4197 0/imm32/output-is-write-only
+4198 _Primitive-and-lit-with-reg/imm32/next
+4199 _Primitive-and-lit-with-reg:
+4200
+4201 "and"/imm32/name
+4202 Single-lit-var/imm32/inouts
+4203 Single-int-var-in-some-register/imm32/outputs
+4204 "81 4/subop/and"/imm32/subx-name
+4205 3/imm32/rm32-is-first-output
+4206 0/imm32/no-r32
+4207 1/imm32/imm32-is-first-inout
+4208 0/imm32/output-is-write-only
+4209 _Primitive-and-lit-with-mem/imm32/next
+4210 _Primitive-and-lit-with-mem:
+4211
+4212 "and-with"/imm32/name
+4213 Int-var-and-literal/imm32/inouts
+4214 0/imm32/outputs
+4215 "81 4/subop/and"/imm32/subx-name
+4216 1/imm32/rm32-is-first-inout
+4217 0/imm32/no-r32
+4218 2/imm32/imm32-is-first-inout
+4219 0/imm32/output-is-write-only
+4220 _Primitive-or-with-eax/imm32/next
+4221
+4222 _Primitive-or-with-eax:
+4223
+4224 "or"/imm32/name
+4225 Single-lit-var/imm32/inouts
+4226 Single-int-var-in-eax/imm32/outputs
+4227 "0d/or-with-eax"/imm32/subx-name
+4228 0/imm32/no-rm32
+4229 0/imm32/no-r32
+4230 1/imm32/imm32-is-first-inout
+4231 0/imm32/output-is-write-only
+4232 _Primitive-or-reg-with-reg/imm32/next
+4233 _Primitive-or-reg-with-reg:
+4234
+4235 "or"/imm32/name
+4236 Single-int-var-in-some-register/imm32/inouts
+4237 Single-int-var-in-some-register/imm32/outputs
+4238 "09/or-with"/imm32/subx-name
+4239 3/imm32/rm32-is-first-output
+4240 1/imm32/r32-is-first-inout
+4241 0/imm32/no-imm32
+4242 0/imm32/output-is-write-only
+4243 _Primitive-or-reg-with-mem/imm32/next
+4244 _Primitive-or-reg-with-mem:
+4245
+4246 "or-with"/imm32/name
+4247 Int-var-and-second-int-var-in-some-register/imm32/inouts
+4248 0/imm32/outputs
+4249 "09/or-with"/imm32/subx-name
+4250 1/imm32/rm32-is-first-inout
+4251 2/imm32/r32-is-second-inout
+4252 0/imm32/no-imm32
+4253 0/imm32/output-is-write-only
+4254 _Primitive-or-mem-with-reg/imm32/next
+4255 _Primitive-or-mem-with-reg:
+4256
+4257 "or"/imm32/name
+4258 Single-int-var-on-stack/imm32/inouts
+4259 Single-int-var-in-some-register/imm32/outputs
+4260 "0b/or"/imm32/subx-name
+4261 1/imm32/rm32-is-first-inout
+4262 3/imm32/r32-is-first-output
+4263 0/imm32/no-imm32
+4264 0/imm32/output-is-write-only
+4265 _Primitive-or-lit-with-reg/imm32/next
+4266 _Primitive-or-lit-with-reg:
+4267
+4268 "or"/imm32/name
+4269 Single-lit-var/imm32/inouts
+4270 Single-int-var-in-some-register/imm32/outputs
+4271 "81 4/subop/or"/imm32/subx-name
+4272 3/imm32/rm32-is-first-output
+4273 0/imm32/no-r32
+4274 1/imm32/imm32-is-first-inout
+4275 0/imm32/output-is-write-only
+4276 _Primitive-or-lit-with-mem/imm32/next
+4277 _Primitive-or-lit-with-mem:
+4278
+4279 "or-with"/imm32/name
+4280 Int-var-and-literal/imm32/inouts
+4281 0/imm32/outputs
+4282 "81 4/subop/or"/imm32/subx-name
+4283 1/imm32/rm32-is-first-inout
+4284 0/imm32/no-r32
+4285 2/imm32/imm32-is-first-inout
+4286 0/imm32/output-is-write-only
+4287 _Primitive-xor-with-eax/imm32/next
+4288
+4289 _Primitive-xor-with-eax:
+4290
+4291 "xor"/imm32/name
+4292 Single-lit-var/imm32/inouts
+4293 Single-int-var-in-eax/imm32/outputs
+4294 "35/xor-with-eax"/imm32/subx-name
+4295 0/imm32/no-rm32
+4296 0/imm32/no-r32
+4297 1/imm32/imm32-is-first-inout
+4298 0/imm32/output-is-write-only
+4299 _Primitive-xor-reg-with-reg/imm32/next
+4300 _Primitive-xor-reg-with-reg:
+4301
+4302 "xor"/imm32/name
+4303 Single-int-var-in-some-register/imm32/inouts
+4304 Single-int-var-in-some-register/imm32/outputs
+4305 "31/xor-with"/imm32/subx-name
+4306 3/imm32/rm32-is-first-output
+4307 1/imm32/r32-is-first-inout
+4308 0/imm32/no-imm32
+4309 0/imm32/output-is-write-only
+4310 _Primitive-xor-reg-with-mem/imm32/next
+4311 _Primitive-xor-reg-with-mem:
+4312
+4313 "xor-with"/imm32/name
+4314 Int-var-and-second-int-var-in-some-register/imm32/inouts
+4315 0/imm32/outputs
+4316 "31/xor-with"/imm32/subx-name
+4317 1/imm32/rm32-is-first-inout
+4318 2/imm32/r32-is-second-inout
+4319 0/imm32/no-imm32
+4320 0/imm32/output-is-write-only
+4321 _Primitive-xor-mem-with-reg/imm32/next
+4322 _Primitive-xor-mem-with-reg:
+4323
+4324 "xor"/imm32/name
+4325 Single-int-var-on-stack/imm32/inouts
+4326 Single-int-var-in-some-register/imm32/outputs
+4327 "33/xor"/imm32/subx-name
+4328 1/imm32/rm32-is-first-inout
+4329 3/imm32/r32-is-first-output
+4330 0/imm32/no-imm32
+4331 0/imm32/output-is-write-only
+4332 _Primitive-xor-lit-with-reg/imm32/next
+4333 _Primitive-xor-lit-with-reg:
+4334
+4335 "xor"/imm32/name
+4336 Single-lit-var/imm32/inouts
+4337 Single-int-var-in-some-register/imm32/outputs
+4338 "81 4/subop/xor"/imm32/subx-name
+4339 3/imm32/rm32-is-first-output
+4340 0/imm32/no-r32
+4341 1/imm32/imm32-is-first-inout
+4342 0/imm32/output-is-write-only
+4343 _Primitive-xor-lit-with-mem/imm32/next
+4344 _Primitive-xor-lit-with-mem:
+4345
+4346 "xor-with"/imm32/name
+4347 Int-var-and-literal/imm32/inouts
+4348 0/imm32/outputs
+4349 "81 4/subop/xor"/imm32/subx-name
+4350 1/imm32/rm32-is-first-inout
+4351 0/imm32/no-r32
+4352 2/imm32/imm32-is-first-inout
+4353 0/imm32/output-is-write-only
+4354 _Primitive-copy-to-eax/imm32/next
+4355
+4356 _Primitive-copy-to-eax:
+4357
+4358 "copy"/imm32/name
+4359 Single-lit-var/imm32/inouts
+4360 Single-int-var-in-eax/imm32/outputs
+4361 "b8/copy-to-eax"/imm32/subx-name
+4362 0/imm32/no-rm32
+4363 0/imm32/no-r32
+4364 1/imm32/imm32-is-first-inout
+4365 1/imm32/output-is-write-only
+4366 _Primitive-copy-to-ecx/imm32/next
+4367 _Primitive-copy-to-ecx:
+4368
+4369 "copy"/imm32/name
+4370 Single-lit-var/imm32/inouts
+4371 Single-int-var-in-ecx/imm32/outputs
+4372 "b9/copy-to-ecx"/imm32/subx-name
+4373 0/imm32/no-rm32
+4374 0/imm32/no-r32
+4375 1/imm32/imm32-is-first-inout
+4376 1/imm32/output-is-write-only
+4377 _Primitive-copy-to-edx/imm32/next
+4378 _Primitive-copy-to-edx:
+4379
+4380 "copy"/imm32/name
+4381 Single-lit-var/imm32/inouts
+4382 Single-int-var-in-edx/imm32/outputs
+4383 "ba/copy-to-edx"/imm32/subx-name
+4384 0/imm32/no-rm32
+4385 0/imm32/no-r32
+4386 1/imm32/imm32-is-first-inout
+4387 1/imm32/output-is-write-only
+4388 _Primitive-copy-to-ebx/imm32/next
+4389 _Primitive-copy-to-ebx:
+4390
+4391 "copy"/imm32/name
+4392 Single-lit-var/imm32/inouts
+4393 Single-int-var-in-ebx/imm32/outputs
+4394 "bb/copy-to-ebx"/imm32/subx-name
+4395 0/imm32/no-rm32
+4396 0/imm32/no-r32
+4397 1/imm32/imm32-is-first-inout
+4398 1/imm32/output-is-write-only
+4399 _Primitive-copy-to-esi/imm32/next
+4400 _Primitive-copy-to-esi:
+4401
+4402 "copy"/imm32/name
+4403 Single-lit-var/imm32/inouts
+4404 Single-int-var-in-esi/imm32/outputs
+4405 "be/copy-to-esi"/imm32/subx-name
+4406 0/imm32/no-rm32
+4407 0/imm32/no-r32
+4408 1/imm32/imm32-is-first-inout
+4409 1/imm32/output-is-write-only
+4410 _Primitive-copy-to-edi/imm32/next
+4411 _Primitive-copy-to-edi:
+4412
+4413 "copy"/imm32/name
+4414 Single-lit-var/imm32/inouts
+4415 Single-int-var-in-edi/imm32/outputs
+4416 "bf/copy-to-edi"/imm32/subx-name
+4417 0/imm32/no-rm32
+4418 0/imm32/no-r32
+4419 1/imm32/imm32-is-first-inout
+4420 1/imm32/output-is-write-only
+4421 _Primitive-copy-reg-to-reg/imm32/next
+4422 _Primitive-copy-reg-to-reg:
+4423
+4424 "copy"/imm32/name
+4425 Single-int-var-in-some-register/imm32/inouts
+4426 Single-int-var-in-some-register/imm32/outputs
+4427 "89/copy-to"/imm32/subx-name
+4428 3/imm32/rm32-is-first-output
+4429 1/imm32/r32-is-first-inout
+4430 0/imm32/no-imm32
+4431 1/imm32/output-is-write-only
+4432 _Primitive-copy-reg-to-mem/imm32/next
+4433 _Primitive-copy-reg-to-mem:
+4434
+4435 "copy-to"/imm32/name
+4436 Int-var-and-second-int-var-in-some-register/imm32/inouts
+4437 0/imm32/outputs
+4438 "89/copy-to"/imm32/subx-name
+4439 1/imm32/rm32-is-first-inout
+4440 2/imm32/r32-is-second-inout
+4441 0/imm32/no-imm32
+4442 1/imm32/output-is-write-only
+4443 _Primitive-copy-mem-to-reg/imm32/next
+4444 _Primitive-copy-mem-to-reg:
+4445
+4446 "copy"/imm32/name
+4447 Single-int-var-on-stack/imm32/inouts
+4448 Single-int-var-in-some-register/imm32/outputs
+4449 "8b/copy-from"/imm32/subx-name
+4450 1/imm32/rm32-is-first-inout
+4451 3/imm32/r32-is-first-output
+4452 0/imm32/no-imm32
+4453 1/imm32/output-is-write-only
+4454 _Primitive-copy-lit-to-reg/imm32/next
+4455 _Primitive-copy-lit-to-reg:
+4456
+4457 "copy"/imm32/name
+4458 Single-lit-var/imm32/inouts
+4459 Single-int-var-in-some-register/imm32/outputs
+4460 "c7 0/subop/copy"/imm32/subx-name
+4461 3/imm32/rm32-is-first-output
+4462 0/imm32/no-r32
+4463 1/imm32/imm32-is-first-inout
+4464 1/imm32/output-is-write-only
+4465 _Primitive-copy-lit-to-mem/imm32/next
+4466 _Primitive-copy-lit-to-mem:
+4467
+4468 "copy-to"/imm32/name
+4469 Int-var-and-literal/imm32/inouts
+4470 0/imm32/outputs
+4471 "c7 0/subop/copy"/imm32/subx-name
+4472 1/imm32/rm32-is-first-inout
+4473 0/imm32/no-r32
+4474 2/imm32/imm32-is-first-inout
+4475 1/imm32/output-is-write-only
+4476 0/imm32/next
+4477
+4478 Single-int-var-on-stack:
+4479 Int-var-on-stack/imm32
+4480 0/imm32/next
+4481
+4482 Int-var-on-stack:
+4483 "arg1"/imm32/name
+4484 Type-int/imm32
+4485 1/imm32/some-block-depth
+4486 1/imm32/some-stack-offset
+4487 0/imm32/no-register
+4488
+4489 Int-var-and-second-int-var-in-some-register:
+4490 Int-var-on-stack/imm32
+4491 Single-int-var-in-some-register/imm32/next
+4492
+4493 Int-var-and-literal:
+4494 Int-var-on-stack/imm32
+4495 Single-lit-var/imm32/next
+4496
+4497 Single-int-var-in-some-register:
+4498 Int-var-in-some-register/imm32
+4499 0/imm32/next
+4500
+4501 Int-var-in-some-register:
+4502 "arg1"/imm32/name
+4503 Type-int/imm32
+4504 1/imm32/some-block-depth
+4505 0/imm32/no-stack-offset
+4506 "*"/imm32/register
+4507
+4508 Single-int-var-in-eax:
+4509 Int-var-in-eax/imm32
+4510 0/imm32/next
+4511
+4512 Int-var-in-eax:
+4513 "arg1"/imm32/name
+4514 Type-int/imm32
+4515 1/imm32/some-block-depth
+4516 0/imm32/no-stack-offset
+4517 "eax"/imm32/register
+4518
+4519 Single-int-var-in-ecx:
+4520 Int-var-in-ecx/imm32
+4521 0/imm32/next
+4522
+4523 Int-var-in-ecx:
+4524 "arg1"/imm32/name
+4525 Type-int/imm32
+4526 1/imm32/some-block-depth
+4527 0/imm32/no-stack-offset
+4528 "ecx"/imm32/register
+4529
+4530 Single-int-var-in-edx:
+4531 Int-var-in-edx/imm32
+4532 0/imm32/next
+4533
+4534 Int-var-in-edx:
+4535 "arg1"/imm32/name
+4536 Type-int/imm32
+4537 1/imm32/some-block-depth
+4538 0/imm32/no-stack-offset
+4539 "edx"/imm32/register
+4540
+4541 Single-int-var-in-ebx:
+4542 Int-var-in-ebx/imm32
+4543 0/imm32/next
+4544
+4545 Int-var-in-ebx:
+4546 "arg1"/imm32/name
+4547 Type-int/imm32
+4548 1/imm32/some-block-depth
+4549 0/imm32/no-stack-offset
+4550 "ebx"/imm32/register
+4551
+4552 Single-int-var-in-esi:
+4553 Int-var-in-esi/imm32
+4554 0/imm32/next
+4555
+4556 Int-var-in-esi:
+4557 "arg1"/imm32/name
+4558 Type-int/imm32
+4559 1/imm32/some-block-depth
+4560 0/imm32/no-stack-offset
+4561 "esi"/imm32/register
+4562
+4563 Single-int-var-in-edi:
+4564 Int-var-in-edi/imm32
+4565 0/imm32/next
+4566
+4567 Int-var-in-edi:
+4568 "arg1"/imm32/name
+4569 Type-int/imm32
+4570 1/imm32/some-block-depth
+4571 0/imm32/no-stack-offset
+4572 "edi"/imm32/register
+4573
+4574 Single-lit-var:
+4575 Lit-var/imm32
+4576 0/imm32/next
4577
-4578 emit-subx-rm32:
-4579
-4580 55/push-ebp
-4581 89/<- %ebp 4/r32/esp
-4582
-4583 50/push-eax
-4584
-4585 81 7/subop/compare *(ebp+0xc) 0/imm32
-4586 74/jump-if-= $emit-subx-rm32:end/disp8
-4587
-4588 (get-stmt-operand-from-arg-location *(ebp+0x10) *(ebp+0xc))
-4589 (emit-subx-var-as-rm32 *(ebp+8) %eax)
-4590 $emit-subx-rm32:end:
-4591
-4592 58/pop-to-eax
-4593
-4594 89/<- %esp 5/r32/ebp
-4595 5d/pop-to-ebp
-4596 c3/return
-4597
-4598 get-stmt-operand-from-arg-location:
-4599
-4600 55/push-ebp
-4601 89/<- %ebp 4/r32/esp
-4602
-4603 51/push-ecx
-4604
-4605 8b/-> *(ebp+0xc) 0/r32/eax
-4606
-4607 8b/-> *(ebp+8) 1/r32/ecx
-4608
-4609 {
-4610 3d/compare-eax-and 1/imm32
-4611 75/jump-if-!= break/disp8
-4612 $get-stmt-operand-from-arg-location:1:
-4613 8b/-> *(ecx+8) 0/r32/eax
-4614 8b/-> *eax 0/r32/eax
-4615 eb/jump $get-stmt-operand-from-arg-location:end/disp8
-4616 }
-4617
-4618 {
-4619 3d/compare-eax-and 2/imm32
-4620 75/jump-if-!= break/disp8
-4621 $get-stmt-operand-from-arg-location:2:
-4622 8b/-> *(ecx+8) 0/r32/eax
-4623 8b/-> *(eax+4) 0/r32/eax
-4624 8b/-> *eax 0/r32/eax
-4625 eb/jump $get-stmt-operand-from-arg-location:end/disp8
-4626 }
-4627
-4628 {
-4629 3d/compare-eax-and 3/imm32
-4630 75/jump-if-!= break/disp8
-4631 $get-stmt-operand-from-arg-location:3:
-4632 8b/-> *(ecx+0xc) 0/r32/eax
-4633 8b/-> *eax 0/r32/eax
-4634 eb/jump $get-stmt-operand-from-arg-location:end/disp8
-4635 }
-4636
-4637 e9/jump $get-stmt-operand-from-arg-location:abort/disp32
-4638 $get-stmt-operand-from-arg-location:end:
-4639
-4640 59/pop-to-ecx
-4641
-4642 89/<- %esp 5/r32/ebp
-4643 5d/pop-to-ebp
-4644 c3/return
-4645
-4646 $get-stmt-operand-from-arg-location:abort:
-4647
-4648 (write-buffered Stderr "invalid arg-location ")
-4649 (print-int32-buffered Stderr %eax)
-4650 (write-buffered Stderr "\n")
-4651 (flush Stderr)
-4652
-4653 bb/copy-to-ebx 1/imm32
-4654 b8/copy-to-eax 1/imm32/exit
-4655 cd/syscall 0x80/imm8
-4656
-4657
-4658 emit-subx-r32:
-4659
-4660 55/push-ebp
-4661 89/<- %ebp 4/r32/esp
-4662
-4663 50/push-eax
-4664 51/push-ecx
-4665
-4666 81 7/subop/compare *(ebp+0xc) 0/imm32
-4667 0f 84/jump-if-= $emit-subx-r32:end/disp32
-4668
-4669 (get-stmt-operand-from-arg-location *(ebp+0x10) *(ebp+0xc))
-4670 (maybe-get Registers *(eax+0x10) 8)
-4671 (write-buffered *(ebp+8) Space)
-4672 (print-int32-buffered *(ebp+8) *eax)
-4673 (write-buffered *(ebp+8) "/r32")
-4674 $emit-subx-r32:end:
-4675
-4676 59/pop-to-ecx
-4677 58/pop-to-eax
-4678
-4679 89/<- %esp 5/r32/ebp
-4680 5d/pop-to-ebp
-4681 c3/return
-4682
-4683 emit-subx-imm32:
-4684
-4685 55/push-ebp
-4686 89/<- %ebp 4/r32/esp
-4687
-4688 50/push-eax
-4689 51/push-ecx
-4690
-4691 81 7/subop/compare *(ebp+0xc) 0/imm32
-4692 74/jump-if-= $emit-subx-imm32:end/disp8
-4693
-4694 (get-stmt-operand-from-arg-location *(ebp+0x10) *(ebp+0xc))
-4695 (write-buffered *(ebp+8) Space)
-4696 (write-buffered *(ebp+8) *eax)
-4697 (write-buffered *(ebp+8) "/imm32")
-4698 $emit-subx-imm32:end:
-4699
-4700 59/pop-to-ecx
-4701 58/pop-to-eax
-4702
-4703 89/<- %esp 5/r32/ebp
-4704 5d/pop-to-ebp
-4705 c3/return
-4706
-4707 emit-subx-call:
-4708
-4709 55/push-ebp
-4710 89/<- %ebp 4/r32/esp
-4711
-4712 50/push-eax
-4713 51/push-ecx
-4714
-4715 (write-buffered *(ebp+8) "(")
-4716
-4717 8b/-> *(ebp+0x10) 1/r32/ecx
-4718 (write-buffered *(ebp+8) *(ecx+4))
-4719
-4720
-4721 8b/-> *(ebp+0xc) 1/r32/ecx
-4722 8b/-> *(ecx+8) 1/r32/ecx
-4723 {
-4724
-4725 81 7/subop/compare %ecx 0/imm32
-4726 74/jump-if-= break/disp8
-4727
-4728 (emit-subx-call-operand *(ebp+8) *ecx)
-4729
-4730 8b/-> *(ecx+4) 1/r32/ecx
-4731 eb/jump loop/disp8
-4732 }
-4733
-4734 (write-buffered *(ebp+8) ")")
-4735 $emit-subx-call:end:
-4736
-4737 59/pop-to-ecx
-4738 58/pop-to-eax
-4739
-4740 89/<- %esp 5/r32/ebp
-4741 5d/pop-to-ebp
-4742 c3/return
-4743
-4744 emit-subx-call-operand:
-4745
-4746 55/push-ebp
-4747 89/<- %ebp 4/r32/esp
-4748
-4749 50/push-eax
-4750
-4751 8b/-> *(ebp+0xc) 0/r32/eax
-4752
-4753 {
-4754 81 7/subop/compare *(eax+0x10) 0/imm32
-4755 74/jump-if-= break/disp8
-4756 $emit-subx-call-operand:register:
-4757 (write-buffered *(ebp+8) " %")
-4758 (write-buffered *(ebp+8) *(eax+0x10))
-4759 e9/jump $emit-subx-call-operand:end/disp32
-4760 }
-4761
-4762 {
-4763 81 7/subop/compare *(eax+0xc) 0/imm32
-4764 74/jump-if-= break/disp8
-4765 $emit-subx-call-operand:stack:
-4766 (write-buffered *(ebp+8) Space)
-4767 (write-buffered *(ebp+8) "*(ebp+")
-4768 8b/-> *(ebp+0xc) 0/r32/eax
-4769 (print-int32-buffered *(ebp+8) *(eax+0xc))
-4770 (write-buffered *(ebp+8) ")")
-4771 e9/jump $emit-subx-call-operand:end/disp32
-4772 }
-4773
-4774 {
-4775 50/push-eax
-4776 8b/-> *(eax+4) 0/r32/eax
-4777 81 7/subop/compare *eax 0/imm32
-4778 58/pop-to-eax
-4779 75/jump-if-!= break/disp8
-4780 $emit-subx-call-operand:literal:
-4781 (write-buffered *(ebp+8) Space)
-4782 (write-buffered *(ebp+8) *eax)
-4783 }
-4784 $emit-subx-call-operand:end:
-4785
-4786 58/pop-to-eax
-4787
-4788 89/<- %esp 5/r32/ebp
-4789 5d/pop-to-ebp
-4790 c3/return
-4791
-4792 emit-subx-var-as-rm32:
-4793
-4794 55/push-ebp
-4795 89/<- %ebp 4/r32/esp
-4796
-4797 50/push-eax
-4798
-4799 8b/-> *(ebp+0xc) 0/r32/eax
-4800
-4801 {
-4802 81 7/subop/compare *(eax+0x10) 0/imm32
-4803 74/jump-if-= break/disp8
-4804 $emit-subx-var-as-rm32:register:
-4805 (write-buffered *(ebp+8) " %")
-4806 (write-buffered *(ebp+8) *(eax+0x10))
-4807 }
-4808
-4809 {
-4810 81 7/subop/compare *(eax+0xc) 0/imm32
-4811 74/jump-if-= break/disp8
-4812 $emit-subx-var-as-rm32:stack:
-4813 (write-buffered *(ebp+8) Space)
-4814 (write-buffered *(ebp+8) "*(ebp+")
-4815 8b/-> *(ebp+0xc) 0/r32/eax
-4816 (print-int32-buffered *(ebp+8) *(eax+0xc))
-4817 (write-buffered *(ebp+8) ")")
-4818 }
-4819 $emit-subx-var-as-rm32:end:
-4820
-4821 58/pop-to-eax
-4822
-4823 89/<- %esp 5/r32/ebp
-4824 5d/pop-to-ebp
-4825 c3/return
-4826
-4827 find-matching-function:
-4828
-4829 55/push-ebp
-4830 89/<- %ebp 4/r32/esp
-4831
-4832 51/push-ecx
-4833
-4834 8b/-> *(ebp+8) 1/r32/ecx
-4835 {
-4836
-4837 81 7/subop/compare %ecx 0/imm32
-4838 74/jump-if-= break/disp8
-4839
-4840 {
-4841 (mu-stmt-matches-function? *(ebp+0xc) %ecx)
-4842 3d/compare-eax-and 0/imm32
-4843 74/jump-if-= break/disp8
-4844 89/<- %eax 1/r32/ecx
-4845 eb/jump $find-matching-function:end/disp8
-4846 }
-4847
-4848 8b/-> *(ecx+0x14) 1/r32/ecx
-4849 eb/jump loop/disp8
-4850 }
-4851
-4852 b8/copy-to-eax 0/imm32
-4853 $find-matching-function:end:
-4854
-4855 59/pop-to-ecx
-4856
-4857 89/<- %esp 5/r32/ebp
-4858 5d/pop-to-ebp
-4859 c3/return
-4860
-4861 find-matching-primitive:
-4862
-4863 55/push-ebp
-4864 89/<- %ebp 4/r32/esp
-4865
-4866 51/push-ecx
-4867
-4868 8b/-> *(ebp+8) 1/r32/ecx
-4869 {
-4870 $find-matching-primitive:loop:
-4871
-4872 81 7/subop/compare %ecx 0/imm32
-4873 0f 84/jump-if-= break/disp32
-4874
-4875
-4876
-4877
-4878
-4879
-4880
-4881 {
-4882 (mu-stmt-matches-primitive? *(ebp+0xc) %ecx)
-4883 3d/compare-eax-and 0/imm32
-4884 74/jump-if-= break/disp8
-4885 89/<- %eax 1/r32/ecx
-4886 eb/jump $find-matching-primitive:end/disp8
-4887 }
-4888 $find-matching-primitive:next-primitive:
+4578 Lit-var:
+4579 "literal"/imm32/name
+4580 Type-literal/imm32
+4581 1/imm32/some-block-depth
+4582 0/imm32/no-stack-offset
+4583 0/imm32/no-register
+4584
+4585 Type-int:
+4586 1/imm32/left/int
+4587 0/imm32/right/null
+4588
+4589 Type-literal:
+4590 0/imm32/left/literal
+4591 0/imm32/right/null
+4592
+4593 == code
+4594 emit-subx-primitive:
+4595
+4596 55/push-ebp
+4597 89/<- %ebp 4/r32/esp
+4598
+4599 50/push-eax
+4600 51/push-ecx
+4601
+4602 8b/-> *(ebp+0x10) 1/r32/ecx
+4603
+4604 (write-buffered *(ebp+8) *(ecx+0xc))
+4605
+4606 (emit-subx-rm32 *(ebp+8) *(ecx+0x10) *(ebp+0xc))
+4607
+4608 (emit-subx-r32 *(ebp+8) *(ecx+0x14) *(ebp+0xc))
+4609
+4610 (emit-subx-imm32 *(ebp+8) *(ecx+0x18) *(ebp+0xc))
+4611 $emit-subx-primitive:end:
+4612
+4613 59/pop-to-ecx
+4614 58/pop-to-eax
+4615
+4616 89/<- %esp 5/r32/ebp
+4617 5d/pop-to-ebp
+4618 c3/return
+4619
+4620 emit-subx-rm32:
+4621
+4622 55/push-ebp
+4623 89/<- %ebp 4/r32/esp
+4624
+4625 50/push-eax
+4626
+4627 81 7/subop/compare *(ebp+0xc) 0/imm32
+4628 74/jump-if-= $emit-subx-rm32:end/disp8
+4629
+4630 (get-stmt-operand-from-arg-location *(ebp+0x10) *(ebp+0xc))
+4631 (emit-subx-var-as-rm32 *(ebp+8) %eax)
+4632 $emit-subx-rm32:end:
+4633
+4634 58/pop-to-eax
+4635
+4636 89/<- %esp 5/r32/ebp
+4637 5d/pop-to-ebp
+4638 c3/return
+4639
+4640 get-stmt-operand-from-arg-location:
+4641
+4642 55/push-ebp
+4643 89/<- %ebp 4/r32/esp
+4644
+4645 51/push-ecx
+4646
+4647 8b/-> *(ebp+0xc) 0/r32/eax
+4648
+4649 8b/-> *(ebp+8) 1/r32/ecx
+4650
+4651 {
+4652 3d/compare-eax-and 1/imm32
+4653 75/jump-if-!= break/disp8
+4654 $get-stmt-operand-from-arg-location:1:
+4655 8b/-> *(ecx+8) 0/r32/eax
+4656 8b/-> *eax 0/r32/eax
+4657 eb/jump $get-stmt-operand-from-arg-location:end/disp8
+4658 }
+4659
+4660 {
+4661 3d/compare-eax-and 2/imm32
+4662 75/jump-if-!= break/disp8
+4663 $get-stmt-operand-from-arg-location:2:
+4664 8b/-> *(ecx+8) 0/r32/eax
+4665 8b/-> *(eax+4) 0/r32/eax
+4666 8b/-> *eax 0/r32/eax
+4667 eb/jump $get-stmt-operand-from-arg-location:end/disp8
+4668 }
+4669
+4670 {
+4671 3d/compare-eax-and 3/imm32
+4672 75/jump-if-!= break/disp8
+4673 $get-stmt-operand-from-arg-location:3:
+4674 8b/-> *(ecx+0xc) 0/r32/eax
+4675 8b/-> *eax 0/r32/eax
+4676 eb/jump $get-stmt-operand-from-arg-location:end/disp8
+4677 }
+4678
+4679 e9/jump $get-stmt-operand-from-arg-location:abort/disp32
+4680 $get-stmt-operand-from-arg-location:end:
+4681
+4682 59/pop-to-ecx
+4683
+4684 89/<- %esp 5/r32/ebp
+4685 5d/pop-to-ebp
+4686 c3/return
+4687
+4688 $get-stmt-operand-from-arg-location:abort:
+4689
+4690 (write-buffered Stderr "invalid arg-location ")
+4691 (print-int32-buffered Stderr %eax)
+4692 (write-buffered Stderr "\n")
+4693 (flush Stderr)
+4694
+4695 bb/copy-to-ebx 1/imm32
+4696 b8/copy-to-eax 1/imm32/exit
+4697 cd/syscall 0x80/imm8
+4698
+4699
+4700 emit-subx-r32:
+4701
+4702 55/push-ebp
+4703 89/<- %ebp 4/r32/esp
+4704
+4705 50/push-eax
+4706 51/push-ecx
+4707
+4708 81 7/subop/compare *(ebp+0xc) 0/imm32
+4709 0f 84/jump-if-= $emit-subx-r32:end/disp32
+4710
+4711 (get-stmt-operand-from-arg-location *(ebp+0x10) *(ebp+0xc))
+4712 (maybe-get Registers *(eax+0x10) 8)
+4713 (write-buffered *(ebp+8) Space)
+4714 (print-int32-buffered *(ebp+8) *eax)
+4715 (write-buffered *(ebp+8) "/r32")
+4716 $emit-subx-r32:end:
+4717
+4718 59/pop-to-ecx
+4719 58/pop-to-eax
+4720
+4721 89/<- %esp 5/r32/ebp
+4722 5d/pop-to-ebp
+4723 c3/return
+4724
+4725 emit-subx-imm32:
+4726
+4727 55/push-ebp
+4728 89/<- %ebp 4/r32/esp
+4729
+4730 50/push-eax
+4731 51/push-ecx
+4732
+4733 81 7/subop/compare *(ebp+0xc) 0/imm32
+4734 74/jump-if-= $emit-subx-imm32:end/disp8
+4735
+4736 (get-stmt-operand-from-arg-location *(ebp+0x10) *(ebp+0xc))
+4737 (write-buffered *(ebp+8) Space)
+4738 (write-buffered *(ebp+8) *eax)
+4739 (write-buffered *(ebp+8) "/imm32")
+4740 $emit-subx-imm32:end:
+4741
+4742 59/pop-to-ecx
+4743 58/pop-to-eax
+4744
+4745 89/<- %esp 5/r32/ebp
+4746 5d/pop-to-ebp
+4747 c3/return
+4748
+4749 emit-subx-call:
+4750
+4751 55/push-ebp
+4752 89/<- %ebp 4/r32/esp
+4753
+4754 50/push-eax
+4755 51/push-ecx
+4756
+4757 (write-buffered *(ebp+8) "(")
+4758
+4759 8b/-> *(ebp+0x10) 1/r32/ecx
+4760 (write-buffered *(ebp+8) *(ecx+4))
+4761
+4762
+4763 8b/-> *(ebp+0xc) 1/r32/ecx
+4764 8b/-> *(ecx+8) 1/r32/ecx
+4765 {
+4766
+4767 81 7/subop/compare %ecx 0/imm32
+4768 74/jump-if-= break/disp8
+4769
+4770 (emit-subx-call-operand *(ebp+8) *ecx)
+4771
+4772 8b/-> *(ecx+4) 1/r32/ecx
+4773 eb/jump loop/disp8
+4774 }
+4775
+4776 (write-buffered *(ebp+8) ")")
+4777 $emit-subx-call:end:
+4778
+4779 59/pop-to-ecx
+4780 58/pop-to-eax
+4781
+4782 89/<- %esp 5/r32/ebp
+4783 5d/pop-to-ebp
+4784 c3/return
+4785
+4786 emit-subx-call-operand:
+4787
+4788 55/push-ebp
+4789 89/<- %ebp 4/r32/esp
+4790
+4791 50/push-eax
+4792
+4793 8b/-> *(ebp+0xc) 0/r32/eax
+4794
+4795 {
+4796 81 7/subop/compare *(eax+0x10) 0/imm32
+4797 74/jump-if-= break/disp8
+4798 $emit-subx-call-operand:register:
+4799 (write-buffered *(ebp+8) " %")
+4800 (write-buffered *(ebp+8) *(eax+0x10))
+4801 e9/jump $emit-subx-call-operand:end/disp32
+4802 }
+4803
+4804 {
+4805 81 7/subop/compare *(eax+0xc) 0/imm32
+4806 74/jump-if-= break/disp8
+4807 $emit-subx-call-operand:stack:
+4808 (write-buffered *(ebp+8) Space)
+4809 (write-buffered *(ebp+8) "*(ebp+")
+4810 8b/-> *(ebp+0xc) 0/r32/eax
+4811 (print-int32-buffered *(ebp+8) *(eax+0xc))
+4812 (write-buffered *(ebp+8) ")")
+4813 e9/jump $emit-subx-call-operand:end/disp32
+4814 }
+4815
+4816 {
+4817 50/push-eax
+4818 8b/-> *(eax+4) 0/r32/eax
+4819 81 7/subop/compare *eax 0/imm32
+4820 58/pop-to-eax
+4821 75/jump-if-!= break/disp8
+4822 $emit-subx-call-operand:literal:
+4823 (write-buffered *(ebp+8) Space)
+4824 (write-buffered *(ebp+8) *eax)
+4825 }
+4826 $emit-subx-call-operand:end:
+4827
+4828 58/pop-to-eax
+4829
+4830 89/<- %esp 5/r32/ebp
+4831 5d/pop-to-ebp
+4832 c3/return
+4833
+4834 emit-subx-var-as-rm32:
+4835
+4836 55/push-ebp
+4837 89/<- %ebp 4/r32/esp
+4838
+4839 50/push-eax
+4840
+4841 8b/-> *(ebp+0xc) 0/r32/eax
+4842
+4843 {
+4844 81 7/subop/compare *(eax+0x10) 0/imm32
+4845 74/jump-if-= break/disp8
+4846 $emit-subx-var-as-rm32:register:
+4847 (write-buffered *(ebp+8) " %")
+4848 (write-buffered *(ebp+8) *(eax+0x10))
+4849 }
+4850
+4851 {
+4852 81 7/subop/compare *(eax+0xc) 0/imm32
+4853 74/jump-if-= break/disp8
+4854 $emit-subx-var-as-rm32:stack:
+4855 (write-buffered *(ebp+8) Space)
+4856 (write-buffered *(ebp+8) "*(ebp+")
+4857 8b/-> *(ebp+0xc) 0/r32/eax
+4858 (print-int32-buffered *(ebp+8) *(eax+0xc))
+4859 (write-buffered *(ebp+8) ")")
+4860 }
+4861 $emit-subx-var-as-rm32:end:
+4862
+4863 58/pop-to-eax
+4864
+4865 89/<- %esp 5/r32/ebp
+4866 5d/pop-to-ebp
+4867 c3/return
+4868
+4869 find-matching-function:
+4870
+4871 55/push-ebp
+4872 89/<- %ebp 4/r32/esp
+4873
+4874 51/push-ecx
+4875
+4876 8b/-> *(ebp+8) 1/r32/ecx
+4877 {
+4878
+4879 81 7/subop/compare %ecx 0/imm32
+4880 74/jump-if-= break/disp8
+4881
+4882 {
+4883 (mu-stmt-matches-function? *(ebp+0xc) %ecx)
+4884 3d/compare-eax-and 0/imm32
+4885 74/jump-if-= break/disp8
+4886 89/<- %eax 1/r32/ecx
+4887 eb/jump $find-matching-function:end/disp8
+4888 }
4889
-4890 8b/-> *(ecx+0x20) 1/r32/ecx
-4891 e9/jump loop/disp32
+4890 8b/-> *(ecx+0x14) 1/r32/ecx
+4891 eb/jump loop/disp8
4892 }
4893
4894 b8/copy-to-eax 0/imm32
-4895 $find-matching-primitive:end:
+4895 $find-matching-function:end:
4896
4897 59/pop-to-ecx
4898
@@ -4912,128 +4912,128 @@ if ('onhashchange' in window) {
4900 5d/pop-to-ebp
4901 c3/return
4902
-4903 mu-stmt-matches-function?:
+4903 find-matching-primitive:
4904
4905 55/push-ebp
4906 89/<- %ebp 4/r32/esp
4907
4908 51/push-ecx
-4909
+4909
4910 8b/-> *(ebp+8) 1/r32/ecx
-4911 8b/-> *(ebp+0xc) 0/r32/eax
-4912 (string-equal? *(ecx+4) *eax)
-4913 $mu-stmt-matches-function?:end:
-4914
-4915 59/pop-to-ecx
-4916
-4917 89/<- %esp 5/r32/ebp
-4918 5d/pop-to-ebp
-4919 c3/return
-4920
-4921 mu-stmt-matches-primitive?:
-4922
-4923
-4924
-4925
-4926
-4927
-4928 55/push-ebp
-4929 89/<- %ebp 4/r32/esp
-4930
-4931 51/push-ecx
-4932 52/push-edx
-4933 53/push-ebx
-4934 56/push-esi
-4935 57/push-edi
-4936
-4937 8b/-> *(ebp+8) 1/r32/ecx
-4938
-4939 8b/-> *(ebp+0xc) 2/r32/edx
-4940 {
-4941 $mu-stmt-matches-primitive?:check-name:
-4942
-4943 (string-equal? *(ecx+4) *edx)
-4944 3d/compare-eax-and 0/imm32
-4945 75/jump-if-!= break/disp8
-4946 b8/copy-to-eax 0/imm32
-4947 e9/jump $mu-stmt-matches-primitive?:end/disp32
-4948 }
-4949 $mu-stmt-matches-primitive?:check-inouts:
-4950
-4951 8b/-> *(ecx+8) 6/r32/esi
-4952 8b/-> *(edx+4) 7/r32/edi
-4953 {
-4954
-4955 {
-4956 81 7/subop/compare %esi 0/imm32
-4957 75/jump-if-!= break/disp8
-4958 $mu-stmt-matches-primitive?:stmt-inout-is-null:
-4959 {
-4960 81 7/subop/compare %edi 0/imm32
-4961 75/jump-if-!= break/disp8
-4962
-4963 e9/jump $mu-stmt-matches-primitive?:check-outputs/disp32
-4964 }
-4965
-4966 b8/copy-to-eax 0/imm32/false
-4967 e9/jump $mu-stmt-matches-primitive?:end/disp32
-4968 }
-4969
-4970 {
-4971 81 7/subop/compare %edi 0/imm32
-4972 75/jump-if-!= break/disp8
-4973 $mu-stmt-matches-primitive?:prim-inout-is-null:
-4974 b8/copy-to-eax 0/imm32/false
-4975 e9/jump $mu-stmt-matches-primitive?:end/disp32
-4976 }
-4977
-4978 {
-4979 (operand-matches-primitive? *esi *edi)
-4980 3d/compare-eax-and 0/imm32
-4981 75/jump-if-!= break/disp8
-4982 b8/copy-to-eax 0/imm32/false
-4983 e9/jump $mu-stmt-matches-primitive?:end/disp32
-4984 }
-4985
-4986 8b/-> *(esi+4) 6/r32/esi
-4987
-4988 8b/-> *(edi+4) 7/r32/edi
-4989 eb/jump loop/disp8
+4911 {
+4912 $find-matching-primitive:loop:
+4913
+4914 81 7/subop/compare %ecx 0/imm32
+4915 0f 84/jump-if-= break/disp32
+4916
+4917
+4918
+4919
+4920
+4921
+4922
+4923 {
+4924 (mu-stmt-matches-primitive? *(ebp+0xc) %ecx)
+4925 3d/compare-eax-and 0/imm32
+4926 74/jump-if-= break/disp8
+4927 89/<- %eax 1/r32/ecx
+4928 eb/jump $find-matching-primitive:end/disp8
+4929 }
+4930 $find-matching-primitive:next-primitive:
+4931
+4932 8b/-> *(ecx+0x20) 1/r32/ecx
+4933 e9/jump loop/disp32
+4934 }
+4935
+4936 b8/copy-to-eax 0/imm32
+4937 $find-matching-primitive:end:
+4938
+4939 59/pop-to-ecx
+4940
+4941 89/<- %esp 5/r32/ebp
+4942 5d/pop-to-ebp
+4943 c3/return
+4944
+4945 mu-stmt-matches-function?:
+4946
+4947 55/push-ebp
+4948 89/<- %ebp 4/r32/esp
+4949
+4950 51/push-ecx
+4951
+4952 8b/-> *(ebp+8) 1/r32/ecx
+4953 8b/-> *(ebp+0xc) 0/r32/eax
+4954 (string-equal? *(ecx+4) *eax)
+4955 $mu-stmt-matches-function?:end:
+4956
+4957 59/pop-to-ecx
+4958
+4959 89/<- %esp 5/r32/ebp
+4960 5d/pop-to-ebp
+4961 c3/return
+4962
+4963 mu-stmt-matches-primitive?:
+4964
+4965
+4966
+4967
+4968
+4969
+4970 55/push-ebp
+4971 89/<- %ebp 4/r32/esp
+4972
+4973 51/push-ecx
+4974 52/push-edx
+4975 53/push-ebx
+4976 56/push-esi
+4977 57/push-edi
+4978
+4979 8b/-> *(ebp+8) 1/r32/ecx
+4980
+4981 8b/-> *(ebp+0xc) 2/r32/edx
+4982 {
+4983 $mu-stmt-matches-primitive?:check-name:
+4984
+4985 (string-equal? *(ecx+4) *edx)
+4986 3d/compare-eax-and 0/imm32
+4987 75/jump-if-!= break/disp8
+4988 b8/copy-to-eax 0/imm32
+4989 e9/jump $mu-stmt-matches-primitive?:end/disp32
4990 }
-4991 $mu-stmt-matches-primitive?:check-outputs:
-4992
-4993 8b/-> *(ecx+0xc) 6/r32/esi
-4994 8b/-> *(edx+8) 7/r32/edi
+4991 $mu-stmt-matches-primitive?:check-inouts:
+4992
+4993 8b/-> *(ecx+8) 6/r32/esi
+4994 8b/-> *(edx+4) 7/r32/edi
4995 {
-4996
+4996
4997 {
-4998 $mu-stmt-matches-primitive?:check-output:
-4999 81 7/subop/compare %esi 0/imm32
-5000 75/jump-if-!= break/disp8
+4998 81 7/subop/compare %esi 0/imm32
+4999 75/jump-if-!= break/disp8
+5000 $mu-stmt-matches-primitive?:stmt-inout-is-null:
5001 {
5002 81 7/subop/compare %edi 0/imm32
5003 75/jump-if-!= break/disp8
-5004
-5005 b8/copy-to-eax 1/imm32
-5006 e9/jump $mu-stmt-matches-primitive?:end/disp32
-5007 }
-5008
-5009 b8/copy-to-eax 0/imm32
-5010 e9/jump $mu-stmt-matches-primitive?:end/disp32
-5011 }
-5012
-5013 {
-5014 81 7/subop/compare %edi 0/imm32
-5015 75/jump-if-!= break/disp8
-5016 b8/copy-to-eax 0/imm32
+5004
+5005 e9/jump $mu-stmt-matches-primitive?:check-outputs/disp32
+5006 }
+5007
+5008 b8/copy-to-eax 0/imm32/false
+5009 e9/jump $mu-stmt-matches-primitive?:end/disp32
+5010 }
+5011
+5012 {
+5013 81 7/subop/compare %edi 0/imm32
+5014 75/jump-if-!= break/disp8
+5015 $mu-stmt-matches-primitive?:prim-inout-is-null:
+5016 b8/copy-to-eax 0/imm32/false
5017 e9/jump $mu-stmt-matches-primitive?:end/disp32
5018 }
5019
5020 {
-5021 (operand-matches-primitive? *esi *edi)
+5021 (operand-matches-primitive? *esi *edi)
5022 3d/compare-eax-and 0/imm32
5023 75/jump-if-!= break/disp8
-5024 b8/copy-to-eax 0/imm32
+5024 b8/copy-to-eax 0/imm32/false
5025 e9/jump $mu-stmt-matches-primitive?:end/disp32
5026 }
5027
@@ -5042,1039 +5042,1081 @@ if ('onhashchange' in window) {
5030 8b/-> *(edi+4) 7/r32/edi
5031 eb/jump loop/disp8
5032 }
-5033 $mu-stmt-matches-primitive?:return-true:
-5034 b8/copy-to-eax 1/imm32
-5035 $mu-stmt-matches-primitive?:end:
-5036
-5037 5f/pop-to-edi
-5038 5e/pop-to-esi
-5039 5b/pop-to-ebx
-5040 5a/pop-to-edx
-5041 59/pop-to-ecx
-5042
-5043 89/<- %esp 5/r32/ebp
-5044 5d/pop-to-ebp
-5045 c3/return
-5046
-5047 operand-matches-primitive?:
-5048
-5049 55/push-ebp
-5050 89/<- %ebp 4/r32/esp
-5051
-5052 56/push-esi
-5053 57/push-edi
-5054
-5055 8b/-> *(ebp+8) 6/r32/esi
-5056
-5057 8b/-> *(ebp+0xc) 7/r32/edi
-5058
-5059 (type-equal? *(esi+4) *(edi+4))
-5060 3d/compare-eax-and 0/imm32
-5061 b8/copy-to-eax 0/imm32/false
-5062 74/jump-if-= $operand-matches-primitive?:end/disp8
-5063
-5064 {
-5065
-5066 8b/-> *(esi+0x10) 0/r32/eax
-5067 39/compare *(edi+0x10) 0/r32/eax
-5068 74/jump-if-= break/disp8
-5069
-5070 3d/compare-eax-and 0/imm32
-5071 74/jump-if-= $operand-matches-primitive?:end/disp8
-5072 81 7/subop/compare *(edi+0x10) 0/imm32
-5073 74/jump-if-= $operand-matches-primitive?:end/disp8
-5074
-5075 (string-equal? *(edi+0x10) "*")
-5076 3d/compare-eax-and 0/imm32
-5077 b8/copy-to-eax 1/imm32/true
-5078 75/jump-if-!= $operand-matches-primitive?:end/disp8
-5079
-5080 (string-equal? *(esi+0x10) *(edi+0x10))
-5081 3d/compare-eax-and 0/imm32
-5082 b8/copy-to-eax 0/imm32/false
-5083 74/jump-if-= $operand-matches-primitive?:end/disp8
-5084 }
-5085
-5086 b8/copy-to-eax 1/imm32/true
-5087 $operand-matches-primitive?:end:
-5088
-5089 5f/pop-to-edi
-5090 5e/pop-to-esi
-5091
-5092 89/<- %esp 5/r32/ebp
-5093 5d/pop-to-ebp
-5094 c3/return
-5095
-5096 type-equal?:
-5097
-5098 55/push-ebp
-5099 89/<- %ebp 4/r32/esp
-5100
-5101 51/push-ecx
-5102 52/push-edx
-5103
-5104 8b/-> *(ebp+8) 1/r32/ecx
-5105
-5106 8b/-> *(ebp+0xc) 2/r32/edx
-5107
-5108 8b/-> %ecx 0/r32/eax
-5109 39/compare %edx 0/r32/eax
-5110 b8/copy-to-eax 1/imm32/true
-5111 74/jump-if-= $type-equal?:end/disp8
-5112
-5113 81 7/subop/compare %ecx 0x10000/imm32
-5114 b8/copy-to-eax 0/imm32/false
-5115 72/jump-if-addr< $type-equal?:end/disp8
-5116
-5117 81 7/subop/compare %edx 0x10000/imm32
-5118 b8/copy-to-eax 0/imm32/false
-5119 72/jump-if-addr< $type-equal?:end/disp8
-5120
-5121 (type-equal? *ecx *edx)
-5122 3d/compare-eax-and 0/imm32
-5123 74/jump-if-= $type-equal?:end/disp8
-5124
-5125 (type-equal? *(ecx+4) *(edx+4))
-5126 $type-equal?:end:
-5127
-5128 5a/pop-to-edx
-5129 59/pop-to-ecx
-5130
-5131 89/<- %esp 5/r32/ebp
-5132 5d/pop-to-ebp
-5133 c3/return
-5134
-5135 test-emit-subx-statement-primitive:
-5136
-5137
-5138
-5139
-5140
-5141
-5142
-5143
-5144
-5145
-5146
-5147
-5148
-5149
-5150
-5151
-5152
-5153
-5154 55/push-ebp
-5155 89/<- %ebp 4/r32/esp
-5156
-5157 (clear-stream _test-output-stream)
-5158 (clear-stream $_test-output-buffered-file->buffer)
-5159
-5160 68/push 0/imm32/right/null
-5161 68/push 1/imm32/left/int
-5162 89/<- %ecx 4/r32/esp
-5163
-5164 68/push 0/imm32/no-register
-5165 68/push -8/imm32/stack-offset
-5166 68/push 1/imm32/block-depth
-5167 51/push-ecx
-5168 68/push "foo"/imm32
-5169 89/<- %ecx 4/r32/esp
-5170
-5171 68/push 0/imm32/next
-5172 51/push-ecx/var-foo
-5173 89/<- %ebx 4/r32/esp
-5174
-5175 68/push 0/imm32/next
-5176 68/push 0/imm32/outputs
-5177 53/push-ebx/operands
-5178 68/push "increment"/imm32/operation
-5179 68/push 1/imm32
-5180 89/<- %esi 4/r32/esp
-5181
-5182 68/push 0/imm32/next
-5183 68/push 0/imm32/output-is-write-only
-5184 68/push 0/imm32/no-imm32
-5185 68/push 0/imm32/no-r32
-5186 68/push 1/imm32/rm32-is-first-inout
-5187 68/push "ff 0/subop/increment"/imm32/subx-name
-5188 68/push 0/imm32/outputs
-5189 53/push-ebx/inouts
-5190 68/push "increment"/imm32/name
-5191 89/<- %ebx 4/r32/esp
-5192
-5193 (emit-subx-statement _test-output-buffered-file %esi %ebx 0)
-5194 (flush _test-output-buffered-file)
-5195 +-- 6 lines: #? # dump _test-output-stream --------------------------------------------------------------------------------------------------------------
-5201
-5202 (check-next-stream-line-equal _test-output-stream "ff 0/subop/increment *(ebp+0xfffffff8)" "F - test-emit-subx-statement-primitive")
-5203
-5204 89/<- %esp 5/r32/ebp
-5205 5d/pop-to-ebp
-5206 c3/return
-5207
-5208 test-emit-subx-statement-primitive-register:
-5209
-5210
-5211
-5212
-5213
-5214
-5215
-5216
-5217
-5218
-5219
-5220
-5221
-5222
-5223
-5224
-5225
-5226
-5227 55/push-ebp
-5228 89/<- %ebp 4/r32/esp
-5229
-5230 (clear-stream _test-output-stream)
-5231 (clear-stream $_test-output-buffered-file->buffer)
-5232
-5233 68/push 0/imm32/right/null
-5234 68/push 1/imm32/left/int
-5235 89/<- %ecx 4/r32/esp
-5236
-5237 68/push "eax"/imm32/register
-5238 68/push 0/imm32/no-stack-offset
-5239 68/push 1/imm32/block-depth
-5240 51/push-ecx
-5241 68/push "foo"/imm32
-5242 89/<- %ecx 4/r32/esp
-5243
-5244 68/push 0/imm32/next
-5245 51/push-ecx/var-foo
-5246 89/<- %ebx 4/r32/esp
-5247
-5248 68/push 0/imm32/next
-5249 53/push-ebx/outputs
-5250 68/push 0/imm32/inouts
-5251 68/push "increment"/imm32/operation
-5252 68/push 1/imm32
-5253 89/<- %esi 4/r32/esp
-5254
-5255 68/push Any-register/imm32
-5256 68/push 0/imm32/no-stack-offset
-5257 68/push 1/imm32/block-depth
-5258 ff 6/subop/push *(ecx+4)
-5259 68/push "dummy"/imm32
-5260 89/<- %ebx 4/r32/esp
-5261
-5262 68/push 0/imm32/next
-5263 53/push-ebx/formal-var
-5264 89/<- %ebx 4/r32/esp
-5265
-5266 68/push 0/imm32/next
-5267 68/push 0/imm32/output-is-write-only
-5268 68/push 0/imm32/no-imm32
-5269 68/push 0/imm32/no-r32
-5270 68/push 3/imm32/rm32-in-first-output
-5271 68/push "ff 0/subop/increment"/imm32/subx-name
-5272 53/push-ebx/outputs
-5273 68/push 0/imm32/inouts
-5274 68/push "increment"/imm32/name
-5275 89/<- %ebx 4/r32/esp
-5276
-5277 (emit-subx-statement _test-output-buffered-file %esi %ebx 0)
-5278 (flush _test-output-buffered-file)
-5279 +-- 6 lines: #? # dump _test-output-stream --------------------------------------------------------------------------------------------------------------
-5285
-5286 (check-next-stream-line-equal _test-output-stream "ff 0/subop/increment %eax" "F - test-emit-subx-statement-primitive-register")
-5287
-5288 89/<- %esp 5/r32/ebp
-5289 5d/pop-to-ebp
-5290 c3/return
-5291
-5292 test-emit-subx-statement-select-primitive:
-5293
-5294
-5295
-5296
-5297
-5298
-5299
-5300
-5301
-5302
-5303
-5304
-5305
-5306
-5307
-5308
-5309
-5310
-5311
-5312
-5313
-5314 55/push-ebp
-5315 89/<- %ebp 4/r32/esp
-5316
-5317 (clear-stream _test-output-stream)
-5318 (clear-stream $_test-output-buffered-file->buffer)
-5319
-5320 68/push 0/imm32/right/null
-5321 68/push 1/imm32/left/int
-5322 89/<- %ecx 4/r32/esp
-5323
-5324 68/push "eax"/imm32/register
-5325 68/push 0/imm32/no-stack-offset
-5326 68/push 1/imm32/block-depth
-5327 51/push-ecx
-5328 68/push "foo"/imm32
-5329 89/<- %ecx 4/r32/esp
-5330
-5331 68/push 0/imm32/next
-5332 51/push-ecx/var-foo
-5333 89/<- %edi 4/r32/esp
-5334
-5335 68/push 0/imm32/next
-5336 57/push-edi/outputs
-5337 68/push 0/imm32/inouts
-5338 68/push "increment"/imm32/operation
-5339 68/push 1/imm32
-5340 89/<- %esi 4/r32/esp
-5341
-5342 68/push Any-register/imm32
-5343 68/push 0/imm32/no-stack-offset
-5344 68/push 1/imm32/block-depth
-5345 ff 6/subop/push *(ecx+4)
-5346 68/push "dummy"/imm32
-5347 89/<- %ebx 4/r32/esp
-5348
-5349 68/push 0/imm32/next
-5350 53/push-ebx/formal-var
-5351 89/<- %ebx 4/r32/esp
-5352
-5353 68/push 0/imm32/next
-5354 68/push 0/imm32/output-is-write-only
-5355 68/push 0/imm32/no-imm32
-5356 68/push 0/imm32/no-r32
-5357 68/push 3/imm32/rm32-in-first-output
-5358 68/push "ff 0/subop/increment"/imm32/subx-name
-5359 53/push-ebx/outputs/formal-outputs
-5360 68/push 0/imm32/inouts
-5361 68/push "increment"/imm32/name
-5362 89/<- %ebx 4/r32/esp
-5363
-5364 53/push-ebx/next
-5365 68/push 0/imm32/output-is-write-only
-5366 68/push 0/imm32/no-imm32
-5367 68/push 0/imm32/no-r32
-5368 68/push 1/imm32/rm32-is-first-inout
-5369 68/push "ff 0/subop/increment"/imm32/subx-name
-5370 68/push 0/imm32/outputs
-5371 57/push-edi/inouts/real-outputs
-5372 68/push "increment"/imm32/name
-5373 89/<- %ebx 4/r32/esp
-5374
-5375 (emit-subx-statement _test-output-buffered-file %esi %ebx 0)
-5376 (flush _test-output-buffered-file)
-5377 +-- 6 lines: #? # dump _test-output-stream --------------------------------------------------------------------------------------------------------------
-5383
-5384 (check-next-stream-line-equal _test-output-stream "ff 0/subop/increment %eax" "F - test-emit-subx-statement-select-primitive")
-5385
-5386 89/<- %esp 5/r32/ebp
-5387 5d/pop-to-ebp
-5388 c3/return
-5389
-5390 test-emit-subx-statement-select-primitive-2:
-5391
-5392
-5393
-5394
-5395
-5396
-5397
-5398
-5399
-5400
-5401
-5402
-5403
-5404
-5405
-5406
-5407
-5408
-5409
-5410
-5411
-5412 55/push-ebp
-5413 89/<- %ebp 4/r32/esp
-5414
-5415 (clear-stream _test-output-stream)
-5416 (clear-stream $_test-output-buffered-file->buffer)
-5417
-5418 68/push 0/imm32/right/null
-5419 68/push 1/imm32/left/int
-5420 89/<- %ecx 4/r32/esp
-5421
-5422 68/push "eax"/imm32/register
-5423 68/push 0/imm32/no-stack-offset
-5424 68/push 1/imm32/block-depth
-5425 51/push-ecx
-5426 68/push "foo"/imm32
-5427 89/<- %ecx 4/r32/esp
-5428
-5429 68/push 0/imm32/next
-5430 51/push-ecx/var-foo
-5431 89/<- %edi 4/r32/esp
-5432
-5433 68/push 0/imm32/next
-5434 68/push 0/imm32/outputs
-5435 57/push-edi/inouts
-5436 68/push "increment"/imm32/operation
-5437 68/push 1/imm32
-5438 89/<- %esi 4/r32/esp
-5439
-5440 68/push Any-register/imm32
-5441 68/push 0/imm32/no-stack-offset
-5442 68/push 1/imm32/block-depth
-5443 ff 6/subop/push *(ecx+4)
-5444 68/push "dummy"/imm32
-5445 89/<- %ebx 4/r32/esp
-5446
-5447 68/push 0/imm32/next
-5448 53/push-ebx/formal-var
-5449 89/<- %ebx 4/r32/esp
-5450
-5451 68/push 0/imm32/next
-5452 68/push 0/imm32/output-is-write-only
-5453 68/push 0/imm32/no-imm32
-5454 68/push 0/imm32/no-r32
-5455 68/push 3/imm32/rm32-in-first-output
-5456 68/push "ff 0/subop/increment"/imm32/subx-name
-5457 53/push-ebx/outputs/formal-outputs
-5458 68/push 0/imm32/inouts
-5459 68/push "increment"/imm32/name
-5460 89/<- %ebx 4/r32/esp
-5461
-5462 53/push-ebx/next
-5463 68/push 0/imm32/output-is-write-only
-5464 68/push 0/imm32/no-imm32
-5465 68/push 0/imm32/no-r32
-5466 68/push 1/imm32/rm32-is-first-inout
-5467 68/push "ff 0/subop/increment"/imm32/subx-name
-5468 68/push 0/imm32/outputs
-5469 57/push-edi/inouts/real-outputs
-5470 68/push "increment"/imm32/name
-5471 89/<- %ebx 4/r32/esp
-5472
-5473 (emit-subx-statement _test-output-buffered-file %esi %ebx 0)
-5474 (flush _test-output-buffered-file)
-5475 +-- 6 lines: #? # dump _test-output-stream --------------------------------------------------------------------------------------------------------------
-5481
-5482 (check-next-stream-line-equal _test-output-stream "ff 0/subop/increment %eax" "F - test-emit-subx-statement-select-primitive-2")
-5483
-5484 89/<- %esp 5/r32/ebp
-5485 5d/pop-to-ebp
-5486 c3/return
-5487
-5488 test-increment-register:
-5489
-5490
-5491
-5492
-5493
-5494
-5495
-5496
-5497
-5498
-5499
-5500
-5501
-5502
-5503
-5504 55/push-ebp
-5505 89/<- %ebp 4/r32/esp
-5506
-5507 (clear-stream _test-output-stream)
-5508 (clear-stream $_test-output-buffered-file->buffer)
-5509
-5510 68/push 0/imm32/right/null
-5511 68/push 1/imm32/left/int
-5512 89/<- %ecx 4/r32/esp
-5513
-5514 68/push "eax"/imm32/register
-5515 68/push 0/imm32/no-stack-offset
-5516 68/push 1/imm32/block-depth
-5517 51/push-ecx
-5518 68/push "foo"/imm32
-5519 89/<- %ecx 4/r32/esp
-5520
-5521 68/push 0/imm32/next
-5522 51/push-ecx/var-foo
-5523 89/<- %edi 4/r32/esp
-5524
-5525 68/push 0/imm32/next
-5526 57/push-edi/outputs
-5527 68/push 0/imm32/inouts
-5528 68/push "increment"/imm32/operation
-5529 68/push 1/imm32/regular-statement
-5530 89/<- %esi 4/r32/esp
-5531
-5532 (emit-subx-statement _test-output-buffered-file %esi Primitives 0)
-5533 (flush _test-output-buffered-file)
-5534 +-- 6 lines: #? # dump _test-output-stream --------------------------------------------------------------------------------------------------------------
-5540
-5541 (check-next-stream-line-equal _test-output-stream "40/increment-eax" "F - test-increment-register")
-5542
-5543 89/<- %esp 5/r32/ebp
-5544 5d/pop-to-ebp
-5545 c3/return
-5546
-5547 test-increment-var:
-5548
-5549
-5550
-5551
-5552
-5553
-5554
-5555
-5556
-5557
-5558
-5559
-5560
-5561
-5562
-5563 55/push-ebp
-5564 89/<- %ebp 4/r32/esp
-5565
-5566 (clear-stream _test-output-stream)
-5567 (clear-stream $_test-output-buffered-file->buffer)
-5568
-5569 68/push 0/imm32/right/null
-5570 68/push 1/imm32/left/int
-5571 89/<- %ecx 4/r32/esp
-5572
-5573 68/push "eax"/imm32/register
-5574 68/push 0/imm32/no-stack-offset
-5575 68/push 1/imm32/block-depth
-5576 51/push-ecx
-5577 68/push "foo"/imm32
-5578 89/<- %ecx 4/r32/esp
-5579
-5580 68/push 0/imm32/next
-5581 51/push-ecx/var-foo
-5582 89/<- %edi 4/r32/esp
-5583
-5584 68/push 0/imm32/next
-5585 68/push 0/imm32/outputs
-5586 57/push-edi/inouts
-5587 68/push "increment"/imm32/operation
-5588 68/push 1/imm32
-5589 89/<- %esi 4/r32/esp
-5590
-5591 (emit-subx-statement _test-output-buffered-file %esi Primitives 0)
-5592 (flush _test-output-buffered-file)
-5593 +-- 6 lines: #? # dump _test-output-stream --------------------------------------------------------------------------------------------------------------
-5599
-5600 (check-next-stream-line-equal _test-output-stream "ff 0/subop/increment %eax" "F - test-increment-var")
-5601
-5602 89/<- %esp 5/r32/ebp
-5603 5d/pop-to-ebp
-5604 c3/return
-5605
-5606 test-add-reg-to-reg:
-5607
-5608
-5609
-5610
-5611
-5612 55/push-ebp
-5613 89/<- %ebp 4/r32/esp
-5614
-5615 (clear-stream _test-output-stream)
-5616 (clear-stream $_test-output-buffered-file->buffer)
-5617
-5618 68/push 0/imm32/right/null
-5619 68/push 1/imm32/left/int
+5033 $mu-stmt-matches-primitive?:check-outputs:
+5034
+5035 8b/-> *(ecx+0xc) 6/r32/esi
+5036 8b/-> *(edx+8) 7/r32/edi
+5037 {
+5038
+5039 {
+5040 $mu-stmt-matches-primitive?:check-output:
+5041 81 7/subop/compare %esi 0/imm32
+5042 75/jump-if-!= break/disp8
+5043 {
+5044 81 7/subop/compare %edi 0/imm32
+5045 75/jump-if-!= break/disp8
+5046
+5047 b8/copy-to-eax 1/imm32
+5048 e9/jump $mu-stmt-matches-primitive?:end/disp32
+5049 }
+5050
+5051 b8/copy-to-eax 0/imm32
+5052 e9/jump $mu-stmt-matches-primitive?:end/disp32
+5053 }
+5054
+5055 {
+5056 81 7/subop/compare %edi 0/imm32
+5057 75/jump-if-!= break/disp8
+5058 b8/copy-to-eax 0/imm32
+5059 e9/jump $mu-stmt-matches-primitive?:end/disp32
+5060 }
+5061
+5062 {
+5063 (operand-matches-primitive? *esi *edi)
+5064 3d/compare-eax-and 0/imm32
+5065 75/jump-if-!= break/disp8
+5066 b8/copy-to-eax 0/imm32
+5067 e9/jump $mu-stmt-matches-primitive?:end/disp32
+5068 }
+5069
+5070 8b/-> *(esi+4) 6/r32/esi
+5071
+5072 8b/-> *(edi+4) 7/r32/edi
+5073 eb/jump loop/disp8
+5074 }
+5075 $mu-stmt-matches-primitive?:return-true:
+5076 b8/copy-to-eax 1/imm32
+5077 $mu-stmt-matches-primitive?:end:
+5078
+5079 5f/pop-to-edi
+5080 5e/pop-to-esi
+5081 5b/pop-to-ebx
+5082 5a/pop-to-edx
+5083 59/pop-to-ecx
+5084
+5085 89/<- %esp 5/r32/ebp
+5086 5d/pop-to-ebp
+5087 c3/return
+5088
+5089 operand-matches-primitive?:
+5090
+5091 55/push-ebp
+5092 89/<- %ebp 4/r32/esp
+5093
+5094 56/push-esi
+5095 57/push-edi
+5096
+5097 8b/-> *(ebp+8) 6/r32/esi
+5098
+5099 8b/-> *(ebp+0xc) 7/r32/edi
+5100
+5101 (type-equal? *(esi+4) *(edi+4))
+5102 3d/compare-eax-and 0/imm32
+5103 b8/copy-to-eax 0/imm32/false
+5104 74/jump-if-= $operand-matches-primitive?:end/disp8
+5105
+5106 {
+5107
+5108 8b/-> *(esi+0x10) 0/r32/eax
+5109 39/compare *(edi+0x10) 0/r32/eax
+5110 74/jump-if-= break/disp8
+5111
+5112 3d/compare-eax-and 0/imm32
+5113 74/jump-if-= $operand-matches-primitive?:end/disp8
+5114 81 7/subop/compare *(edi+0x10) 0/imm32
+5115 74/jump-if-= $operand-matches-primitive?:end/disp8
+5116
+5117 (string-equal? *(edi+0x10) "*")
+5118 3d/compare-eax-and 0/imm32
+5119 b8/copy-to-eax 1/imm32/true
+5120 75/jump-if-!= $operand-matches-primitive?:end/disp8
+5121
+5122 (string-equal? *(esi+0x10) *(edi+0x10))
+5123 3d/compare-eax-and 0/imm32
+5124 b8/copy-to-eax 0/imm32/false
+5125 74/jump-if-= $operand-matches-primitive?:end/disp8
+5126 }
+5127
+5128 b8/copy-to-eax 1/imm32/true
+5129 $operand-matches-primitive?:end:
+5130
+5131 5f/pop-to-edi
+5132 5e/pop-to-esi
+5133
+5134 89/<- %esp 5/r32/ebp
+5135 5d/pop-to-ebp
+5136 c3/return
+5137
+5138 type-equal?:
+5139
+5140 55/push-ebp
+5141 89/<- %ebp 4/r32/esp
+5142
+5143 51/push-ecx
+5144 52/push-edx
+5145
+5146 8b/-> *(ebp+8) 1/r32/ecx
+5147
+5148 8b/-> *(ebp+0xc) 2/r32/edx
+5149
+5150 8b/-> %ecx 0/r32/eax
+5151 39/compare %edx 0/r32/eax
+5152 b8/copy-to-eax 1/imm32/true
+5153 74/jump-if-= $type-equal?:end/disp8
+5154
+5155 81 7/subop/compare %ecx 0x10000/imm32
+5156 b8/copy-to-eax 0/imm32/false
+5157 72/jump-if-addr< $type-equal?:end/disp8
+5158
+5159 81 7/subop/compare %edx 0x10000/imm32
+5160 b8/copy-to-eax 0/imm32/false
+5161 72/jump-if-addr< $type-equal?:end/disp8
+5162
+5163 (type-equal? *ecx *edx)
+5164 3d/compare-eax-and 0/imm32
+5165 74/jump-if-= $type-equal?:end/disp8
+5166
+5167 (type-equal? *(ecx+4) *(edx+4))
+5168 $type-equal?:end:
+5169
+5170 5a/pop-to-edx
+5171 59/pop-to-ecx
+5172
+5173 89/<- %esp 5/r32/ebp
+5174 5d/pop-to-ebp
+5175 c3/return
+5176
+5177 test-emit-subx-statement-primitive:
+5178
+5179
+5180
+5181
+5182
+5183
+5184
+5185
+5186
+5187
+5188
+5189
+5190
+5191
+5192
+5193
+5194
+5195
+5196 55/push-ebp
+5197 89/<- %ebp 4/r32/esp
+5198
+5199 (clear-stream _test-output-stream)
+5200 (clear-stream $_test-output-buffered-file->buffer)
+5201
+5202 68/push 0/imm32/right/null
+5203 68/push 1/imm32/left/int
+5204 89/<- %ecx 4/r32/esp
+5205
+5206 68/push 0/imm32/no-register
+5207 68/push -8/imm32/stack-offset
+5208 68/push 1/imm32/block-depth
+5209 51/push-ecx
+5210 68/push "foo"/imm32
+5211 89/<- %ecx 4/r32/esp
+5212
+5213 68/push 0/imm32/next
+5214 51/push-ecx/var-foo
+5215 89/<- %ebx 4/r32/esp
+5216
+5217 68/push 0/imm32/next
+5218 68/push 0/imm32/outputs
+5219 53/push-ebx/operands
+5220 68/push "increment"/imm32/operation
+5221 68/push 1/imm32
+5222 89/<- %esi 4/r32/esp
+5223
+5224 68/push 0/imm32/next
+5225 68/push 0/imm32/output-is-write-only
+5226 68/push 0/imm32/no-imm32
+5227 68/push 0/imm32/no-r32
+5228 68/push 1/imm32/rm32-is-first-inout
+5229 68/push "ff 0/subop/increment"/imm32/subx-name
+5230 68/push 0/imm32/outputs
+5231 53/push-ebx/inouts
+5232 68/push "increment"/imm32/name
+5233 89/<- %ebx 4/r32/esp
+5234
+5235 (emit-subx-statement _test-output-buffered-file %esi %ebx 0)
+5236 (flush _test-output-buffered-file)
+5237 +-- 6 lines: #? # dump _test-output-stream --------------------------------------------------------------------------------------------------------------
+5243
+5244 (check-next-stream-line-equal _test-output-stream "ff 0/subop/increment *(ebp+0xfffffff8)" "F - test-emit-subx-statement-primitive")
+5245
+5246 89/<- %esp 5/r32/ebp
+5247 5d/pop-to-ebp
+5248 c3/return
+5249
+5250 test-emit-subx-statement-primitive-register:
+5251
+5252
+5253
+5254
+5255
+5256
+5257
+5258
+5259
+5260
+5261
+5262
+5263
+5264
+5265
+5266
+5267
+5268
+5269 55/push-ebp
+5270 89/<- %ebp 4/r32/esp
+5271
+5272 (clear-stream _test-output-stream)
+5273 (clear-stream $_test-output-buffered-file->buffer)
+5274
+5275 68/push 0/imm32/right/null
+5276 68/push 1/imm32/left/int
+5277 89/<- %ecx 4/r32/esp
+5278
+5279 68/push "eax"/imm32/register
+5280 68/push 0/imm32/no-stack-offset
+5281 68/push 1/imm32/block-depth
+5282 51/push-ecx
+5283 68/push "foo"/imm32
+5284 89/<- %ecx 4/r32/esp
+5285
+5286 68/push 0/imm32/next
+5287 51/push-ecx/var-foo
+5288 89/<- %ebx 4/r32/esp
+5289
+5290 68/push 0/imm32/next
+5291 53/push-ebx/outputs
+5292 68/push 0/imm32/inouts
+5293 68/push "increment"/imm32/operation
+5294 68/push 1/imm32
+5295 89/<- %esi 4/r32/esp
+5296
+5297 68/push Any-register/imm32
+5298 68/push 0/imm32/no-stack-offset
+5299 68/push 1/imm32/block-depth
+5300 ff 6/subop/push *(ecx+4)
+5301 68/push "dummy"/imm32
+5302 89/<- %ebx 4/r32/esp
+5303
+5304 68/push 0/imm32/next
+5305 53/push-ebx/formal-var
+5306 89/<- %ebx 4/r32/esp
+5307
+5308 68/push 0/imm32/next
+5309 68/push 0/imm32/output-is-write-only
+5310 68/push 0/imm32/no-imm32
+5311 68/push 0/imm32/no-r32
+5312 68/push 3/imm32/rm32-in-first-output
+5313 68/push "ff 0/subop/increment"/imm32/subx-name
+5314 53/push-ebx/outputs
+5315 68/push 0/imm32/inouts
+5316 68/push "increment"/imm32/name
+5317 89/<- %ebx 4/r32/esp
+5318
+5319 (emit-subx-statement _test-output-buffered-file %esi %ebx 0)
+5320 (flush _test-output-buffered-file)
+5321 +-- 6 lines: #? # dump _test-output-stream --------------------------------------------------------------------------------------------------------------
+5327
+5328 (check-next-stream-line-equal _test-output-stream "ff 0/subop/increment %eax" "F - test-emit-subx-statement-primitive-register")
+5329
+5330 89/<- %esp 5/r32/ebp
+5331 5d/pop-to-ebp
+5332 c3/return
+5333
+5334 test-emit-subx-statement-select-primitive:
+5335
+5336
+5337
+5338
+5339
+5340
+5341
+5342
+5343
+5344
+5345
+5346
+5347
+5348
+5349
+5350
+5351
+5352
+5353
+5354
+5355
+5356 55/push-ebp
+5357 89/<- %ebp 4/r32/esp
+5358
+5359 (clear-stream _test-output-stream)
+5360 (clear-stream $_test-output-buffered-file->buffer)
+5361
+5362 68/push 0/imm32/right/null
+5363 68/push 1/imm32/left/int
+5364 89/<- %ecx 4/r32/esp
+5365
+5366 68/push "eax"/imm32/register
+5367 68/push 0/imm32/no-stack-offset
+5368 68/push 1/imm32/block-depth
+5369 51/push-ecx
+5370 68/push "foo"/imm32
+5371 89/<- %ecx 4/r32/esp
+5372
+5373 68/push 0/imm32/next
+5374 51/push-ecx/var-foo
+5375 89/<- %edi 4/r32/esp
+5376
+5377 68/push 0/imm32/next
+5378 57/push-edi/outputs
+5379 68/push 0/imm32/inouts
+5380 68/push "increment"/imm32/operation
+5381 68/push 1/imm32
+5382 89/<- %esi 4/r32/esp
+5383
+5384 68/push Any-register/imm32
+5385 68/push 0/imm32/no-stack-offset
+5386 68/push 1/imm32/block-depth
+5387 ff 6/subop/push *(ecx+4)
+5388 68/push "dummy"/imm32
+5389 89/<- %ebx 4/r32/esp
+5390
+5391 68/push 0/imm32/next
+5392 53/push-ebx/formal-var
+5393 89/<- %ebx 4/r32/esp
+5394
+5395 68/push 0/imm32/next
+5396 68/push 0/imm32/output-is-write-only
+5397 68/push 0/imm32/no-imm32
+5398 68/push 0/imm32/no-r32
+5399 68/push 3/imm32/rm32-in-first-output
+5400 68/push "ff 0/subop/increment"/imm32/subx-name
+5401 53/push-ebx/outputs/formal-outputs
+5402 68/push 0/imm32/inouts
+5403 68/push "increment"/imm32/name
+5404 89/<- %ebx 4/r32/esp
+5405
+5406 53/push-ebx/next
+5407 68/push 0/imm32/output-is-write-only
+5408 68/push 0/imm32/no-imm32
+5409 68/push 0/imm32/no-r32
+5410 68/push 1/imm32/rm32-is-first-inout
+5411 68/push "ff 0/subop/increment"/imm32/subx-name
+5412 68/push 0/imm32/outputs
+5413 57/push-edi/inouts/real-outputs
+5414 68/push "increment"/imm32/name
+5415 89/<- %ebx 4/r32/esp
+5416
+5417 (emit-subx-statement _test-output-buffered-file %esi %ebx 0)
+5418 (flush _test-output-buffered-file)
+5419 +-- 6 lines: #? # dump _test-output-stream --------------------------------------------------------------------------------------------------------------
+5425
+5426 (check-next-stream-line-equal _test-output-stream "ff 0/subop/increment %eax" "F - test-emit-subx-statement-select-primitive")
+5427
+5428 89/<- %esp 5/r32/ebp
+5429 5d/pop-to-ebp
+5430 c3/return
+5431
+5432 test-emit-subx-statement-select-primitive-2:
+5433
+5434
+5435
+5436
+5437
+5438
+5439
+5440
+5441
+5442
+5443
+5444
+5445
+5446
+5447
+5448
+5449
+5450
+5451
+5452
+5453
+5454 55/push-ebp
+5455 89/<- %ebp 4/r32/esp
+5456
+5457 (clear-stream _test-output-stream)
+5458 (clear-stream $_test-output-buffered-file->buffer)
+5459
+5460 68/push 0/imm32/right/null
+5461 68/push 1/imm32/left/int
+5462 89/<- %ecx 4/r32/esp
+5463
+5464 68/push "eax"/imm32/register
+5465 68/push 0/imm32/no-stack-offset
+5466 68/push 1/imm32/block-depth
+5467 51/push-ecx
+5468 68/push "foo"/imm32
+5469 89/<- %ecx 4/r32/esp
+5470
+5471 68/push 0/imm32/next
+5472 51/push-ecx/var-foo
+5473 89/<- %edi 4/r32/esp
+5474
+5475 68/push 0/imm32/next
+5476 68/push 0/imm32/outputs
+5477 57/push-edi/inouts
+5478 68/push "increment"/imm32/operation
+5479 68/push 1/imm32
+5480 89/<- %esi 4/r32/esp
+5481
+5482 68/push Any-register/imm32
+5483 68/push 0/imm32/no-stack-offset
+5484 68/push 1/imm32/block-depth
+5485 ff 6/subop/push *(ecx+4)
+5486 68/push "dummy"/imm32
+5487 89/<- %ebx 4/r32/esp
+5488
+5489 68/push 0/imm32/next
+5490 53/push-ebx/formal-var
+5491 89/<- %ebx 4/r32/esp
+5492
+5493 68/push 0/imm32/next
+5494 68/push 0/imm32/output-is-write-only
+5495 68/push 0/imm32/no-imm32
+5496 68/push 0/imm32/no-r32
+5497 68/push 3/imm32/rm32-in-first-output
+5498 68/push "ff 0/subop/increment"/imm32/subx-name
+5499 53/push-ebx/outputs/formal-outputs
+5500 68/push 0/imm32/inouts
+5501 68/push "increment"/imm32/name
+5502 89/<- %ebx 4/r32/esp
+5503
+5504 53/push-ebx/next
+5505 68/push 0/imm32/output-is-write-only
+5506 68/push 0/imm32/no-imm32
+5507 68/push 0/imm32/no-r32
+5508 68/push 1/imm32/rm32-is-first-inout
+5509 68/push "ff 0/subop/increment"/imm32/subx-name
+5510 68/push 0/imm32/outputs
+5511 57/push-edi/inouts/real-outputs
+5512 68/push "increment"/imm32/name
+5513 89/<- %ebx 4/r32/esp
+5514
+5515 (emit-subx-statement _test-output-buffered-file %esi %ebx 0)
+5516 (flush _test-output-buffered-file)
+5517 +-- 6 lines: #? # dump _test-output-stream --------------------------------------------------------------------------------------------------------------
+5523
+5524 (check-next-stream-line-equal _test-output-stream "ff 0/subop/increment %eax" "F - test-emit-subx-statement-select-primitive-2")
+5525
+5526 89/<- %esp 5/r32/ebp
+5527 5d/pop-to-ebp
+5528 c3/return
+5529
+5530 test-increment-register:
+5531
+5532
+5533
+5534
+5535
+5536
+5537
+5538
+5539
+5540
+5541
+5542
+5543
+5544
+5545
+5546 55/push-ebp
+5547 89/<- %ebp 4/r32/esp
+5548
+5549 (clear-stream _test-output-stream)
+5550 (clear-stream $_test-output-buffered-file->buffer)
+5551
+5552 68/push 0/imm32/right/null
+5553 68/push 1/imm32/left/int
+5554 89/<- %ecx 4/r32/esp
+5555
+5556 68/push "eax"/imm32/register
+5557 68/push 0/imm32/no-stack-offset
+5558 68/push 1/imm32/block-depth
+5559 51/push-ecx
+5560 68/push "foo"/imm32
+5561 89/<- %ecx 4/r32/esp
+5562
+5563 68/push 0/imm32/next
+5564 51/push-ecx/var-foo
+5565 89/<- %edi 4/r32/esp
+5566
+5567 68/push 0/imm32/next
+5568 57/push-edi/outputs
+5569 68/push 0/imm32/inouts
+5570 68/push "increment"/imm32/operation
+5571 68/push 1/imm32/regular-statement
+5572 89/<- %esi 4/r32/esp
+5573
+5574 (emit-subx-statement _test-output-buffered-file %esi Primitives 0)
+5575 (flush _test-output-buffered-file)
+5576 +-- 6 lines: #? # dump _test-output-stream --------------------------------------------------------------------------------------------------------------
+5582
+5583 (check-next-stream-line-equal _test-output-stream "40/increment-eax" "F - test-increment-register")
+5584
+5585 89/<- %esp 5/r32/ebp
+5586 5d/pop-to-ebp
+5587 c3/return
+5588
+5589 test-increment-var:
+5590
+5591
+5592
+5593
+5594
+5595
+5596
+5597
+5598
+5599
+5600
+5601
+5602
+5603
+5604
+5605 55/push-ebp
+5606 89/<- %ebp 4/r32/esp
+5607
+5608 (clear-stream _test-output-stream)
+5609 (clear-stream $_test-output-buffered-file->buffer)
+5610
+5611 68/push 0/imm32/right/null
+5612 68/push 1/imm32/left/int
+5613 89/<- %ecx 4/r32/esp
+5614
+5615 68/push "eax"/imm32/register
+5616 68/push 0/imm32/no-stack-offset
+5617 68/push 1/imm32/block-depth
+5618 51/push-ecx
+5619 68/push "foo"/imm32
5620 89/<- %ecx 4/r32/esp
-5621
-5622 68/push "eax"/imm32/register
-5623 68/push 0/imm32/no-stack-offset
-5624 68/push 1/imm32/block-depth
-5625 51/push-ecx
-5626 68/push "var1"/imm32
-5627 89/<- %ecx 4/r32/esp
-5628
-5629 68/push "ecx"/imm32/register
-5630 68/push 0/imm32/no-stack-offset
-5631 68/push 1/imm32/block-depth
-5632 ff 6/subop/push *(ecx+4)
-5633 68/push "var2"/imm32
-5634 89/<- %edx 4/r32/esp
-5635
-5636 68/push 0/imm32/next
-5637 52/push-edx/var-var2
-5638 89/<- %esi 4/r32/esp
-5639
-5640 68/push 0/imm32/next
-5641 51/push-ecx/var-var1
-5642 89/<- %edi 4/r32/esp
-5643
-5644 68/push 0/imm32/next
-5645 57/push-edi/outputs
-5646 56/push-esi/inouts
-5647 68/push "add"/imm32/operation
-5648 68/push 1/imm32
-5649 89/<- %esi 4/r32/esp
-5650
-5651 (emit-subx-statement _test-output-buffered-file %esi Primitives 0)
-5652 (flush _test-output-buffered-file)
-5653 +-- 6 lines: #? # dump _test-output-stream --------------------------------------------------------------------------------------------------------------
-5659
-5660 (check-next-stream-line-equal _test-output-stream "01/add-to %eax 0x00000001/r32" "F - test-add-reg-to-reg")
-5661
-5662 89/<- %esp 5/r32/ebp
-5663 5d/pop-to-ebp
-5664 c3/return
-5665
-5666 test-add-reg-to-mem:
-5667
-5668
-5669
-5670
-5671
-5672 55/push-ebp
-5673 89/<- %ebp 4/r32/esp
-5674
-5675 (clear-stream _test-output-stream)
-5676 (clear-stream $_test-output-buffered-file->buffer)
-5677
-5678 68/push 0/imm32/right/null
-5679 68/push 1/imm32/left/int
-5680 89/<- %ecx 4/r32/esp
-5681
-5682 68/push 0/imm32/no-register
-5683 68/push 8/imm32/stack-offset
-5684 68/push 1/imm32/block-depth
-5685 51/push-ecx
-5686 68/push "var1"/imm32
-5687 89/<- %ecx 4/r32/esp
-5688
-5689 68/push "ecx"/imm32/register
-5690 68/push 0/imm32/no-stack-offset
-5691 68/push 1/imm32/block-depth
-5692 ff 6/subop/push *(ecx+4)
-5693 68/push "var2"/imm32
-5694 89/<- %edx 4/r32/esp
-5695
-5696 68/push 0/imm32/next
-5697 52/push-edx/var-var2
-5698 89/<- %esi 4/r32/esp
-5699
-5700 56/push-esi/next
-5701 51/push-ecx/var-var1
-5702 89/<- %esi 4/r32/esp
-5703
-5704 68/push 0/imm32/next
-5705 68/push 0/imm32/outputs
-5706 56/push-esi/inouts
-5707 68/push "add-to"/imm32/operation
-5708 68/push 1/imm32
-5709 89/<- %esi 4/r32/esp
-5710
-5711 (emit-subx-statement _test-output-buffered-file %esi Primitives 0)
-5712 (flush _test-output-buffered-file)
-5713 +-- 6 lines: #? # dump _test-output-stream --------------------------------------------------------------------------------------------------------------
-5719
-5720 (check-next-stream-line-equal _test-output-stream "01/add-to *(ebp+0x00000008) 0x00000001/r32" "F - test-add-reg-to-mem")
-5721
-5722 89/<- %esp 5/r32/ebp
-5723 5d/pop-to-ebp
-5724 c3/return
-5725
-5726 test-add-mem-to-reg:
-5727
-5728
-5729
-5730
-5731
-5732 55/push-ebp
-5733 89/<- %ebp 4/r32/esp
-5734
-5735 (clear-stream _test-output-stream)
-5736 (clear-stream $_test-output-buffered-file->buffer)
-5737
-5738 68/push 0/imm32/right/null
-5739 68/push 1/imm32/left/int
-5740 89/<- %ecx 4/r32/esp
-5741
-5742 68/push "eax"/imm32/register
-5743 68/push 0/imm32/no-stack-offset
-5744 68/push 1/imm32/block-depth
-5745 51/push-ecx
-5746 68/push "var1"/imm32
-5747 89/<- %ecx 4/r32/esp
-5748
-5749 68/push 0/imm32/no-register
-5750 68/push 8/imm32/stack-offset
-5751 68/push 1/imm32/block-depth
-5752 ff 6/subop/push *(ecx+4)
-5753 68/push "var2"/imm32
-5754 89/<- %edx 4/r32/esp
-5755
-5756 68/push 0/imm32/next
-5757 52/push-edx/var-var2
-5758 89/<- %esi 4/r32/esp
-5759
-5760 68/push 0/imm32/next
-5761 51/push-ecx/var-var1
-5762 89/<- %edi 4/r32/esp
-5763
-5764 68/push 0/imm32/next
-5765 57/push-edi/outputs
-5766 56/push-esi/inouts
-5767 68/push "add"/imm32/operation
-5768 68/push 1/imm32
-5769 89/<- %esi 4/r32/esp
-5770
-5771 (emit-subx-statement _test-output-buffered-file %esi Primitives 0)
-5772 (flush _test-output-buffered-file)
-5773 +-- 6 lines: #? # dump _test-output-stream --------------------------------------------------------------------------------------------------------------
-5779
-5780 (check-next-stream-line-equal _test-output-stream "03/add *(ebp+0x00000008) 0x00000000/r32" "F - test-add-mem-to-reg")
-5781
-5782 89/<- %esp 5/r32/ebp
-5783 5d/pop-to-ebp
-5784 c3/return
-5785
-5786 test-add-literal-to-eax:
-5787
-5788
-5789
-5790
-5791
-5792 55/push-ebp
-5793 89/<- %ebp 4/r32/esp
-5794
-5795 (clear-stream _test-output-stream)
-5796 (clear-stream $_test-output-buffered-file->buffer)
-5797
-5798 68/push 0/imm32/right/null
-5799 68/push 1/imm32/left/int
-5800 89/<- %ecx 4/r32/esp
-5801
-5802 68/push "eax"/imm32/register
-5803 68/push 0/imm32/no-stack-offset
-5804 68/push 1/imm32/block-depth
-5805 51/push-ecx
-5806 68/push "var1"/imm32
-5807 89/<- %ecx 4/r32/esp
-5808
-5809 68/push 0/imm32/right/null
-5810 68/push 0/imm32/left/literal
-5811 89/<- %edx 4/r32/esp
-5812
-5813 68/push 0/imm32/no-register
-5814 68/push 0/imm32/no-stack-offset
-5815 68/push 1/imm32/block-depth
-5816 52/push-edx
-5817 68/push "0x34"/imm32
-5818 89/<- %edx 4/r32/esp
-5819
-5820 68/push 0/imm32/next
-5821 52/push-edx/var-var2
-5822 89/<- %esi 4/r32/esp
-5823
-5824 68/push 0/imm32/next
-5825 51/push-ecx/var-var1
-5826 89/<- %edi 4/r32/esp
-5827
-5828 68/push 0/imm32/next
-5829 57/push-edi/outputs
-5830 56/push-esi/inouts
-5831 68/push "add"/imm32/operation
-5832 68/push 1/imm32
-5833 89/<- %esi 4/r32/esp
-5834
-5835 (emit-subx-statement _test-output-buffered-file %esi Primitives 0)
-5836 (flush _test-output-buffered-file)
-5837 +-- 6 lines: #? # dump _test-output-stream --------------------------------------------------------------------------------------------------------------
-5843
-5844 (check-next-stream-line-equal _test-output-stream "05/add-to-eax 0x34/imm32" "F - test-add-literal-to-eax")
-5845
-5846 89/<- %esp 5/r32/ebp
-5847 5d/pop-to-ebp
-5848 c3/return
-5849
-5850 test-add-literal-to-reg:
-5851
-5852
-5853
-5854
-5855
-5856 55/push-ebp
-5857 89/<- %ebp 4/r32/esp
-5858
-5859 (clear-stream _test-output-stream)
-5860 (clear-stream $_test-output-buffered-file->buffer)
-5861
-5862 68/push 0/imm32/right/null
-5863 68/push 1/imm32/left/int
-5864 89/<- %ecx 4/r32/esp
-5865
-5866 68/push "ecx"/imm32/register
-5867 68/push 0/imm32/no-stack-offset
-5868 68/push 1/imm32/block-depth
-5869 51/push-ecx
-5870 68/push "var1"/imm32
-5871 89/<- %ecx 4/r32/esp
-5872
-5873 68/push 0/imm32/right/null
-5874 68/push 0/imm32/left/literal
-5875 89/<- %edx 4/r32/esp
-5876
-5877 68/push 0/imm32/no-register
-5878 68/push 0/imm32/no-stack-offset
-5879 68/push 1/imm32/block-depth
-5880 52/push-edx
-5881 68/push "0x34"/imm32
-5882 89/<- %edx 4/r32/esp
-5883
-5884 68/push 0/imm32/next
-5885 52/push-edx/var-var2
-5886 89/<- %esi 4/r32/esp
-5887
-5888 68/push 0/imm32/next
-5889 51/push-ecx/var-var1
-5890 89/<- %edi 4/r32/esp
-5891
-5892 68/push 0/imm32/next
-5893 57/push-edi/outputs
-5894 56/push-esi/inouts
-5895 68/push "add"/imm32/operation
-5896 68/push 1/imm32
-5897 89/<- %esi 4/r32/esp
-5898
-5899 (emit-subx-statement _test-output-buffered-file %esi Primitives 0)
-5900 (flush _test-output-buffered-file)
-5901 +-- 6 lines: #? # dump _test-output-stream --------------------------------------------------------------------------------------------------------------
-5907
-5908 (check-next-stream-line-equal _test-output-stream "81 0/subop/add %ecx 0x34/imm32" "F - test-add-literal-to-reg")
-5909
-5910 89/<- %esp 5/r32/ebp
-5911 5d/pop-to-ebp
-5912 c3/return
-5913
-5914 test-add-literal-to-mem:
-5915
-5916
-5917
-5918
-5919
-5920 55/push-ebp
-5921 89/<- %ebp 4/r32/esp
-5922
-5923 (clear-stream _test-output-stream)
-5924 (clear-stream $_test-output-buffered-file->buffer)
-5925
-5926 68/push 0/imm32/right/null
-5927 68/push 1/imm32/left/int
-5928 89/<- %ecx 4/r32/esp
-5929
-5930 68/push 0/imm32/no-register
-5931 68/push 8/imm32/stack-offset
-5932 68/push 1/imm32/block-depth
-5933 51/push-ecx
-5934 68/push "var1"/imm32
-5935 89/<- %ecx 4/r32/esp
-5936
-5937 68/push 0/imm32/right/null
-5938 68/push 0/imm32/left/literal
-5939 89/<- %edx 4/r32/esp
-5940
-5941 68/push 0/imm32/no-register
-5942 68/push 0/imm32/no-stack-offset
-5943 68/push 1/imm32/block-depth
-5944 52/push-edx
-5945 68/push "0x34"/imm32
-5946 89/<- %edx 4/r32/esp
-5947
-5948 68/push 0/imm32/next
-5949 52/push-edx/var-var2
-5950 89/<- %esi 4/r32/esp
-5951
-5952 56/push-esi/next
-5953 51/push-ecx/var-var1
-5954 89/<- %esi 4/r32/esp
-5955
-5956 68/push 0/imm32/next
-5957 68/push 0/imm32/outputs
-5958 56/push-esi/inouts
-5959 68/push "add-to"/imm32/operation
-5960 68/push 1/imm32
-5961 89/<- %esi 4/r32/esp
-5962
-5963 (emit-subx-statement _test-output-buffered-file %esi Primitives 0)
-5964 (flush _test-output-buffered-file)
-5965 +-- 6 lines: #? # dump _test-output-stream --------------------------------------------------------------------------------------------------------------
-5971
-5972 (check-next-stream-line-equal _test-output-stream "81 0/subop/add *(ebp+0x00000008) 0x34/imm32" "F - test-add-literal-to-mem")
-5973
-5974 89/<- %esp 5/r32/ebp
-5975 5d/pop-to-ebp
-5976 c3/return
-5977
-5978 test-emit-subx-statement-function-call:
-5979
-5980
-5981
-5982
-5983
-5984
-5985
-5986
-5987
-5988
-5989
-5990
-5991
-5992
-5993
-5994
-5995
-5996
-5997
-5998
-5999 55/push-ebp
-6000 89/<- %ebp 4/r32/esp
-6001
-6002 (clear-stream _test-output-stream)
-6003 (clear-stream $_test-output-buffered-file->buffer)
-6004
-6005 68/push 0/imm32/right/null
-6006 68/push 1/imm32/left/int
-6007 89/<- %ecx 4/r32/esp
-6008
-6009 68/push 0/imm32/no-register
-6010 68/push -8/imm32/stack-offset
-6011 68/push 0/imm32/block-depth
-6012 51/push-ecx
-6013 68/push "foo"/imm32
-6014 89/<- %ecx 4/r32/esp
-6015
-6016 68/push 0/imm32/next
-6017 51/push-ecx/var-foo
-6018 89/<- %esi 4/r32/esp
-6019
-6020 68/push 0/imm32/next
-6021 68/push 0/imm32/outputs
-6022 56/push-esi/inouts
-6023 68/push "f"/imm32/operation
-6024 68/push 1/imm32
-6025 89/<- %esi 4/r32/esp
-6026
-6027 68/push 0/imm32/next
-6028 68/push 0/imm32/body
-6029 68/push 0/imm32/outputs
-6030 51/push-ecx/inouts
-6031 68/push "f2"/imm32/subx-name
-6032 68/push "f"/imm32/name
-6033 89/<- %ebx 4/r32/esp
-6034
-6035 (emit-subx-statement _test-output-buffered-file %esi 0 %ebx)
-6036 (flush _test-output-buffered-file)
-6037 +-- 6 lines: #? # dump _test-output-stream --------------------------------------------------------------------------------------------------------------
-6043
-6044 (check-next-stream-line-equal _test-output-stream "(f2 *(ebp+0xfffffff8))" "F - test-emit-subx-statement-function-call")
-6045
-6046 89/<- %esp 5/r32/ebp
-6047 5d/pop-to-ebp
-6048 c3/return
-6049
-6050 test-emit-subx-statement-function-call-with-literal-arg:
-6051
-6052
-6053
-6054
-6055
-6056
-6057 55/push-ebp
-6058 89/<- %ebp 4/r32/esp
-6059
-6060 (clear-stream _test-output-stream)
-6061 (clear-stream $_test-output-buffered-file->buffer)
-6062
-6063 68/push 0/imm32/right/null
-6064 68/push 0/imm32/left/literal
-6065 89/<- %ecx 4/r32/esp
-6066
-6067 68/push 0/imm32/no-register
-6068 68/push 0/imm32/no-stack-offset
-6069 68/push 0/imm32/block-depth
-6070 51/push-ecx
-6071 68/push "34"/imm32
-6072 89/<- %ecx 4/r32/esp
-6073
-6074 68/push 0/imm32/next
-6075 51/push-ecx/var-foo
-6076 89/<- %esi 4/r32/esp
-6077
-6078 68/push 0/imm32/next
-6079 68/push 0/imm32/outputs
-6080 56/push-esi/inouts
-6081 68/push "f"/imm32/operation
-6082 68/push 1/imm32
-6083 89/<- %esi 4/r32/esp
-6084
-6085 68/push 0/imm32/next
-6086 68/push 0/imm32/body
-6087 68/push 0/imm32/outputs
-6088 51/push-ecx/inouts
-6089 68/push "f2"/imm32/subx-name
-6090 68/push "f"/imm32/name
-6091 89/<- %ebx 4/r32/esp
-6092
-6093 (emit-subx-statement _test-output-buffered-file %esi 0 %ebx)
-6094 (flush _test-output-buffered-file)
-6095 +-- 6 lines: #? # dump _test-output-stream --------------------------------------------------------------------------------------------------------------
-6101
-6102 (check-next-stream-line-equal _test-output-stream "(f2 34)" "F - test-emit-subx-statement-function-call-with-literal-arg")
-6103
-6104 89/<- %esp 5/r32/ebp
-6105 5d/pop-to-ebp
-6106 c3/return
-6107
-6108 emit-subx-prologue:
-6109
-6110 55/push-ebp
-6111 89/<- %ebp 4/r32/esp
-6112
-6113 (write-buffered *(ebp+8) "# . prologue\n")
-6114 (write-buffered *(ebp+8) "55/push-ebp\n")
-6115 (write-buffered *(ebp+8) "89/<- %ebp 4/r32/esp\n")
-6116 $emit-subx-prologue:end:
-6117
-6118 89/<- %esp 5/r32/ebp
-6119 5d/pop-to-ebp
-6120 c3/return
-6121
-6122 emit-subx-epilogue:
-6123
-6124 55/push-ebp
-6125 89/<- %ebp 4/r32/esp
-6126
-6127 (write-buffered *(ebp+8) "# . epilogue\n")
-6128 (write-buffered *(ebp+8) "89/<- %esp 5/r32/ebp\n")
-6129 (write-buffered *(ebp+8) "5d/pop-to-ebp\n")
-6130 (write-buffered *(ebp+8) "c3/return\n")
-6131 $emit-subx-epilogue:end:
-6132
-6133 89/<- %esp 5/r32/ebp
-6134 5d/pop-to-ebp
-6135 c3/return
+5621
+5622 68/push 0/imm32/next
+5623 51/push-ecx/var-foo
+5624 89/<- %edi 4/r32/esp
+5625
+5626 68/push 0/imm32/next
+5627 68/push 0/imm32/outputs
+5628 57/push-edi/inouts
+5629 68/push "increment"/imm32/operation
+5630 68/push 1/imm32
+5631 89/<- %esi 4/r32/esp
+5632
+5633 (emit-subx-statement _test-output-buffered-file %esi Primitives 0)
+5634 (flush _test-output-buffered-file)
+5635 +-- 6 lines: #? # dump _test-output-stream --------------------------------------------------------------------------------------------------------------
+5641
+5642 (check-next-stream-line-equal _test-output-stream "ff 0/subop/increment %eax" "F - test-increment-var")
+5643
+5644 89/<- %esp 5/r32/ebp
+5645 5d/pop-to-ebp
+5646 c3/return
+5647
+5648 test-add-reg-to-reg:
+5649
+5650
+5651
+5652
+5653
+5654 55/push-ebp
+5655 89/<- %ebp 4/r32/esp
+5656
+5657 (clear-stream _test-output-stream)
+5658 (clear-stream $_test-output-buffered-file->buffer)
+5659
+5660 68/push 0/imm32/right/null
+5661 68/push 1/imm32/left/int
+5662 89/<- %ecx 4/r32/esp
+5663
+5664 68/push "eax"/imm32/register
+5665 68/push 0/imm32/no-stack-offset
+5666 68/push 1/imm32/block-depth
+5667 51/push-ecx
+5668 68/push "var1"/imm32
+5669 89/<- %ecx 4/r32/esp
+5670
+5671 68/push "ecx"/imm32/register
+5672 68/push 0/imm32/no-stack-offset
+5673 68/push 1/imm32/block-depth
+5674 ff 6/subop/push *(ecx+4)
+5675 68/push "var2"/imm32
+5676 89/<- %edx 4/r32/esp
+5677
+5678 68/push 0/imm32/next
+5679 52/push-edx/var-var2
+5680 89/<- %esi 4/r32/esp
+5681
+5682 68/push 0/imm32/next
+5683 51/push-ecx/var-var1
+5684 89/<- %edi 4/r32/esp
+5685
+5686 68/push 0/imm32/next
+5687 57/push-edi/outputs
+5688 56/push-esi/inouts
+5689 68/push "add"/imm32/operation
+5690 68/push 1/imm32
+5691 89/<- %esi 4/r32/esp
+5692
+5693 (emit-subx-statement _test-output-buffered-file %esi Primitives 0)
+5694 (flush _test-output-buffered-file)
+5695 +-- 6 lines: #? # dump _test-output-stream --------------------------------------------------------------------------------------------------------------
+5701
+5702 (check-next-stream-line-equal _test-output-stream "01/add-to %eax 0x00000001/r32" "F - test-add-reg-to-reg")
+5703
+5704 89/<- %esp 5/r32/ebp
+5705 5d/pop-to-ebp
+5706 c3/return
+5707
+5708 test-add-reg-to-mem:
+5709
+5710
+5711
+5712
+5713
+5714 55/push-ebp
+5715 89/<- %ebp 4/r32/esp
+5716
+5717 (clear-stream _test-output-stream)
+5718 (clear-stream $_test-output-buffered-file->buffer)
+5719
+5720 68/push 0/imm32/right/null
+5721 68/push 1/imm32/left/int
+5722 89/<- %ecx 4/r32/esp
+5723
+5724 68/push 0/imm32/no-register
+5725 68/push 8/imm32/stack-offset
+5726 68/push 1/imm32/block-depth
+5727 51/push-ecx
+5728 68/push "var1"/imm32
+5729 89/<- %ecx 4/r32/esp
+5730
+5731 68/push "ecx"/imm32/register
+5732 68/push 0/imm32/no-stack-offset
+5733 68/push 1/imm32/block-depth
+5734 ff 6/subop/push *(ecx+4)
+5735 68/push "var2"/imm32
+5736 89/<- %edx 4/r32/esp
+5737
+5738 68/push 0/imm32/next
+5739 52/push-edx/var-var2
+5740 89/<- %esi 4/r32/esp
+5741
+5742 56/push-esi/next
+5743 51/push-ecx/var-var1
+5744 89/<- %esi 4/r32/esp
+5745
+5746 68/push 0/imm32/next
+5747 68/push 0/imm32/outputs
+5748 56/push-esi/inouts
+5749 68/push "add-to"/imm32/operation
+5750 68/push 1/imm32
+5751 89/<- %esi 4/r32/esp
+5752
+5753 (emit-subx-statement _test-output-buffered-file %esi Primitives 0)
+5754 (flush _test-output-buffered-file)
+5755 +-- 6 lines: #? # dump _test-output-stream --------------------------------------------------------------------------------------------------------------
+5761
+5762 (check-next-stream-line-equal _test-output-stream "01/add-to *(ebp+0x00000008) 0x00000001/r32" "F - test-add-reg-to-mem")
+5763
+5764 89/<- %esp 5/r32/ebp
+5765 5d/pop-to-ebp
+5766 c3/return
+5767
+5768 test-add-mem-to-reg:
+5769
+5770
+5771
+5772
+5773
+5774 55/push-ebp
+5775 89/<- %ebp 4/r32/esp
+5776
+5777 (clear-stream _test-output-stream)
+5778 (clear-stream $_test-output-buffered-file->buffer)
+5779
+5780 68/push 0/imm32/right/null
+5781 68/push 1/imm32/left/int
+5782 89/<- %ecx 4/r32/esp
+5783
+5784 68/push "eax"/imm32/register
+5785 68/push 0/imm32/no-stack-offset
+5786 68/push 1/imm32/block-depth
+5787 51/push-ecx
+5788 68/push "var1"/imm32
+5789 89/<- %ecx 4/r32/esp
+5790
+5791 68/push 0/imm32/no-register
+5792 68/push 8/imm32/stack-offset
+5793 68/push 1/imm32/block-depth
+5794 ff 6/subop/push *(ecx+4)
+5795 68/push "var2"/imm32
+5796 89/<- %edx 4/r32/esp
+5797
+5798 68/push 0/imm32/next
+5799 52/push-edx/var-var2
+5800 89/<- %esi 4/r32/esp
+5801
+5802 68/push 0/imm32/next
+5803 51/push-ecx/var-var1
+5804 89/<- %edi 4/r32/esp
+5805
+5806 68/push 0/imm32/next
+5807 57/push-edi/outputs
+5808 56/push-esi/inouts
+5809 68/push "add"/imm32/operation
+5810 68/push 1/imm32
+5811 89/<- %esi 4/r32/esp
+5812
+5813 (emit-subx-statement _test-output-buffered-file %esi Primitives 0)
+5814 (flush _test-output-buffered-file)
+5815 +-- 6 lines: #? # dump _test-output-stream --------------------------------------------------------------------------------------------------------------
+5821
+5822 (check-next-stream-line-equal _test-output-stream "03/add *(ebp+0x00000008) 0x00000000/r32" "F - test-add-mem-to-reg")
+5823
+5824 89/<- %esp 5/r32/ebp
+5825 5d/pop-to-ebp
+5826 c3/return
+5827
+5828 test-add-literal-to-eax:
+5829
+5830
+5831
+5832
+5833
+5834 55/push-ebp
+5835 89/<- %ebp 4/r32/esp
+5836
+5837 (clear-stream _test-output-stream)
+5838 (clear-stream $_test-output-buffered-file->buffer)
+5839
+5840 68/push 0/imm32/right/null
+5841 68/push 1/imm32/left/int
+5842 89/<- %ecx 4/r32/esp
+5843
+5844 68/push "eax"/imm32/register
+5845 68/push 0/imm32/no-stack-offset
+5846 68/push 1/imm32/block-depth
+5847 51/push-ecx
+5848 68/push "var1"/imm32
+5849 89/<- %ecx 4/r32/esp
+5850
+5851 68/push 0/imm32/right/null
+5852 68/push 0/imm32/left/literal
+5853 89/<- %edx 4/r32/esp
+5854
+5855 68/push 0/imm32/no-register
+5856 68/push 0/imm32/no-stack-offset
+5857 68/push 1/imm32/block-depth
+5858 52/push-edx
+5859 68/push "0x34"/imm32
+5860 89/<- %edx 4/r32/esp
+5861
+5862 68/push 0/imm32/next
+5863 52/push-edx/var-var2
+5864 89/<- %esi 4/r32/esp
+5865
+5866 68/push 0/imm32/next
+5867 51/push-ecx/var-var1
+5868 89/<- %edi 4/r32/esp
+5869
+5870 68/push 0/imm32/next
+5871 57/push-edi/outputs
+5872 56/push-esi/inouts
+5873 68/push "add"/imm32/operation
+5874 68/push 1/imm32
+5875 89/<- %esi 4/r32/esp
+5876
+5877 (emit-subx-statement _test-output-buffered-file %esi Primitives 0)
+5878 (flush _test-output-buffered-file)
+5879 +-- 6 lines: #? # dump _test-output-stream --------------------------------------------------------------------------------------------------------------
+5885
+5886 (check-next-stream-line-equal _test-output-stream "05/add-to-eax 0x34/imm32" "F - test-add-literal-to-eax")
+5887
+5888 89/<- %esp 5/r32/ebp
+5889 5d/pop-to-ebp
+5890 c3/return
+5891
+5892 test-add-literal-to-reg:
+5893
+5894
+5895
+5896
+5897
+5898 55/push-ebp
+5899 89/<- %ebp 4/r32/esp
+5900
+5901 (clear-stream _test-output-stream)
+5902 (clear-stream $_test-output-buffered-file->buffer)
+5903
+5904 68/push 0/imm32/right/null
+5905 68/push 1/imm32/left/int
+5906 89/<- %ecx 4/r32/esp
+5907
+5908 68/push "ecx"/imm32/register
+5909 68/push 0/imm32/no-stack-offset
+5910 68/push 1/imm32/block-depth
+5911 51/push-ecx
+5912 68/push "var1"/imm32
+5913 89/<- %ecx 4/r32/esp
+5914
+5915 68/push 0/imm32/right/null
+5916 68/push 0/imm32/left/literal
+5917 89/<- %edx 4/r32/esp
+5918
+5919 68/push 0/imm32/no-register
+5920 68/push 0/imm32/no-stack-offset
+5921 68/push 1/imm32/block-depth
+5922 52/push-edx
+5923 68/push "0x34"/imm32
+5924 89/<- %edx 4/r32/esp
+5925
+5926 68/push 0/imm32/next
+5927 52/push-edx/var-var2
+5928 89/<- %esi 4/r32/esp
+5929
+5930 68/push 0/imm32/next
+5931 51/push-ecx/var-var1
+5932 89/<- %edi 4/r32/esp
+5933
+5934 68/push 0/imm32/next
+5935 57/push-edi/outputs
+5936 56/push-esi/inouts
+5937 68/push "add"/imm32/operation
+5938 68/push 1/imm32
+5939 89/<- %esi 4/r32/esp
+5940
+5941 (emit-subx-statement _test-output-buffered-file %esi Primitives 0)
+5942 (flush _test-output-buffered-file)
+5943 +-- 6 lines: #? # dump _test-output-stream --------------------------------------------------------------------------------------------------------------
+5949
+5950 (check-next-stream-line-equal _test-output-stream "81 0/subop/add %ecx 0x34/imm32" "F - test-add-literal-to-reg")
+5951
+5952 89/<- %esp 5/r32/ebp
+5953 5d/pop-to-ebp
+5954 c3/return
+5955
+5956 test-add-literal-to-mem:
+5957
+5958
+5959
+5960
+5961
+5962 55/push-ebp
+5963 89/<- %ebp 4/r32/esp
+5964
+5965 (clear-stream _test-output-stream)
+5966 (clear-stream $_test-output-buffered-file->buffer)
+5967
+5968 68/push 0/imm32/right/null
+5969 68/push 1/imm32/left/int
+5970 89/<- %ecx 4/r32/esp
+5971
+5972 68/push 0/imm32/no-register
+5973 68/push 8/imm32/stack-offset
+5974 68/push 1/imm32/block-depth
+5975 51/push-ecx
+5976 68/push "var1"/imm32
+5977 89/<- %ecx 4/r32/esp
+5978
+5979 68/push 0/imm32/right/null
+5980 68/push 0/imm32/left/literal
+5981 89/<- %edx 4/r32/esp
+5982
+5983 68/push 0/imm32/no-register
+5984 68/push 0/imm32/no-stack-offset
+5985 68/push 1/imm32/block-depth
+5986 52/push-edx
+5987 68/push "0x34"/imm32
+5988 89/<- %edx 4/r32/esp
+5989
+5990 68/push 0/imm32/next
+5991 52/push-edx/var-var2
+5992 89/<- %esi 4/r32/esp
+5993
+5994 56/push-esi/next
+5995 51/push-ecx/var-var1
+5996 89/<- %esi 4/r32/esp
+5997
+5998 68/push 0/imm32/next
+5999 68/push 0/imm32/outputs
+6000 56/push-esi/inouts
+6001 68/push "add-to"/imm32/operation
+6002 68/push 1/imm32
+6003 89/<- %esi 4/r32/esp
+6004
+6005 (emit-subx-statement _test-output-buffered-file %esi Primitives 0)
+6006 (flush _test-output-buffered-file)
+6007 +-- 6 lines: #? # dump _test-output-stream --------------------------------------------------------------------------------------------------------------
+6013
+6014 (check-next-stream-line-equal _test-output-stream "81 0/subop/add *(ebp+0x00000008) 0x34/imm32" "F - test-add-literal-to-mem")
+6015
+6016 89/<- %esp 5/r32/ebp
+6017 5d/pop-to-ebp
+6018 c3/return
+6019
+6020 test-emit-subx-statement-function-call:
+6021
+6022
+6023
+6024
+6025
+6026
+6027
+6028
+6029
+6030
+6031
+6032
+6033
+6034
+6035
+6036
+6037
+6038
+6039
+6040
+6041 55/push-ebp
+6042 89/<- %ebp 4/r32/esp
+6043
+6044 (clear-stream _test-output-stream)
+6045 (clear-stream $_test-output-buffered-file->buffer)
+6046
+6047 68/push 0/imm32/right/null
+6048 68/push 1/imm32/left/int
+6049 89/<- %ecx 4/r32/esp
+6050
+6051 68/push 0/imm32/no-register
+6052 68/push -8/imm32/stack-offset
+6053 68/push 0/imm32/block-depth
+6054 51/push-ecx
+6055 68/push "foo"/imm32
+6056 89/<- %ecx 4/r32/esp
+6057
+6058 68/push 0/imm32/next
+6059 51/push-ecx/var-foo
+6060 89/<- %esi 4/r32/esp
+6061
+6062 68/push 0/imm32/next
+6063 68/push 0/imm32/outputs
+6064 56/push-esi/inouts
+6065 68/push "f"/imm32/operation
+6066 68/push 1/imm32
+6067 89/<- %esi 4/r32/esp
+6068
+6069 68/push 0/imm32/next
+6070 68/push 0/imm32/body
+6071 68/push 0/imm32/outputs
+6072 51/push-ecx/inouts
+6073 68/push "f2"/imm32/subx-name
+6074 68/push "f"/imm32/name
+6075 89/<- %ebx 4/r32/esp
+6076
+6077 (emit-subx-statement _test-output-buffered-file %esi 0 %ebx)
+6078 (flush _test-output-buffered-file)
+6079 +-- 6 lines: #? # dump _test-output-stream --------------------------------------------------------------------------------------------------------------
+6085
+6086 (check-next-stream-line-equal _test-output-stream "(f2 *(ebp+0xfffffff8))" "F - test-emit-subx-statement-function-call")
+6087
+6088 89/<- %esp 5/r32/ebp
+6089 5d/pop-to-ebp
+6090 c3/return
+6091
+6092 test-emit-subx-statement-function-call-with-literal-arg:
+6093
+6094
+6095
+6096
+6097
+6098
+6099 55/push-ebp
+6100 89/<- %ebp 4/r32/esp
+6101
+6102 (clear-stream _test-output-stream)
+6103 (clear-stream $_test-output-buffered-file->buffer)
+6104
+6105 68/push 0/imm32/right/null
+6106 68/push 0/imm32/left/literal
+6107 89/<- %ecx 4/r32/esp
+6108
+6109 68/push 0/imm32/no-register
+6110 68/push 0/imm32/no-stack-offset
+6111 68/push 0/imm32/block-depth
+6112 51/push-ecx
+6113 68/push "34"/imm32
+6114 89/<- %ecx 4/r32/esp
+6115
+6116 68/push 0/imm32/next
+6117 51/push-ecx/var-foo
+6118 89/<- %esi 4/r32/esp
+6119
+6120 68/push 0/imm32/next
+6121 68/push 0/imm32/outputs
+6122 56/push-esi/inouts
+6123 68/push "f"/imm32/operation
+6124 68/push 1/imm32
+6125 89/<- %esi 4/r32/esp
+6126
+6127 68/push 0/imm32/next
+6128 68/push 0/imm32/body
+6129 68/push 0/imm32/outputs
+6130 51/push-ecx/inouts
+6131 68/push "f2"/imm32/subx-name
+6132 68/push "f"/imm32/name
+6133 89/<- %ebx 4/r32/esp
+6134
+6135 (emit-subx-statement _test-output-buffered-file %esi 0 %ebx)
+6136 (flush _test-output-buffered-file)
+6137 +-- 6 lines: #? # dump _test-output-stream --------------------------------------------------------------------------------------------------------------
+6143
+6144 (check-next-stream-line-equal _test-output-stream "(f2 34)" "F - test-emit-subx-statement-function-call-with-literal-arg")
+6145
+6146 89/<- %esp 5/r32/ebp
+6147 5d/pop-to-ebp
+6148 c3/return
+6149
+6150 emit-subx-prologue:
+6151
+6152 55/push-ebp
+6153 89/<- %ebp 4/r32/esp
+6154
+6155 (write-buffered *(ebp+8) "# . prologue\n")
+6156 (write-buffered *(ebp+8) "55/push-ebp\n")
+6157 (write-buffered *(ebp+8) "89/<- %ebp 4/r32/esp\n")
+6158 $emit-subx-prologue:end:
+6159
+6160 89/<- %esp 5/r32/ebp
+6161 5d/pop-to-ebp
+6162 c3/return
+6163
+6164 emit-subx-epilogue:
+6165
+6166 55/push-ebp
+6167 89/<- %ebp 4/r32/esp
+6168
+6169 (write-buffered *(ebp+8) "# . epilogue\n")
+6170 (write-buffered *(ebp+8) "89/<- %esp 5/r32/ebp\n")
+6171 (write-buffered *(ebp+8) "5d/pop-to-ebp\n")
+6172 (write-buffered *(ebp+8) "c3/return\n")
+6173 $emit-subx-epilogue:end:
+6174
+6175 89/<- %esp 5/r32/ebp
+6176 5d/pop-to-ebp
+6177 c3/return