· 6 years ago · May 05, 2019, 03:38 AM
1<!doctype html>
2<html lang="en">
3<meta charset="utf-8"/>
4<script>
5/*
6gubmint
7https://publicaccess.dtic.mil/psm/api/service/search/search?site=tr_all&q=dtic_public_access
8
9intgeresting
10https://apps.dtic.mil/docs/citations/AD1054333
11https://apps.dtic.mil/docs/citations/AD1045817
12https://apps.dtic.mil/docs/citations/AD1052644
13smart home
14https://apps.dtic.mil/docs/citations/AD1055975
15https://apps.dtic.mil/dtic/tr/fulltext/u2/1055975.pdf
16https://apps.dtic.mil/docs/citations/AD1044904
17https://apps.dtic.mil/docs/citations/AD1043399
18https://apps.dtic.mil/docs/citations/AD1067050
19https://apps.dtic.mil/docs/citations/AD1057995
20https://apps.dtic.mil/docs/citations/AD1061874
21https://apps.dtic.mil/docs/citations/AD1052275
22robots morals
23https://apps.dtic.mil/docs/citations/AD1052285
24
25
26netstop wuauserv
27https://projectsunday.github.io/docs/getting-started#css-fun-time
28http://webassembly.github.io/spec/core/binary/index.html
29querystring for highlighting anything within the link itself
30http://webassembly.github.io/spec/core/text/lexical.html?highlight=token
31
32https://stackoverflow.com/questions/7914684/trigger-right-click-using-pure-javascript
33*/
34
35/*
36http://webassembly.github.io/spec/core/search.html?q=resizable+limits
37http://webassembly.github.io/spec/core/syntax/conventions.html#notation-replace
38http://webassembly.github.io/spec/core/binary/conventions.html#grammar
39http://webassembly.github.io/spec/core/text/conventions.html#text-vec
40http://webassembly.github.io/spec/core/text/instructions.html?highlight=grammar
41http://webassembly.github.io/spec/core/text/lexical.html?highlight=grammar
42http://webassembly.github.io/spec/core/binary/modules.html?highlight=grammar
43*/
44window.neon_highlight='';
45
46function get_text_on_clipboard_client_side(clipboard_container) {
47 var get_panel=document.getElementById(clipboard_container);
48 var content=get_panel.textContent;
49 get_panel.select();
50 document.execCommand('copy');
51}
52
53function create_exported_global() {
54 value='';
55
56 value+='<svg id="svg_clipboard_mod_title1" height="50" width="450" xmlns:xlink="http://www.w3.org/1999/xlink" class="clipboard_mod_title">';
57 value+='<rect width="500" height="40" x="0" y="0" stroke="#000000" stroke-width="1" fill="#32323C"></rect>';
58 value+='<text x="18" y="25" fill="#999999" stroke-width="0" style="font-size:20px;text-shadow:1px 1px 1px #101010;">Global Module</text>';
59 value+='</svg>';
60 value+='<div class="clickable" onclick="get_text_on_clipboard_client_side(\'clipboard_container1\')">[ copy module code to clipboard ]</div>';
61 value+='<textarea cols="60" rows="5" id="clipboard_container1" class="clipboard_container">';
62 value+="// Wasm - Global Module - Associate a value with a Global index"+"\n";
63 value+="waX+=' '+'7f'; asi[a()]='content_type/value_type'; asi[a()]+=' '; // [Signed LEB128] varint7 - part of global_variable - part of global_type"+"\n";
64 value+="waX+=' '+uHEX(0); asi[a()]='mutability'; asi[a()]+=' '; // [LEB128] varuint1 - part of global_variable - part of global_type"+"\n";
65 value+="waX+=' '+'41'; asi[a()]='constant operators/global.get'; asi[a()]+=' '; // varint32, varint64, uint32, uint64 - part of global_variable - part of init_expr"+"\n";
66 value+="waX+=' '+uHEX(1); asi[a()]='value/index'; asi[a()]+=' '; // varint32, varint64, uint32, uint64 - part of global_variable - part of init_expr"+"\n";
67 value+="waX+=' '+'0b'; asi[a()]='end'; asi[a()]+=' '; // [opcode] byte - part of global_variable - part of init_expr"+"\n";
68 value+='</textarea>';
69
70 value+='<svg id="svg_clipboard_mod_title2" height="50" width="450" xmlns:xlink="http://www.w3.org/1999/xlink" class="clipboard_mod_title">';
71 value+='<rect width="500" height="40" x="0" y="0" stroke="#000000" stroke-width="1" fill="#32323C"></rect>';
72 value+='<text x="18" y="25" fill="#999999" stroke-width="0" style="font-size:20px;text-shadow:1px 1px 1px #101010;">Export Module</text>';
73 value+='</svg>';
74 value+='<div class="clickable" onclick="get_text_on_clipboard_client_side(\'clipboard_container2\')">[ copy module code to clipboard ]</div>';
75 value+='<textarea cols="60" rows="5" id="clipboard_container2" class="clipboard_container">';
76 value+="// Wasm - Export Module - Associate field name with Global Module index reference"+"\n";
77 value+="waX+=' '+uHEX(9); asi[a()]='field_len'; asi[a()]+=' '; // [LEB128] varuint32 - part of export_entry"+"\n";
78 value+="waX+=' '+'67 6c 6f 62 61 6c 45 58 50'; asi[a()]='field_str'; asi[a()]+=', globalEXP'; // [UTF-8 byte sequence] - part of export_entry"+"\n";
79 value+="waX+=' '+uHEX(3); asi[a()]='kind'; asi[a()]+=' '; // [unsigned integer] - part of export_entry"+"\n";
80 value+="waX+=' '+uHEX(1); asi[a()]='global m. index'; asi[a()]+=' '; // [LEB128] varuint32 - part of export_entry"+"\n";
81 value+='</textarea>';
82
83 document.getElementById('copy_paste_block').innerHTML=value;
84}
85
86function create_imported_global() {
87 value='';
88
89 value+='<svg id="svg_clipboard_mod_title1" height="50" width="450" xmlns:xlink="http://www.w3.org/1999/xlink" class="clipboard_mod_title">';
90 value+='<rect width="500" height="40" x="0" y="0" stroke="#000000" stroke-width="1" fill="#32323C"></rect>';
91 value+='<text x="18" y="25" fill="#999999" stroke-width="0" style="font-size:20px;text-shadow:1px 1px 1px #101010;">Import Module</text>';
92 value+='</svg>';
93 value+='<div class="clickable" onclick="get_text_on_clipboard_client_side(\'clipboard_container1\')">[ copy module code to clipboard ]</div>';
94 value+='<textarea cols="60" rows="5" id="clipboard_container1" class="clipboard_container">';
95 value+="// Wasm - Import Module - Store object name and field name from JS importObject argument of WebAssembly.Instance as Global"+"\n";
96 value+="waX+=' '+uHEX(7); asi[a()]='module_len'; asi[a()]+=' '; // [LEB128] varuint32 - part of import_entry"+"\n";
97 value+="waX+=' '+'69 6d 70 6f 72 74 31'; asi[a()]='module_str'; asi[a()]+=', import1'; // [UTF-8 byte sequence] bytes - part of import_entry - Object reference name (in error msgs)"+"\n";
98 value+="waX+=' '+uHEX(9); asi[a()]='field_len'; asi[a()]+=' '; // [LEB128] varuint32 - part of import_entry"+"\n";
99 value+="waX+=' '+'67 6c 6f 62 61 6c 49 4d 50'; asi[a()]='field_str'; asi[a()]+=', globalIMP'; // [UTF-8 byte sequence] bytes - part of import_entry - Object field (in error msgs)"+"\n";
100 value+="waX+=' '+uHEX(3); asi[a()]='kind'; asi[a()]+=' '; // [unsigned integer] - part of import_entry"+"\n";
101 value+="waX+=' '+'7f'; asi[a()]='content_type/value_type'; asi[a()]+=' '; // [Signed LEB128] [opcode] varint7"+"\n";
102 value+="waX+=' '+uHEX(0); asi[a()]='mutability'; asi[a()]+=' '; // [LEB128] varuint1"+"\n";
103 value+='</textarea>';
104
105 value+='<div class="clipboard_section_note">Note</div>';
106 value+='<ul class="clipboard_section_note_ul">';
107 value+='<li>JS - Setup importObject in JS which acts as Global Module replacement from Wasm</li>';
108 value+='<li>JS - Pass the JS importObject argument of WebAssembly.Instance to Wasm</li>';
109 value+='</ul>';
110
111 document.getElementById('copy_paste_block').innerHTML=value;
112}
113
114function create_imported_function() {
115 value='';
116
117 value+='<svg id="svg_clipboard_mod_title1" height="50" width="450" xmlns:xlink="http://www.w3.org/1999/xlink" class="clipboard_mod_title">';
118 value+='<rect width="500" height="40" x="0" y="0" stroke="#000000" stroke-width="1" fill="#32323C"></rect>';
119 value+='<text x="18" y="25" fill="#999999" stroke-width="0" style="font-size:20px;text-shadow:1px 1px 1px #101010;">Type Module</text>';
120 value+='</svg>';
121 value+='<div class="clickable" onclick="get_text_on_clipboard_client_side(\'clipboard_container1\')">[ copy module code to clipboard ]</div>';
122 value+='<textarea cols="60" rows="5" id="clipboard_container1" class="clipboard_container">';
123 value+="// Wasm - Type Module - Create function signature naming parameter and return data types"+"\n";
124 value+="waX+=' '+'60'; asi[a()]='form/type constructor func'; asi[a()]+=' '; // [LEB128] varuint7 - part of func_type"+"\n";
125 value+="waX+=' '+uHEX(1); asi[a()]='param_count'; asi[a()]+=' '; // [LEB128] varuint32 - part of func_type"+"\n";
126 value+="waX+=' '+'7f'; asi[a()]='param_types'; asi[a()]+=' '; // [Signed LEB128] varint7 - part of func_type"+"\n";
127 value+="waX+=' '+uHEX(1); asi[a()]='return_count'; asi[a()]+=' '; // [LEB128] varuint1 - part of func_type"+"\n";
128 value+="waX+=' '+'7f'; asi[a()]='return_type'; asi[a()]+=' '; // [Signed LEB128] varint7 - part of func_type"+"\n";
129 value+='</textarea>';
130
131 value+='<svg id="svg_clipboard_mod_title2" height="50" width="450" xmlns:xlink="http://www.w3.org/1999/xlink" class="clipboard_mod_title">';
132 value+='<rect width="500" height="40" x="0" y="0" stroke="#000000" stroke-width="1" fill="#32323C"></rect>';
133 value+='<text x="18" y="25" fill="#999999" stroke-width="0" style="font-size:20px;text-shadow:1px 1px 1px #101010;">Import Module</text>';
134 value+='</svg>';
135 value+='<div class="clickable" onclick="get_text_on_clipboard_client_side(\'clipboard_container2\')">[ copy module code to clipboard ]</div>';
136 value+='<textarea cols="60" rows="5" id="clipboard_container2" class="clipboard_container">';
137 value+="// Wasm - Import Module - Associate object name and field name from JS importObject argument of WebAssembly.Instance with Type Module index reference"+"\n";
138 value+="waX+=' '+uHEX(7); asi[a()]='module_len'; asi[a()]+=' '; // [LEB128] varuint32 - part of import_entry"+"\n";
139 value+="waX+=' '+'69 6d 70 6f 72 74 31'; asi[a()]='module_str'; asi[a()]+=', import1'; // [UTF-8 byte sequence] bytes - part of import_entry - Object reference name (in error msgs)"+"\n";
140 value+="waX+=' '+uHEX(11); asi[a()]='field_len'; asi[a()]+=' '; // [LEB128] varuint32 - part of import_entry"+"\n";
141 value+="waX+=' '+'66 75 6e 63 74 69 6f 6e 49 4d 50'; asi[a()]='field_str'; asi[a()]+=', functionIMP'; // [UTF-8 byte sequence] bytes - part of import_entry - Object field (in error msgs)"+"\n";
142 value+="waX+=' '+uHEX(0); asi[a()]='kind'; asi[a()]+=' '; // [unsigned integer]"+"\n";
143 value+="waX+=' '+uHEX(0); asi[a()]='type m. index'; asi[a()]+=' '; // [LEB128] varuint32"+"\n";
144 value+='</textarea>';
145
146 value+='<div class="clipboard_section_note">Note</div>';
147 value+='<ul class="clipboard_section_note_ul">';
148 value+='<li>JS - Setup importObject in JS which acts as Function Module replacement from Wasm</li>';
149 value+='<li>JS - Pass the JS importObject argument of WebAssembly.Instance to Wasm</li>';
150 value+='</ul>';
151
152 document.getElementById('copy_paste_block').innerHTML=value;
153}
154
155function create_exported_function() {
156 value='';
157
158 value+='<svg id="svg_clipboard_mod_title1" height="50" width="450" xmlns:xlink="http://www.w3.org/1999/xlink" class="clipboard_mod_title">';
159 value+='<rect width="500" height="40" x="0" y="0" stroke="#000000" stroke-width="1" fill="#32323C"></rect>';
160 value+='<text x="18" y="25" fill="#999999" stroke-width="0" style="font-size:20px;text-shadow:1px 1px 1px #101010;">Type Module</text>';
161 value+='</svg>';
162 value+='<div class="clickable" onclick="get_text_on_clipboard_client_side(\'clipboard_container1\')">[ copy module code to clipboard ]</div>';
163 value+='<textarea cols="60" rows="5" id="clipboard_container1" class="clipboard_container">';
164 value+="// Wasm - Type Module - Create function signature naming parameter and return data types"+"\n";
165 value+="waX+=' '+'60'; asi[a()]='form/type constructor func'; asi[a()]+=' '; // [LEB128] varuint7 - part of func_type"+"\n";
166 value+="waX+=' '+uHEX(1); asi[a()]='param_count'; asi[a()]+=' '; // [LEB128] varuint32 - part of func_type"+"\n";
167 value+="waX+=' '+'7f'; asi[a()]='param_types'; asi[a()]+=' '; // [Signed LEB128] varint7 - part of func_type"+"\n";
168 value+="waX+=' '+uHEX(1); asi[a()]='return_count'; asi[a()]+=' '; // [LEB128] varuint1 - part of func_type"+"\n";
169 value+="waX+=' '+'7f'; asi[a()]='return_type'; asi[a()]+=' '; // [Signed LEB128] varint7 - part of func_type"+"\n";
170 value+='</textarea>';
171
172 value+='<svg id="svg_clipboard_mod_title2" height="50" width="450" xmlns:xlink="http://www.w3.org/1999/xlink" class="clipboard_mod_title">';
173 value+='<rect width="500" height="40" x="0" y="0" stroke="#000000" stroke-width="1" fill="#32323C"></rect>';
174 value+='<text x="18" y="25" fill="#999999" stroke-width="0" style="font-size:20px;text-shadow:1px 1px 1px #101010;">Function Module</text>';
175 value+='</svg>';
176 value+='<div class="clickable" onclick="get_text_on_clipboard_client_side(\'clipboard_container2\')">[ copy module code to clipboard ]</div>';
177 value+='<textarea cols="60" rows="5" id="clipboard_container2" class="clipboard_container">';
178 value+="// Wasm - Function Module - Add reference to Type Module index"+"\n";
179 value+="waX+=' '+uHEX(1); asi[a()]='type m. index'; asi[a()]+=' '; // [LEB128] varuint32"+"\n";
180 value+='</textarea>';
181
182 value+='<svg id="svg_clipboard_mod_title3" height="50" width="450" xmlns:xlink="http://www.w3.org/1999/xlink" class="clipboard_mod_title">';
183 value+='<rect width="500" height="40" x="0" y="0" stroke="#000000" stroke-width="1" fill="#32323C"></rect>';
184 value+='<text x="18" y="25" fill="#999999" stroke-width="0" style="font-size:20px;text-shadow:1px 1px 1px #101010;">Export Module</text>';
185 value+='</svg>';
186 value+='<div class="clickable" onclick="get_text_on_clipboard_client_side(\'clipboard_container3\')">[ copy module code to clipboard ]</div>';
187 value+='<textarea cols="60" rows="5" id="clipboard_container3" class="clipboard_container">';
188 value+="// Wasm - Export Module - Associate field name with Function Module index reference"+"\n";
189 value+="waX+=' '+uHEX(11); asi[a()]='field_len'; asi[a()]+=' '; // [LEB128] varuint32 - part of export_entry"+"\n";
190 value+="waX+=' '+'66 75 6e 63 74 69 6f 6e 45 58 50'; asi[a()]='field_str'; asi[a()]+=', functionEXP'; // [UTF-8 byte sequence] - part of export_entry"+"\n";
191 value+="waX+=' '+uHEX(0); asi[a()]='kind'; asi[a()]+=' '; // [unsigned integer] - part of export_entry"+"\n";
192 value+="waX+=' '+uHEX(1); asi[a()]='function m. index'; asi[a()]+=' '; // [LEB128] varuint32 - part of export_entry"+"\n";
193 value+='</textarea>';
194
195 value+='<svg id="svg_clipboard_mod_title4" height="50" width="450" xmlns:xlink="http://www.w3.org/1999/xlink" class="clipboard_mod_title">';
196 value+='<rect width="500" height="40" x="0" y="0" stroke="#000000" stroke-width="1" fill="#32323C"></rect>';
197 value+='<text x="18" y="25" fill="#999999" stroke-width="0" style="font-size:20px;text-shadow:1px 1px 1px #101010;">Code Module</text>';
198 value+='</svg>';
199 value+='<div class="clickable" onclick="get_text_on_clipboard_client_side(\'clipboard_container4\')">[ copy module code to clipboard ]</div>';
200 value+='<textarea cols="60" rows="5" id="clipboard_container4" class="clipboard_container">';
201 value+="// Wasm - Code Module - Add function body code that runs during Wasm code execution"+"\n";
202 value+="waX+=' '+'code_module_0_body_size'; asi[a()]='body_size'; asi[a()]+=' '; // [LEB128] varuint32"+"\n";
203 value+="start_cmbs(0);"+"\n";
204 value+="waX+=' '+uHEX(1); asi[a()]='local_count'; asi[a()]+=' '; // [LEB128] varuint32"+"\n";
205 value+="waX+=' '+uHEX(1); asi[a()]='local_entry count'; asi[a()]+=' '; // [LEB128] varuint32 - part of local_entry"+"\n";
206 value+="waX+=' '+'7f'; asi[a()]='local_entry value_type'; asi[a()]+=' '; // [Signed LEB128] varint7 - part of local_entry"+"\n";
207 value+="// ....................................................................."+"\n"+"\n";
208 value+="// ....................................................................."+"\n";
209 value+="waX+=' '+'0b'; asi[a()]='end'; asi[a()]+=' '; // [opcode] byte "+"\n";
210 value+="stop_cmbs(0);"+"\n";
211
212 value+='</textarea>';
213
214 document.getElementById('copy_paste_block').innerHTML=value;
215}
216
217function create_exported_memory() {
218 value='';
219
220 value+='<svg id="svg_clipboard_mod_title1" height="50" width="450" xmlns:xlink="http://www.w3.org/1999/xlink" class="clipboard_mod_title">';
221 value+='<rect width="500" height="40" x="0" y="0" stroke="#000000" stroke-width="1" fill="#32323C"></rect>';
222 value+='<text x="18" y="25" fill="#999999" stroke-width="0" style="font-size:20px;text-shadow:1px 1px 1px #101010;">Export Module</text>';
223 value+='</svg>';
224 value+='<div class="clickable" onclick="get_text_on_clipboard_client_side(\'clipboard_container1\')">[ copy module code to clipboard ]</div>';
225 value+='<textarea cols="60" rows="5" id="clipboard_container1" class="clipboard_container">';
226 value+="// Wasm - Export Module - Associate field name with Memory Module index reference"+"\n";
227 value+="waX+=' '+uHEX(9); asi[a()]='field_len'; asi[a()]+=' '; // [LEB128] varuint32 - part of export_entry"+"\n";
228 value+="waX+=' '+'6d 65 6d 6f 72 79 45 58 50'; asi[a()]='field_str'; asi[a()]+=', memoryEXP'; // [UTF-8 byte sequence] - part of export_entry"+"\n";
229 value+="waX+=' '+uHEX(2); asi[a()]='kind'; asi[a()]+=' '; // [unsigned integer] - part of export_entry"+"\n";
230 value+="waX+=' '+uHEX(0); asi[a()]='memory m. index'; asi[a()]+=' '; // [LEB128] varuint32 - part of export_entry"+"\n";
231 value+='</textarea>';
232
233 value+='<div class="clipboard_section_note">Note</div>';
234 value+='<ul class="clipboard_section_note_ul">';
235 value+='<li>Exporting memory will require either JS Imported Memory or a Wasm Memory Module</li>';
236 value+='</ul>';
237
238 document.getElementById('copy_paste_block').innerHTML=value;
239}
240
241function create_imported_memory() {
242 value='';
243
244 value+='<svg id="svg_clipboard_mod_title1" height="50" width="450" xmlns:xlink="http://www.w3.org/1999/xlink" class="clipboard_mod_title">';
245 value+='<rect width="500" height="40" x="0" y="0" stroke="#000000" stroke-width="1" fill="#32323C"></rect>';
246 value+='<text x="18" y="25" fill="#999999" stroke-width="0" style="font-size:20px;text-shadow:1px 1px 1px #101010;">Import Module</text>';
247 value+='</svg>';
248 value+='<div class="clickable" onclick="get_text_on_clipboard_client_side(\'clipboard_container1\')">[ copy module code to clipboard ]</div>';
249 value+='<textarea cols="60" rows="5" id="clipboard_container1" class="clipboard_container">';
250 value+="// Wasm - Import Module - Store object name and field name from JS importObject argument of WebAssembly.Instance as Memory"+"\n";
251 value+="waX+=' '+uHEX(7); asi[a()]='module_len'; asi[a()]+=' '; // [LEB128] varuint32 - part of import_entry"+"\n";
252 value+="waX+=' '+'69 6d 70 6f 72 74 31'; asi[a()]='module_str'; asi[a()]+=', import1'; // [UTF-8 byte sequence] bytes - part of import_entry - Object reference name (in error msgs)"+"\n";
253 value+="waX+=' '+uHEX(9); asi[a()]='field_len'; asi[a()]+=' '; // [LEB128] varuint32 - part of import_entry"+"\n";
254 value+="waX+=' '+'6d 65 6d 6f 72 79 49 4d 50'; asi[a()]='field_str'; asi[a()]+=', memoryIMP'; // [UTF-8 byte sequence] bytes - part of import_entry - Object field (in error msgs)"+"\n";
255 value+="waX+=' '+uHEX(2); asi[a()]='kind'; asi[a()]+=' '; // [unsigned integer] - part of import_entry"+"\n";
256 value+="waX+=' '+uHEX(0); asi[a()]='flags'; asi[a()]+=' '; // [LEB128] varuint1 - part of resizable_limits"+"\n";
257 value+="waX+=' '+uHEX(0); asi[a()]='initial'; asi[a()]+=' '; // [LEB128] varuint32 - part of resizable_limits"+"\n";
258 value+="// waX+=' '+uHEX(9); asi[a()]='maximum'; asi[a()]+=' '; // [LEB128] varuint32 - part of resizable_limits"+"\n";
259 value+='</textarea>';
260
261 document.getElementById('copy_paste_block').innerHTML=value;
262}
263function during_wasm_execution(number) {
264 value='';
265 switch(number) {
266 case 1:
267 value='';
268 value+='<svg id="svg_clipboard_mod_title1" height="50" width="450" xmlns:xlink="http://www.w3.org/1999/xlink" class="clipboard_mod_title">';
269 value+='<rect width="500" height="40" x="0" y="0" stroke="#000000" stroke-width="1" fill="#32323C"></rect>';
270 value+='<text x="18" y="25" fill="#999999" stroke-width="0" style="font-size:20px;text-shadow:1px 1px 1px #101010;">Code Module</text>';
271 value+='</svg>';
272
273 value+='<div class="clickable" onclick="get_text_on_clipboard_client_side(\'clipboard_container1\')">[ copy module code to clipboard ]</div>';
274 value+='<textarea cols="60" rows="5" id="clipboard_container1" class="clipboard_container">';
275 value+="// Wasm - Code Module - Load value from Linear Memory into Wasm code execution"+"\n";
276 value+="waX+=' '+'41'; asi[a()]='i32.const'; asi[a()]+=' '; // [opcode]"+"\n";
277 value+="waX+=' '+uHEX(0); asi[a()]='arraybuffer position'; asi[a()]+=' '; // [Signed LEB128] varint32"+"\n";
278 value+="waX+=' '+'2d'; asi[a()]='i32.load8_u'; asi[a()]+=', loading n as 1 byte'; // [opcode]"+"\n";
279 value+="waX+=' '+uHEX(0); asi[a()]='flags - alignment'; asi[a()]+=' '; // [LEB128] varuint32 - part of memory_immediate"+"\n";
280 value+="waX+=' '+uHEX(0); asi[a()]='arraybuffer position offset'; asi[a()]+=' '; // [LEB128] varuint32 - part of memory_immediate"+"\n";
281 value+='</textarea>';
282
283 value+='<div class="clipboard_section_note">Note</div>';
284 value+='<ul class="clipboard_section_note_ul">';
285 value+='<li style="list-style-type:none;">Tested through JS (function) to WA (local.get) and WA (i32.const)</li>';
286 value+='<li style="list-style-type:none;">i32.store 32 bit number from Wasm through i32.const</li>';
287 value+='<li style="list-style-type:none;">i32.store 32 bit number from JS then through local.get</li>';
288
289 value+='<li><span style="color:#ffffee;font-weight:bold;font-size:14px;">i32.load</span> - padded with 1s when negative number, padded with 0s when positive number</li>';
290 value+='<li style="list-style-type:none;"><ul style="font-size:14px;list-style-type:none;">';
291 value+='<li>input -20 ';
292 value+='output -20 ';
293 value+='i32.clz 0</li>';
294 value+='<li style="color:#ffffee;font-weight:bold;">linear memory b:3 255 b:2 255 b:1 255 b:0 236</li>';
295 value+='</ul></li>';
296 value+='<li style="list-style-type:none;"><ul style="font-size:14px;list-style-type:none;">';
297 value+='<li>input 20 ';
298 value+='output 20 ';
299 value+='i32.clz 27</li>';
300 value+='<li style="color:#ffffee;font-weight:bold;">linear memory b:3 0 b:2 0 b:1 0 b:0 20</li>';
301 value+='</ul></li>';
302
303 value+='<li><span style="color:#ffffee;font-weight:bold;font-size:14px;">i32.load16_s</span> - padded with 1s when negative number, padded with 0s when positive number</li>';
304 value+='<li style="list-style-type:none;"><ul style="font-size:14px;list-style-type:none;">';
305 value+='<li>input -20 ';
306 value+='output -20 ';
307 value+='i32.clz 0</li>';
308 value+='<li style="color:#ffffee;font-weight:bold;">linear memory b:3 255 b:2 255 b:1 255 b:0 236</li>';
309 value+='</ul></li>';
310 value+='<li style="list-style-type:none;"><ul style="font-size:14px;list-style-type:none;">';
311 value+='<li>input 20 ';
312 value+='output 20 ';
313 value+='i32.clz 27</li>';
314 value+='<li style="color:#ffffee;font-weight:bold;">linear memory b:3 0 b:2 0 b:1 0 b:0 20</li>';
315 value+='</ul></li>';
316
317 value+='<li><span style="color:#ffffee;font-weight:bold;font-size:14px;">i32.load16_u</span> - padded with 0s when negative number, padded with 0s when positive number</li>';
318 value+='<li style="list-style-type:none;"><ul style="font-size:14px;list-style-type:none;">';
319 value+='<li>input -20 ';
320 value+='output 65516 ';
321 value+='i32.clz 16</li>';
322 value+='<li style="color:#ffffee;font-weight:bold;">linear memory b:3 255 b:2 255 b:1 255 b:0 236</li>';
323 value+='</ul></li>';
324 value+='<li style="list-style-type:none;"><ul style="font-size:14px;list-style-type:none;">';
325 value+='<li>input 20 ';
326 value+='output 20 ';
327 value+='i32.clz 27</li>';
328 value+='<li style="color:#ffffee;font-weight:bold;">linear memory b:3 0 b:2 0 b:1 0 b:0 20</li>';
329 value+='</ul></li>';
330 value+='<li style="list-style-type:none;">Within the 16 bits loaded, bits with the value 1 are evaluated as their binary placement values</li>';
331 value+='<li style="list-style-type:none;">This could convert the leading bit of a negative number (1) to become a positive number (0) if this value is stored anew</li>';
332
333 value+='<li><span style="color:#ffffee;font-weight:bold;font-size:14px;">i32.load8_s</span> - padded with 1s when negative number, padded with 0s when positive number</li>';
334 value+='<li style="list-style-type:none;"><ul style="font-size:14px;list-style-type:none;">';
335 value+='<li>input -20 ';
336 value+='output -20 ';
337 value+='i32.clz 0</li>';
338 value+='<li style="color:#ffffee;font-weight:bold;">linear memory b:3 255 b:2 255 b:1 255 b:0 236</li>';
339 value+='</ul></li>';
340 value+='<li style="list-style-type:none;"><ul style="font-size:14px;list-style-type:none;">';
341 value+='<li>input 20 ';
342 value+='output 20 ';
343 value+='i32.clz 27</li>';
344 value+='<li style="color:#ffffee;font-weight:bold;">linear memory b:3 0 b:2 0 b:1 0 b:0 20</li>';
345 value+='</ul></li>';
346
347 value+='<li><span style="color:#ffffee;font-weight:bold;font-size:14px;">i32.load8_u</span> - padded with 0s when negative number, padded with 0s when positive number</li>';
348 value+='<li style="list-style-type:none;"><ul style="font-size:14px;list-style-type:none;">';
349 value+='<li>input -20 ';
350 value+='output 236 ';
351 value+='i32.clz 24</li>';
352 value+='<li style="color:#ffffee;font-weight:bold;">linear memory b:3 255 b:2 255 b:1 255 b:0 236</li>';
353 value+='</ul></li>';
354 value+='<li style="list-style-type:none;"><ul style="font-size:14px;list-style-type:none;">';
355 value+='<li>input 20 ';
356 value+='output 20 ';
357 value+='i32.clz 27</li>';
358 value+='<li style="color:#ffffee;font-weight:bold;">linear memory b:3 0 b:2 0 b:1 0 b:0 20</li>';
359 value+='</ul></li>';
360 value+='<li style="list-style-type:none;">Within the 8 bits loaded, bits with the value 1 are evaluated as their binary placement values</li>';
361 value+='<li style="list-style-type:none;">This could convert the leading bit of a negative number (1) to become a positive number (0) if this value is stored anew</li>';
362
363 value+='</ul>';
364
365 break;
366 case 2:
367 value='';
368 value+='<svg id="svg_clipboard_mod_title1" height="50" width="450" xmlns:xlink="http://www.w3.org/1999/xlink" class="clipboard_mod_title">';
369 value+='<rect width="500" height="40" x="0" y="0" stroke="#000000" stroke-width="1" fill="#32323C"></rect>';
370 value+='<text x="18" y="25" fill="#999999" stroke-width="0" style="font-size:20px;text-shadow:1px 1px 1px #101010;">Code Module</text>';
371 value+='</svg>';
372
373 value+='<div class="clickable" onclick="get_text_on_clipboard_client_side(\'clipboard_container1\')">[ copy module code to clipboard ]</div>';
374 value+='<textarea cols="60" rows="5" id="clipboard_container1" class="clipboard_container">';
375 value+="// Wasm - Code Module - Store value in Linear Memory during Wasm code execution"+"\n";
376 value+="waX+=' '+'41'; asi[a()]='i32.const'; asi[a()]+=' '; // [opcode]"+"\n";
377 value+="waX+=' '+uHEX(0); asi[a()]='arraybuffer position'; asi[a()]+=' '; // [Signed LEB128] varint32"+"\n";
378 value+="waX+=' '+'41'; asi[a()]='i32.const'; asi[a()]+=' '; // [opcode]"+"\n";
379 value+="waX+=' '+uHEX(1); asi[a()]='i32.const value'; asi[a()]+=' '; // [Signed LEB128] varint32"+"\n";
380 value+="waX+=' '+'3a'; asi[a()]='i32.store8'; asi[a()]+=', storing n as 1 byte'; // [opcode]"+"\n";
381 value+="waX+=' '+uHEX(0); asi[a()]='flags - alignment'; asi[a()]+=' '; // [LEB128] varuint32 - part of memory_immediate"+"\n";
382 value+="waX+=' '+uHEX(0); asi[a()]='arraybuffer position offset'; asi[a()]+=' '; // [LEB128] varuint32 - part of memory_immediate"+"\n";
383 value+='</textarea>';
384 break;
385 case 3:
386 value='';
387 value+='<svg id="svg_clipboard_mod_title1" height="50" width="450" xmlns:xlink="http://www.w3.org/1999/xlink" class="clipboard_mod_title">';
388 value+='<rect width="500" height="40" x="0" y="0" stroke="#000000" stroke-width="1" fill="#32323C"></rect>';
389 value+='<text x="18" y="25" fill="#999999" stroke-width="0" style="font-size:20px;text-shadow:1px 1px 1px #101010;">Code Module</text>';
390 value+='</svg>';
391
392 value+='<div class="clickable" onclick="get_text_on_clipboard_client_side(\'clipboard_container1\')">[ copy module code to clipboard ]</div>';
393 value+='<textarea cols="60" rows="5" id="clipboard_container1" class="clipboard_container">';
394 value+="// Wasm - Code Module - Get amount of Wasm pages used for Linear Memory during Wasm code execution"+"\n";
395 value+="waX+=' '+'3f'; asi[a()]='memory.size'; asi[a()]+=' '; // [opcode]"+"\n";
396 value+="waX+=' '+uHEX(0); asi[a()]='immediate'; asi[a()]+=' '; // [LEB128] varuint1"+"\n";
397 value+='</textarea>';
398 break;
399 case 4:
400 value='';
401 value+='<svg id="svg_clipboard_mod_title1" height="50" width="450" xmlns:xlink="http://www.w3.org/1999/xlink" class="clipboard_mod_title">';
402 value+='<rect width="500" height="40" x="0" y="0" stroke="#000000" stroke-width="1" fill="#32323C"></rect>';
403 value+='<text x="18" y="25" fill="#999999" stroke-width="0" style="font-size:20px;text-shadow:1px 1px 1px #101010;">Code Module</text>';
404 value+='</svg>';
405
406 value+='<div class="clickable" onclick="get_text_on_clipboard_client_side(\'clipboard_container1\')">[ copy module code to clipboard ]</div>';
407 value+='<textarea cols="60" rows="5" id="clipboard_container1" class="clipboard_container">';
408 value+="// Wasm - Code Module - Grow amount of Wasm Linear Memory pages during Wasm code execution "+"\n";
409 value+="waX+=' '+'41'; asi[a()]='i32.const'; asi[a()]+=' '; // [opcode]"+"\n";
410 value+="waX+=' '+uHEX(1); asi[a()]='i32.const value'; asi[a()]+=' '; // [Signed LEB128] varint32"+"\n";
411 value+="waX+=' '+'40'; asi[a()]='memory.grow'; asi[a()]+=' '; // [opcode]"+"\n";
412 value+="waX+=' '+uHEX(0); asi[a()]='immediate'; asi[a()]+=' '; // [LEB128] varuint1"+"\n";
413 value+='</textarea>';
414 break;
415 case 5:
416 value='';
417 value+='<svg id="svg_clipboard_mod_title1" height="50" width="450" xmlns:xlink="http://www.w3.org/1999/xlink" class="clipboard_mod_title">';
418 value+='<rect width="500" height="40" x="0" y="0" stroke="#000000" stroke-width="1" fill="#32323C"></rect>';
419 value+='<text x="18" y="25" fill="#999999" stroke-width="0" style="font-size:20px;text-shadow:1px 1px 1px #101010;">Global Module</text>';
420 value+='</svg>';
421
422 value+='<div class="clickable" onclick="get_text_on_clipboard_client_side(\'clipboard_container1\')">[ copy module code to clipboard ]</div>';
423 value+='<textarea cols="60" rows="5" id="clipboard_container1" class="clipboard_container">';
424 value+="// Wasm - Global Module - Associate a value with a Global index"+"\n";
425 value+="waX+=' '+'7f'; asi[a()]='content_type/value_type'; asi[a()]+=' '; // [Signed LEB128] varint7 - part of global_variable - part of global_type"+"\n";
426 value+="waX+=' '+uHEX(0); asi[a()]='mutability'; asi[a()]+=' '; // [LEB128] varuint1 - part of global_variable - part of global_type"+"\n";
427 value+="waX+=' '+'41'; asi[a()]='constant operators/global.get'; asi[a()]+=' '; // varint32, varint64, uint32, uint64 - part of global_variable - part of init_expr"+"\n";
428 value+="waX+=' '+uHEX(1); asi[a()]='value/index'; asi[a()]+=' '; // varint32, varint64, uint32, uint64 - part of global_variable - part of init_expr"+"\n";
429 value+="waX+=' '+'0b'; asi[a()]='end'; asi[a()]+=' '; // [opcode] byte - part of global_variable - part of init_expr"+"\n";
430 value+='</textarea>';
431 break;
432 case 6:
433 value='';
434 value+='<svg id="svg_clipboard_mod_title1" height="50" width="450" xmlns:xlink="http://www.w3.org/1999/xlink" class="clipboard_mod_title">';
435 value+='<rect width="500" height="40" x="0" y="0" stroke="#000000" stroke-width="1" fill="#32323C"></rect>';
436 value+='<text x="18" y="25" fill="#999999" stroke-width="0" style="font-size:20px;text-shadow:1px 1px 1px #101010;">... any module</text>';
437 value+='</svg>';
438
439 value+='<div class="clickable" onclick="get_text_on_clipboard_client_side(\'clipboard_container1\')">[ copy module code to clipboard ]</div>';
440 value+='<textarea cols="60" rows="5" id="clipboard_container1" class="clipboard_container">';
441 value+="waX+=' '+'41'; asi[a()]='i32.const'; asi[a()]+=' '; // [opcode]"+"\n";
442 value+="waX+=' '+uHEX(1); asi[a()]='i32.const value'; asi[a()]+=' '; // [Signed LEB128] varint32"+"\n";
443 value+='</textarea>';
444 break;
445 case 7:
446 value='';
447 value+='<svg id="svg_clipboard_mod_title1" height="50" width="450" xmlns:xlink="http://www.w3.org/1999/xlink" class="clipboard_mod_title">';
448 value+='<rect width="500" height="40" x="0" y="0" stroke="#000000" stroke-width="1" fill="#32323C"></rect>';
449 value+='<text x="18" y="25" fill="#999999" stroke-width="0" style="font-size:20px;text-shadow:1px 1px 1px #101010;">Code module</text>';
450 value+='</svg>';
451
452 value+='<div class="clickable" onclick="get_text_on_clipboard_client_side(\'clipboard_container1\')">[ copy module code to clipboard ]</div>';
453 value+='<textarea cols="60" rows="5" id="clipboard_container1" class="clipboard_container">';
454 value+="waX+=' '+'20'; asi[a()]='local.get'; asi[a()]+=' '; // [opcode]"+"\n";
455 value+="waX+=' '+uHEX(1); asi[a()]='local.get index'; asi[a()]+=' '; // [LEB128] varuint32"+"\n";
456 value+='</textarea>';
457 break;
458 case 8:
459 value='';
460 value+='<svg id="svg_clipboard_mod_title1" height="50" width="450" xmlns:xlink="http://www.w3.org/1999/xlink" class="clipboard_mod_title">';
461 value+='<rect width="500" height="40" x="0" y="0" stroke="#000000" stroke-width="1" fill="#32323C"></rect>';
462 value+='<text x="18" y="25" fill="#999999" stroke-width="0" style="font-size:20px;text-shadow:1px 1px 1px #101010;">Code module</text>';
463 value+='</svg>';
464
465 value+='<div class="clickable" onclick="get_text_on_clipboard_client_side(\'clipboard_container1\')">[ copy module code to clipboard ]</div>';
466 value+='<textarea cols="60" rows="5" id="clipboard_container1" class="clipboard_container">';
467 value+="waX+=' '+'21'; asi[a()]='local.set'; asi[a()]+=' '; // [opcode]"+"\n";
468 value+="waX+=' '+uHEX(1); asi[a()]='local.set index'; asi[a()]+=' '; // [LEB128] varuint32"+"\n";
469 value+='</textarea>';
470 break;
471 case 9:
472 value='';
473 value+='<svg id="svg_clipboard_mod_title1" height="50" width="450" xmlns:xlink="http://www.w3.org/1999/xlink" class="clipboard_mod_title">';
474 value+='<rect width="500" height="40" x="0" y="0" stroke="#000000" stroke-width="1" fill="#32323C"></rect>';
475 value+='<text x="18" y="25" fill="#999999" stroke-width="0" style="font-size:20px;text-shadow:1px 1px 1px #101010;">Code module</text>';
476 value+='</svg>';
477
478 value+='<div class="clickable" onclick="get_text_on_clipboard_client_side(\'clipboard_container1\')">[ copy module code to clipboard ]</div>';
479 value+='<textarea cols="60" rows="5" id="clipboard_container1" class="clipboard_container">';
480 value+="waX+=' '+'22'; asi[a()]='local.tee'; asi[a()]+=' '; // [opcode]"+"\n";
481 value+="waX+=' '+uHEX(0); asi[a()]='local.tee index'; asi[a()]+=' '; // [LEB128] varuint32"+"\n";
482 value+='</textarea>';
483 break;
484 case 10:
485 value='';
486 value+='<svg id="svg_clipboard_mod_title1" height="50" width="450" xmlns:xlink="http://www.w3.org/1999/xlink" class="clipboard_mod_title">';
487 value+='<rect width="500" height="40" x="0" y="0" stroke="#000000" stroke-width="1" fill="#32323C"></rect>';
488 value+='<text x="18" y="25" fill="#999999" stroke-width="0" style="font-size:20px;text-shadow:1px 1px 1px #101010;">... any module</text>';
489 value+='</svg>';
490
491 value+='<div class="clickable" onclick="get_text_on_clipboard_client_side(\'clipboard_container1\')">[ copy module code to clipboard ]</div>';
492 value+='<textarea cols="60" rows="5" id="clipboard_container1" class="clipboard_container">';
493 value+="waX+=' '+'23'; asi[a()]='global.get'; asi[a()]+=' '; // [opcode]"+"\n";
494 value+="waX+=' '+uHEX(0); asi[a()]='global.get index'; asi[a()]+=' '; // [LEB128] varuint32"+"\n";
495 value+='</textarea>';
496 break;
497 case 11:
498 value='';
499 value+='<svg id="svg_clipboard_mod_title1" height="50" width="450" xmlns:xlink="http://www.w3.org/1999/xlink" class="clipboard_mod_title">';
500 value+='<rect width="500" height="40" x="0" y="0" stroke="#000000" stroke-width="1" fill="#32323C"></rect>';
501 value+='<text x="18" y="25" fill="#999999" stroke-width="0" style="font-size:20px;text-shadow:1px 1px 1px #101010;">... any module</text>';
502 value+='</svg>';
503
504 value+='<div class="clickable" onclick="get_text_on_clipboard_client_side(\'clipboard_container1\')">[ copy module code to clipboard ]</div>';
505 value+='<textarea cols="60" rows="5" id="clipboard_container1" class="clipboard_container">';
506 value+="waX+=' '+'24'; asi[a()]='global.set'; asi[a()]+=' '; // [opcode]"+"\n";
507 value+="waX+=' '+uHEX(0); asi[a()]='global.set index'; asi[a()]+=' '; // [LEB128] varuint32"+"\n";
508 value+='</textarea>';
509 break;
510 case 12:
511 value='';
512 value+='<svg id="svg_clipboard_mod_title1" height="50" width="450" xmlns:xlink="http://www.w3.org/1999/xlink" class="clipboard_mod_title">';
513 value+='<rect width="500" height="40" x="0" y="0" stroke="#000000" stroke-width="1" fill="#32323C"></rect>';
514 value+='<text x="18" y="25" fill="#999999" stroke-width="0" style="font-size:20px;text-shadow:1px 1px 1px #101010;">Code module</text>';
515 value+='</svg>';
516
517 value+='<div class="clickable" onclick="get_text_on_clipboard_client_side(\'clipboard_container1\')">[ copy module code to clipboard ]</div>';
518 value+='<textarea cols="60" rows="5" id="clipboard_container1" class="clipboard_container">';
519 value+="waX+=' '+'10'; asi[a()]='call'; asi[a()]+=' '; // [opcode]"+"\n";
520 value+="waX+=' '+uHEX(1); asi[a()]='function m. index'; asi[a()]+=' '; // [LEB128] varuint32"+"\n";
521 value+='</textarea>';
522
523 value+='<div class="clipboard_section_note">Note</div>';
524 value+='<ul class="clipboard_section_note_ul">';
525 value+='<li>Values on stack being passed to function call should at least match parameter values outlined in Type Module</li>';
526 value+='</ul>';
527 break;
528 case 13:
529 value='';
530 value+='<svg id="svg_clipboard_mod_title1" height="50" width="450" xmlns:xlink="http://www.w3.org/1999/xlink" class="clipboard_mod_title">';
531 value+='<rect width="500" height="40" x="0" y="0" stroke="#000000" stroke-width="1" fill="#32323C"></rect>';
532 value+='<text x="18" y="25" fill="#999999" stroke-width="0" style="font-size:20px;text-shadow:1px 1px 1px #101010;">Code module</text>';
533 value+='</svg>';
534
535 value+='<div class="clickable" onclick="get_text_on_clipboard_client_side(\'clipboard_container1\')">[ copy module code to clipboard ]</div>';
536 value+='<textarea cols="60" rows="5" id="clipboard_container1" class="clipboard_container">';
537 value+="waX+=' '+'1a'; asi[a()]='drop'; asi[a()]+=' '; // [opcode]"+"\n";
538 value+='</textarea>';
539 break;
540 case 14:
541 value='';
542 value+='<svg id="svg_clipboard_mod_title1" height="50" width="450" xmlns:xlink="http://www.w3.org/1999/xlink" class="clipboard_mod_title">';
543 value+='<rect width="500" height="40" x="0" y="0" stroke="#000000" stroke-width="1" fill="#32323C"></rect>';
544 value+='<text x="18" y="25" fill="#999999" stroke-width="0" style="font-size:20px;text-shadow:1px 1px 1px #101010;">Code module</text>';
545 value+='</svg>';
546
547 value+='<div class="clickable" onclick="get_text_on_clipboard_client_side(\'clipboard_container1\')">[ copy module code to clipboard ]</div>';
548 value+='<textarea cols="60" rows="5" id="clipboard_container1" class="clipboard_container">';
549 value+="// if 'boolean condition value' >= 1 (below) then 'select' returns 'operand 1 value' {"+"\n";
550 value+="waX+=' '+'41'; asi[a()]='i32.const'; asi[a()]+=' '; // [opcode]"+"\n";
551 value+="waX+=' '+uHEX(1); asi[a()]='operand 1 value'; asi[a()]+=' '; // [Signed LEB128] varint32"+"\n";
552 value+="// ... }"+"\n";
553 value+="// else if 'boolean condition value' < 1 (below) then 'select' returns 'operand 2 value' {"+"\n";
554 value+="waX+=' '+'41'; asi[a()]='i32.const'; asi[a()]+=' '; // [opcode]"+"\n";
555 value+="waX+=' '+uHEX(2); asi[a()]='operand 2 value'; asi[a()]+=' '; // [Signed LEB128] varint32"+"\n";
556 value+="// ... }"+"\n";
557 value+="waX+=' '+'41'; asi[a()]='i32.const'; asi[a()]+=' '; // [opcode]"+"\n";
558 value+="waX+=' '+uHEX(1); asi[a()]='boolean condition value'; asi[a()]+=' '; // [Signed LEB128] varint32"+"\n";
559 value+="waX+=' '+'1b'; asi[a()]='select'; asi[a()]+=' '; // [opcode]"+"\n";
560 value+='</textarea>';
561 break;
562 case 15:
563 value='';
564 value+='<svg id="svg_clipboard_mod_title1" height="50" width="450" xmlns:xlink="http://www.w3.org/1999/xlink" class="clipboard_mod_title">';
565 value+='<rect width="500" height="40" x="0" y="0" stroke="#000000" stroke-width="1" fill="#32323C"></rect>';
566 value+='<text x="18" y="25" fill="#999999" stroke-width="0" style="font-size:20px;text-shadow:1px 1px 1px #101010;">Code module</text>';
567 value+='</svg>';
568
569 value+='<div class="clickable" onclick="get_text_on_clipboard_client_side(\'clipboard_container1\')">[ copy module code to clipboard ]</div>';
570 value+='<textarea cols="60" rows="5" id="clipboard_container1" class="clipboard_container">';
571 value+="waX+=' '+'04'; asi[a()]='IF - A'; asi[a()]+=' { ... incoming stack value >= 1'; // [opcode]"+"\n";
572 value+="// waX+=' '+'7f'; asi[a()]='type of i32, return value'; asi[a()]+=' '; // [Signed LEB128] [opcode] varint7 - part of value_type - part of block_type"+"\n";
573 value+="waX+=' '+'40'; asi[a()]='type of empty, no return value'; asi[a()]+=' '; // [Signed LEB128] [opcode] varint7 - part of block_type"+"\n";
574 value+="waX+=' '+'0b'; asi[a()]='END IF - A'; asi[a()]+=' '; // [opcode]"+"\n";
575 value+="// ... }"+"\n";
576 value+='</textarea>';
577 break;
578 case 16:
579 value='';
580 value+='<svg id="svg_clipboard_mod_title1" height="50" width="450" xmlns:xlink="http://www.w3.org/1999/xlink" class="clipboard_mod_title">';
581 value+='<rect width="500" height="40" x="0" y="0" stroke="#000000" stroke-width="1" fill="#32323C"></rect>';
582 value+='<text x="18" y="25" fill="#999999" stroke-width="0" style="font-size:20px;text-shadow:1px 1px 1px #101010;">Code module</text>';
583 value+='</svg>';
584
585 value+='<div class="clickable" onclick="get_text_on_clipboard_client_side(\'clipboard_container1\')">[ copy module code to clipboard ]</div>';
586 value+='<textarea cols="60" rows="5" id="clipboard_container1" class="clipboard_container">';
587 value+="waX+=' '+'04'; asi[a()]='IF - A'; asi[a()]+=' { ... x >= 1'; // [opcode]"+"\n";
588 value+="// waX+=' '+'7f'; asi[a()]='type of i32, return value'; asi[a()]+=' '; // [Signed LEB128] [opcode] varint7 - part of value_type - part of block_type"+"\n";
589 value+="waX+=' '+'40'; asi[a()]='type of empty, no return value'; asi[a()]+=' '; // [Signed LEB128] [opcode] varint7 - part of block_type"+"\n";
590 value+="// ... }"+"\n";
591 value+="waX+=' '+'05'; asi[a()]='ELSE - A'; asi[a()]+=' { ... x < 1'; // [opcode]"+"\n";
592 value+="waX+=' '+'0b'; asi[a()]='END IF - A'; asi[a()]+=' '; // [opcode]"+"\n";
593 value+="// ... }"+"\n";
594 value+='</textarea>';
595 break;
596 case 17:
597 value='';
598 value+='<svg id="svg_clipboard_mod_title1" height="50" width="450" xmlns:xlink="http://www.w3.org/1999/xlink" class="clipboard_mod_title">';
599 value+='<rect width="500" height="40" x="0" y="0" stroke="#000000" stroke-width="1" fill="#32323C"></rect>';
600 value+='<text x="18" y="25" fill="#999999" stroke-width="0" style="font-size:20px;text-shadow:1px 1px 1px #101010;">Code module</text>';
601 value+='</svg>';
602
603 value+='<div class="clickable" onclick="get_text_on_clipboard_client_side(\'clipboard_container1\')">[ copy module code to clipboard ]</div>';
604 value+='<textarea cols="60" rows="5" id="clipboard_container1" class="clipboard_container">';
605 value+="// Create a number to loop for LOOP - A"+"\n";
606 value+="waX+=' '+'41'; asi[a()]='i32.const'; asi[a()]+=' '; // [opcode]"+"\n";
607 value+="waX+=' '+uHEX(0); asi[a()]='i32.const value'; asi[a()]+=' '; // [Signed LEB128] varint32"+"\n";
608 value+="// Set looping number for LOOP - A into storage (to increment over time)"+"\n";
609 value+="waX+=' '+'21'; asi[a()]='local.set'; asi[a()]+=' '; // [opcode]"+"\n";
610 value+="waX+=' '+uHEX(1); asi[a()]='local.set index'; asi[a()]+=' '; // [LEB128] varuint32"+"\n";
611 value+="\n";
612 value+="waX+=' '+'02'; asi[a()]='BLOCK - A'; asi[a()]+=' '; // [opcode]"+"\n";
613 value+="//waX+=' '+'7f'; asi[a()]='type of i32, return value'; asi[a()]+=' '; // [Signed LEB128] [opcode] varint7 - part of value_type - part of block_type"+"\n";
614 value+="waX+=' '+'40'; asi[a()]='type of empty, no return value'; asi[a()]+=' '; // [Signed LEB128] [opcode] varint7 - part of block_type"+"\n";
615 value+="\n";
616 value+="\t"+"waX+=' '+'03'; asi[a()]='LOOP - A'; asi[a()]+=' '; // [opcode]"+"\n";
617 value+="\t"+"//waX+=' '+'7f'; asi[a()]='type of i32, return value'; asi[a()]+=' '; // [Signed LEB128] [opcode] varint7 - part of value_type - part of block_type"+"\n";
618 value+="\t"+"waX+=' '+'40'; asi[a()]='type of empty, no return value'; asi[a()]+=' '; // [Signed LEB128] [opcode] varint7 - part of block_type"+"\n";
619 value+="\t"+"\n";
620 value+="\t"+"\t"+"// Get looping number for LOOP - A from storage (to increment over time)"+"\n";
621 value+="\t"+"\t"+"waX+=' '+'20'; asi[a()]='local.get'; asi[a()]+=' '; // [opcode]"+"\n";
622 value+="\t"+"\t"+"waX+=' '+uHEX(1); asi[a()]='local.get index'; asi[a()]+=' '; // [LEB128] varuint32"+"\n";
623 value+="\t"+"\t"+"// Create the constant number required to leave LOOP - A"+"\n";
624 value+="\t"+"\t"+"waX+=' '+'41'; asi[a()]='i32.const'; asi[a()]+=' '; // [opcode]"+"\n";
625 value+="\t"+"\t"+"waX+=' '+uHEX(5); asi[a()]='i32.const value'; asi[a()]+=' '; // [Signed LEB128] varint32"+"\n";
626 value+="\t"+"\t"+"waX+=' '+'46'; asi[a()]='i32.eq'; asi[a()]+=' '; // [opcode]"+"\n";
627 value+="\n";
628 value+="\t"+"\t"+"// Determine if leaving LOOP - A and branching to BLOCK - A"+"\n";
629 value+="\t"+"\t"+"waX+=' '+'0d'; asi[a()]='br_if (BLOCK - A)'; asi[a()]+=' { ... looping number == 5'; // [opcode]"+"\n";
630 value+="\t"+"\t"+"waX+=' '+uHEX(1); asi[a()]='branch depth'; asi[a()]+=' '; // [LEB128] varuint32"+"\n";
631 value+="\t"+"\t"+"// ... }"+"\n";
632 value+="\t"+"\t"+"// Note: return values expected by parent block,loop,if should be placed on stack before this 'br_if'"+"\n";
633 value+="\t"+"\t"+"// Note: if parent block(s) expect return value (and multiple items are on stack) all stack items are removed once stack item closest to 'br_if' is returned to parent block(s) (much like 'return' control flow operator performs)"+"\n";
634 value+="\t"+"\t"+"// Note: use 0 branch depth to reach LOOP - A, use 1 branch depth to reach BLOCK - A"+"\n";
635 value+="\n";
636 value+="\t"+"\t"+"// Get looping number for LOOP - A from storage (to increment over time)"+"\n";
637 value+="\t"+"\t"+"waX+=' '+'20'; asi[a()]='local.get'; asi[a()]+=' '; // [opcode]"+"\n";
638 value+="\t"+"\t"+"waX+=' '+uHEX(1); asi[a()]='local.get index'; asi[a()]+=' '; // [LEB128] varuint32"+"\n";
639 value+="\t"+"\t"+"// Create the constant number used to increment looping number for LOOP - A"+"\n";
640 value+="\t"+"\t"+"waX+=' '+'41'; asi[a()]='i32.const'; asi[a()]+=' '; // [opcode]"+"\n";
641 value+="\t"+"\t"+"waX+=' '+uHEX(1); asi[a()]='i32.const value'; asi[a()]+=' '; // [Signed LEB128] varint32"+"\n";
642 value+="\t"+"\t"+"waX+=' '+'6a'; asi[a()]='i32.add'; asi[a()]+=' '; // [opcode]"+"\n";
643 value+="\t"+"\t"+"// Set looping number for LOOP - A into storage (to increment over time)"+"\n";
644 value+="\t"+"\t"+"waX+=' '+'21'; asi[a()]='local.set'; asi[a()]+=' '; // [opcode]"+"\n";
645 value+="\t"+"\t"+"waX+=' '+uHEX(1); asi[a()]='local.set index'; asi[a()]+=' '; // [LEB128] varuint32"+"\n";
646 value+="\n";
647 value+="\t"+"\t"+"// Continue LOOP - A, branch to LOOP - A"+"\n";
648 value+="\t"+"\t"+"waX+=' '+'0c'; asi[a()]='br (LOOP - A)'; asi[a()]+=' '; // [opcode]"+"\n";
649 value+="\t"+"\t"+"waX+=' '+uHEX(0); asi[a()]='branch depth'; asi[a()]+=' '; // [LEB128] varuint32"+"\n";
650 value+="\t"+"\t"+"// Note: return values expected by parent block,loop,if should be placed on stack before this 'br'"+"\n";
651 value+="\t"+"\t"+"// Note: if parent block(s) expect return value (and multiple items are on stack) all stack items are removed once stack item closest to 'br' is returned to parent block(s) (much like 'return' control flow operator performs)"+"\n";
652 value+="\t"+"\t"+"// Note: use 0 branch depth to reach LOOP - A, use 1 branch depth to reach BLOCK - A"+"\n";
653 value+="\n";
654 value+="\t"+"waX+=' '+'0b'; asi[a()]='end (LOOP - A)'; asi[a()]+=' '; // [opcode]"+"\n";
655 value+="\n";
656 value+="waX+=' '+'0b'; asi[a()]='end (BLOCK - A)'; asi[a()]+=' '; // [opcode]"+"\n";
657 value+='</textarea>';
658 break;
659 case 18:
660 value='';
661 value+='<svg id="svg_clipboard_mod_title1" height="50" width="450" xmlns:xlink="http://www.w3.org/1999/xlink" class="clipboard_mod_title">';
662 value+='<rect width="500" height="40" x="0" y="0" stroke="#000000" stroke-width="1" fill="#32323C"></rect>';
663 value+='<text x="18" y="25" fill="#999999" stroke-width="0" style="font-size:20px;text-shadow:1px 1px 1px #101010;">Code module</text>';
664 value+='</svg>';
665
666 value+='<div class="clickable" onclick="get_text_on_clipboard_client_side(\'clipboard_container1\')">[ copy module code to clipboard ]</div>';
667 value+='<textarea cols="60" rows="5" id="clipboard_container1" class="clipboard_container">';
668 value+="waX+=' '+'0f'; asi[a()]='return'; asi[a()]+=' '; // [opcode]"+"\n";
669 value+='</textarea>';
670 break;
671 case 19:
672 value='';
673 value+='<svg id="svg_clipboard_mod_title1" height="50" width="450" xmlns:xlink="http://www.w3.org/1999/xlink" class="clipboard_mod_title">';
674 value+='<rect width="500" height="40" x="0" y="0" stroke="#000000" stroke-width="1" fill="#32323C"></rect>';
675 value+='<text x="18" y="25" fill="#999999" stroke-width="0" style="font-size:20px;text-shadow:1px 1px 1px #101010;">Code module</text>';
676 value+='</svg>';
677
678 value+='<div class="clickable" onclick="get_text_on_clipboard_client_side(\'clipboard_container1\')">[ copy module code to clipboard ]</div>';
679 value+='<textarea cols="60" rows="5" id="clipboard_container1" class="clipboard_container">';
680 value+="waX+=' '+'45'; asi[a()]='i32.eqz'; asi[a()]+=' '; // [opcode]"+"\n";
681 value+='</textarea>';
682
683 value+='<div class="clipboard_section_note">Note</div>';
684 value+='<ul class="clipboard_section_note_ul">';
685 value+='<li>1 on stack removed, result 1 or 0 added to stack</li>';
686 value+='<li>compare equal to zero (return 1 if operand is zero, 0 otherwise)</li>';
687 value+='</ul>';
688 break;
689 case 20:
690 value='';
691 value+='<svg id="svg_clipboard_mod_title1" height="50" width="450" xmlns:xlink="http://www.w3.org/1999/xlink" class="clipboard_mod_title">';
692 value+='<rect width="500" height="40" x="0" y="0" stroke="#000000" stroke-width="1" fill="#32323C"></rect>';
693 value+='<text x="18" y="25" fill="#999999" stroke-width="0" style="font-size:20px;text-shadow:1px 1px 1px #101010;">Code module</text>';
694 value+='</svg>';
695
696 value+='<div class="clickable" onclick="get_text_on_clipboard_client_side(\'clipboard_container1\')">[ copy module code to clipboard ]</div>';
697 value+='<textarea cols="60" rows="5" id="clipboard_container1" class="clipboard_container">';
698 value+="waX+=' '+'46'; asi[a()]='i32.eq'; asi[a()]+=' '; // [opcode]"+"\n";
699 value+='</textarea>';
700
701 value+='<div class="clipboard_section_note">Note</div>';
702 value+='<ul class="clipboard_section_note_ul">';
703 value+='<li>2 on stack removed, result 1 or 0 added to stack</li>';
704 value+='<li>sign-agnostic compare equal</li>';
705 value+='</ul>';
706 break;
707 case 21:
708 value='';
709 value+='<svg id="svg_clipboard_mod_title1" height="50" width="450" xmlns:xlink="http://www.w3.org/1999/xlink" class="clipboard_mod_title">';
710 value+='<rect width="500" height="40" x="0" y="0" stroke="#000000" stroke-width="1" fill="#32323C"></rect>';
711 value+='<text x="18" y="25" fill="#999999" stroke-width="0" style="font-size:20px;text-shadow:1px 1px 1px #101010;">Code module</text>';
712 value+='</svg>';
713
714 value+='<div class="clickable" onclick="get_text_on_clipboard_client_side(\'clipboard_container1\')">[ copy module code to clipboard ]</div>';
715 value+='<textarea cols="60" rows="5" id="clipboard_container1" class="clipboard_container">';
716 value+="waX+=' '+'47'; asi[a()]='i32.ne'; asi[a()]+=' '; // [opcode]"+"\n";
717 value+='</textarea>';
718
719 value+='<div class="clipboard_section_note">Note</div>';
720 value+='<ul class="clipboard_section_note_ul">';
721 value+='<li>2 on stack removed, result 1 or 0 added to stack</li>';
722 value+='<li>sign-agnostic compare unequal</li>';
723 value+='</ul>';
724 break;
725 case 22:
726 value='';
727 value+='<svg id="svg_clipboard_mod_title1" height="50" width="450" xmlns:xlink="http://www.w3.org/1999/xlink" class="clipboard_mod_title">';
728 value+='<rect width="500" height="40" x="0" y="0" stroke="#000000" stroke-width="1" fill="#32323C"></rect>';
729 value+='<text x="18" y="25" fill="#999999" stroke-width="0" style="font-size:20px;text-shadow:1px 1px 1px #101010;">Code module</text>';
730 value+='</svg>';
731
732 value+='<div class="clickable" onclick="get_text_on_clipboard_client_side(\'clipboard_container1\')">[ copy module code to clipboard ]</div>';
733 value+='<textarea cols="60" rows="5" id="clipboard_container1" class="clipboard_container">';
734 value+="waX+=' '+'49'; asi[a()]='i32.lt_u'; asi[a()]+=' '; // [opcode]"+"\n";
735 value+='</textarea>';
736
737 value+='<div class="clipboard_section_note">Note</div>';
738 value+='<ul class="clipboard_section_note_ul">';
739 value+='<li>2 on stack removed - is farthest < nearest, result 1 or 0 added to stack</li>';
740 value+='<li>unsigned less than</li>';
741 value+='</ul>';
742 break;
743 case 23:
744 value='';
745 value+='<svg id="svg_clipboard_mod_title1" height="50" width="450" xmlns:xlink="http://www.w3.org/1999/xlink" class="clipboard_mod_title">';
746 value+='<rect width="500" height="40" x="0" y="0" stroke="#000000" stroke-width="1" fill="#32323C"></rect>';
747 value+='<text x="18" y="25" fill="#999999" stroke-width="0" style="font-size:20px;text-shadow:1px 1px 1px #101010;">Code module</text>';
748 value+='</svg>';
749
750 value+='<div class="clickable" onclick="get_text_on_clipboard_client_side(\'clipboard_container1\')">[ copy module code to clipboard ]</div>';
751 value+='<textarea cols="60" rows="5" id="clipboard_container1" class="clipboard_container">';
752 value+="waX+=' '+'4b'; asi[a()]='i32.gt_u'; asi[a()]+=' '; // [opcode]"+"\n";
753 value+='</textarea>';
754
755 value+='<div class="clipboard_section_note">Note</div>';
756 value+='<ul class="clipboard_section_note_ul">';
757 value+='<li>2 on stack removed - is farthest > nearest, result 1 or 0 added to stack</li>';
758 value+='<li>unsigned greater than</li>';
759 value+='</ul>';
760 break;
761 case 24:
762 value='';
763 value+='<svg id="svg_clipboard_mod_title1" height="50" width="450" xmlns:xlink="http://www.w3.org/1999/xlink" class="clipboard_mod_title">';
764 value+='<rect width="500" height="40" x="0" y="0" stroke="#000000" stroke-width="1" fill="#32323C"></rect>';
765 value+='<text x="18" y="25" fill="#999999" stroke-width="0" style="font-size:20px;text-shadow:1px 1px 1px #101010;">Code module</text>';
766 value+='</svg>';
767
768 value+='<div class="clickable" onclick="get_text_on_clipboard_client_side(\'clipboard_container1\')">[ copy module code to clipboard ]</div>';
769 value+='<textarea cols="60" rows="5" id="clipboard_container1" class="clipboard_container">';
770 value+="waX+=' '+'4d'; asi[a()]='i32.le_u'; asi[a()]+=' '; // [opcode]"+"\n";
771 value+='</textarea>';
772
773 value+='<div class="clipboard_section_note">Note</div>';
774 value+='<ul class="clipboard_section_note_ul">';
775 value+='<li>2 on stack removed - is farthest <= nearest, result 1 or 0 added to stack</li>';
776 value+='<li>unsigned less than or equal</li>';
777 value+='</ul>';
778 break;
779 case 25:
780 value='';
781 value+='<svg id="svg_clipboard_mod_title1" height="50" width="450" xmlns:xlink="http://www.w3.org/1999/xlink" class="clipboard_mod_title">';
782 value+='<rect width="500" height="40" x="0" y="0" stroke="#000000" stroke-width="1" fill="#32323C"></rect>';
783 value+='<text x="18" y="25" fill="#999999" stroke-width="0" style="font-size:20px;text-shadow:1px 1px 1px #101010;">Code module</text>';
784 value+='</svg>';
785
786 value+='<div class="clickable" onclick="get_text_on_clipboard_client_side(\'clipboard_container1\')">[ copy module code to clipboard ]</div>';
787 value+='<textarea cols="60" rows="5" id="clipboard_container1" class="clipboard_container">';
788 value+="waX+=' '+'4f'; asi[a()]='i32.ge_u'; asi[a()]+=' '; // [opcode]"+"\n";
789 value+='</textarea>';
790
791 value+='<div class="clipboard_section_note">Note</div>';
792 value+='<ul class="clipboard_section_note_ul">';
793 value+='<li>2 on stack removed - is farthest >= nearest, result 1 or 0 added to stack</li>';
794 value+='<li>unsigned greater than or equal</li>';
795 value+='</ul>';
796 break;
797 case 26:
798 value='';
799 value+='<svg id="svg_clipboard_mod_title1" height="50" width="450" xmlns:xlink="http://www.w3.org/1999/xlink" class="clipboard_mod_title">';
800 value+='<rect width="500" height="40" x="0" y="0" stroke="#000000" stroke-width="1" fill="#32323C"></rect>';
801 value+='<text x="18" y="25" fill="#999999" stroke-width="0" style="font-size:20px;text-shadow:1px 1px 1px #101010;">Code module</text>';
802 value+='</svg>';
803
804 value+='<div class="clickable" onclick="get_text_on_clipboard_client_side(\'clipboard_container1\')">[ copy module code to clipboard ]</div>';
805 value+='<textarea cols="60" rows="5" id="clipboard_container1" class="clipboard_container">';
806 value+="waX+=' '+'67'; asi[a()]='i32.clz'; asi[a()]+=' '; // [opcode]"+"\n";
807 value+='</textarea>';
808
809 value+='<div class="clipboard_section_note">Note</div>';
810 value+='<ul class="clipboard_section_note_ul">';
811 value+='<li>1 on stack removed , result - integer based amount of leading zeros added to stack</li>';
812 value+='<li>sign-agnostic count leading zero bits (All zero bits are considered leading if the value is zero)</li>';
813 value+='</ul>';
814 break;
815 case 27:
816 value='';
817 value+='<svg id="svg_clipboard_mod_title1" height="50" width="450" xmlns:xlink="http://www.w3.org/1999/xlink" class="clipboard_mod_title">';
818 value+='<rect width="500" height="40" x="0" y="0" stroke="#000000" stroke-width="1" fill="#32323C"></rect>';
819 value+='<text x="18" y="25" fill="#999999" stroke-width="0" style="font-size:20px;text-shadow:1px 1px 1px #101010;">Code module</text>';
820 value+='</svg>';
821
822 value+='<div class="clickable" onclick="get_text_on_clipboard_client_side(\'clipboard_container1\')">[ copy module code to clipboard ]</div>';
823 value+='<textarea cols="60" rows="5" id="clipboard_container1" class="clipboard_container">';
824 value+="waX+=' '+'68'; asi[a()]='i32.ctz'; asi[a()]+=' '; // [opcode]"+"\n";
825 value+='</textarea>';
826
827 value+='<div class="clipboard_section_note">Note</div>';
828 value+='<ul class="clipboard_section_note_ul">';
829 value+='<li>1 on stack removed , result - integer based amount of trailing zeros added to stack</li>';
830 value+='<li>sign-agnostic count trailing zero bits (All zero bits are considered trailing if the value is zero)</li>';
831 value+='</ul>';
832 break;
833 case 28:
834 value='';
835 value+='<svg id="svg_clipboard_mod_title1" height="50" width="450" xmlns:xlink="http://www.w3.org/1999/xlink" class="clipboard_mod_title">';
836 value+='<rect width="500" height="40" x="0" y="0" stroke="#000000" stroke-width="1" fill="#32323C"></rect>';
837 value+='<text x="18" y="25" fill="#999999" stroke-width="0" style="font-size:20px;text-shadow:1px 1px 1px #101010;">Code module</text>';
838 value+='</svg>';
839
840 value+='<div class="clickable" onclick="get_text_on_clipboard_client_side(\'clipboard_container1\')">[ copy module code to clipboard ]</div>';
841 value+='<textarea cols="60" rows="5" id="clipboard_container1" class="clipboard_container">';
842 value+="waX+=' '+'69'; asi[a()]='i32.popcnt'; asi[a()]+=' '; // [opcode]"+"\n";
843 value+='</textarea>';
844
845 value+='<div class="clipboard_section_note">Note</div>';
846 value+='<ul class="clipboard_section_note_ul">';
847 value+='<li>1 on stack removed , result - integer based amount of 1 bits found</li>';
848 value+='<li>sign-agnostic count number of one bits</li>';
849 value+='</ul>';
850 break;
851 case 29:
852 value='';
853 value+='<svg id="svg_clipboard_mod_title1" height="50" width="450" xmlns:xlink="http://www.w3.org/1999/xlink" class="clipboard_mod_title">';
854 value+='<rect width="500" height="40" x="0" y="0" stroke="#000000" stroke-width="1" fill="#32323C"></rect>';
855 value+='<text x="18" y="25" fill="#999999" stroke-width="0" style="font-size:20px;text-shadow:1px 1px 1px #101010;">Code module</text>';
856 value+='</svg>';
857
858 value+='<div class="clickable" onclick="get_text_on_clipboard_client_side(\'clipboard_container1\')">[ copy module code to clipboard ]</div>';
859 value+='<textarea cols="60" rows="5" id="clipboard_container1" class="clipboard_container">';
860 value+="waX+=' '+'6a'; asi[a()]='i32.add'; asi[a()]+=' '; // [opcode]"+"\n";
861 value+='</textarea>';
862
863 value+='<div class="clipboard_section_note">Note</div>';
864 value+='<ul class="clipboard_section_note_ul">';
865 value+='<li>2 on stack removed , result - value from addition</li>';
866 value+='<li>sign-agnostic addition</li>';
867 value+='</ul>';
868 break;
869 case 30:
870 value='';
871 value+='<svg id="svg_clipboard_mod_title1" height="50" width="450" xmlns:xlink="http://www.w3.org/1999/xlink" class="clipboard_mod_title">';
872 value+='<rect width="500" height="40" x="0" y="0" stroke="#000000" stroke-width="1" fill="#32323C"></rect>';
873 value+='<text x="18" y="25" fill="#999999" stroke-width="0" style="font-size:20px;text-shadow:1px 1px 1px #101010;">Code module</text>';
874 value+='</svg>';
875
876 value+='<div class="clickable" onclick="get_text_on_clipboard_client_side(\'clipboard_container1\')">[ copy module code to clipboard ]</div>';
877 value+='<textarea cols="60" rows="5" id="clipboard_container1" class="clipboard_container">';
878 value+="waX+=' '+'6b'; asi[a()]='i32.sub'; asi[a()]+=' '; // [opcode]"+"\n";
879 value+='</textarea>';
880
881 value+='<div class="clipboard_section_note">Note</div>';
882 value+='<ul class="clipboard_section_note_ul">';
883 value+='<li>2 on stack removed , result - farthest subtract nearest</li>';
884 value+='<li>sign-agnostic subtraction</li>';
885 value+='</ul>';
886 break;
887 case 31:
888 value='';
889 value+='<svg id="svg_clipboard_mod_title1" height="50" width="450" xmlns:xlink="http://www.w3.org/1999/xlink" class="clipboard_mod_title">';
890 value+='<rect width="500" height="40" x="0" y="0" stroke="#000000" stroke-width="1" fill="#32323C"></rect>';
891 value+='<text x="18" y="25" fill="#999999" stroke-width="0" style="font-size:20px;text-shadow:1px 1px 1px #101010;">Code module</text>';
892 value+='</svg>';
893
894 value+='<div class="clickable" onclick="get_text_on_clipboard_client_side(\'clipboard_container1\')">[ copy module code to clipboard ]</div>';
895 value+='<textarea cols="60" rows="5" id="clipboard_container1" class="clipboard_container">';
896 value+="waX+=' '+'6c'; asi[a()]='i32.mul'; asi[a()]+=' '; // [opcode]"+"\n";
897 value+='</textarea>';
898
899 value+='<div class="clipboard_section_note">Note</div>';
900 value+='<ul class="clipboard_section_note_ul">';
901 value+='<li>2 on stack removed , result - value from multiplication</li>';
902 value+='<li>sign-agnostic multiplication (lower 32-bits)</li>';
903 value+='</ul>';
904 break;
905 case 32:
906 value='';
907 value+='<svg id="svg_clipboard_mod_title1" height="50" width="450" xmlns:xlink="http://www.w3.org/1999/xlink" class="clipboard_mod_title">';
908 value+='<rect width="500" height="40" x="0" y="0" stroke="#000000" stroke-width="1" fill="#32323C"></rect>';
909 value+='<text x="18" y="25" fill="#999999" stroke-width="0" style="font-size:20px;text-shadow:1px 1px 1px #101010;">Code module</text>';
910 value+='</svg>';
911
912 value+='<div class="clickable" onclick="get_text_on_clipboard_client_side(\'clipboard_container1\')">[ copy module code to clipboard ]</div>';
913 value+='<textarea cols="60" rows="5" id="clipboard_container1" class="clipboard_container">';
914 value+="waX+=' '+'6e'; asi[a()]='i32.div_u'; asi[a()]+=' '; // [opcode]"+"\n";
915 value+='</textarea>';
916
917 value+='<div class="clipboard_section_note">Note</div>';
918 value+='<ul class="clipboard_section_note_ul">';
919 value+='<li>2 on stack removed , result - farthest divided by nearest</li>';
920 value+='<li>unsigned division (result is floored)</li>';
921 value+='</ul>';
922 break;
923 case 33:
924 value='';
925 value+='<svg id="svg_clipboard_mod_title1" height="50" width="450" xmlns:xlink="http://www.w3.org/1999/xlink" class="clipboard_mod_title">';
926 value+='<rect width="500" height="40" x="0" y="0" stroke="#000000" stroke-width="1" fill="#32323C"></rect>';
927 value+='<text x="18" y="25" fill="#999999" stroke-width="0" style="font-size:20px;text-shadow:1px 1px 1px #101010;">Code module</text>';
928 value+='</svg>';
929
930 value+='<div class="clickable" onclick="get_text_on_clipboard_client_side(\'clipboard_container1\')">[ copy module code to clipboard ]</div>';
931 value+='<textarea cols="60" rows="5" id="clipboard_container1" class="clipboard_container">';
932 value+="waX+=' '+'70'; asi[a()]='i32.rem_u'; asi[a()]+=' '; // [opcode]"+"\n";
933 value+='</textarea>';
934
935 value+='<div class="clipboard_section_note">Note</div>';
936 value+='<ul class="clipboard_section_note_ul">';
937 value+='<li>2 on stack removed , result - value as remainder of division</li>';
938 value+='<li>unsigned remainder</li>';
939 value+='</ul>';
940 break;
941 case 34:
942 value='';
943 value+='<svg id="svg_clipboard_mod_title1" height="50" width="450" xmlns:xlink="http://www.w3.org/1999/xlink" class="clipboard_mod_title">';
944 value+='<rect width="500" height="40" x="0" y="0" stroke="#000000" stroke-width="1" fill="#32323C"></rect>';
945 value+='<text x="18" y="25" fill="#999999" stroke-width="0" style="font-size:20px;text-shadow:1px 1px 1px #101010;">Code module</text>';
946 value+='</svg>';
947
948 value+='<div class="clickable" onclick="get_text_on_clipboard_client_side(\'clipboard_container1\')">[ copy module code to clipboard ]</div>';
949 value+='<textarea cols="60" rows="5" id="clipboard_container1" class="clipboard_container">';
950 value+="waX+=' '+'71'; asi[a()]='i32.and'; asi[a()]+=' '; // [opcode]"+"\n";
951 value+='</textarea>';
952
953 value+='<div class="clipboard_section_note">Note</div>';
954 value+='<ul class="clipboard_section_note_ul">';
955 value+='<li>2 on stack removed , result - bitwise and</li>';
956 value+='<li>sign-agnostic bitwise and</li>';
957 value+='</ul>';
958 break;
959 case 35:
960 value='';
961 value+='<svg id="svg_clipboard_mod_title1" height="50" width="450" xmlns:xlink="http://www.w3.org/1999/xlink" class="clipboard_mod_title">';
962 value+='<rect width="500" height="40" x="0" y="0" stroke="#000000" stroke-width="1" fill="#32323C"></rect>';
963 value+='<text x="18" y="25" fill="#999999" stroke-width="0" style="font-size:20px;text-shadow:1px 1px 1px #101010;">Code module</text>';
964 value+='</svg>';
965
966 value+='<div class="clickable" onclick="get_text_on_clipboard_client_side(\'clipboard_container1\')">[ copy module code to clipboard ]</div>';
967 value+='<textarea cols="60" rows="5" id="clipboard_container1" class="clipboard_container">';
968 value+="waX+=' '+'72'; asi[a()]='i32.or'; asi[a()]+=' '; // [opcode]"+"\n";
969 value+='</textarea>';
970
971 value+='<div class="clipboard_section_note">Note</div>';
972 value+='<ul class="clipboard_section_note_ul">';
973 value+='<li>2 on stack removed , result - bitwise or</li>';
974 value+='<li>sign-agnostic bitwise inclusive or</li>';
975 value+='</ul>';
976 break;
977 case 36:
978 value='';
979 value+='<svg id="svg_clipboard_mod_title1" height="50" width="450" xmlns:xlink="http://www.w3.org/1999/xlink" class="clipboard_mod_title">';
980 value+='<rect width="500" height="40" x="0" y="0" stroke="#000000" stroke-width="1" fill="#32323C"></rect>';
981 value+='<text x="18" y="25" fill="#999999" stroke-width="0" style="font-size:20px;text-shadow:1px 1px 1px #101010;">Code module</text>';
982 value+='</svg>';
983
984 value+='<div class="clickable" onclick="get_text_on_clipboard_client_side(\'clipboard_container1\')">[ copy module code to clipboard ]</div>';
985 value+='<textarea cols="60" rows="5" id="clipboard_container1" class="clipboard_container">';
986 value+="waX+=' '+'73'; asi[a()]='i32.xor'; asi[a()]+=' '; // [opcode]"+"\n";
987 value+='</textarea>';
988
989 value+='<div class="clipboard_section_note">Note</div>';
990 value+='<ul class="clipboard_section_note_ul">';
991 value+='<li>2 on stack removed , result - bitwise xor</li>';
992 value+='<li>sign-agnostic bitwise exclusive or</li>';
993 value+='</ul>';
994 break;
995 case 37:
996 value='';
997 value+='<svg id="svg_clipboard_mod_title1" height="50" width="450" xmlns:xlink="http://www.w3.org/1999/xlink" class="clipboard_mod_title">';
998 value+='<rect width="500" height="40" x="0" y="0" stroke="#000000" stroke-width="1" fill="#32323C"></rect>';
999 value+='<text x="18" y="25" fill="#999999" stroke-width="0" style="font-size:20px;text-shadow:1px 1px 1px #101010;">Code module</text>';
1000 value+='</svg>';
1001
1002 value+='<div class="clickable" onclick="get_text_on_clipboard_client_side(\'clipboard_container1\')">[ copy module code to clipboard ]</div>';
1003 value+='<textarea cols="60" rows="5" id="clipboard_container1" class="clipboard_container">';
1004 value+="waX+=' '+'74'; asi[a()]='i32.shl'; asi[a()]+=' '; // [opcode]"+"\n";
1005 value+='</textarea>';
1006
1007 value+='<div class="clipboard_section_note">Note</div>';
1008 value+='<ul class="clipboard_section_note_ul">';
1009 value+='<li>2 on stack removed , result - farthest shifted left by nearest</li>';
1010 value+='<li>sign-agnostic shift left</li>';
1011
1012 value+='<li style="list-style-type:none;"> </li>';
1013
1014 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;list-style-type:none;">i32.shl - when positive number, right side is padding with zeros (until 32 bit number maintained) when shift left is performed</li>';
1015
1016 value+='<li style="list-style-type:none;"> </li>';
1017
1018 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;list-style-type:none;">i32.shl - when negative number, right side is padding with zeros (until 32 bit number maintained) when shift left is performed</li>';
1019
1020 value+='<li style="list-style-type:none;"> </li>';
1021
1022 value+='<li>- - - - - - - - - - - - - - - -</li>';
1023 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">Ex. plain shift left</li>';
1024 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">i32.shl</li>';
1025 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">input==17</li>';
1026 value+='<li style="list-style-type:none;">0000 0000 0000 0000 0000 0000 0001 0001</li>';
1027 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">after applying i32.shl=2</li>';
1028 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">result is 68 then i32.clz=25 i32.ctz=2 i32.popcnt=2</li>';
1029 value+='<li style="list-style-type:none;">0000 0000 0000 0000 0000 0000 0100 0100</li>';
1030
1031 value+='<li>- - - - - - - - - - - - - - - - </li>';
1032 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">Ex. plain shift left resulting in positive number being converted to negative number</li>';
1033 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">i32.shl</li>';
1034 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">input==17</li>';
1035 value+='<li style="list-style-type:none;">0000 0000 0000 0000 0000 0000 0001 0001</li>';
1036 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">after applying i32.shl=27</li>';
1037 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">result is -2013265920 then i32.clz=0 i32.ctz=27 i32.popcnt=2</li>';
1038 value+='<li style="list-style-type:none;">1000 1000 0000 0000 0000 0000 0000 0000</li>';
1039
1040 value+='<li>- - - - - - - - - - - - - - - - </li>';
1041 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">Ex. unsigned right shift followed by left shift</li>';
1042 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">i32.shr_u</li>';
1043 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">i32.shl</li>';
1044 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">input==17</li>';
1045 value+='<li style="list-style-type:none;">Q - Can the 1 bit removed during i32.shr_u be recovered by shifting left in the same session?</li>';
1046 value+='<li style="list-style-type:none;">A - No, numbers returned on right side are zeros</li>';
1047 value+='<li style="list-style-type:none;">0000 0000 0000 0000 0000 0000 0001 0001</li>';
1048 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">after applying i32.shr_u=2</li>';
1049 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">after applying i32.shl=2</li>';
1050 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">result is 16 i32.clz=27 i32.ctz=4 i32.popcnt=1</li>';
1051 value+='<li style="list-style-type:none;">0000 0000 0000 0000 0000 0000 0001 0000</li>';
1052
1053 value+='<li>- - - - - - - - - - - - - - - - </li>';
1054 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">Ex. signed right shift followed by left shift</li>';
1055 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">i32.shr_s</li>';
1056 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">i32.shl</li>';
1057 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">input==17</li>';
1058 value+='<li style="list-style-type:none;">Q - Can the 1 bit removed during i32.shr_s be recovered by shifting left in the same session?</li>';
1059 value+='<li style="list-style-type:none;">A - No, numbers returned on right side are zeros</li>';
1060 value+='<li style="list-style-type:none;">0000 0000 0000 0000 0000 0000 0001 0001</li>';
1061 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">after applying i32.shr_s=2</li>';
1062 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">after applying i32.shl=2</li>';
1063 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">result is 16 i32.clz=27 i32.ctz=4 i32.popcnt=1</li>';
1064 value+='<li style="list-style-type:none;">0000 0000 0000 0000 0000 0000 0001 0000</li>';
1065
1066 value+='<li>- - - - - - - - - - - - - - - - </li>';
1067 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">Ex. left shift followed by signed right shift resulting in positive number changing to negative number</li>';
1068 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">i32.shl</li>';
1069 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">i32.shr_s</li>';
1070 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">input==17</li>';
1071 value+='<li style="list-style-type:none;">0000 0000 0000 0000 0000 0000 0001 0001</li>';
1072 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">after applying i32.shl=27</li>';
1073 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">after applying i32.shr_s=2</li>';
1074 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">result is -503316480 i32.clz=0 i32.ctz=25 i32.popcnt=4</li>';
1075 value+='<li style="list-style-type:none;">1110 0010 0000 0000 0000 0000 0000 0000</li>';
1076
1077 value+='<li>- - - - - - - - - - - - - - - - </li>';
1078 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">Ex. plain shift left</li>';
1079 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">i32.shl</li>';
1080 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">input==-5945</li>';
1081 value+='<li style="list-style-type:none;">1111 1111 1111 1111 1110 1000 1100 0111</li>';
1082 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">after applying i32.shl=2</li>';
1083 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">result is -23780 then i32.clz=0 i32.ctz=2 i32.popcnt=23</li>';
1084 value+='<li style="list-style-type:none;">1111 1111 1111 1111 1010 0011 0001 1100</li>';
1085
1086 value+='<li>- - - - - - - - - - - - - - - - </li>';
1087 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">Ex. plain shift left resulting in negative number being converted to positive number</li>';
1088 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">i32.shl</li>';
1089 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">input==-5945</li>';
1090 value+='<li style="list-style-type:none;">1111 1111 1111 1111 1110 1000 1100 0111</li>';
1091 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">after applying i32.shl=19</li>';
1092 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">result is 1178075136 then i32.clz=1 i32.ctz=19 i32.popcnt=6</li>';
1093 value+='<li style="list-style-type:none;">0100 0110 0011 1000 0000 0000 0000 0000</li>';
1094
1095 value+='<li>- - - - - - - - - - - - - - - - </li>';
1096 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">Ex. unsigned right shift followed by left shift</li>';
1097 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">i32.shr_u</li>';
1098 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">i32.shl</li>';
1099 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">input==-5945</li>';
1100 value+='<li style="list-style-type:none;">Q - Can the 1 bit removed during i32.shr_u be recovered by shifting left in the same session?</li>';
1101 value+='<li style="list-style-type:none;">A - No, numbers returned on right side are zeros</li>';
1102 value+='<li style="list-style-type:none;">1111 1111 1111 1111 1110 1000 1100 0111</li>';
1103 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">after applying i32.shr_u=4</li>';
1104 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">after applying i32.shl=2</li>';
1105 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">result is 1073740336 i32.clz=2 i32.ctz=4 i32.popcnt=22</li>';
1106 value+='<li style="list-style-type:none;">0011 1111 1111 1111 1111 1010 0011 0000</li>';
1107
1108 value+='<li>- - - - - - - - - - - - - - - - </li>';
1109 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">Ex. signed right shift followed by left shift</li>';
1110 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">i32.shr_s</li>';
1111 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">i32.shl</li>';
1112 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">input==-5945</li>';
1113 value+='<li style="list-style-type:none;">Q - Can the 1 bit removed during i32.shr_s be recovered by shifting left in the same session?</li>';
1114 value+='<li style="list-style-type:none;">A - No, numbers returned on right side are zeros</li>';
1115 value+='<li style="list-style-type:none;">1111 1111 1111 1111 1110 1000 1100 0111</li>';
1116 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">after applying i32.shr_s=2</li>';
1117 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">after applying i32.shl=2</li>';
1118 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">result is -5948 i32.clz=0 i32.ctz=2 i32.popcnt=23</li>';
1119 value+='<li style="list-style-type:none;">1111 1111 1111 1111 1110 1000 1100 0100</li>';
1120
1121 value+='<li>- - - - - - - - - - - - - - - - </li>';
1122 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">Ex. left shift followed by signed right shift resulting in negative number changing to positive number</li>';
1123 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">i32.shl</li>';
1124 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">i32.shr_s</li>';
1125 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">input==-5945</li>';
1126 value+='<li style="list-style-type:none;">1111 1111 1111 1111 1110 1000 1100 0111</li>';
1127 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">after applying i32.shl=19</li>';
1128 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">after applying i32.shr_s=2</li>';
1129 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">result is 294518784 i32.clz=3 i32.ctz=17 i32.popcnt=6</li>';
1130 value+='<li style="list-style-type:none;">0001 0001 1000 1110 0000 0000 0000 0000</li>';
1131
1132 value+='<li>- - - - - - - - - - - - - - - -</li>';
1133
1134
1135 value+='</ul>';
1136
1137 break;
1138 case 38:
1139 value='';
1140 value+='<svg id="svg_clipboard_mod_title1" height="50" width="450" xmlns:xlink="http://www.w3.org/1999/xlink" class="clipboard_mod_title">';
1141 value+='<rect width="500" height="40" x="0" y="0" stroke="#000000" stroke-width="1" fill="#32323C"></rect>';
1142 value+='<text x="18" y="25" fill="#999999" stroke-width="0" style="font-size:20px;text-shadow:1px 1px 1px #101010;">Code module</text>';
1143 value+='</svg>';
1144
1145 value+='<div class="clickable" onclick="get_text_on_clipboard_client_side(\'clipboard_container1\')">[ copy module code to clipboard ]</div>';
1146 value+='<textarea cols="60" rows="5" id="clipboard_container1" class="clipboard_container">';
1147 value+="waX+=' '+'76'; asi[a()]='i32.shr_u'; asi[a()]+=' '; // [opcode]"+"\n";
1148 value+='</textarea>';
1149
1150 value+='<div class="clipboard_section_note">Note</div>';
1151 value+='<ul class="clipboard_section_note_ul">';
1152 value+='<li>2 on stack removed , result - farthest shifted right by nearest</li>';
1153 value+='<li>zero-replicating (logical) shift right</li>';
1154
1155 value+='<li style="list-style-type:none;"> </li>';
1156
1157 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;list-style-type:none;">i32.shr_u - when positive number, left side is padding with zeros (until 32 bit number maintained) when shift right is performed</li>';
1158
1159 value+='<li style="list-style-type:none;"> </li>';
1160
1161 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;list-style-type:none;">i32.shr_u - when negative number, left side is padding with zeros (until 32 bit number maintained) when shift right is performed</li>';
1162
1163 value+='<li style="list-style-type:none;"> </li>';
1164
1165 value+='<li>- - - - - - - - - - - - - - - -</li>';
1166 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">Ex. plain unsigned shift right</li>';
1167 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">i32.shr_u</li>';
1168 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">input==17</li>';
1169 value+='<li style="list-style-type:none;">0000 0000 0000 0000 0000 0000 0001 0001</li>';
1170 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">after applying i32.shr_u=2</li>';
1171 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">result is 4 then i32.clz=29 i32.ctz=2 i32.popcnt=1</li>';
1172 value+='<li style="list-style-type:none;">0000 0000 0000 0000 0000 0000 0000 0100</li>';
1173
1174 value+='<li>- - - - - - - - - - - - - - - - </li>';
1175 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">Ex. unsigned right shift followed by left shift</li>';
1176 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">i32.shr_u</li>';
1177 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">i32.shl</li>';
1178 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">input==17</li>';
1179 value+='<li style="list-style-type:none;">Q - Can the 1 bit removed during i32.shr_u be recovered by shifting left in the same session?</li>';
1180 value+='<li style="list-style-type:none;">A - No, numbers returned on right side are zeros</li>';
1181 value+='<li style="list-style-type:none;">0000 0000 0000 0000 0000 0000 0001 0001</li>';
1182 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">after applying i32.shr_u=2</li>';
1183 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">after applying i32.shl=2</li>';
1184 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">result is 16 i32.clz=27 i32.ctz=4 i32.popcnt=1</li>';
1185 value+='<li style="list-style-type:none;">0000 0000 0000 0000 0000 0000 0001 0000</li>';
1186
1187 value+='<li>- - - - - - - - - - - - - - - - </li>';
1188 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">Ex. unsigned right shift resulting in a zero value</li>';
1189 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">i32.shr_u</li>';
1190 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">input==17</li>';
1191 value+='<li style="list-style-type:none;">0000 0000 0000 0000 0000 0000 0001 0001</li>';
1192 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">after applying i32.shr_u=5</li>';
1193 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">result is 0 then i32.clz=32 i32.ctz=32 i32.popcnt=0</li>';
1194 value+='<li style="list-style-type:none;">0000 0000 0000 0000 0000 0000 0000 0000</li>';
1195
1196 value+='<li>- - - - - - - - - - - - - - - - </li>';
1197 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">Ex. unsigned right shift followed by signed right shift</li>';
1198 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">i32.shr_u</li>';
1199 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">i32.shr_s</li>';
1200 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">input==17</li>';
1201 value+='<li style="list-style-type:none;">0000 0000 0000 0000 0000 0000 0001 0001</li>';
1202 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">after applying i32.shr_u=2</li>';
1203 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">after applying i32.shr_s=2</li>';
1204 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">result is 1 then i32.clz=31 i32.ctz=0 i32.popcnt=1</li>';
1205 value+='<li style="list-style-type:none;">0000 0000 0000 0000 0000 0000 0000 0001</li>';
1206
1207 value+='<li>- - - - - - - - - - - - - - - - </li>';
1208 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">Ex. unsigned right shift with a shift value exceeding natural length of bits (32)</li>';
1209 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">i32.shr_u</li>';
1210 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">input==17</li>';
1211 value+='<li style="list-style-type:none;">0000 0000 0000 0000 0000 0000 0001 0001</li>';
1212 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">after applying i32.shr_u=33</li>';
1213 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">result is 8 then i32.clz=28 i32.ctz=3 i32.popcnt=1</li>';
1214 value+='<li style="list-style-type:none;">0000 0000 0000 0000 0000 0000 0000 1000</li>';
1215
1216 value+='<li>- - - - - - - - - - - - - - - - </li>';
1217 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">Ex. plain unsigned shift right</li>';
1218 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">i32.shr_u</li>';
1219 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">input==-5945</li>';
1220 value+='<li style="list-style-type:none;">1111 1111 1111 1111 1110 1000 1100 0111</li>';
1221 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">after applying i32.shr_u=4</li>';
1222 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">result is 268435084 then i32.clz=4 i32.ctz=2 i32.popcnt=22</li>';
1223 value+='<li style="list-style-type:none;">0000 1111 1111 1111 1111 1110 1000 1100</li>';
1224
1225 value+='<li>- - - - - - - - - - - - - - - - </li>';
1226 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">Ex. unsigned right shift followed by left shift</li>';
1227 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">i32.shr_u</li>';
1228 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">i32.shl</li>';
1229 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">input==-5945</li>';
1230 value+='<li style="list-style-type:none;">Q - Can the 1 bit removed during i32.shr_u be recovered by shifting left in the same session?</li>';
1231 value+='<li style="list-style-type:none;">A - No, numbers returned on right side are zeros</li>';
1232 value+='<li style="list-style-type:none;">Note: This negative number can be turned into a positive number</li>';
1233 value+='<li style="list-style-type:none;">1111 1111 1111 1111 1110 1000 1100 0111</li>';
1234 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">after applying i32.shr_u=4</li>';
1235 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">after applying i32.shl=2</li>';
1236 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">result is 1073740336 i32.clz=2 i32.ctz=4 i32.popcnt=22</li>';
1237 value+='<li style="list-style-type:none;">0011 1111 1111 1111 1111 1010 0011 0000</li>';
1238
1239 value+='<li>- - - - - - - - - - - - - - - - </li>';
1240 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">Ex. unsigned right shift resulting in a value of 1</li>';
1241 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">i32.shr_u</li>';
1242 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">input==-5945</li>';
1243 value+='<li style="list-style-type:none;">1111 1111 1111 1111 1110 1000 1100 0111</li>';
1244 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">after applying i32.shr_u=31</li>';
1245 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">result is 1 then i32.clz=31 i32.ctz=0 i32.popcnt=1</li>';
1246 value+='<li style="list-style-type:none;">0000 0000 0000 0000 0000 0000 0000 0001</li>';
1247
1248 value+='<li>- - - - - - - - - - - - - - - - </li>';
1249 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">Ex. signed right shift followed by unsigned right shift</li>';
1250 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">i32.shr_s</li>';
1251 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">i32.shr_u</li>';
1252 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">input==-5945</li>';
1253 value+='<li style="list-style-type:none;">1111 1111 1111 1111 1110 1000 1100 0111</li>';
1254 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">after applying i32.shr_s=2</li>';
1255 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">after applying i32.shr_u=2</li>';
1256 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">result is 1073741452 then i32.clz=2 i32.ctz=2 i32.popcnt=24</li>';
1257 value+='<li style="list-style-type:none;">0011 1111 1111 1111 1111 1110 1000 1100</li>';
1258
1259 value+='<li>- - - - - - - - - - - - - - - - </li>';
1260 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">Ex. unsigned right shift with a shift value exceeding natural length of bits (32)</li>';
1261 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">i32.shr_u</li>';
1262 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">input==-5945</li>';
1263 value+='<li style="list-style-type:none;">1111 1111 1111 1111 1110 1000 1100 0111</li>';
1264 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">after applying i32.shr_u=33</li>';
1265 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">result is 2147480675 then i32.clz=1 i32.ctz=0 i32.popcnt=24</li>';
1266 value+='<li style="list-style-type:none;">0111 1111 1111 1111 1111 0100 0110 0011</li>';
1267
1268 value+='<li>- - - - - - - - - - - - - - - -</li>';
1269
1270 value+='</ul>';
1271 break;
1272 case 39:
1273 value='';
1274 value+='<svg id="svg_clipboard_mod_title1" height="50" width="450" xmlns:xlink="http://www.w3.org/1999/xlink" class="clipboard_mod_title">';
1275 value+='<rect width="500" height="40" x="0" y="0" stroke="#000000" stroke-width="1" fill="#32323C"></rect>';
1276 value+='<text x="18" y="25" fill="#999999" stroke-width="0" style="font-size:20px;text-shadow:1px 1px 1px #101010;">Code module</text>';
1277 value+='</svg>';
1278
1279 value+='<div class="clickable" onclick="get_text_on_clipboard_client_side(\'clipboard_container1\')">[ copy module code to clipboard ]</div>';
1280 value+='<textarea cols="60" rows="5" id="clipboard_container1" class="clipboard_container">';
1281 value+="waX+=' '+'77'; asi[a()]='i32.rotl'; asi[a()]+=' '; // [opcode]"+"\n";
1282 value+='</textarea>';
1283
1284 value+='<div class="clipboard_section_note">Note</div>';
1285 value+='<ul class="clipboard_section_note_ul">';
1286 value+='<li>2 on stack removed (farthest rotated left by nearest) , result - sign-agnostic rotate left</li>';
1287 value+='<li>sign-agnostic rotate left</li>';
1288 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">When input==1</li>';
1289 value+='<li>0000 0000 0000 0000 0000 0000 0000 0001</li>';
1290 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=31 i32.ctz=0 when i32.rotl=32</li>';
1291 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=31 when i32.rotl=31</li>';
1292 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=1 i32.ctz=30 when i32.rotl=30</li>';
1293 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=2 i32.ctz=29 when i32.rotl=29</li>';
1294 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=3 i32.ctz=28 when i32.rotl=28</li>';
1295 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=4 i32.ctz=27 when i32.rotl=27</li>';
1296 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=5 i32.ctz=26 when i32.rotl=26</li>';
1297 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=6 i32.ctz=25 when i32.rotl=25</li>';
1298 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=7 i32.ctz=24 when i32.rotl=24</li>';
1299 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=8 i32.ctz=23 when i32.rotl=23</li>';
1300 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=9 i32.ctz=22 when i32.rotl=22</li>';
1301 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=10 i32.ctz=21 when i32.rotl=21</li>';
1302 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=11 i32.ctz=20 when i32.rotl=20</li>';
1303 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=12 i32.ctz=19 when i32.rotl=19</li>';
1304 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=13 i32.ctz=18 when i32.rotl=18</li>';
1305 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=14 i32.ctz=17 when i32.rotl=17</li>';
1306 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=15 i32.ctz=16 when i32.rotl=16</li>';
1307 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=16 i32.ctz=15 when i32.rotl=15</li>';
1308 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=17 i32.ctz=14 when i32.rotl=14</li>';
1309 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=18 i32.ctz=13 when i32.rotl=13</li>';
1310 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=19 i32.ctz=12 when i32.rotl=12</li>';
1311 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=20 i32.ctz=11 when i32.rotl=11</li>';
1312 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=21 i32.ctz=10 when i32.rotl=10</li>';
1313 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=22 i32.ctz=9 when i32.rotl=9</li>';
1314 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=23 i32.ctz=8 when i32.rotl=8</li>';
1315 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=24 i32.ctz=7 when i32.rotl=7</li>';
1316 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=25 i32.ctz=6 when i32.rotl=6</li>';
1317 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=26 i32.ctz=5 when i32.rotl=5</li>';
1318 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=27 i32.ctz=4 when i32.rotl=4</li>';
1319 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=28 i32.ctz=3 when i32.rotl=3</li>';
1320 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=29 i32.ctz=2 when i32.rotl=2</li>';
1321 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=30 i32.ctz=1 when i32.rotl=1</li>';
1322 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=31 i32.ctz=0 when i32.rotl=0</li>';
1323 value+='<li>0000 0000 0000 0000 0000 0000 0000 0001</li>';
1324 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">When input==1</li>';
1325 value+='<li>0000 0000 0000 0000 0000 0000 0000 0001</li>';
1326 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=31 i32.ctz=0 when i32.rotl=64</li>';
1327 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=31 when i32.rotl=63</li>';
1328 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=1 i32.ctz=30 when i32.rotl=62</li>';
1329 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=2 i32.ctz=29 when i32.rotl=61</li>';
1330 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=3 i32.ctz=28 when i32.rotl=60</li>';
1331 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=4 i32.ctz=27 when i32.rotl=59</li>';
1332 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=5 i32.ctz=26 when i32.rotl=58</li>';
1333 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=6 i32.ctz=25 when i32.rotl=57</li>';
1334 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=7 i32.ctz=24 when i32.rotl=56</li>';
1335 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=8 i32.ctz=23 when i32.rotl=55</li>';
1336 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=9 i32.ctz=22 when i32.rotl=54</li>';
1337 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=10 i32.ctz=21 when i32.rotl=53</li>';
1338 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=11 i32.ctz=20 when i32.rotl=52</li>';
1339 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=12 i32.ctz=19 when i32.rotl=51</li>';
1340 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=13 i32.ctz=18 when i32.rotl=50</li>';
1341 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=14 i32.ctz=17 when i32.rotl=49</li>';
1342 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=15 i32.ctz=16 when i32.rotl=48</li>';
1343 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=16 i32.ctz=15 when i32.rotl=47</li>';
1344 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=17 i32.ctz=14 when i32.rotl=46</li>';
1345 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=18 i32.ctz=13 when i32.rotl=45</li>';
1346 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=19 i32.ctz=12 when i32.rotl=44</li>';
1347 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=20 i32.ctz=11 when i32.rotl=43</li>';
1348 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=21 i32.ctz=10 when i32.rotl=42</li>';
1349 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=22 i32.ctz=9 when i32.rotl=41</li>';
1350 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=23 i32.ctz=8 when i32.rotl=40</li>';
1351 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=24 i32.ctz=7 when i32.rotl=39</li>';
1352 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=25 i32.ctz=6 when i32.rotl=38</li>';
1353 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=26 i32.ctz=5 when i32.rotl=37</li>';
1354 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=27 i32.ctz=4 when i32.rotl=36</li>';
1355 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=28 i32.ctz=3 when i32.rotl=35</li>';
1356 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=29 i32.ctz=2 when i32.rotl=34</li>';
1357 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=30 i32.ctz=1 when i32.rotl=33</li>';
1358 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=31 i32.ctz=0 when i32.rotl=32</li>';
1359 value+='<li>0000 0000 0000 0000 0000 0000 0000 0001</li>';
1360 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">When input==-7</li>';
1361 value+='<li>1111 1111 1111 1111 1111 1111 1111 1001</li>';
1362 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=32</li>';
1363 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=2 when i32.rotl=31</li>';
1364 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=1 i32.ctz=1 when i32.rotl=30</li>';
1365 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=2 i32.ctz=0 when i32.rotl=29</li>';
1366 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=28</li>';
1367 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=27</li>';
1368 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=26</li>';
1369 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=25</li>';
1370 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=24</li>';
1371 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=23</li>';
1372 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=22</li>';
1373 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=21</li>';
1374 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=20</li>';
1375 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=19</li>';
1376 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=18</li>';
1377 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=17</li>';
1378 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=16</li>';
1379 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=15</li>';
1380 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=14</li>';
1381 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=13</li>';
1382 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=12</li>';
1383 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=11</li>';
1384 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=10</li>';
1385 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=9</li>';
1386 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=8</li>';
1387 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=7</li>';
1388 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=6</li>';
1389 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=5</li>';
1390 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=4</li>';
1391 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=3</li>';
1392 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=2</li>';
1393 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=1</li>';
1394 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=0</li>';
1395 value+='<li>1111 1111 1111 1111 1111 1111 1111 1001</li>';
1396 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">When input==-7</li>';
1397 value+='<li>1111 1111 1111 1111 1111 1111 1111 1001</li>';
1398 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=64</li>';
1399 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=2 when i32.rotl=63</li>';
1400 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=1 i32.ctz=1 when i32.rotl=62</li>';
1401 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=2 i32.ctz=0 when i32.rotl=61</li>';
1402 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=60</li>';
1403 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=59</li>';
1404 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=58</li>';
1405 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=57</li>';
1406 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=56</li>';
1407 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=55</li>';
1408 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=54</li>';
1409 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=53</li>';
1410 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=52</li>';
1411 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=51</li>';
1412 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=50</li>';
1413 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=49</li>';
1414 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=48</li>';
1415 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=47</li>';
1416 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=46</li>';
1417 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=45</li>';
1418 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=44</li>';
1419 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=43</li>';
1420 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=42</li>';
1421 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=41</li>';
1422 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=40</li>';
1423 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=39</li>';
1424 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=38</li>';
1425 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=37</li>';
1426 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=36</li>';
1427 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=35</li>';
1428 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=34</li>';
1429 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=33</li>';
1430 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=32</li>';
1431 value+='<li>1111 1111 1111 1111 1111 1111 1111 1001</li>';
1432 value+='</ul>';
1433 break;
1434 case 40:
1435 value='';
1436 value+='<svg id="svg_clipboard_mod_title1" height="50" width="450" xmlns:xlink="http://www.w3.org/1999/xlink" class="clipboard_mod_title">';
1437 value+='<rect width="500" height="40" x="0" y="0" stroke="#000000" stroke-width="1" fill="#32323C"></rect>';
1438 value+='<text x="18" y="25" fill="#999999" stroke-width="0" style="font-size:20px;text-shadow:1px 1px 1px #101010;">Code module</text>';
1439 value+='</svg>';
1440
1441 value+='<div class="clickable" onclick="get_text_on_clipboard_client_side(\'clipboard_container1\')">[ copy module code to clipboard ]</div>';
1442 value+='<textarea cols="60" rows="5" id="clipboard_container1" class="clipboard_container">';
1443 value+="waX+=' '+'78'; asi[a()]='i32.rotr'; asi[a()]+=' '; // [opcode]"+"\n";
1444 value+='</textarea>';
1445
1446 value+='<div class="clipboard_section_note">Note</div>';
1447 value+='<ul class="clipboard_section_note_ul">';
1448 value+='<li>2 on stack removed (farthest rotated right by nearest), result - sign-agnostic rotate right</li>';
1449 value+='<li>sign-agnostic rotate right</li>';
1450 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">When input==1</li>';
1451 value+='<li>0000 0000 0000 0000 0000 0000 0000 0001</li>';
1452 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=31 i32.ctz=0 when i32.rotr=32</li>';
1453 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=30 i32.ctz=1 when i32.rotr=31</li>';
1454 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=29 i32.ctz=2 when i32.rotr=30</li>';
1455 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=28 i32.ctz=3 when i32.rotr=29</li>';
1456 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=27 i32.ctz=4 when i32.rotr=28</li>';
1457 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=26 i32.ctz=5 when i32.rotr=27</li>';
1458 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=25 i32.ctz=6 when i32.rotr=26</li>';
1459 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=24 i32.ctz=7 when i32.rotr=25</li>';
1460 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=23 i32.ctz=8 when i32.rotr=24</li>';
1461 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=22 i32.ctz=9 when i32.rotr=23</li>';
1462 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=21 i32.ctz=10 when i32.rotr=22</li>';
1463 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=20 i32.ctz=11 when i32.rotr=21</li>';
1464 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=19 i32.ctz=12 when i32.rotr=20</li>';
1465 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=18 i32.ctz=13 when i32.rotr=19</li>';
1466 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=17 i32.ctz=14 when i32.rotr=18</li>';
1467 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=16 i32.ctz=15 when i32.rotr=17</li>';
1468 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=15 i32.ctz=16 when i32.rotr=16</li>';
1469 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=14 i32.ctz=17 when i32.rotr=15</li>';
1470 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=13 i32.ctz=18 when i32.rotr=14</li>';
1471 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=12 i32.ctz=19 when i32.rotr=13</li>';
1472 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=11 i32.ctz=20 when i32.rotr=12</li>';
1473 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=10 i32.ctz=21 when i32.rotr=11</li>';
1474 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=9 i32.ctz=22 when i32.rotr=10</li>';
1475 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=8 i32.ctz=23 when i32.rotr=9</li>';
1476 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=7 i32.ctz=24 when i32.rotr=8</li>';
1477 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=6 i32.ctz=25 when i32.rotr=7</li>';
1478 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=5 i32.ctz=26 when i32.rotr=6</li>';
1479 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=4 i32.ctz=27 when i32.rotr=5</li>';
1480 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=3 i32.ctz=28 when i32.rotr=4</li>';
1481 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=2 i32.ctz=29 when i32.rotr=3</li>';
1482 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=1 i32.ctz=30 when i32.rotr=2</li>';
1483 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=31 when i32.rotr=1</li>';
1484 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=31 i32.ctz=0 when i32.rotr=0</li>';
1485 value+='<li>0000 0000 0000 0000 0000 0000 0000 0001</li>';
1486 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">When input==1</li>';
1487 value+='<li>0000 0000 0000 0000 0000 0000 0000 0001</li>';
1488 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=31 i32.ctz=0 when i32.rotl=64</li>';
1489 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=30 i32.ctz=1 when i32.rotl=63</li>';
1490 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=29 i32.ctz=2 when i32.rotl=62</li>';
1491 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=28 i32.ctz=3 when i32.rotl=61</li>';
1492 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=27 i32.ctz=4 when i32.rotl=60</li>';
1493 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=26 i32.ctz=5 when i32.rotl=59</li>';
1494 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=25 i32.ctz=6 when i32.rotl=58</li>';
1495 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=24 i32.ctz=7 when i32.rotl=57</li>';
1496 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=23 i32.ctz=8 when i32.rotl=56</li>';
1497 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=22 i32.ctz=9 when i32.rotl=55</li>';
1498 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=21 i32.ctz=10 when i32.rotl=54</li>';
1499 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=20 i32.ctz=11 when i32.rotl=53</li>';
1500 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=19 i32.ctz=12 when i32.rotl=52</li>';
1501 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=18 i32.ctz=13 when i32.rotl=51</li>';
1502 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=17 i32.ctz=14 when i32.rotl=50</li>';
1503 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=16 i32.ctz=15 when i32.rotl=49</li>';
1504 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=15 i32.ctz=16 when i32.rotl=48</li>';
1505 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=14 i32.ctz=17 when i32.rotl=47</li>';
1506 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=13 i32.ctz=18 when i32.rotl=46</li>';
1507 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=12 i32.ctz=19 when i32.rotl=45</li>';
1508 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=11 i32.ctz=20 when i32.rotl=44</li>';
1509 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=10 i32.ctz=21 when i32.rotl=43</li>';
1510 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=9 i32.ctz=22 when i32.rotl=42</li>';
1511 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=8 i32.ctz=23 when i32.rotl=41</li>';
1512 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=7 i32.ctz=24 when i32.rotl=40</li>';
1513 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=6 i32.ctz=25 when i32.rotl=39</li>';
1514 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=5 i32.ctz=26 when i32.rotl=38</li>';
1515 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=4 i32.ctz=27 when i32.rotl=37</li>';
1516 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=3 i32.ctz=28 when i32.rotl=36</li>';
1517 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=2 i32.ctz=29 when i32.rotl=35</li>';
1518 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=1 i32.ctz=30 when i32.rotl=34</li>';
1519 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=31 when i32.rotl=33</li>';
1520 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=31 i32.ctz=0 when i32.rotl=32</li>';
1521 value+='<li>0000 0000 0000 0000 0000 0000 0000 0001</li>';
1522 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">When input==-7</li>';
1523 value+='<li>1111 1111 1111 1111 1111 1111 1111 1001</li>';
1524 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=32</li>';
1525 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=31</li>';
1526 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=30</li>';
1527 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=29</li>';
1528 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=28</li>';
1529 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=27</li>';
1530 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=26</li>';
1531 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=25</li>';
1532 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=24</li>';
1533 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=23</li>';
1534 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=22</li>';
1535 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=21</li>';
1536 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=20</li>';
1537 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=19</li>';
1538 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=18</li>';
1539 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=17</li>';
1540 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=16</li>';
1541 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=15</li>';
1542 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=14</li>';
1543 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=13</li>';
1544 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=12</li>';
1545 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=11</li>';
1546 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=10</li>';
1547 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=9</li>';
1548 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=8</li>';
1549 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=7</li>';
1550 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=6</li>';
1551 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=5</li>';
1552 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=4</li>';
1553 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=2 i32.ctz=0 when i32.rotr=3</li>';
1554 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=1 i32.ctz=1 when i32.rotr=2</li>';
1555 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=2 when i32.rotr=1</li>';
1556 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=0</li>';
1557 value+='<li>1111 1111 1111 1111 1111 1111 1111 1001</li>';
1558 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">When input==-7</li>';
1559 value+='<li>1111 1111 1111 1111 1111 1111 1111 1001</li>';
1560 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=64</li>';
1561 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=63</li>';
1562 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=62</li>';
1563 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=61</li>';
1564 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=60</li>';
1565 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=59</li>';
1566 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=58</li>';
1567 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=57</li>';
1568 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=56</li>';
1569 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=55</li>';
1570 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=54</li>';
1571 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=53</li>';
1572 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=52</li>';
1573 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=51</li>';
1574 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=50</li>';
1575 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=49</li>';
1576 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=48</li>';
1577 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=47</li>';
1578 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=46</li>';
1579 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=45</li>';
1580 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=44</li>';
1581 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=43</li>';
1582 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=42</li>';
1583 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=41</li>';
1584 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=40</li>';
1585 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=39</li>';
1586 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=38</li>';
1587 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=37</li>';
1588 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=36</li>';
1589 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=2 i32.ctz=0 when i32.rotr=35</li>';
1590 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=1 i32.ctz=1 when i32.rotr=34</li>';
1591 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=2 when i32.rotr=33</li>';
1592 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=32</li>';
1593 value+='<li>1111 1111 1111 1111 1111 1111 1111 1001</li>';
1594 value+='</ul>';
1595 break;
1596 case 41:
1597 value='';
1598 value+='<svg id="svg_clipboard_mod_title1" height="50" width="450" xmlns:xlink="http://www.w3.org/1999/xlink" class="clipboard_mod_title">';
1599 value+='<rect width="500" height="40" x="0" y="0" stroke="#000000" stroke-width="1" fill="#32323C"></rect>';
1600 value+='<text x="18" y="25" fill="#999999" stroke-width="0" style="font-size:20px;text-shadow:1px 1px 1px #101010;">Code module</text>';
1601 value+='</svg>';
1602
1603 value+='<div class="clickable" onclick="get_text_on_clipboard_client_side(\'clipboard_container1\')">[ copy module code to clipboard ]</div>';
1604 value+='<textarea cols="60" rows="5" id="clipboard_container1" class="clipboard_container">';
1605 value+="waX+=' '+'01'; asi[a()]='nop'; asi[a()]+=' '; // [opcode]"+"\n";
1606 value+='</textarea>';
1607
1608 value+='<div class="clipboard_section_note">Note</div>';
1609 value+='<ul class="clipboard_section_note_ul">';
1610 value+='<li>0 needed on stack</li>';
1611 value+='</ul>';
1612 break;
1613 case 42:
1614 value='';
1615 value+='<svg id="svg_clipboard_mod_title1" height="50" width="450" xmlns:xlink="http://www.w3.org/1999/xlink" class="clipboard_mod_title">';
1616 value+='<rect width="500" height="40" x="0" y="0" stroke="#000000" stroke-width="1" fill="#32323C"></rect>';
1617 value+='<text x="18" y="25" fill="#999999" stroke-width="0" style="font-size:20px;text-shadow:1px 1px 1px #101010;">Code Module</text>';
1618 value+='</svg>';
1619
1620 value+='<div class="clickable" onclick="get_text_on_clipboard_client_side(\'clipboard_container2\')">[ copy module code to clipboard ]</div>';
1621 value+='<textarea cols="60" rows="5" id="clipboard_container2" class="clipboard_container">';
1622 value+="// Wasm - Code Module - Load value from Linear Memory into Wasm code execution"+"\n";
1623 value+="waX+=' '+'41'; asi[a()]='i32.const'; asi[a()]+=' '; // [opcode]"+"\n";
1624 value+="waX+=' '+uHEX(0); asi[a()]='arraybuffer position'; asi[a()]+=' '; // [Signed LEB128] varint32"+"\n";
1625 value+="waX+=' '+'2f'; asi[a()]='i32.load16_u'; asi[a()]+=', loading n as 2 bytes'; // [opcode]"+"\n";
1626 value+="waX+=' '+uHEX(1); asi[a()]='flags - alignment'; asi[a()]+=' '; // [LEB128] varuint32 - part of memory_immediate"+"\n";
1627 value+="waX+=' '+uHEX(0); asi[a()]='arraybuffer position offset'; asi[a()]+=' '; // [LEB128] varuint32 - part of memory_immediate"+"\n";
1628 value+='</textarea>';
1629
1630 value+='<div class="clipboard_section_note">Note</div>';
1631 value+='<ul class="clipboard_section_note_ul">';
1632 value+='<li style="list-style-type:none;">Tested through JS (function) to WA (local.get) and WA (i32.const)</li>';
1633 value+='<li style="list-style-type:none;">i32.store 32 bit number from Wasm through i32.const</li>';
1634 value+='<li style="list-style-type:none;">i32.store 32 bit number from JS then through local.get</li>';
1635
1636 value+='<li><span style="color:#ffffee;font-weight:bold;font-size:14px;">i32.load</span> - padded with 1s when negative number, padded with 0s when positive number</li>';
1637 value+='<li style="list-style-type:none;"><ul style="font-size:14px;list-style-type:none;">';
1638 value+='<li>input -20 ';
1639 value+='output -20 ';
1640 value+='i32.clz 0</li>';
1641 value+='<li style="color:#ffffee;font-weight:bold;">linear memory b:3 255 b:2 255 b:1 255 b:0 236</li>';
1642 value+='</ul></li>';
1643 value+='<li style="list-style-type:none;"><ul style="font-size:14px;list-style-type:none;">';
1644 value+='<li>input 20 ';
1645 value+='output 20 ';
1646 value+='i32.clz 27</li>';
1647 value+='<li style="color:#ffffee;font-weight:bold;">linear memory b:3 0 b:2 0 b:1 0 b:0 20</li>';
1648 value+='</ul></li>';
1649
1650 value+='<li><span style="color:#ffffee;font-weight:bold;font-size:14px;">i32.load16_s</span> - padded with 1s when negative number, padded with 0s when positive number</li>';
1651 value+='<li style="list-style-type:none;"><ul style="font-size:14px;list-style-type:none;">';
1652 value+='<li>input -20 ';
1653 value+='output -20 ';
1654 value+='i32.clz 0</li>';
1655 value+='<li style="color:#ffffee;font-weight:bold;">linear memory b:3 255 b:2 255 b:1 255 b:0 236</li>';
1656 value+='</ul></li>';
1657 value+='<li style="list-style-type:none;"><ul style="font-size:14px;list-style-type:none;">';
1658 value+='<li>input 20 ';
1659 value+='output 20 ';
1660 value+='i32.clz 27</li>';
1661 value+='<li style="color:#ffffee;font-weight:bold;">linear memory b:3 0 b:2 0 b:1 0 b:0 20</li>';
1662 value+='</ul></li>';
1663
1664 value+='<li><span style="color:#ffffee;font-weight:bold;font-size:14px;">i32.load16_u</span> - padded with 0s when negative number, padded with 0s when positive number</li>';
1665 value+='<li style="list-style-type:none;"><ul style="font-size:14px;list-style-type:none;">';
1666 value+='<li>input -20 ';
1667 value+='output 65516 ';
1668 value+='i32.clz 16</li>';
1669 value+='<li style="color:#ffffee;font-weight:bold;">linear memory b:3 255 b:2 255 b:1 255 b:0 236</li>';
1670 value+='</ul></li>';
1671 value+='<li style="list-style-type:none;"><ul style="font-size:14px;list-style-type:none;">';
1672 value+='<li>input 20 ';
1673 value+='output 20 ';
1674 value+='i32.clz 27</li>';
1675 value+='<li style="color:#ffffee;font-weight:bold;">linear memory b:3 0 b:2 0 b:1 0 b:0 20</li>';
1676 value+='</ul></li>';
1677 value+='<li style="list-style-type:none;">Within the 16 bits loaded, bits with the value 1 are evaluated as their binary placement values</li>';
1678 value+='<li style="list-style-type:none;">This could convert the leading bit of a negative number (1) to become a positive number (0) if this value is stored anew</li>';
1679
1680 value+='<li><span style="color:#ffffee;font-weight:bold;font-size:14px;">i32.load8_s</span> - padded with 1s when negative number, padded with 0s when positive number</li>';
1681 value+='<li style="list-style-type:none;"><ul style="font-size:14px;list-style-type:none;">';
1682 value+='<li>input -20 ';
1683 value+='output -20 ';
1684 value+='i32.clz 0</li>';
1685 value+='<li style="color:#ffffee;font-weight:bold;">linear memory b:3 255 b:2 255 b:1 255 b:0 236</li>';
1686 value+='</ul></li>';
1687 value+='<li style="list-style-type:none;"><ul style="font-size:14px;list-style-type:none;">';
1688 value+='<li>input 20 ';
1689 value+='output 20 ';
1690 value+='i32.clz 27</li>';
1691 value+='<li style="color:#ffffee;font-weight:bold;">linear memory b:3 0 b:2 0 b:1 0 b:0 20</li>';
1692 value+='</ul></li>';
1693
1694 value+='<li><span style="color:#ffffee;font-weight:bold;font-size:14px;">i32.load8_u</span> - padded with 0s when negative number, padded with 0s when positive number</li>';
1695 value+='<li style="list-style-type:none;"><ul style="font-size:14px;list-style-type:none;">';
1696 value+='<li>input -20 ';
1697 value+='output 236 ';
1698 value+='i32.clz 24</li>';
1699 value+='<li style="color:#ffffee;font-weight:bold;">linear memory b:3 255 b:2 255 b:1 255 b:0 236</li>';
1700 value+='</ul></li>';
1701 value+='<li style="list-style-type:none;"><ul style="font-size:14px;list-style-type:none;">';
1702 value+='<li>input 20 ';
1703 value+='output 20 ';
1704 value+='i32.clz 27</li>';
1705 value+='<li style="color:#ffffee;font-weight:bold;">linear memory b:3 0 b:2 0 b:1 0 b:0 20</li>';
1706 value+='</ul></li>';
1707 value+='<li style="list-style-type:none;">Within the 8 bits loaded, bits with the value 1 are evaluated as their binary placement values</li>';
1708 value+='<li style="list-style-type:none;">This could convert the leading bit of a negative number (1) to become a positive number (0) if this value is stored anew</li>';
1709
1710 value+='</ul>';
1711 break;
1712 case 43:
1713 value='';
1714 value+='<svg id="svg_clipboard_mod_title1" height="50" width="450" xmlns:xlink="http://www.w3.org/1999/xlink" class="clipboard_mod_title">';
1715 value+='<rect width="500" height="40" x="0" y="0" stroke="#000000" stroke-width="1" fill="#32323C"></rect>';
1716 value+='<text x="18" y="25" fill="#999999" stroke-width="0" style="font-size:20px;text-shadow:1px 1px 1px #101010;">Code Module</text>';
1717 value+='</svg>';
1718
1719 value+='<div class="clickable" onclick="get_text_on_clipboard_client_side(\'clipboard_container3\')">[ copy module code to clipboard ]</div>';
1720 value+='<textarea cols="60" rows="5" id="clipboard_container3" class="clipboard_container">';
1721 value+="// Wasm - Code Module - Load value from Linear Memory into Wasm code execution"+"\n";
1722 value+="waX+=' '+'41'; asi[a()]='i32.const'; asi[a()]+=' '; // [opcode]"+"\n";
1723 value+="waX+=' '+uHEX(0); asi[a()]='arraybuffer position'; asi[a()]+=' '; // [Signed LEB128] varint32"+"\n";
1724 value+="waX+=' '+'28'; asi[a()]='i32.load'; asi[a()]+=', loading n as 4 bytes'; // [opcode]"+"\n";
1725 value+="waX+=' '+uHEX(2); asi[a()]='flags - alignment'; asi[a()]+=' '; // [LEB128] varuint32 - part of memory_immediate"+"\n";
1726 value+="waX+=' '+uHEX(0); asi[a()]='arraybuffer position offset'; asi[a()]+=' '; // [LEB128] varuint32 - part of memory_immediate"+"\n";
1727 value+='</textarea>';
1728
1729 value+='<div class="clipboard_section_note">Note</div>';
1730 value+='<ul class="clipboard_section_note_ul">';
1731 value+='<li style="list-style-type:none;">Tested through JS (function) to WA (local.get) and WA (i32.const)</li>';
1732 value+='<li style="list-style-type:none;">i32.store 32 bit number from Wasm through i32.const</li>';
1733 value+='<li style="list-style-type:none;">i32.store 32 bit number from JS then through local.get</li>';
1734
1735 value+='<li><span style="color:#ffffee;font-weight:bold;font-size:14px;">i32.load</span> - padded with 1s when negative number, padded with 0s when positive number</li>';
1736 value+='<li style="list-style-type:none;"><ul style="font-size:14px;list-style-type:none;">';
1737 value+='<li>input -20 ';
1738 value+='output -20 ';
1739 value+='i32.clz 0</li>';
1740 value+='<li style="color:#ffffee;font-weight:bold;">linear memory b:3 255 b:2 255 b:1 255 b:0 236</li>';
1741 value+='</ul></li>';
1742 value+='<li style="list-style-type:none;"><ul style="font-size:14px;list-style-type:none;">';
1743 value+='<li>input 20 ';
1744 value+='output 20 ';
1745 value+='i32.clz 27</li>';
1746 value+='<li style="color:#ffffee;font-weight:bold;">linear memory b:3 0 b:2 0 b:1 0 b:0 20</li>';
1747 value+='</ul></li>';
1748
1749 value+='<li><span style="color:#ffffee;font-weight:bold;font-size:14px;">i32.load16_s</span> - padded with 1s when negative number, padded with 0s when positive number</li>';
1750 value+='<li style="list-style-type:none;"><ul style="font-size:14px;list-style-type:none;">';
1751 value+='<li>input -20 ';
1752 value+='output -20 ';
1753 value+='i32.clz 0</li>';
1754 value+='<li style="color:#ffffee;font-weight:bold;">linear memory b:3 255 b:2 255 b:1 255 b:0 236</li>';
1755 value+='</ul></li>';
1756 value+='<li style="list-style-type:none;"><ul style="font-size:14px;list-style-type:none;">';
1757 value+='<li>input 20 ';
1758 value+='output 20 ';
1759 value+='i32.clz 27</li>';
1760 value+='<li style="color:#ffffee;font-weight:bold;">linear memory b:3 0 b:2 0 b:1 0 b:0 20</li>';
1761 value+='</ul></li>';
1762
1763 value+='<li><span style="color:#ffffee;font-weight:bold;font-size:14px;">i32.load16_u</span> - padded with 0s when negative number, padded with 0s when positive number</li>';
1764 value+='<li style="list-style-type:none;"><ul style="font-size:14px;list-style-type:none;">';
1765 value+='<li>input -20 ';
1766 value+='output 65516 ';
1767 value+='i32.clz 16</li>';
1768 value+='<li style="color:#ffffee;font-weight:bold;">linear memory b:3 255 b:2 255 b:1 255 b:0 236</li>';
1769 value+='</ul></li>';
1770 value+='<li style="list-style-type:none;"><ul style="font-size:14px;list-style-type:none;">';
1771 value+='<li>input 20 ';
1772 value+='output 20 ';
1773 value+='i32.clz 27</li>';
1774 value+='<li style="color:#ffffee;font-weight:bold;">linear memory b:3 0 b:2 0 b:1 0 b:0 20</li>';
1775 value+='</ul></li>';
1776 value+='<li style="list-style-type:none;">Within the 16 bits loaded, bits with the value 1 are evaluated as their binary placement values</li>';
1777 value+='<li style="list-style-type:none;">This could convert the leading bit of a negative number (1) to become a positive number (0) if this value is stored anew</li>';
1778
1779 value+='<li><span style="color:#ffffee;font-weight:bold;font-size:14px;">i32.load8_s</span> - padded with 1s when negative number, padded with 0s when positive number</li>';
1780 value+='<li style="list-style-type:none;"><ul style="font-size:14px;list-style-type:none;">';
1781 value+='<li>input -20 ';
1782 value+='output -20 ';
1783 value+='i32.clz 0</li>';
1784 value+='<li style="color:#ffffee;font-weight:bold;">linear memory b:3 255 b:2 255 b:1 255 b:0 236</li>';
1785 value+='</ul></li>';
1786 value+='<li style="list-style-type:none;"><ul style="font-size:14px;list-style-type:none;">';
1787 value+='<li>input 20 ';
1788 value+='output 20 ';
1789 value+='i32.clz 27</li>';
1790 value+='<li style="color:#ffffee;font-weight:bold;">linear memory b:3 0 b:2 0 b:1 0 b:0 20</li>';
1791 value+='</ul></li>';
1792
1793 value+='<li><span style="color:#ffffee;font-weight:bold;font-size:14px;">i32.load8_u</span> - padded with 0s when negative number, padded with 0s when positive number</li>';
1794 value+='<li style="list-style-type:none;"><ul style="font-size:14px;list-style-type:none;">';
1795 value+='<li>input -20 ';
1796 value+='output 236 ';
1797 value+='i32.clz 24</li>';
1798 value+='<li style="color:#ffffee;font-weight:bold;">linear memory b:3 255 b:2 255 b:1 255 b:0 236</li>';
1799 value+='</ul></li>';
1800 value+='<li style="list-style-type:none;"><ul style="font-size:14px;list-style-type:none;">';
1801 value+='<li>input 20 ';
1802 value+='output 20 ';
1803 value+='i32.clz 27</li>';
1804 value+='<li style="color:#ffffee;font-weight:bold;">linear memory b:3 0 b:2 0 b:1 0 b:0 20</li>';
1805 value+='</ul></li>';
1806 value+='<li style="list-style-type:none;">Within the 8 bits loaded, bits with the value 1 are evaluated as their binary placement values</li>';
1807 value+='<li style="list-style-type:none;">This could convert the leading bit of a negative number (1) to become a positive number (0) if this value is stored anew</li>';
1808
1809 value+='</ul>';
1810 break;
1811 case 44:
1812 value='';
1813 value+='<svg id="svg_clipboard_mod_title1" height="50" width="450" xmlns:xlink="http://www.w3.org/1999/xlink" class="clipboard_mod_title">';
1814 value+='<rect width="500" height="40" x="0" y="0" stroke="#000000" stroke-width="1" fill="#32323C"></rect>';
1815 value+='<text x="18" y="25" fill="#999999" stroke-width="0" style="font-size:20px;text-shadow:1px 1px 1px #101010;">Code Module</text>';
1816 value+='</svg>';
1817
1818 value+='<div class="clickable" onclick="get_text_on_clipboard_client_side(\'clipboard_container2\')">[ copy module code to clipboard ]</div>';
1819 value+='<textarea cols="60" rows="5" id="clipboard_container2" class="clipboard_container">';
1820 value+="// Wasm - Code Module - Store value in Linear Memory during Wasm code execution"+"\n";
1821 value+="waX+=' '+'41'; asi[a()]='i32.const'; asi[a()]+=' '; // [opcode]"+"\n";
1822 value+="waX+=' '+uHEX(0); asi[a()]='arraybuffer position'; asi[a()]+=' '; // [Signed LEB128] varint32"+"\n";
1823 value+="waX+=' '+'41'; asi[a()]='i32.const'; asi[a()]+=' '; // [opcode]"+"\n";
1824 value+="waX+=' '+uHEX(1); asi[a()]='i32.const value'; asi[a()]+=' '; // [Signed LEB128] varint32"+"\n";
1825 value+="waX+=' '+'3b'; asi[a()]='i32.store16'; asi[a()]+=', storing n as 2 bytes'; // [opcode]"+"\n";
1826 value+="waX+=' '+uHEX(1); asi[a()]='flags - alignment'; asi[a()]+=' '; // [LEB128] varuint32 - part of memory_immediate"+"\n";
1827 value+="waX+=' '+uHEX(0); asi[a()]='arraybuffer position offset'; asi[a()]+=' '; // [LEB128] varuint32 - part of memory_immediate"+"\n";
1828 value+='</textarea>';
1829
1830 break;
1831 case 45:
1832 value='';
1833 value+='<svg id="svg_clipboard_mod_title1" height="50" width="450" xmlns:xlink="http://www.w3.org/1999/xlink" class="clipboard_mod_title">';
1834 value+='<rect width="500" height="40" x="0" y="0" stroke="#000000" stroke-width="1" fill="#32323C"></rect>';
1835 value+='<text x="18" y="25" fill="#999999" stroke-width="0" style="font-size:20px;text-shadow:1px 1px 1px #101010;">Code Module</text>';
1836 value+='</svg>';
1837
1838 value+='<div class="clickable" onclick="get_text_on_clipboard_client_side(\'clipboard_container3\')">[ copy module code to clipboard ]</div>';
1839 value+='<textarea cols="60" rows="5" id="clipboard_container3" class="clipboard_container">';
1840 value+="// Wasm - Code Module - Store value in Linear Memory during Wasm code execution"+"\n";
1841 value+="waX+=' '+'41'; asi[a()]='i32.const'; asi[a()]+=' '; // [opcode]"+"\n";
1842 value+="waX+=' '+uHEX(0); asi[a()]='arraybuffer position'; asi[a()]+=' '; // [LEB128] varint32"+"\n";
1843 value+="waX+=' '+'41'; asi[a()]='i32.const'; asi[a()]+=' '; // [opcode]"+"\n";
1844 value+="waX+=' '+uHEX(1); asi[a()]='i32.const value'; asi[a()]+=' '; // [LEB128] varint32"+"\n";
1845 value+="waX+=' '+'36'; asi[a()]='i32.store'; asi[a()]+=', storing n as 4 bytes'; // [opcode]"+"\n";
1846 value+="waX+=' '+uHEX(2); asi[a()]='flags - alignment'; asi[a()]+=' '; // [LEB128] varuint32 - part of memory_immediate"+"\n";
1847 value+="waX+=' '+uHEX(0); asi[a()]='arraybuffer position offset'; asi[a()]+=' '; // [LEB128] varuint32 - part of memory_immediate"+"\n";
1848 value+='</textarea>';
1849 break;
1850 case 46:
1851 value='';
1852 value+='<svg id="svg_clipboard_mod_title1" height="50" width="450" xmlns:xlink="http://www.w3.org/1999/xlink" class="clipboard_mod_title">';
1853 value+='<rect width="500" height="40" x="0" y="0" stroke="#000000" stroke-width="1" fill="#32323C"></rect>';
1854 value+='<text x="18" y="25" fill="#999999" stroke-width="0" style="font-size:20px;text-shadow:1px 1px 1px #101010;">Code Module</text>';
1855 value+='</svg>';
1856
1857 value+='<div class="clickable" onclick="get_text_on_clipboard_client_side(\'clipboard_container3\')">[ copy module code to clipboard ]</div>';
1858 value+='<textarea cols="60" rows="5" id="clipboard_container3" class="clipboard_container">';
1859 value+="waX+=' '+'02'; asi[a()]='BLOCK - D'; asi[a()]+=' '; // [opcode]"+"\n";
1860 value+="waX+=' '+'7f'; asi[a()]='type of i32, return value'; asi[a()]+=' '; // [Signed LEB128] [opcode] varint7 - part of value_type - part of block_type"+"\n";
1861 value+="//waX+=' '+'40'; asi[a()]='type of empty, no return value'; asi[a()]+=' '; // [Signed LEB128] [opcode] varint7 - part of block_type"+"\n";
1862 value+="\n";
1863 value+="waX+=' '+'02'; asi[a()]='BLOCK - C'; asi[a()]+=' '; // [opcode]"+"\n";
1864 value+="waX+=' '+'7f'; asi[a()]='type of i32, return value'; asi[a()]+=' '; // [Signed LEB128] [opcode] varint7 - part of value_type - part of block_type"+"\n";
1865 value+="//waX+=' '+'40'; asi[a()]='type of empty, no return value'; asi[a()]+=' '; // [Signed LEB128] [opcode] varint7 - part of block_type"+"\n";
1866 value+="\n";
1867 value+="waX+=' '+'02'; asi[a()]='BLOCK - B'; asi[a()]+=' '; // [opcode]"+"\n";
1868 value+="waX+=' '+'7f'; asi[a()]='type of i32, return value'; asi[a()]+=' '; // [Signed LEB128] [opcode] varint7 - part of value_type - part of block_type"+"\n";
1869 value+="//waX+=' '+'40'; asi[a()]='type of empty, no return value'; asi[a()]+=' '; // [Signed LEB128] [opcode] varint7 - part of block_type"+"\n";
1870 value+="\n";
1871 value+="waX+=' '+'02'; asi[a()]='BLOCK - A'; asi[a()]+=' '; // [opcode]"+"\n";
1872 value+="waX+=' '+'7f'; asi[a()]='type of i32, return value'; asi[a()]+=' '; // [Signed LEB128] [opcode] varint7 - part of value_type - part of block_type"+"\n";
1873 value+="//waX+=' '+'40'; asi[a()]='type of empty, no return value'; asi[a()]+=' '; // [Signed LEB128] [opcode] varint7 - part of block_type"+"\n";
1874 value+="\n";
1875 value+="\t"+"\t"+"waX+=' '+'41'; asi[a()]='i32.const'; asi[a()]+=' // make return value for BLOCK - A'; // [opcode]"+"\n";
1876 value+="\t"+"\t"+"waX+=' '+uHEX(0); asi[a()]='i32.const value'; asi[a()]+=' // make return value for BLOCK - A'; // [Signed LEB128] varint32"+"\n";
1877 value+="\n";
1878 value+="\t"+"\t"+"waX+=' '+'41'; asi[a()]='i32.const'; asi[a()]+=' '; // [opcode]"+"\n";
1879 value+="\t"+"\t"+"waX+=' '+uHEX(1); asi[a()]='i32.const value'; asi[a()]+=' '; // [Signed LEB128] varint32"+"\n";
1880 value+="\t"+"\t"+"// Determine if ..."+"\n";
1881 value+="\t"+"\t"+"waX+=' '+'0d'; asi[a()]='br_if (BLOCK - A)'; asi[a()]+=' { ... x >= 1'; // [opcode]"+"\n";
1882 value+="\t"+"\t"+"waX+=' '+uHEX(0); asi[a()]='branch depth'; asi[a()]+=' '; // [LEB128] varuint32"+"\n";
1883 value+="\t"+"\t"+"// ... }"+"\n";
1884 value+="\n";
1885 value+="\t"+"\t"+"waX+=' '+'41'; asi[a()]='i32.const'; asi[a()]+=' '; // [opcode]"+"\n";
1886 value+="\t"+"\t"+"waX+=' '+uHEX(1); asi[a()]='i32.const value'; asi[a()]+=' '; // [Signed LEB128] varint32"+"\n";
1887 value+="\t"+"\t"+"// Determine if ..."+"\n";
1888 value+="\t"+"\t"+"waX+=' '+'0d'; asi[a()]='br_if (BLOCK - B)'; asi[a()]+=' { ... x >= 1'; // [opcode]"+"\n";
1889 value+="\t"+"\t"+"waX+=' '+uHEX(1); asi[a()]='branch depth'; asi[a()]+=' '; // [LEB128] varuint32"+"\n";
1890 value+="\t"+"\t"+"// ... }"+"\n";
1891 value+="\n";
1892 value+="\t"+"\t"+"waX+=' '+'41'; asi[a()]='i32.const'; asi[a()]+=' '; // [opcode]"+"\n";
1893 value+="\t"+"\t"+"waX+=' '+uHEX(1); asi[a()]='i32.const value'; asi[a()]+=' '; // [Signed LEB128] varint32"+"\n";
1894 value+="\t"+"\t"+"// Determine if ..."+"\n";
1895 value+="\t"+"\t"+"waX+=' '+'0d'; asi[a()]='br_if (BLOCK - C)'; asi[a()]+=' { ... x >= 1'; // [opcode]"+"\n";
1896 value+="\t"+"\t"+"waX+=' '+uHEX(2); asi[a()]='branch depth'; asi[a()]+=' '; // [LEB128] varint32"+"\n";
1897 value+="\t"+"\t"+"// ... }"+"\n";
1898 value+="\n";
1899 value+="\t"+"\t"+"// Branch back to normal program flow"+"\n";
1900 value+="\t"+"\t"+"waX+=' '+'41'; asi[a()]='i32.const'; asi[a()]+=' '; // [opcode]"+"\n";
1901 value+="\t"+"\t"+"waX+=' '+uHEX(1); asi[a()]='i32.const value'; asi[a()]+=' '; // [Signed LEB128] varint32"+"\n";
1902 value+="\t"+"\t"+"// Determine if ..."+"\n";
1903 value+="\t"+"\t"+"waX+=' '+'0d'; asi[a()]='br_if (BLOCK - D)'; asi[a()]+=' { ... x >= 1'; // [opcode]"+"\n";
1904 value+="\t"+"\t"+"waX+=' '+uHEX(3); asi[a()]='branch depth'; asi[a()]+=' '; // [LEB128] varuint32"+"\n";
1905 value+="\t"+"\t"+"// ... }"+"\n";
1906 value+="\n";
1907 value+="\t"+"\t"+"// Note: return values expected by parent block,loop,if should be placed on stack before this 'br_if'"+"\n";
1908 value+="\t"+"\t"+"// Note: if parent block(s) expect return value (and multiple items are on stack) all stack items are removed once stack item closest to 'br_if' is"+"\n";
1909 value+="\t"+"\t"+"// returned to parent block(s) (much like 'return' control flow operator performs)"+"\n";
1910 value+="\n";
1911 value+="waX+=' '+'0b'; asi[a()]='end (BLOCK - A)'; asi[a()]+=' '; // [opcode]"+"\n";
1912 value+="waX+=' '+'1a'; asi[a()]='drop'; asi[a()]+=' '; // [opcode]"+"\n";
1913 value+="\n";
1914 value+="\t"+"\t"+"// Start - This section processes when branching is for the end of BLOCK - A"+"\n";
1915 value+="\t"+"\t"+"waX+=' '+'41'; asi[a()]='i32.const'; asi[a()]+=' // make return value for BLOCK - B'; // [opcode]"+"\n";
1916 value+="\t"+"\t"+"waX+=' '+uHEX(1); asi[a()]='i32.const value'; asi[a()]+=' // make return value for BLOCK - B'; // [Signed LEB128] varint32"+"\n";
1917 value+="\t"+"\t"+"// When this condition is complete, branch back to normal program flow (else each upcoming block will process too)"+"\n";
1918 value+="\t"+"\t"+"waX+=' '+'0c'; asi[a()]='br (LOOP - D)'; asi[a()]+=' '; // [opcode]"+"\n";
1919 value+="\t"+"\t"+"waX+=' '+uHEX(2); asi[a()]='branch depth'; asi[a()]+=' '; // [LEB128] varuint32"+"\n";
1920 value+="\t"+"\t"+"// Stop - This section processes when branching is for the end of BLOCK - A"+"\n";
1921 value+="\n";
1922 value+="waX+=' '+'0b'; asi[a()]='end (BLOCK - B)'; asi[a()]+=' '; // [opcode]"+"\n";
1923 value+="waX+=' '+'1a'; asi[a()]='drop'; asi[a()]+=' '; // [opcode]"+"\n";
1924 value+="\n";
1925 value+="\t"+"\t"+"// Start - This section processes when branching is for the end of BLOCK - B"+"\n";
1926 value+="\t"+"\t"+"waX+=' '+'41'; asi[a()]='i32.const'; asi[a()]+=' // make return value for BLOCK - C'; // [opcode]"+"\n";
1927 value+="\t"+"\t"+"waX+=' '+uHEX(2); asi[a()]='i32.const value'; asi[a()]+=' // make return value for BLOCK - C'; // [Signed LEB128] varint32"+"\n";
1928 value+="\t"+"\t"+"// When this condition is complete, branch back to normal program flow (else each upcoming block will process too)"+"\n";
1929 value+="\t"+"\t"+"waX+=' '+'0c'; asi[a()]='br (LOOP - D)'; asi[a()]+=' '; // [opcode]"+"\n";
1930 value+="\t"+"\t"+"waX+=' '+uHEX(1); asi[a()]='branch depth'; asi[a()]+=' '; // [LEB128] varuint32"+"\n";
1931 value+="\t"+"\t"+"// Stop - This section processes when branching is for the end of BLOCK - B"+"\n";
1932 value+="\n";
1933 value+="waX+=' '+'0b'; asi[a()]='end (BLOCK - C)'; asi[a()]+=' '; // [opcode]"+"\n";
1934 value+="waX+=' '+'1a'; asi[a()]='drop'; asi[a()]+=' '; // [opcode]"+"\n";
1935 value+="\n";
1936 value+="\t"+"\t"+"// Start - This section processes when branching is for the end of BLOCK - C"+"\n";
1937 value+="\t"+"\t"+"waX+=' '+'41'; asi[a()]='i32.const'; asi[a()]+=' // make return value for BLOCK - D'; // [opcode]"+"\n";
1938 value+="\t"+"\t"+"waX+=' '+uHEX(3); asi[a()]='i32.const value'; asi[a()]+=' // make return value for BLOCK - D'; // [Signed LEB128] varint32"+"\n";
1939 value+="\t"+"\t"+"// When this condition is complete, branch back to normal program flow (else each upcoming block will process too)"+"\n";
1940 value+="\t"+"\t"+"waX+=' '+'0c'; asi[a()]='br (LOOP - D)'; asi[a()]+=' '; // [opcode]"+"\n";
1941 value+="\t"+"\t"+"waX+=' '+uHEX(0); asi[a()]='branch depth'; asi[a()]+=' '; // [LEB128] varuint32"+"\n";
1942 value+="\t"+"\t"+"// Stop - This section processes when branching is for the end of BLOCK - C"+"\n";
1943 value+="\n";
1944 value+="waX+=' '+'0b'; asi[a()]='end (BLOCK - D)'; asi[a()]+=' '; // [opcode]"+"\n";
1945 value+="waX+=' '+'1a'; asi[a()]='drop'; asi[a()]+=' '; // [opcode]"+"\n";
1946 value+='</textarea>';
1947 break;
1948 case 47:
1949 value='';
1950 value+='<svg id="svg_clipboard_mod_title1" height="50" width="450" xmlns:xlink="http://www.w3.org/1999/xlink" class="clipboard_mod_title">';
1951 value+='<rect width="500" height="40" x="0" y="0" stroke="#000000" stroke-width="1" fill="#32323C"></rect>';
1952 value+='<text x="18" y="25" fill="#999999" stroke-width="0" style="font-size:20px;text-shadow:1px 1px 1px #101010;">Code Module</text>';
1953 value+='</svg>';
1954
1955 value+='<div class="clickable" onclick="get_text_on_clipboard_client_side(\'clipboard_container1\')">[ copy module code to clipboard ]</div>';
1956 value+='<textarea cols="60" rows="5" id="clipboard_container1" class="clipboard_container">';
1957 value+="// Wasm - Code Module - Load value from Linear Memory into Wasm code execution"+"\n";
1958 value+="waX+=' '+'41'; asi[a()]='i32.const'; asi[a()]+=' '; // [opcode]"+"\n";
1959 value+="waX+=' '+uHEX(0); asi[a()]='arraybuffer position'; asi[a()]+=' '; // [Signed LEB128] varint32"+"\n";
1960 value+="waX+=' '+'2c'; asi[a()]='i32.load8_s'; asi[a()]+=', loading n as 1 byte'; // [opcode]"+"\n";
1961 value+="waX+=' '+uHEX(0); asi[a()]='flags - alignment'; asi[a()]+=' '; // [LEB128] varuint32 - part of memory_immediate"+"\n";
1962 value+="waX+=' '+uHEX(0); asi[a()]='arraybuffer position offset'; asi[a()]+=' '; // [LEB128] varuint32 - part of memory_immediate"+"\n";
1963 value+='</textarea>';
1964
1965 value+='<div class="clipboard_section_note">Note</div>';
1966 value+='<ul class="clipboard_section_note_ul">';
1967 value+='<li style="list-style-type:none;">Tested through JS (function) to WA (local.get) and WA (i32.const)</li>';
1968 value+='<li style="list-style-type:none;">i32.store 32 bit number from Wasm through i32.const</li>';
1969 value+='<li style="list-style-type:none;">i32.store 32 bit number from JS then through local.get</li>';
1970
1971 value+='<li><span style="color:#ffffee;font-weight:bold;font-size:14px;">i32.load</span> - padded with 1s when negative number, padded with 0s when positive number</li>';
1972 value+='<li style="list-style-type:none;"><ul style="font-size:14px;list-style-type:none;">';
1973 value+='<li>input -20 ';
1974 value+='output -20 ';
1975 value+='i32.clz 0</li>';
1976 value+='<li style="color:#ffffee;font-weight:bold;">linear memory b:3 255 b:2 255 b:1 255 b:0 236</li>';
1977 value+='</ul></li>';
1978 value+='<li style="list-style-type:none;"><ul style="font-size:14px;list-style-type:none;">';
1979 value+='<li>input 20 ';
1980 value+='output 20 ';
1981 value+='i32.clz 27</li>';
1982 value+='<li style="color:#ffffee;font-weight:bold;">linear memory b:3 0 b:2 0 b:1 0 b:0 20</li>';
1983 value+='</ul></li>';
1984
1985 value+='<li><span style="color:#ffffee;font-weight:bold;font-size:14px;">i32.load16_s</span> - padded with 1s when negative number, padded with 0s when positive number</li>';
1986 value+='<li style="list-style-type:none;"><ul style="font-size:14px;list-style-type:none;">';
1987 value+='<li>input -20 ';
1988 value+='output -20 ';
1989 value+='i32.clz 0</li>';
1990 value+='<li style="color:#ffffee;font-weight:bold;">linear memory b:3 255 b:2 255 b:1 255 b:0 236</li>';
1991 value+='</ul></li>';
1992 value+='<li style="list-style-type:none;"><ul style="font-size:14px;list-style-type:none;">';
1993 value+='<li>input 20 ';
1994 value+='output 20 ';
1995 value+='i32.clz 27</li>';
1996 value+='<li style="color:#ffffee;font-weight:bold;">linear memory b:3 0 b:2 0 b:1 0 b:0 20</li>';
1997 value+='</ul></li>';
1998
1999 value+='<li><span style="color:#ffffee;font-weight:bold;font-size:14px;">i32.load16_u</span> - padded with 0s when negative number, padded with 0s when positive number</li>';
2000 value+='<li style="list-style-type:none;"><ul style="font-size:14px;list-style-type:none;">';
2001 value+='<li>input -20 ';
2002 value+='output 65516 ';
2003 value+='i32.clz 16</li>';
2004 value+='<li style="color:#ffffee;font-weight:bold;">linear memory b:3 255 b:2 255 b:1 255 b:0 236</li>';
2005 value+='</ul></li>';
2006 value+='<li style="list-style-type:none;"><ul style="font-size:14px;list-style-type:none;">';
2007 value+='<li>input 20 ';
2008 value+='output 20 ';
2009 value+='i32.clz 27</li>';
2010 value+='<li style="color:#ffffee;font-weight:bold;">linear memory b:3 0 b:2 0 b:1 0 b:0 20</li>';
2011 value+='</ul></li>';
2012 value+='<li style="list-style-type:none;">Within the 16 bits loaded, bits with the value 1 are evaluated as their binary placement values</li>';
2013 value+='<li style="list-style-type:none;">This could convert the leading bit of a negative number (1) to become a positive number (0) if this value is stored anew</li>';
2014
2015 value+='<li><span style="color:#ffffee;font-weight:bold;font-size:14px;">i32.load8_s</span> - padded with 1s when negative number, padded with 0s when positive number</li>';
2016 value+='<li style="list-style-type:none;"><ul style="font-size:14px;list-style-type:none;">';
2017 value+='<li>input -20 ';
2018 value+='output -20 ';
2019 value+='i32.clz 0</li>';
2020 value+='<li style="color:#ffffee;font-weight:bold;">linear memory b:3 255 b:2 255 b:1 255 b:0 236</li>';
2021 value+='</ul></li>';
2022 value+='<li style="list-style-type:none;"><ul style="font-size:14px;list-style-type:none;">';
2023 value+='<li>input 20 ';
2024 value+='output 20 ';
2025 value+='i32.clz 27</li>';
2026 value+='<li style="color:#ffffee;font-weight:bold;">linear memory b:3 0 b:2 0 b:1 0 b:0 20</li>';
2027 value+='</ul></li>';
2028
2029 value+='<li><span style="color:#ffffee;font-weight:bold;font-size:14px;">i32.load8_u</span> - padded with 0s when negative number, padded with 0s when positive number</li>';
2030 value+='<li style="list-style-type:none;"><ul style="font-size:14px;list-style-type:none;">';
2031 value+='<li>input -20 ';
2032 value+='output 236 ';
2033 value+='i32.clz 24</li>';
2034 value+='<li style="color:#ffffee;font-weight:bold;">linear memory b:3 255 b:2 255 b:1 255 b:0 236</li>';
2035 value+='</ul></li>';
2036 value+='<li style="list-style-type:none;"><ul style="font-size:14px;list-style-type:none;">';
2037 value+='<li>input 20 ';
2038 value+='output 20 ';
2039 value+='i32.clz 27</li>';
2040 value+='<li style="color:#ffffee;font-weight:bold;">linear memory b:3 0 b:2 0 b:1 0 b:0 20</li>';
2041 value+='</ul></li>';
2042 value+='<li style="list-style-type:none;">Within the 8 bits loaded, bits with the value 1 are evaluated as their binary placement values</li>';
2043 value+='<li style="list-style-type:none;">This could convert the leading bit of a negative number (1) to become a positive number (0) if this value is stored anew</li>';
2044
2045 value+='</ul>';
2046 break;
2047 case 48:
2048 value='';
2049 value+='<svg id="svg_clipboard_mod_title1" height="50" width="450" xmlns:xlink="http://www.w3.org/1999/xlink" class="clipboard_mod_title">';
2050 value+='<rect width="500" height="40" x="0" y="0" stroke="#000000" stroke-width="1" fill="#32323C"></rect>';
2051 value+='<text x="18" y="25" fill="#999999" stroke-width="0" style="font-size:20px;text-shadow:1px 1px 1px #101010;">Code Module</text>';
2052 value+='</svg>';
2053
2054 value+='<div class="clickable" onclick="get_text_on_clipboard_client_side(\'clipboard_container2\')">[ copy module code to clipboard ]</div>';
2055 value+='<textarea cols="60" rows="5" id="clipboard_container2" class="clipboard_container">';
2056 value+="// Wasm - Code Module - Load value from Linear Memory into Wasm code execution"+"\n";
2057 value+="waX+=' '+'41'; asi[a()]='i32.const'; asi[a()]+=' '; // [opcode]"+"\n";
2058 value+="waX+=' '+uHEX(0); asi[a()]='arraybuffer position'; asi[a()]+=' '; // [Signed LEB128] varint32"+"\n";
2059 value+="waX+=' '+'2e'; asi[a()]='i32.load16_s'; asi[a()]+=', loading n as 2 bytes'; // [opcode]"+"\n";
2060 value+="waX+=' '+uHEX(1); asi[a()]='flags - alignment'; asi[a()]+=' '; // [LEB128] varuint32 - part of memory_immediate"+"\n";
2061 value+="waX+=' '+uHEX(0); asi[a()]='arraybuffer position offset'; asi[a()]+=' '; // [LEB128] varuint32 - part of memory_immediate"+"\n";
2062 value+='</textarea>';
2063
2064 value+='<div class="clipboard_section_note">Note</div>';
2065 value+='<ul class="clipboard_section_note_ul">';
2066 value+='<li style="list-style-type:none;">Tested through JS (function) to WA (local.get) and WA (i32.const)</li>';
2067 value+='<li style="list-style-type:none;">i32.store 32 bit number from Wasm through i32.const</li>';
2068 value+='<li style="list-style-type:none;">i32.store 32 bit number from JS then through local.get</li>';
2069
2070 value+='<li><span style="color:#ffffee;font-weight:bold;font-size:14px;">i32.load</span> - padded with 1s when negative number, padded with 0s when positive number</li>';
2071 value+='<li style="list-style-type:none;"><ul style="font-size:14px;list-style-type:none;">';
2072 value+='<li>input -20 ';
2073 value+='output -20 ';
2074 value+='i32.clz 0</li>';
2075 value+='<li style="color:#ffffee;font-weight:bold;">linear memory b:3 255 b:2 255 b:1 255 b:0 236</li>';
2076 value+='</ul></li>';
2077 value+='<li style="list-style-type:none;"><ul style="font-size:14px;list-style-type:none;">';
2078 value+='<li>input 20 ';
2079 value+='output 20 ';
2080 value+='i32.clz 27</li>';
2081 value+='<li style="color:#ffffee;font-weight:bold;">linear memory b:3 0 b:2 0 b:1 0 b:0 20</li>';
2082 value+='</ul></li>';
2083
2084 value+='<li><span style="color:#ffffee;font-weight:bold;font-size:14px;">i32.load16_s</span> - padded with 1s when negative number, padded with 0s when positive number</li>';
2085 value+='<li style="list-style-type:none;"><ul style="font-size:14px;list-style-type:none;">';
2086 value+='<li>input -20 ';
2087 value+='output -20 ';
2088 value+='i32.clz 0</li>';
2089 value+='<li style="color:#ffffee;font-weight:bold;">linear memory b:3 255 b:2 255 b:1 255 b:0 236</li>';
2090 value+='</ul></li>';
2091 value+='<li style="list-style-type:none;"><ul style="font-size:14px;list-style-type:none;">';
2092 value+='<li>input 20 ';
2093 value+='output 20 ';
2094 value+='i32.clz 27</li>';
2095 value+='<li style="color:#ffffee;font-weight:bold;">linear memory b:3 0 b:2 0 b:1 0 b:0 20</li>';
2096 value+='</ul></li>';
2097
2098 value+='<li><span style="color:#ffffee;font-weight:bold;font-size:14px;">i32.load16_u</span> - padded with 0s when negative number, padded with 0s when positive number</li>';
2099 value+='<li style="list-style-type:none;"><ul style="font-size:14px;list-style-type:none;">';
2100 value+='<li>input -20 ';
2101 value+='output 65516 ';
2102 value+='i32.clz 16</li>';
2103 value+='<li style="color:#ffffee;font-weight:bold;">linear memory b:3 255 b:2 255 b:1 255 b:0 236</li>';
2104 value+='</ul></li>';
2105 value+='<li style="list-style-type:none;"><ul style="font-size:14px;list-style-type:none;">';
2106 value+='<li>input 20 ';
2107 value+='output 20 ';
2108 value+='i32.clz 27</li>';
2109 value+='<li style="color:#ffffee;font-weight:bold;">linear memory b:3 0 b:2 0 b:1 0 b:0 20</li>';
2110 value+='</ul></li>';
2111 value+='<li style="list-style-type:none;">Within the 16 bits loaded, bits with the value 1 are evaluated as their binary placement values</li>';
2112 value+='<li style="list-style-type:none;">This could convert the leading bit of a negative number (1) to become a positive number (0) if this value is stored anew</li>';
2113
2114 value+='<li><span style="color:#ffffee;font-weight:bold;font-size:14px;">i32.load8_s</span> - padded with 1s when negative number, padded with 0s when positive number</li>';
2115 value+='<li style="list-style-type:none;"><ul style="font-size:14px;list-style-type:none;">';
2116 value+='<li>input -20 ';
2117 value+='output -20 ';
2118 value+='i32.clz 0</li>';
2119 value+='<li style="color:#ffffee;font-weight:bold;">linear memory b:3 255 b:2 255 b:1 255 b:0 236</li>';
2120 value+='</ul></li>';
2121 value+='<li style="list-style-type:none;"><ul style="font-size:14px;list-style-type:none;">';
2122 value+='<li>input 20 ';
2123 value+='output 20 ';
2124 value+='i32.clz 27</li>';
2125 value+='<li style="color:#ffffee;font-weight:bold;">linear memory b:3 0 b:2 0 b:1 0 b:0 20</li>';
2126 value+='</ul></li>';
2127
2128 value+='<li><span style="color:#ffffee;font-weight:bold;font-size:14px;">i32.load8_u</span> - padded with 0s when negative number, padded with 0s when positive number</li>';
2129 value+='<li style="list-style-type:none;"><ul style="font-size:14px;list-style-type:none;">';
2130 value+='<li>input -20 ';
2131 value+='output 236 ';
2132 value+='i32.clz 24</li>';
2133 value+='<li style="color:#ffffee;font-weight:bold;">linear memory b:3 255 b:2 255 b:1 255 b:0 236</li>';
2134 value+='</ul></li>';
2135 value+='<li style="list-style-type:none;"><ul style="font-size:14px;list-style-type:none;">';
2136 value+='<li>input 20 ';
2137 value+='output 20 ';
2138 value+='i32.clz 27</li>';
2139 value+='<li style="color:#ffffee;font-weight:bold;">linear memory b:3 0 b:2 0 b:1 0 b:0 20</li>';
2140 value+='</ul></li>';
2141 value+='<li style="list-style-type:none;">Within the 8 bits loaded, bits with the value 1 are evaluated as their binary placement values</li>';
2142 value+='<li style="list-style-type:none;">This could convert the leading bit of a negative number (1) to become a positive number (0) if this value is stored anew</li>';
2143
2144 value+='</ul>';
2145 break;
2146 case 49:
2147 value='';
2148 value+='<svg id="svg_clipboard_mod_title1" height="50" width="450" xmlns:xlink="http://www.w3.org/1999/xlink" class="clipboard_mod_title">';
2149 value+='<rect width="500" height="40" x="0" y="0" stroke="#000000" stroke-width="1" fill="#32323C"></rect>';
2150 value+='<text x="18" y="25" fill="#999999" stroke-width="0" style="font-size:20px;text-shadow:1px 1px 1px #101010;">Code module</text>';
2151 value+='</svg>';
2152
2153 value+='<div class="clickable" onclick="get_text_on_clipboard_client_side(\'clipboard_container1\')">[ copy module code to clipboard ]</div>';
2154 value+='<textarea cols="60" rows="5" id="clipboard_container1" class="clipboard_container">';
2155 value+="waX+=' '+'75'; asi[a()]='i32.shr_s'; asi[a()]+=' '; // [opcode]"+"\n";
2156 value+='</textarea>';
2157
2158 value+='<div class="clipboard_section_note">Note</div>';
2159 value+='<ul class="clipboard_section_note_ul">';
2160 value+='<li>2 on stack removed , result - farthest shifted right by nearest</li>';
2161 value+='<li>sign-replicating (arithmetic) shift right</li>';
2162
2163
2164 value+='<li style="list-style-type:none;"> </li>';
2165
2166 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;list-style-type:none;">i32.shr_s - when positive number, left side is padding with zeros (until 32 bit number maintained) when shift right is performed</li>';
2167
2168 value+='<li style="list-style-type:none;"> </li>';
2169
2170 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;list-style-type:none;">i32.shr_s - when negative number, left side is padding with ones (until 32 bit number maintained) when shift right is performed</li>';
2171
2172 value+='<li style="list-style-type:none;"> </li>';
2173
2174 value+='<li>- - - - - - - - - - - - - - - -</li>';
2175 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">Ex. unsigned right shift followed by signed right shift</li>';
2176 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">i32.shr_u</li>';
2177 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">i32.shr_s</li>';
2178 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">input==17</li>';
2179 value+='<li style="list-style-type:none;">0000 0000 0000 0000 0000 0000 0001 0001</li>';
2180 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">after applying i32.shr_u=2</li>';
2181 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">after applying i32.shr_s=2</li>';
2182 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">result is 1 then i32.clz=31 i32.ctz=0 i32.popcnt=1</li>';
2183 value+='<li style="list-style-type:none;">0000 0000 0000 0000 0000 0000 0000 0001</li>';
2184
2185 value+='<li>- - - - - - - - - - - - - - - - </li>';
2186 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">Ex. plain signed shift right</li>';
2187 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">i32.shr_s</li>';
2188 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">input==17</li>';
2189 value+='<li style="list-style-type:none;">0000 0000 0000 0000 0000 0000 0001 0001</li>';
2190 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">after applying i32.shr_s=2</li>';
2191 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">result is 4 then i32.clz=29 i32.ctz=2 i32.popcnt=1</li>';
2192 value+='<li style="list-style-type:none;">0000 0000 0000 0000 0000 0000 0000 0100</li>';
2193
2194 value+='<li>- - - - - - - - - - - - - - - - </li>';
2195 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">Ex. signed right shift followed by left shift</li>';
2196 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">i32.shr_s</li>';
2197 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">i32.shl</li>';
2198 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">input==17</li>';
2199 value+='<li style="list-style-type:none;">Q - Can the 1 bit removed during i32.shr_s be recovered by shifting left in the same session?</li>';
2200 value+='<li style="list-style-type:none;">A - No, numbers returned on right side are zeros</li>';
2201 value+='<li style="list-style-type:none;">0000 0000 0000 0000 0000 0000 0001 0001</li>';
2202 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">after applying i32.shr_s=2</li>';
2203 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">after applying i32.shl=2</li>';
2204 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">result is 16 i32.clz=27 i32.ctz=4 i32.popcnt=1</li>';
2205 value+='<li style="list-style-type:none;">0000 0000 0000 0000 0000 0000 0001 0000</li>';
2206
2207 value+='<li>- - - - - - - - - - - - - - - - </li>';
2208 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">Ex. left shift followed by signed right shift resulting in positive number changing to negative number</li>';
2209 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">i32.shl</li>';
2210 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">i32.shr_s</li>';
2211 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">input==17</li>';
2212 value+='<li style="list-style-type:none;">0000 0000 0000 0000 0000 0000 0001 0001</li>';
2213 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">after applying i32.shl=27</li>';
2214 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">after applying i32.shr_s=2</li>';
2215 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">result is -503316480 i32.clz=0 i32.ctz=25 i32.popcnt=4</li>';
2216 value+='<li style="list-style-type:none;">1110 0010 0000 0000 0000 0000 0000 0000</li>';
2217
2218 value+='<li>- - - - - - - - - - - - - - - - </li>';
2219 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">Ex. signed right shift leading to a zero value</li>';
2220 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">i32.shr_s</li>';
2221 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">input==17</li>';
2222 value+='<li style="list-style-type:none;">0000 0000 0000 0000 0000 0000 0001 0001</li>';
2223 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">after applying i32.shr_s=5</li>';
2224 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">result is 0 then i32.clz=32 i32.ctz=32 i32.popcnt=0</li>';
2225 value+='<li style="list-style-type:none;">0000 0000 0000 0000 0000 0000 0000 0000</li>';
2226
2227 value+='<li>- - - - - - - - - - - - - - - - </li>';
2228 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">Ex. signed right shift with a shift value exceeding natural length of bits (32)</li>';
2229 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">i32.shr_s</li>';
2230 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">input==17</li>';
2231 value+='<li style="list-style-type:none;">0000 0000 0000 0000 0000 0000 0001 0001</li>';
2232 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">after applying i32.shr_s=33</li>';
2233 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">result is 8 then i32.clz=28 i32.ctz=3 i32.popcnt=1</li>';
2234 value+='<li style="list-style-type:none;">0000 0000 0000 0000 0000 0000 0000 1000</li>';
2235
2236 value+='<li>- - - - - - - - - - - - - - - - </li>';
2237 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">Ex. signed right shift followed by unsigned right shift</li>';
2238 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">i32.shr_s</li>';
2239 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">i32.shr_u</li>';
2240 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">input==-5945</li>';
2241 value+='<li style="list-style-type:none;">1111 1111 1111 1111 1110 1000 1100 0111</li>';
2242 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">after applying i32.shr_s=2</li>';
2243 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">after applying i32.shr_u=2</li>';
2244 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">result is 1073741452 then i32.clz=2 i32.ctz=2 i32.popcnt=24</li>';
2245 value+='<li style="list-style-type:none;">0011 1111 1111 1111 1111 1110 1000 1100</li>';
2246
2247 value+='<li>- - - - - - - - - - - - - - - - </li>';
2248 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">Ex. plain signed shift right</li>';
2249 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">i32.shr_s</li>';
2250 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">input==-5945</li>';
2251 value+='<li style="list-style-type:none;">1111 1111 1111 1111 1110 1000 1100 0111</li>';
2252 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">after applying i32.shr_s=13</li>';
2253 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">result is -1 then i32.clz=0 i32.ctz=0 i32.popcnt=32</li>';
2254 value+='<li style="list-style-type:none;">1111 1111 1111 1111 1111 1111 1111 1111</li>';
2255
2256 value+='<li>- - - - - - - - - - - - - - - - </li>';
2257 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">Ex. signed right shift followed by left shift</li>';
2258 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">i32.shr_s</li>';
2259 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">i32.shl</li>';
2260 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">input==-5945</li>';
2261 value+='<li style="list-style-type:none;">Q - Can the 1 bit removed during i32.shr_s be recovered by shifting left in the same session?</li>';
2262 value+='<li style="list-style-type:none;">A - No, numbers returned on right side are zeros</li>';
2263 value+='<li style="list-style-type:none;">1111 1111 1111 1111 1110 1000 1100 0111</li>';
2264 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">after applying i32.shr_s=2</li>';
2265 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">after applying i32.shl=2</li>';
2266 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">result is -5948 i32.clz=0 i32.ctz=2 i32.popcnt=23</li>';
2267 value+='<li style="list-style-type:none;">1111 1111 1111 1111 1110 1000 1100 0100</li>';
2268
2269 value+='<li>- - - - - - - - - - - - - - - - </li>';
2270 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">Ex. left shift followed by signed right shift resulting in negative number changing to positive number</li>';
2271 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">i32.shl</li>';
2272 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">i32.shr_s</li>';
2273 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">input==-5945</li>';
2274 value+='<li style="list-style-type:none;">1111 1111 1111 1111 1110 1000 1100 0111</li>';
2275 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">after applying i32.shl=19</li>';
2276 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">after applying i32.shr_s=2</li>';
2277 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">result is 294518784 i32.clz=3 i32.ctz=17 i32.popcnt=6</li>';
2278 value+='<li style="list-style-type:none;">0001 0001 1000 1110 0000 0000 0000 0000</li>';
2279
2280 value+='<li>- - - - - - - - - - - - - - - - </li>';
2281 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">Ex. signed right shift leading to a -1 value</li>';
2282 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">i32.shr_s</li>';
2283 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">input==-5945</li>';
2284 value+='<li style="list-style-type:none;">1111 1111 1111 1111 1110 1000 1100 0111</li>';
2285 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">after applying i32.shr_s=13</li>';
2286 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">result is -1 then i32.clz=0 i32.ctz=0 i32.popcnt=32</li>';
2287 value+='<li style="list-style-type:none;">1111 1111 1111 1111 1111 1111 1111 1111</li>';
2288
2289 value+='<li>- - - - - - - - - - - - - - - - </li>';
2290 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">Ex. signed right shift with a shift value exceeding natural length of bits (32)';
2291 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">i32.shr_s</li>';
2292 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">input==-5945</li>';
2293 value+='<li style="list-style-type:none;">1111 1111 1111 1111 1110 1000 1100 0111</li>';
2294 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">after applying i32.shr_s=33</li>';
2295 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">result is -2973 then i32.clz=0 i32.ctz=0 i32.popcnt=25</li>';
2296 value+='<li style="list-style-type:none;">1111 1111 1111 1111 1111 0100 0110 0011</li>';
2297
2298 value+='<li>- - - - - - - - - - - - - - - -</li>';
2299
2300 value+='</ul>';
2301
2302 break;
2303 case 50:
2304 value='';
2305 value+='<svg id="svg_clipboard_mod_title1" height="50" width="450" xmlns:xlink="http://www.w3.org/1999/xlink" class="clipboard_mod_title">';
2306 value+='<rect width="500" height="40" x="0" y="0" stroke="#000000" stroke-width="1" fill="#32323C"></rect>';
2307 value+='<text x="18" y="25" fill="#999999" stroke-width="0" style="font-size:20px;text-shadow:1px 1px 1px #101010;">Code module</text>';
2308 value+='</svg>';
2309
2310 value+='<div class="clickable" onclick="get_text_on_clipboard_client_side(\'clipboard_container1\')">[ copy module code to clipboard ]</div>';
2311 value+='<textarea cols="60" rows="5" id="clipboard_container1" class="clipboard_container">';
2312 value+="waX+=' '+'6d'; asi[a()]='i32.div_s'; asi[a()]+=' '; // [opcode]"+"\n";
2313 value+='</textarea>';
2314
2315 value+='<div class="clipboard_section_note">Note</div>';
2316 value+='<ul class="clipboard_section_note_ul">';
2317 value+='<li>2 on stack removed , result - farthest divided by nearest</li>';
2318 value+='<li>signed division (result is truncated toward zero)</li>';
2319 value+='<li>:: positive (divided by) positive = positive sign on result</li>';
2320 value+='<li>:: negative (divided by) negative = positive sign on result</li>';
2321 value+='<li>:: negative (divided by) positive = negative sign on result</li>';
2322 value+='<li>:: positive (divided by) negative = negative sign on result</li>';
2323 value+='</ul>';
2324 break;
2325 case 51:
2326 value='';
2327 value+='<svg id="svg_clipboard_mod_title1" height="50" width="450" xmlns:xlink="http://www.w3.org/1999/xlink" class="clipboard_mod_title">';
2328 value+='<rect width="500" height="40" x="0" y="0" stroke="#000000" stroke-width="1" fill="#32323C"></rect>';
2329 value+='<text x="18" y="25" fill="#999999" stroke-width="0" style="font-size:20px;text-shadow:1px 1px 1px #101010;">Code module</text>';
2330 value+='</svg>';
2331
2332 value+='<div class="clickable" onclick="get_text_on_clipboard_client_side(\'clipboard_container1\')">[ copy module code to clipboard ]</div>';
2333 value+='<textarea cols="60" rows="5" id="clipboard_container1" class="clipboard_container">';
2334 value+="waX+=' '+'6f'; asi[a()]='i32.rem_s'; asi[a()]+=' '; // [opcode]"+"\n";
2335 value+='</textarea>';
2336
2337 value+='<div class="clipboard_section_note">Note</div>';
2338 value+='<ul class="clipboard_section_note_ul">';
2339 value+='<li>2 on stack removed , result - value as remainder of division</li>';
2340 value+='<li>farthest is divided by nearest, <b>dividend</b>=farthest</li>';
2341 value+='<li>signed remainder (result has the sign of the <b>dividend</b>)</li>';
2342
2343 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">~ ex. of i32.rem_s being applied like modulus</li>';
2344 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;"> 7 i32.rem_s2 = 1 as result (ex. odd row in looping recordset)</li>';
2345 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;"> 8 i32.rem_s2 = 0 as result (ex. even row in looping recordset)</li>';
2346
2347 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">~ ex. result does not inherit sign of dividend when i32.rem_s result is 0</li>';
2348 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;"> -1 i32.rem_s 1 =0 as result</li>';
2349 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;"> 1 i32.rem_s -1 =0 as result</li>';
2350 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;"> -6 i32.rem_s 2 =0 as result</li>';
2351 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;"> -6 i32.rem_s -2 =0 as result</li>';
2352
2353 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">~ ex. when first division of numbers results in a number containing a decimal point ~ then result is a duplicate of dividend and has sign of dividend</li>';
2354 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;"> (does not look like a remainder is given since division was not possible with a whole number as a result)</li>';
2355 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;"> -1 i32.rem_s 2 = -1 as result</li>';
2356 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;"> 1 i32.rem_s -6 = 1 as result</li>';
2357 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;"> 1 i32.rem_s -2 = 1 as result</li>';
2358 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;"> -1 i32.rem_s 6 = -1 as result</li>';
2359 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;"> -4 i32.rem_s -6 = -4 as result</li>';
2360 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;"> -4 i32.rem_s 6 = -4 as result</li>';
2361
2362 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">~ ex. when first division (and any subsequent division) of numbers results in a whole number ~ then result is a remainder and has sign of dividend</li>';
2363 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;"> -7 i32.rem_s -6 = -1 as result</li>';
2364 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;"> -7 i32.rem_s -5 = -2 as result</li>';
2365 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;"> -7 i32.rem_s -4 = -3 as result</li>';
2366 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;"> -7 i32.rem_s -3 = -1 as result</li>';
2367 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;"> -7 i32.rem_s -2 = -1 as result</li>';
2368 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;"> 7 i32.rem_s -6 = 1 as result</li>';
2369 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;"> 7 i32.rem_s -5 = 2 as result</li>';
2370 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;"> 7 i32.rem_s -4 = 3 as result</li>';
2371 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;"> 7 i32.rem_s -3 = 1 as result</li>';
2372 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;"> 7 i32.rem_s -2 = 1 as result</li>';
2373
2374 value+='</ul>';
2375 break;
2376 case 52:
2377 value='';
2378 value+='<svg id="svg_clipboard_mod_title1" height="50" width="450" xmlns:xlink="http://www.w3.org/1999/xlink" class="clipboard_mod_title">';
2379 value+='<rect width="500" height="40" x="0" y="0" stroke="#000000" stroke-width="1" fill="#32323C"></rect>';
2380 value+='<text x="18" y="25" fill="#999999" stroke-width="0" style="font-size:20px;text-shadow:1px 1px 1px #101010;">Code module</text>';
2381 value+='</svg>';
2382
2383 value+='<div class="clickable" onclick="get_text_on_clipboard_client_side(\'clipboard_container1\')">[ copy module code to clipboard ]</div>';
2384 value+='<textarea cols="60" rows="5" id="clipboard_container1" class="clipboard_container">';
2385 value+="waX+=' '+'79'; asi[a()]='i64.clz'; asi[a()]+=' '; // [opcode]"+"\n";
2386 value+='</textarea>';
2387
2388 value+='<div class="clipboard_section_note">Note</div>';
2389 value+='<ul class="clipboard_section_note_ul">';
2390 value+='<li>1 on stack removed , result - integer based amount of leading zeros added to stack</li>';
2391 value+='<li>sign-agnostic count leading zero bits (All zero bits are considered leading if the value is zero)</li>';
2392 value+='</ul>';
2393 break;
2394 case 53:
2395 value='';
2396 value+='<svg id="svg_clipboard_mod_title1" height="50" width="450" xmlns:xlink="http://www.w3.org/1999/xlink" class="clipboard_mod_title">';
2397 value+='<rect width="500" height="40" x="0" y="0" stroke="#000000" stroke-width="1" fill="#32323C"></rect>';
2398 value+='<text x="18" y="25" fill="#999999" stroke-width="0" style="font-size:20px;text-shadow:1px 1px 1px #101010;">Code module</text>';
2399 value+='</svg>';
2400
2401 value+='<div class="clickable" onclick="get_text_on_clipboard_client_side(\'clipboard_container1\')">[ copy module code to clipboard ]</div>';
2402 value+='<textarea cols="60" rows="5" id="clipboard_container1" class="clipboard_container">';
2403 value+="waX+=' '+'7a'; asi[a()]='i64.ctz'; asi[a()]+=' '; // [opcode]"+"\n";
2404 value+='</textarea>';
2405
2406 value+='<div class="clipboard_section_note">Note</div>';
2407 value+='<ul class="clipboard_section_note_ul">';
2408 value+='<li>1 on stack removed , result - integer based amount of trailing zeros added to stack</li>';
2409 value+='<li>sign-agnostic count trailing zero bits (All zero bits are considered trailing if the value is zero)</li>';
2410 value+='</ul>';
2411 break;
2412 case 54:
2413 value='';
2414 value+='<svg id="svg_clipboard_mod_title1" height="50" width="450" xmlns:xlink="http://www.w3.org/1999/xlink" class="clipboard_mod_title">';
2415 value+='<rect width="500" height="40" x="0" y="0" stroke="#000000" stroke-width="1" fill="#32323C"></rect>';
2416 value+='<text x="18" y="25" fill="#999999" stroke-width="0" style="font-size:20px;text-shadow:1px 1px 1px #101010;">... any module</text>';
2417 value+='</svg>';
2418
2419 value+='<div class="clickable" onclick="get_text_on_clipboard_client_side(\'clipboard_container1\')">[ copy module code to clipboard ]</div>';
2420 value+='<textarea cols="60" rows="5" id="clipboard_container1" class="clipboard_container">';
2421 value+="waX+=' '+'42'; asi[a()]='i64.const'; asi[a()]+=' '; //[opcode]"+"\n";
2422 value+="waX+=' '+uHEX(2); asi[a()]='i64.const value'; asi[a()]+=' '; // [Signed LEB128] varint64"+"\n";
2423 value+='</textarea>';
2424 break;
2425 case 55:
2426 value='';
2427 value+='<svg id="svg_clipboard_mod_title1" height="50" width="450" xmlns:xlink="http://www.w3.org/1999/xlink" class="clipboard_mod_title">';
2428 value+='<rect width="500" height="40" x="0" y="0" stroke="#000000" stroke-width="1" fill="#32323C"></rect>';
2429 value+='<text x="18" y="25" fill="#999999" stroke-width="0" style="font-size:20px;text-shadow:1px 1px 1px #101010;">Code Module</text>';
2430 value+='</svg>';
2431
2432 value+='<div class="clickable" onclick="get_text_on_clipboard_client_side(\'clipboard_container3\')">[ copy module code to clipboard ]</div>';
2433 value+='<textarea cols="60" rows="5" id="clipboard_container3" class="clipboard_container">';
2434 value+="// Wasm - Code Module - Store value in Linear Memory during Wasm code execution"+"\n";
2435 value+="waX+=' '+'41'; asi[a()]='i32.const'; asi[a()]+=' '; // [opcode]"+"\n";
2436 value+="waX+=' '+uHEX(0); asi[a()]='arraybuffer position'; asi[a()]+=' '; // [LEB128] varint32"+"\n";
2437 value+="waX+=' '+'42'; asi[a()]='i64.const'; asi[a()]+=' '; // [opcode]"+"\n";
2438 value+="waX+=' '+uHEX(2); asi[a()]='i64.const value'; asi[a()]+=' '; // [Signed LEB128] varint64"+"\n";
2439 value+="waX+=' '+'37'; asi[a()]='i64.store'; asi[a()]+=', storing n as 8 bytes'; // [opcode]"+"\n";
2440 value+="waX+=' '+uHEX(3); asi[a()]='flags - alignment'; asi[a()]+=' '; // [LEB128] varuint32 - part of memory_immediate"+"\n";
2441 value+="waX+=' '+uHEX(0); asi[a()]='arraybuffer position offset'; asi[a()]+=' '; // [LEB128] varuint32 - part of memory_immediate"+"\n";
2442 value+='</textarea>';
2443 break;
2444 case 56:
2445 value='';
2446 value+='<svg id="svg_clipboard_mod_title1" height="50" width="450" xmlns:xlink="http://www.w3.org/1999/xlink" class="clipboard_mod_title">';
2447 value+='<rect width="500" height="40" x="0" y="0" stroke="#000000" stroke-width="1" fill="#32323C"></rect>';
2448 value+='<text x="18" y="25" fill="#999999" stroke-width="0" style="font-size:20px;text-shadow:1px 1px 1px #101010;">Code Module</text>';
2449 value+='</svg>';
2450
2451 value+='<div class="clickable" onclick="get_text_on_clipboard_client_side(\'clipboard_container3\')">[ copy module code to clipboard ]</div>';
2452 value+='<textarea cols="60" rows="5" id="clipboard_container3" class="clipboard_container">';
2453 value+="// Wasm - Code Module - Load value from Linear Memory into Wasm code execution"+"\n";
2454 value+="waX+=' '+'41'; asi[a()]='i32.const'; asi[a()]+=' '; // [opcode]"+"\n";
2455 value+="waX+=' '+uHEX(0); asi[a()]='arraybuffer position'; asi[a()]+=' '; // [Signed LEB128] varint32"+"\n";
2456 value+="waX+=' '+'29'; asi[a()]='i64.load'; asi[a()]+=', loading n as 8 bytes'; // [opcode]"+"\n";
2457 value+="waX+=' '+uHEX(3); asi[a()]='flags - alignment'; asi[a()]+=' '; // [LEB128] varuint32 - part of memory_immediate"+"\n";
2458 value+="waX+=' '+uHEX(0); asi[a()]='arraybuffer position offset'; asi[a()]+=' '; // [LEB128] varuint32 - part of memory_immediate"+"\n";
2459 value+='</textarea>';
2460
2461 value+='<div class="clipboard_section_note">Note</div>';
2462 value+='<ul class="clipboard_section_note_ul">';
2463 value+='<li>...</li>';
2464 value+='</ul>';
2465 break;
2466 case 57:
2467 value='';
2468 value+='<svg id="svg_clipboard_mod_title1" height="50" width="450" xmlns:xlink="http://www.w3.org/1999/xlink" class="clipboard_mod_title">';
2469 value+='<rect width="500" height="40" x="0" y="0" stroke="#000000" stroke-width="1" fill="#32323C"></rect>';
2470 value+='<text x="18" y="25" fill="#999999" stroke-width="0" style="font-size:20px;text-shadow:1px 1px 1px #101010;">Code module</text>';
2471 value+='</svg>';
2472
2473 value+='<div class="clickable" onclick="get_text_on_clipboard_client_side(\'clipboard_container1\')">[ copy module code to clipboard ]</div>';
2474 value+='<textarea cols="60" rows="5" id="clipboard_container1" class="clipboard_container">';
2475 value+="waX+=' '+'7b'; asi[a()]='i64.popcnt'; asi[a()]+=' '; // [opcode]"+"\n";
2476 value+='</textarea>';
2477
2478 value+='<div class="clipboard_section_note">Note</div>';
2479 value+='<ul class="clipboard_section_note_ul">';
2480 value+='<li>1 on stack removed , result - integer based amount of 1 bits found</li>';
2481 value+='<li>sign-agnostic count number of one bits</li>';
2482 value+='</ul>';
2483 break;
2484 case 58:
2485 value='';
2486 value+='<svg id="svg_clipboard_mod_title1" height="50" width="450" xmlns:xlink="http://www.w3.org/1999/xlink" class="clipboard_mod_title">';
2487 value+='<rect width="500" height="40" x="0" y="0" stroke="#000000" stroke-width="1" fill="#32323C"></rect>';
2488 value+='<text x="18" y="25" fill="#999999" stroke-width="0" style="font-size:20px;text-shadow:1px 1px 1px #101010;">Code module</text>';
2489 value+='</svg>';
2490
2491 value+='<div class="clickable" onclick="get_text_on_clipboard_client_side(\'clipboard_container1\')">[ copy module code to clipboard ]</div>';
2492 value+='<textarea cols="60" rows="5" id="clipboard_container1" class="clipboard_container">';
2493 value+="waX+=' '+'7c'; asi[a()]='i64.add'; asi[a()]+=' '; // [opcode]"+"\n";
2494 value+='</textarea>';
2495
2496 value+='<div class="clipboard_section_note">Note</div>';
2497 value+='<ul class="clipboard_section_note_ul">';
2498 value+='<li>2 on stack removed , result - value from addition</li>';
2499 value+='<li>sign-agnostic addition</li>';
2500 value+='</ul>';
2501 break;
2502 case 59:
2503 value='';
2504 value+='<svg id="svg_clipboard_mod_title1" height="50" width="450" xmlns:xlink="http://www.w3.org/1999/xlink" class="clipboard_mod_title">';
2505 value+='<rect width="500" height="40" x="0" y="0" stroke="#000000" stroke-width="1" fill="#32323C"></rect>';
2506 value+='<text x="18" y="25" fill="#999999" stroke-width="0" style="font-size:20px;text-shadow:1px 1px 1px #101010;">Code module</text>';
2507 value+='</svg>';
2508
2509 value+='<div class="clickable" onclick="get_text_on_clipboard_client_side(\'clipboard_container1\')">[ copy module code to clipboard ]</div>';
2510 value+='<textarea cols="60" rows="5" id="clipboard_container1" class="clipboard_container">';
2511 value+="waX+=' '+'7d'; asi[a()]='i64.sub'; asi[a()]+=' '; // [opcode]"+"\n";
2512 value+='</textarea>';
2513
2514 value+='<div class="clipboard_section_note">Note</div>';
2515 value+='<ul class="clipboard_section_note_ul">';
2516 value+='<li>2 on stack removed , result - farthest subtract nearest</li>';
2517 value+='<li>sign-agnostic subtraction</li>';
2518 value+='</ul>';
2519 break;
2520 case 60:
2521 value='';
2522 value+='<svg id="svg_clipboard_mod_title1" height="50" width="450" xmlns:xlink="http://www.w3.org/1999/xlink" class="clipboard_mod_title">';
2523 value+='<rect width="500" height="40" x="0" y="0" stroke="#000000" stroke-width="1" fill="#32323C"></rect>';
2524 value+='<text x="18" y="25" fill="#999999" stroke-width="0" style="font-size:20px;text-shadow:1px 1px 1px #101010;">Code module</text>';
2525 value+='</svg>';
2526
2527 value+='<div class="clickable" onclick="get_text_on_clipboard_client_side(\'clipboard_container1\')">[ copy module code to clipboard ]</div>';
2528 value+='<textarea cols="60" rows="5" id="clipboard_container1" class="clipboard_container">';
2529 value+="waX+=' '+'7e'; asi[a()]='i64.mul'; asi[a()]+=' '; // [opcode]"+"\n";
2530 value+='</textarea>';
2531
2532 value+='<div class="clipboard_section_note">Note</div>';
2533 value+='<ul class="clipboard_section_note_ul">';
2534 value+='<li>2 on stack removed , result - value from multiplication</li>';
2535 value+='<li>sign-agnostic multiplication (lower 32-bits)</li>';
2536 value+='</ul>';
2537 break;
2538 case 61:
2539 value='';
2540 value+='<svg id="svg_clipboard_mod_title1" height="50" width="450" xmlns:xlink="http://www.w3.org/1999/xlink" class="clipboard_mod_title">';
2541 value+='<rect width="500" height="40" x="0" y="0" stroke="#000000" stroke-width="1" fill="#32323C"></rect>';
2542 value+='<text x="18" y="25" fill="#999999" stroke-width="0" style="font-size:20px;text-shadow:1px 1px 1px #101010;">Code module</text>';
2543 value+='</svg>';
2544
2545 value+='<div class="clickable" onclick="get_text_on_clipboard_client_side(\'clipboard_container1\')">[ copy module code to clipboard ]</div>';
2546 value+='<textarea cols="60" rows="5" id="clipboard_container1" class="clipboard_container">';
2547 value+="waX+=' '+'80'; asi[a()]='i64.div_u'; asi[a()]+=' '; // [opcode]"+"\n";
2548 value+='</textarea>';
2549
2550 value+='<div class="clipboard_section_note">Note</div>';
2551 value+='<ul class="clipboard_section_note_ul">';
2552 value+='<li>2 on stack removed , result - farthest divided by nearest</li>';
2553 value+='<li>unsigned division (result is floored)</li>';
2554 value+='</ul>';
2555 break;
2556 case 62:
2557 value='';
2558 value+='<svg id="svg_clipboard_mod_title1" height="50" width="450" xmlns:xlink="http://www.w3.org/1999/xlink" class="clipboard_mod_title">';
2559 value+='<rect width="500" height="40" x="0" y="0" stroke="#000000" stroke-width="1" fill="#32323C"></rect>';
2560 value+='<text x="18" y="25" fill="#999999" stroke-width="0" style="font-size:20px;text-shadow:1px 1px 1px #101010;">Code module</text>';
2561 value+='</svg>';
2562
2563 value+='<div class="clickable" onclick="get_text_on_clipboard_client_side(\'clipboard_container1\')">[ copy module code to clipboard ]</div>';
2564 value+='<textarea cols="60" rows="5" id="clipboard_container1" class="clipboard_container">';
2565 value+="waX+=' '+'7f; asi[a()]='i64.div_s'; asi[a()]+=' '; // [opcode]"+"\n";
2566 value+='</textarea>';
2567
2568 value+='<div class="clipboard_section_note">Note</div>';
2569 value+='<ul class="clipboard_section_note_ul">';
2570 value+='<li>2 on stack removed , result - farthest divided by nearest</li>';
2571 value+='<li>signed division (result is truncated toward zero)</li>';
2572 value+='<li>:: positive (divided by) positive = positive sign on result</li>';
2573 value+='<li>:: negative (divided by) negative = positive sign on result</li>';
2574 value+='<li>:: negative (divided by) positive = negative sign on result</li>';
2575 value+='<li>:: positive (divided by) negative = negative sign on result</li>';
2576 value+='</ul>';
2577 break;
2578 case 63:
2579 value='';
2580 value+='<svg id="svg_clipboard_mod_title1" height="50" width="450" xmlns:xlink="http://www.w3.org/1999/xlink" class="clipboard_mod_title">';
2581 value+='<rect width="500" height="40" x="0" y="0" stroke="#000000" stroke-width="1" fill="#32323C"></rect>';
2582 value+='<text x="18" y="25" fill="#999999" stroke-width="0" style="font-size:20px;text-shadow:1px 1px 1px #101010;">Code module</text>';
2583 value+='</svg>';
2584
2585 value+='<div class="clickable" onclick="get_text_on_clipboard_client_side(\'clipboard_container1\')">[ copy module code to clipboard ]</div>';
2586 value+='<textarea cols="60" rows="5" id="clipboard_container1" class="clipboard_container">';
2587 value+="waX+=' '+'83'; asi[a()]='i64.and'; asi[a()]+=' '; // [opcode]"+"\n";
2588 value+='</textarea>';
2589
2590 value+='<div class="clipboard_section_note">Note</div>';
2591 value+='<ul class="clipboard_section_note_ul">';
2592 value+='<li>2 on stack removed , result - bitwise and</li>';
2593 value+='<li>sign-agnostic bitwise and</li>';
2594 value+='</ul>';
2595 break;
2596 case 64:
2597 value='';
2598 value+='<svg id="svg_clipboard_mod_title1" height="50" width="450" xmlns:xlink="http://www.w3.org/1999/xlink" class="clipboard_mod_title">';
2599 value+='<rect width="500" height="40" x="0" y="0" stroke="#000000" stroke-width="1" fill="#32323C"></rect>';
2600 value+='<text x="18" y="25" fill="#999999" stroke-width="0" style="font-size:20px;text-shadow:1px 1px 1px #101010;">Code module</text>';
2601 value+='</svg>';
2602
2603 value+='<div class="clickable" onclick="get_text_on_clipboard_client_side(\'clipboard_container1\')">[ copy module code to clipboard ]</div>';
2604 value+='<textarea cols="60" rows="5" id="clipboard_container1" class="clipboard_container">';
2605 value+="waX+=' '+'84'; asi[a()]='i64.or'; asi[a()]+=' '; // [opcode]"+"\n";
2606 value+='</textarea>';
2607
2608 value+='<div class="clipboard_section_note">Note</div>';
2609 value+='<ul class="clipboard_section_note_ul">';
2610 value+='<li>2 on stack removed , result - bitwise or</li>';
2611 value+='<li>sign-agnostic bitwise inclusive or</li>';
2612 value+='</ul>';
2613 break;
2614 case 65:
2615 value='';
2616 value+='<svg id="svg_clipboard_mod_title1" height="50" width="450" xmlns:xlink="http://www.w3.org/1999/xlink" class="clipboard_mod_title">';
2617 value+='<rect width="500" height="40" x="0" y="0" stroke="#000000" stroke-width="1" fill="#32323C"></rect>';
2618 value+='<text x="18" y="25" fill="#999999" stroke-width="0" style="font-size:20px;text-shadow:1px 1px 1px #101010;">Code module</text>';
2619 value+='</svg>';
2620
2621 value+='<div class="clickable" onclick="get_text_on_clipboard_client_side(\'clipboard_container1\')">[ copy module code to clipboard ]</div>';
2622 value+='<textarea cols="60" rows="5" id="clipboard_container1" class="clipboard_container">';
2623 value+="waX+=' '+'85'; asi[a()]='i64.xor'; asi[a()]+=' '; // [opcode]"+"\n";
2624 value+='</textarea>';
2625
2626 value+='<div class="clipboard_section_note">Note</div>';
2627 value+='<ul class="clipboard_section_note_ul">';
2628 value+='<li>2 on stack removed , result - bitwise xor</li>';
2629 value+='<li>sign-agnostic bitwise exclusive or</li>';
2630 value+='</ul>';
2631 break;
2632 case 66:
2633 value='';
2634 value+='<svg id="svg_clipboard_mod_title1" height="50" width="450" xmlns:xlink="http://www.w3.org/1999/xlink" class="clipboard_mod_title">';
2635 value+='<rect width="500" height="40" x="0" y="0" stroke="#000000" stroke-width="1" fill="#32323C"></rect>';
2636 value+='<text x="18" y="25" fill="#999999" stroke-width="0" style="font-size:20px;text-shadow:1px 1px 1px #101010;">Code module</text>';
2637 value+='</svg>';
2638
2639 value+='<div class="clickable" onclick="get_text_on_clipboard_client_side(\'clipboard_container1\')">[ copy module code to clipboard ]</div>';
2640 value+='<textarea cols="60" rows="5" id="clipboard_container1" class="clipboard_container">';
2641 value+="waX+=' '+'86'; asi[a()]='i64.shl'; asi[a()]+=' '; // [opcode]"+"\n";
2642 value+='</textarea>';
2643
2644 value+='<div class="clipboard_section_note">Note</div>';
2645 value+='<ul class="clipboard_section_note_ul">';
2646 value+='<li>2 on stack removed , result - farthest shifted left by nearest</li>';
2647 value+='<li>sign-agnostic shift left</li>';
2648
2649 value+='<li style="list-style-type:none;"> </li>';
2650
2651 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;list-style-type:none;">i32.shl - when positive number, right side is padding with zeros (until 32 bit number maintained) when shift left is performed</li>';
2652
2653 value+='<li style="list-style-type:none;"> </li>';
2654
2655 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;list-style-type:none;">i32.shl - when negative number, right side is padding with zeros (until 32 bit number maintained) when shift left is performed</li>';
2656
2657 value+='<li style="list-style-type:none;"> </li>';
2658
2659 value+='<li>- - - - - - - - - - - - - - - -</li>';
2660 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">Ex. plain shift left</li>';
2661 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">i32.shl</li>';
2662 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">input==17</li>';
2663 value+='<li style="list-style-type:none;">0000 0000 0000 0000 0000 0000 0001 0001</li>';
2664 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">after applying i32.shl=2</li>';
2665 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">result is 68 then i32.clz=25 i32.ctz=2 i32.popcnt=2</li>';
2666 value+='<li style="list-style-type:none;">0000 0000 0000 0000 0000 0000 0100 0100</li>';
2667
2668 value+='<li>- - - - - - - - - - - - - - - - </li>';
2669 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">Ex. plain shift left resulting in positive number being converted to negative number</li>';
2670 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">i32.shl</li>';
2671 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">input==17</li>';
2672 value+='<li style="list-style-type:none;">0000 0000 0000 0000 0000 0000 0001 0001</li>';
2673 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">after applying i32.shl=27</li>';
2674 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">result is -2013265920 then i32.clz=0 i32.ctz=27 i32.popcnt=2</li>';
2675 value+='<li style="list-style-type:none;">1000 1000 0000 0000 0000 0000 0000 0000</li>';
2676
2677 value+='<li>- - - - - - - - - - - - - - - - </li>';
2678 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">Ex. unsigned right shift followed by left shift</li>';
2679 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">i32.shr_u</li>';
2680 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">i32.shl</li>';
2681 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">input==17</li>';
2682 value+='<li style="list-style-type:none;">Q - Can the 1 bit removed during i32.shr_u be recovered by shifting left in the same session?</li>';
2683 value+='<li style="list-style-type:none;">A - No, numbers returned on right side are zeros</li>';
2684 value+='<li style="list-style-type:none;">0000 0000 0000 0000 0000 0000 0001 0001</li>';
2685 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">after applying i32.shr_u=2</li>';
2686 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">after applying i32.shl=2</li>';
2687 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">result is 16 i32.clz=27 i32.ctz=4 i32.popcnt=1</li>';
2688 value+='<li style="list-style-type:none;">0000 0000 0000 0000 0000 0000 0001 0000</li>';
2689
2690 value+='<li>- - - - - - - - - - - - - - - - </li>';
2691 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">Ex. signed right shift followed by left shift</li>';
2692 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">i32.shr_s</li>';
2693 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">i32.shl</li>';
2694 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">input==17</li>';
2695 value+='<li style="list-style-type:none;">Q - Can the 1 bit removed during i32.shr_s be recovered by shifting left in the same session?</li>';
2696 value+='<li style="list-style-type:none;">A - No, numbers returned on right side are zeros</li>';
2697 value+='<li style="list-style-type:none;">0000 0000 0000 0000 0000 0000 0001 0001</li>';
2698 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">after applying i32.shr_s=2</li>';
2699 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">after applying i32.shl=2</li>';
2700 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">result is 16 i32.clz=27 i32.ctz=4 i32.popcnt=1</li>';
2701 value+='<li style="list-style-type:none;">0000 0000 0000 0000 0000 0000 0001 0000</li>';
2702
2703 value+='<li>- - - - - - - - - - - - - - - - </li>';
2704 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">Ex. left shift followed by signed right shift resulting in positive number changing to negative number</li>';
2705 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">i32.shl</li>';
2706 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">i32.shr_s</li>';
2707 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">input==17</li>';
2708 value+='<li style="list-style-type:none;">0000 0000 0000 0000 0000 0000 0001 0001</li>';
2709 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">after applying i32.shl=27</li>';
2710 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">after applying i32.shr_s=2</li>';
2711 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">result is -503316480 i32.clz=0 i32.ctz=25 i32.popcnt=4</li>';
2712 value+='<li style="list-style-type:none;">1110 0010 0000 0000 0000 0000 0000 0000</li>';
2713
2714 value+='<li>- - - - - - - - - - - - - - - - </li>';
2715 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">Ex. plain shift left</li>';
2716 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">i32.shl</li>';
2717 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">input==-5945</li>';
2718 value+='<li style="list-style-type:none;">1111 1111 1111 1111 1110 1000 1100 0111</li>';
2719 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">after applying i32.shl=2</li>';
2720 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">result is -23780 then i32.clz=0 i32.ctz=2 i32.popcnt=23</li>';
2721 value+='<li style="list-style-type:none;">1111 1111 1111 1111 1010 0011 0001 1100</li>';
2722
2723 value+='<li>- - - - - - - - - - - - - - - - </li>';
2724 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">Ex. plain shift left resulting in negative number being converted to positive number</li>';
2725 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">i32.shl</li>';
2726 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">input==-5945</li>';
2727 value+='<li style="list-style-type:none;">1111 1111 1111 1111 1110 1000 1100 0111</li>';
2728 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">after applying i32.shl=19</li>';
2729 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">result is 1178075136 then i32.clz=1 i32.ctz=19 i32.popcnt=6</li>';
2730 value+='<li style="list-style-type:none;">0100 0110 0011 1000 0000 0000 0000 0000</li>';
2731
2732 value+='<li>- - - - - - - - - - - - - - - - </li>';
2733 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">Ex. unsigned right shift followed by left shift</li>';
2734 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">i32.shr_u</li>';
2735 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">i32.shl</li>';
2736 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">input==-5945</li>';
2737 value+='<li style="list-style-type:none;">Q - Can the 1 bit removed during i32.shr_u be recovered by shifting left in the same session?</li>';
2738 value+='<li style="list-style-type:none;">A - No, numbers returned on right side are zeros</li>';
2739 value+='<li style="list-style-type:none;">1111 1111 1111 1111 1110 1000 1100 0111</li>';
2740 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">after applying i32.shr_u=4</li>';
2741 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">after applying i32.shl=2</li>';
2742 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">result is 1073740336 i32.clz=2 i32.ctz=4 i32.popcnt=22</li>';
2743 value+='<li style="list-style-type:none;">0011 1111 1111 1111 1111 1010 0011 0000</li>';
2744
2745 value+='<li>- - - - - - - - - - - - - - - - </li>';
2746 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">Ex. signed right shift followed by left shift</li>';
2747 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">i32.shr_s</li>';
2748 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">i32.shl</li>';
2749 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">input==-5945</li>';
2750 value+='<li style="list-style-type:none;">Q - Can the 1 bit removed during i32.shr_s be recovered by shifting left in the same session?</li>';
2751 value+='<li style="list-style-type:none;">A - No, numbers returned on right side are zeros</li>';
2752 value+='<li style="list-style-type:none;">1111 1111 1111 1111 1110 1000 1100 0111</li>';
2753 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">after applying i32.shr_s=2</li>';
2754 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">after applying i32.shl=2</li>';
2755 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">result is -5948 i32.clz=0 i32.ctz=2 i32.popcnt=23</li>';
2756 value+='<li style="list-style-type:none;">1111 1111 1111 1111 1110 1000 1100 0100</li>';
2757
2758 value+='<li>- - - - - - - - - - - - - - - - </li>';
2759 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">Ex. left shift followed by signed right shift resulting in negative number changing to positive number</li>';
2760 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">i32.shl</li>';
2761 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">i32.shr_s</li>';
2762 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">input==-5945</li>';
2763 value+='<li style="list-style-type:none;">1111 1111 1111 1111 1110 1000 1100 0111</li>';
2764 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">after applying i32.shl=19</li>';
2765 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">after applying i32.shr_s=2</li>';
2766 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">result is 294518784 i32.clz=3 i32.ctz=17 i32.popcnt=6</li>';
2767 value+='<li style="list-style-type:none;">0001 0001 1000 1110 0000 0000 0000 0000</li>';
2768
2769 value+='<li>- - - - - - - - - - - - - - - -</li>';
2770
2771
2772 value+='</ul>';
2773
2774 break;
2775 case 67:
2776 value='';
2777 value+='<svg id="svg_clipboard_mod_title1" height="50" width="450" xmlns:xlink="http://www.w3.org/1999/xlink" class="clipboard_mod_title">';
2778 value+='<rect width="500" height="40" x="0" y="0" stroke="#000000" stroke-width="1" fill="#32323C"></rect>';
2779 value+='<text x="18" y="25" fill="#999999" stroke-width="0" style="font-size:20px;text-shadow:1px 1px 1px #101010;">Code module</text>';
2780 value+='</svg>';
2781
2782 value+='<div class="clickable" onclick="get_text_on_clipboard_client_side(\'clipboard_container1\')">[ copy module code to clipboard ]</div>';
2783 value+='<textarea cols="60" rows="5" id="clipboard_container1" class="clipboard_container">';
2784 value+="waX+=' '+'87'; asi[a()]='i64.shr_s'; asi[a()]+=' '; // [opcode]"+"\n";
2785 value+='</textarea>';
2786
2787 value+='<div class="clipboard_section_note">Note</div>';
2788 value+='<ul class="clipboard_section_note_ul">';
2789 value+='<li>2 on stack removed , result - farthest shifted right by nearest</li>';
2790 value+='<li>sign-replicating (arithmetic) shift right</li>';
2791
2792
2793 value+='<li style="list-style-type:none;"> </li>';
2794
2795 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;list-style-type:none;">i32.shr_s - when positive number, left side is padding with zeros (until 32 bit number maintained) when shift right is performed</li>';
2796
2797 value+='<li style="list-style-type:none;"> </li>';
2798
2799 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;list-style-type:none;">i32.shr_s - when negative number, left side is padding with ones (until 32 bit number maintained) when shift right is performed</li>';
2800
2801 value+='<li style="list-style-type:none;"> </li>';
2802
2803 value+='<li>- - - - - - - - - - - - - - - -</li>';
2804 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">Ex. unsigned right shift followed by signed right shift</li>';
2805 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">i32.shr_u</li>';
2806 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">i32.shr_s</li>';
2807 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">input==17</li>';
2808 value+='<li style="list-style-type:none;">0000 0000 0000 0000 0000 0000 0001 0001</li>';
2809 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">after applying i32.shr_u=2</li>';
2810 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">after applying i32.shr_s=2</li>';
2811 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">result is 1 then i32.clz=31 i32.ctz=0 i32.popcnt=1</li>';
2812 value+='<li style="list-style-type:none;">0000 0000 0000 0000 0000 0000 0000 0001</li>';
2813
2814 value+='<li>- - - - - - - - - - - - - - - - </li>';
2815 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">Ex. plain signed shift right</li>';
2816 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">i32.shr_s</li>';
2817 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">input==17</li>';
2818 value+='<li style="list-style-type:none;">0000 0000 0000 0000 0000 0000 0001 0001</li>';
2819 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">after applying i32.shr_s=2</li>';
2820 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">result is 4 then i32.clz=29 i32.ctz=2 i32.popcnt=1</li>';
2821 value+='<li style="list-style-type:none;">0000 0000 0000 0000 0000 0000 0000 0100</li>';
2822
2823 value+='<li>- - - - - - - - - - - - - - - - </li>';
2824 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">Ex. signed right shift followed by left shift</li>';
2825 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">i32.shr_s</li>';
2826 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">i32.shl</li>';
2827 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">input==17</li>';
2828 value+='<li style="list-style-type:none;">Q - Can the 1 bit removed during i32.shr_s be recovered by shifting left in the same session?</li>';
2829 value+='<li style="list-style-type:none;">A - No, numbers returned on right side are zeros</li>';
2830 value+='<li style="list-style-type:none;">0000 0000 0000 0000 0000 0000 0001 0001</li>';
2831 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">after applying i32.shr_s=2</li>';
2832 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">after applying i32.shl=2</li>';
2833 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">result is 16 i32.clz=27 i32.ctz=4 i32.popcnt=1</li>';
2834 value+='<li style="list-style-type:none;">0000 0000 0000 0000 0000 0000 0001 0000</li>';
2835
2836 value+='<li>- - - - - - - - - - - - - - - - </li>';
2837 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">Ex. left shift followed by signed right shift resulting in positive number changing to negative number</li>';
2838 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">i32.shl</li>';
2839 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">i32.shr_s</li>';
2840 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">input==17</li>';
2841 value+='<li style="list-style-type:none;">0000 0000 0000 0000 0000 0000 0001 0001</li>';
2842 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">after applying i32.shl=27</li>';
2843 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">after applying i32.shr_s=2</li>';
2844 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">result is -503316480 i32.clz=0 i32.ctz=25 i32.popcnt=4</li>';
2845 value+='<li style="list-style-type:none;">1110 0010 0000 0000 0000 0000 0000 0000</li>';
2846
2847 value+='<li>- - - - - - - - - - - - - - - - </li>';
2848 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">Ex. signed right shift leading to a zero value</li>';
2849 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">i32.shr_s</li>';
2850 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">input==17</li>';
2851 value+='<li style="list-style-type:none;">0000 0000 0000 0000 0000 0000 0001 0001</li>';
2852 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">after applying i32.shr_s=5</li>';
2853 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">result is 0 then i32.clz=32 i32.ctz=32 i32.popcnt=0</li>';
2854 value+='<li style="list-style-type:none;">0000 0000 0000 0000 0000 0000 0000 0000</li>';
2855
2856 value+='<li>- - - - - - - - - - - - - - - - </li>';
2857 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">Ex. signed right shift with a shift value exceeding natural length of bits (32)</li>';
2858 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">i32.shr_s</li>';
2859 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">input==17</li>';
2860 value+='<li style="list-style-type:none;">0000 0000 0000 0000 0000 0000 0001 0001</li>';
2861 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">after applying i32.shr_s=33</li>';
2862 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">result is 8 then i32.clz=28 i32.ctz=3 i32.popcnt=1</li>';
2863 value+='<li style="list-style-type:none;">0000 0000 0000 0000 0000 0000 0000 1000</li>';
2864
2865 value+='<li>- - - - - - - - - - - - - - - - </li>';
2866 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">Ex. signed right shift followed by unsigned right shift</li>';
2867 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">i32.shr_s</li>';
2868 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">i32.shr_u</li>';
2869 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">input==-5945</li>';
2870 value+='<li style="list-style-type:none;">1111 1111 1111 1111 1110 1000 1100 0111</li>';
2871 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">after applying i32.shr_s=2</li>';
2872 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">after applying i32.shr_u=2</li>';
2873 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">result is 1073741452 then i32.clz=2 i32.ctz=2 i32.popcnt=24</li>';
2874 value+='<li style="list-style-type:none;">0011 1111 1111 1111 1111 1110 1000 1100</li>';
2875
2876 value+='<li>- - - - - - - - - - - - - - - - </li>';
2877 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">Ex. plain signed shift right</li>';
2878 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">i32.shr_s</li>';
2879 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">input==-5945</li>';
2880 value+='<li style="list-style-type:none;">1111 1111 1111 1111 1110 1000 1100 0111</li>';
2881 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">after applying i32.shr_s=13</li>';
2882 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">result is -1 then i32.clz=0 i32.ctz=0 i32.popcnt=32</li>';
2883 value+='<li style="list-style-type:none;">1111 1111 1111 1111 1111 1111 1111 1111</li>';
2884
2885 value+='<li>- - - - - - - - - - - - - - - - </li>';
2886 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">Ex. signed right shift followed by left shift</li>';
2887 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">i32.shr_s</li>';
2888 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">i32.shl</li>';
2889 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">input==-5945</li>';
2890 value+='<li style="list-style-type:none;">Q - Can the 1 bit removed during i32.shr_s be recovered by shifting left in the same session?</li>';
2891 value+='<li style="list-style-type:none;">A - No, numbers returned on right side are zeros</li>';
2892 value+='<li style="list-style-type:none;">1111 1111 1111 1111 1110 1000 1100 0111</li>';
2893 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">after applying i32.shr_s=2</li>';
2894 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">after applying i32.shl=2</li>';
2895 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">result is -5948 i32.clz=0 i32.ctz=2 i32.popcnt=23</li>';
2896 value+='<li style="list-style-type:none;">1111 1111 1111 1111 1110 1000 1100 0100</li>';
2897
2898 value+='<li>- - - - - - - - - - - - - - - - </li>';
2899 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">Ex. left shift followed by signed right shift resulting in negative number changing to positive number</li>';
2900 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">i32.shl</li>';
2901 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">i32.shr_s</li>';
2902 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">input==-5945</li>';
2903 value+='<li style="list-style-type:none;">1111 1111 1111 1111 1110 1000 1100 0111</li>';
2904 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">after applying i32.shl=19</li>';
2905 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">after applying i32.shr_s=2</li>';
2906 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">result is 294518784 i32.clz=3 i32.ctz=17 i32.popcnt=6</li>';
2907 value+='<li style="list-style-type:none;">0001 0001 1000 1110 0000 0000 0000 0000</li>';
2908
2909 value+='<li>- - - - - - - - - - - - - - - - </li>';
2910 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">Ex. signed right shift leading to a -1 value</li>';
2911 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">i32.shr_s</li>';
2912 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">input==-5945</li>';
2913 value+='<li style="list-style-type:none;">1111 1111 1111 1111 1110 1000 1100 0111</li>';
2914 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">after applying i32.shr_s=13</li>';
2915 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">result is -1 then i32.clz=0 i32.ctz=0 i32.popcnt=32</li>';
2916 value+='<li style="list-style-type:none;">1111 1111 1111 1111 1111 1111 1111 1111</li>';
2917
2918 value+='<li>- - - - - - - - - - - - - - - - </li>';
2919 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">Ex. signed right shift with a shift value exceeding natural length of bits (32)';
2920 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">i32.shr_s</li>';
2921 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">input==-5945</li>';
2922 value+='<li style="list-style-type:none;">1111 1111 1111 1111 1110 1000 1100 0111</li>';
2923 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">after applying i32.shr_s=33</li>';
2924 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">result is -2973 then i32.clz=0 i32.ctz=0 i32.popcnt=25</li>';
2925 value+='<li style="list-style-type:none;">1111 1111 1111 1111 1111 0100 0110 0011</li>';
2926
2927 value+='<li>- - - - - - - - - - - - - - - -</li>';
2928
2929 value+='</ul>';
2930
2931 break;
2932 case 68:
2933 value='';
2934 value+='<svg id="svg_clipboard_mod_title1" height="50" width="450" xmlns:xlink="http://www.w3.org/1999/xlink" class="clipboard_mod_title">';
2935 value+='<rect width="500" height="40" x="0" y="0" stroke="#000000" stroke-width="1" fill="#32323C"></rect>';
2936 value+='<text x="18" y="25" fill="#999999" stroke-width="0" style="font-size:20px;text-shadow:1px 1px 1px #101010;">Code module</text>';
2937 value+='</svg>';
2938
2939 value+='<div class="clickable" onclick="get_text_on_clipboard_client_side(\'clipboard_container1\')">[ copy module code to clipboard ]</div>';
2940 value+='<textarea cols="60" rows="5" id="clipboard_container1" class="clipboard_container">';
2941 value+="waX+=' '+'88'; asi[a()]='i64.shr_u'; asi[a()]+=' '; // [opcode]"+"\n";
2942 value+='</textarea>';
2943
2944 value+='<div class="clipboard_section_note">Note</div>';
2945 value+='<ul class="clipboard_section_note_ul">';
2946 value+='<li>2 on stack removed , result - farthest shifted right by nearest</li>';
2947 value+='<li>zero-replicating (logical) shift right</li>';
2948
2949 value+='<li style="list-style-type:none;"> </li>';
2950
2951 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;list-style-type:none;">i32.shr_u - when positive number, left side is padding with zeros (until 32 bit number maintained) when shift right is performed</li>';
2952
2953 value+='<li style="list-style-type:none;"> </li>';
2954
2955 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;list-style-type:none;">i32.shr_u - when negative number, left side is padding with zeros (until 32 bit number maintained) when shift right is performed</li>';
2956
2957 value+='<li style="list-style-type:none;"> </li>';
2958
2959 value+='<li>- - - - - - - - - - - - - - - -</li>';
2960 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">Ex. plain unsigned shift right</li>';
2961 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">i32.shr_u</li>';
2962 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">input==17</li>';
2963 value+='<li style="list-style-type:none;">0000 0000 0000 0000 0000 0000 0001 0001</li>';
2964 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">after applying i32.shr_u=2</li>';
2965 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">result is 4 then i32.clz=29 i32.ctz=2 i32.popcnt=1</li>';
2966 value+='<li style="list-style-type:none;">0000 0000 0000 0000 0000 0000 0000 0100</li>';
2967
2968 value+='<li>- - - - - - - - - - - - - - - - </li>';
2969 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">Ex. unsigned right shift followed by left shift</li>';
2970 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">i32.shr_u</li>';
2971 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">i32.shl</li>';
2972 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">input==17</li>';
2973 value+='<li style="list-style-type:none;">Q - Can the 1 bit removed during i32.shr_u be recovered by shifting left in the same session?</li>';
2974 value+='<li style="list-style-type:none;">A - No, numbers returned on right side are zeros</li>';
2975 value+='<li style="list-style-type:none;">0000 0000 0000 0000 0000 0000 0001 0001</li>';
2976 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">after applying i32.shr_u=2</li>';
2977 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">after applying i32.shl=2</li>';
2978 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">result is 16 i32.clz=27 i32.ctz=4 i32.popcnt=1</li>';
2979 value+='<li style="list-style-type:none;">0000 0000 0000 0000 0000 0000 0001 0000</li>';
2980
2981 value+='<li>- - - - - - - - - - - - - - - - </li>';
2982 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">Ex. unsigned right shift resulting in a zero value</li>';
2983 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">i32.shr_u</li>';
2984 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">input==17</li>';
2985 value+='<li style="list-style-type:none;">0000 0000 0000 0000 0000 0000 0001 0001</li>';
2986 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">after applying i32.shr_u=5</li>';
2987 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">result is 0 then i32.clz=32 i32.ctz=32 i32.popcnt=0</li>';
2988 value+='<li style="list-style-type:none;">0000 0000 0000 0000 0000 0000 0000 0000</li>';
2989
2990 value+='<li>- - - - - - - - - - - - - - - - </li>';
2991 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">Ex. unsigned right shift followed by signed right shift</li>';
2992 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">i32.shr_u</li>';
2993 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">i32.shr_s</li>';
2994 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">input==17</li>';
2995 value+='<li style="list-style-type:none;">0000 0000 0000 0000 0000 0000 0001 0001</li>';
2996 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">after applying i32.shr_u=2</li>';
2997 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">after applying i32.shr_s=2</li>';
2998 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">result is 1 then i32.clz=31 i32.ctz=0 i32.popcnt=1</li>';
2999 value+='<li style="list-style-type:none;">0000 0000 0000 0000 0000 0000 0000 0001</li>';
3000
3001 value+='<li>- - - - - - - - - - - - - - - - </li>';
3002 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">Ex. unsigned right shift with a shift value exceeding natural length of bits (32)</li>';
3003 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">i32.shr_u</li>';
3004 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">input==17</li>';
3005 value+='<li style="list-style-type:none;">0000 0000 0000 0000 0000 0000 0001 0001</li>';
3006 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">after applying i32.shr_u=33</li>';
3007 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">result is 8 then i32.clz=28 i32.ctz=3 i32.popcnt=1</li>';
3008 value+='<li style="list-style-type:none;">0000 0000 0000 0000 0000 0000 0000 1000</li>';
3009
3010 value+='<li>- - - - - - - - - - - - - - - - </li>';
3011 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">Ex. plain unsigned shift right</li>';
3012 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">i32.shr_u</li>';
3013 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">input==-5945</li>';
3014 value+='<li style="list-style-type:none;">1111 1111 1111 1111 1110 1000 1100 0111</li>';
3015 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">after applying i32.shr_u=4</li>';
3016 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">result is 268435084 then i32.clz=4 i32.ctz=2 i32.popcnt=22</li>';
3017 value+='<li style="list-style-type:none;">0000 1111 1111 1111 1111 1110 1000 1100</li>';
3018
3019 value+='<li>- - - - - - - - - - - - - - - - </li>';
3020 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">Ex. unsigned right shift followed by left shift</li>';
3021 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">i32.shr_u</li>';
3022 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">i32.shl</li>';
3023 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">input==-5945</li>';
3024 value+='<li style="list-style-type:none;">Q - Can the 1 bit removed during i32.shr_u be recovered by shifting left in the same session?</li>';
3025 value+='<li style="list-style-type:none;">A - No, numbers returned on right side are zeros</li>';
3026 value+='<li style="list-style-type:none;">Note: This negative number can be turned into a positive number</li>';
3027 value+='<li style="list-style-type:none;">1111 1111 1111 1111 1110 1000 1100 0111</li>';
3028 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">after applying i32.shr_u=4</li>';
3029 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">after applying i32.shl=2</li>';
3030 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">result is 1073740336 i32.clz=2 i32.ctz=4 i32.popcnt=22</li>';
3031 value+='<li style="list-style-type:none;">0011 1111 1111 1111 1111 1010 0011 0000</li>';
3032
3033 value+='<li>- - - - - - - - - - - - - - - - </li>';
3034 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">Ex. unsigned right shift resulting in a value of 1</li>';
3035 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">i32.shr_u</li>';
3036 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">input==-5945</li>';
3037 value+='<li style="list-style-type:none;">1111 1111 1111 1111 1110 1000 1100 0111</li>';
3038 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">after applying i32.shr_u=31</li>';
3039 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">result is 1 then i32.clz=31 i32.ctz=0 i32.popcnt=1</li>';
3040 value+='<li style="list-style-type:none;">0000 0000 0000 0000 0000 0000 0000 0001</li>';
3041
3042 value+='<li>- - - - - - - - - - - - - - - - </li>';
3043 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">Ex. signed right shift followed by unsigned right shift</li>';
3044 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">i32.shr_s</li>';
3045 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">i32.shr_u</li>';
3046 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">input==-5945</li>';
3047 value+='<li style="list-style-type:none;">1111 1111 1111 1111 1110 1000 1100 0111</li>';
3048 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">after applying i32.shr_s=2</li>';
3049 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">after applying i32.shr_u=2</li>';
3050 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">result is 1073741452 then i32.clz=2 i32.ctz=2 i32.popcnt=24</li>';
3051 value+='<li style="list-style-type:none;">0011 1111 1111 1111 1111 1110 1000 1100</li>';
3052
3053 value+='<li>- - - - - - - - - - - - - - - - </li>';
3054 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">Ex. unsigned right shift with a shift value exceeding natural length of bits (32)</li>';
3055 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">i32.shr_u</li>';
3056 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">input==-5945</li>';
3057 value+='<li style="list-style-type:none;">1111 1111 1111 1111 1110 1000 1100 0111</li>';
3058 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">after applying i32.shr_u=33</li>';
3059 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;">result is 2147480675 then i32.clz=1 i32.ctz=0 i32.popcnt=24</li>';
3060 value+='<li style="list-style-type:none;">0111 1111 1111 1111 1111 0100 0110 0011</li>';
3061
3062 value+='<li>- - - - - - - - - - - - - - - -</li>';
3063
3064 value+='</ul>';
3065 break;
3066 case 69:
3067 value='';
3068 value+='<svg id="svg_clipboard_mod_title1" height="50" width="450" xmlns:xlink="http://www.w3.org/1999/xlink" class="clipboard_mod_title">';
3069 value+='<rect width="500" height="40" x="0" y="0" stroke="#000000" stroke-width="1" fill="#32323C"></rect>';
3070 value+='<text x="18" y="25" fill="#999999" stroke-width="0" style="font-size:20px;text-shadow:1px 1px 1px #101010;">Code module</text>';
3071 value+='</svg>';
3072
3073 value+='<div class="clickable" onclick="get_text_on_clipboard_client_side(\'clipboard_container1\')">[ copy module code to clipboard ]</div>';
3074 value+='<textarea cols="60" rows="5" id="clipboard_container1" class="clipboard_container">';
3075 value+="waX+=' '+'89'; asi[a()]='i64.rotl'; asi[a()]+=' '; // [opcode]"+"\n";
3076 value+='</textarea>';
3077
3078 value+='<div class="clipboard_section_note">Note</div>';
3079 value+='<ul class="clipboard_section_note_ul">';
3080 value+='<li>2 on stack removed (farthest rotated left by nearest) , result - sign-agnostic rotate left</li>';
3081 value+='<li>sign-agnostic rotate left</li>';
3082 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">When input==1</li>';
3083 value+='<li>0000 0000 0000 0000 0000 0000 0000 0001</li>';
3084 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=31 i32.ctz=0 when i32.rotl=32</li>';
3085 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=31 when i32.rotl=31</li>';
3086 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=1 i32.ctz=30 when i32.rotl=30</li>';
3087 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=2 i32.ctz=29 when i32.rotl=29</li>';
3088 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=3 i32.ctz=28 when i32.rotl=28</li>';
3089 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=4 i32.ctz=27 when i32.rotl=27</li>';
3090 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=5 i32.ctz=26 when i32.rotl=26</li>';
3091 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=6 i32.ctz=25 when i32.rotl=25</li>';
3092 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=7 i32.ctz=24 when i32.rotl=24</li>';
3093 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=8 i32.ctz=23 when i32.rotl=23</li>';
3094 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=9 i32.ctz=22 when i32.rotl=22</li>';
3095 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=10 i32.ctz=21 when i32.rotl=21</li>';
3096 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=11 i32.ctz=20 when i32.rotl=20</li>';
3097 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=12 i32.ctz=19 when i32.rotl=19</li>';
3098 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=13 i32.ctz=18 when i32.rotl=18</li>';
3099 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=14 i32.ctz=17 when i32.rotl=17</li>';
3100 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=15 i32.ctz=16 when i32.rotl=16</li>';
3101 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=16 i32.ctz=15 when i32.rotl=15</li>';
3102 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=17 i32.ctz=14 when i32.rotl=14</li>';
3103 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=18 i32.ctz=13 when i32.rotl=13</li>';
3104 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=19 i32.ctz=12 when i32.rotl=12</li>';
3105 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=20 i32.ctz=11 when i32.rotl=11</li>';
3106 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=21 i32.ctz=10 when i32.rotl=10</li>';
3107 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=22 i32.ctz=9 when i32.rotl=9</li>';
3108 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=23 i32.ctz=8 when i32.rotl=8</li>';
3109 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=24 i32.ctz=7 when i32.rotl=7</li>';
3110 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=25 i32.ctz=6 when i32.rotl=6</li>';
3111 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=26 i32.ctz=5 when i32.rotl=5</li>';
3112 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=27 i32.ctz=4 when i32.rotl=4</li>';
3113 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=28 i32.ctz=3 when i32.rotl=3</li>';
3114 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=29 i32.ctz=2 when i32.rotl=2</li>';
3115 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=30 i32.ctz=1 when i32.rotl=1</li>';
3116 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=31 i32.ctz=0 when i32.rotl=0</li>';
3117 value+='<li>0000 0000 0000 0000 0000 0000 0000 0001</li>';
3118 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">When input==1</li>';
3119 value+='<li>0000 0000 0000 0000 0000 0000 0000 0001</li>';
3120 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=31 i32.ctz=0 when i32.rotl=64</li>';
3121 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=31 when i32.rotl=63</li>';
3122 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=1 i32.ctz=30 when i32.rotl=62</li>';
3123 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=2 i32.ctz=29 when i32.rotl=61</li>';
3124 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=3 i32.ctz=28 when i32.rotl=60</li>';
3125 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=4 i32.ctz=27 when i32.rotl=59</li>';
3126 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=5 i32.ctz=26 when i32.rotl=58</li>';
3127 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=6 i32.ctz=25 when i32.rotl=57</li>';
3128 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=7 i32.ctz=24 when i32.rotl=56</li>';
3129 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=8 i32.ctz=23 when i32.rotl=55</li>';
3130 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=9 i32.ctz=22 when i32.rotl=54</li>';
3131 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=10 i32.ctz=21 when i32.rotl=53</li>';
3132 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=11 i32.ctz=20 when i32.rotl=52</li>';
3133 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=12 i32.ctz=19 when i32.rotl=51</li>';
3134 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=13 i32.ctz=18 when i32.rotl=50</li>';
3135 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=14 i32.ctz=17 when i32.rotl=49</li>';
3136 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=15 i32.ctz=16 when i32.rotl=48</li>';
3137 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=16 i32.ctz=15 when i32.rotl=47</li>';
3138 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=17 i32.ctz=14 when i32.rotl=46</li>';
3139 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=18 i32.ctz=13 when i32.rotl=45</li>';
3140 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=19 i32.ctz=12 when i32.rotl=44</li>';
3141 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=20 i32.ctz=11 when i32.rotl=43</li>';
3142 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=21 i32.ctz=10 when i32.rotl=42</li>';
3143 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=22 i32.ctz=9 when i32.rotl=41</li>';
3144 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=23 i32.ctz=8 when i32.rotl=40</li>';
3145 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=24 i32.ctz=7 when i32.rotl=39</li>';
3146 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=25 i32.ctz=6 when i32.rotl=38</li>';
3147 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=26 i32.ctz=5 when i32.rotl=37</li>';
3148 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=27 i32.ctz=4 when i32.rotl=36</li>';
3149 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=28 i32.ctz=3 when i32.rotl=35</li>';
3150 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=29 i32.ctz=2 when i32.rotl=34</li>';
3151 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=30 i32.ctz=1 when i32.rotl=33</li>';
3152 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=31 i32.ctz=0 when i32.rotl=32</li>';
3153 value+='<li>0000 0000 0000 0000 0000 0000 0000 0001</li>';
3154 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">When input==-7</li>';
3155 value+='<li>1111 1111 1111 1111 1111 1111 1111 1001</li>';
3156 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=32</li>';
3157 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=2 when i32.rotl=31</li>';
3158 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=1 i32.ctz=1 when i32.rotl=30</li>';
3159 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=2 i32.ctz=0 when i32.rotl=29</li>';
3160 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=28</li>';
3161 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=27</li>';
3162 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=26</li>';
3163 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=25</li>';
3164 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=24</li>';
3165 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=23</li>';
3166 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=22</li>';
3167 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=21</li>';
3168 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=20</li>';
3169 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=19</li>';
3170 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=18</li>';
3171 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=17</li>';
3172 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=16</li>';
3173 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=15</li>';
3174 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=14</li>';
3175 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=13</li>';
3176 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=12</li>';
3177 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=11</li>';
3178 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=10</li>';
3179 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=9</li>';
3180 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=8</li>';
3181 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=7</li>';
3182 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=6</li>';
3183 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=5</li>';
3184 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=4</li>';
3185 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=3</li>';
3186 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=2</li>';
3187 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=1</li>';
3188 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=0</li>';
3189 value+='<li>1111 1111 1111 1111 1111 1111 1111 1001</li>';
3190 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">When input==-7</li>';
3191 value+='<li>1111 1111 1111 1111 1111 1111 1111 1001</li>';
3192 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=64</li>';
3193 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=2 when i32.rotl=63</li>';
3194 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=1 i32.ctz=1 when i32.rotl=62</li>';
3195 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=2 i32.ctz=0 when i32.rotl=61</li>';
3196 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=60</li>';
3197 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=59</li>';
3198 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=58</li>';
3199 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=57</li>';
3200 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=56</li>';
3201 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=55</li>';
3202 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=54</li>';
3203 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=53</li>';
3204 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=52</li>';
3205 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=51</li>';
3206 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=50</li>';
3207 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=49</li>';
3208 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=48</li>';
3209 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=47</li>';
3210 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=46</li>';
3211 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=45</li>';
3212 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=44</li>';
3213 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=43</li>';
3214 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=42</li>';
3215 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=41</li>';
3216 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=40</li>';
3217 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=39</li>';
3218 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=38</li>';
3219 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=37</li>';
3220 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=36</li>';
3221 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=35</li>';
3222 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=34</li>';
3223 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=33</li>';
3224 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=32</li>';
3225 value+='<li>1111 1111 1111 1111 1111 1111 1111 1001</li>';
3226 value+='</ul>';
3227 break;
3228 case 70:
3229 value='';
3230 value+='<svg id="svg_clipboard_mod_title1" height="50" width="450" xmlns:xlink="http://www.w3.org/1999/xlink" class="clipboard_mod_title">';
3231 value+='<rect width="500" height="40" x="0" y="0" stroke="#000000" stroke-width="1" fill="#32323C"></rect>';
3232 value+='<text x="18" y="25" fill="#999999" stroke-width="0" style="font-size:20px;text-shadow:1px 1px 1px #101010;">Code module</text>';
3233 value+='</svg>';
3234
3235 value+='<div class="clickable" onclick="get_text_on_clipboard_client_side(\'clipboard_container1\')">[ copy module code to clipboard ]</div>';
3236 value+='<textarea cols="60" rows="5" id="clipboard_container1" class="clipboard_container">';
3237 value+="waX+=' '+'89'; asi[a()]='i64.rotl'; asi[a()]+=' '; // [opcode]"+"\n";
3238 value+='</textarea>';
3239
3240 value+='<div class="clipboard_section_note">Note</div>';
3241 value+='<ul class="clipboard_section_note_ul">';
3242 value+='<li>2 on stack removed (farthest rotated left by nearest) , result - sign-agnostic rotate left</li>';
3243 value+='<li>sign-agnostic rotate left</li>';
3244 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">When input==1</li>';
3245 value+='<li>0000 0000 0000 0000 0000 0000 0000 0001</li>';
3246 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=31 i32.ctz=0 when i32.rotl=32</li>';
3247 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=31 when i32.rotl=31</li>';
3248 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=1 i32.ctz=30 when i32.rotl=30</li>';
3249 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=2 i32.ctz=29 when i32.rotl=29</li>';
3250 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=3 i32.ctz=28 when i32.rotl=28</li>';
3251 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=4 i32.ctz=27 when i32.rotl=27</li>';
3252 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=5 i32.ctz=26 when i32.rotl=26</li>';
3253 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=6 i32.ctz=25 when i32.rotl=25</li>';
3254 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=7 i32.ctz=24 when i32.rotl=24</li>';
3255 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=8 i32.ctz=23 when i32.rotl=23</li>';
3256 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=9 i32.ctz=22 when i32.rotl=22</li>';
3257 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=10 i32.ctz=21 when i32.rotl=21</li>';
3258 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=11 i32.ctz=20 when i32.rotl=20</li>';
3259 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=12 i32.ctz=19 when i32.rotl=19</li>';
3260 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=13 i32.ctz=18 when i32.rotl=18</li>';
3261 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=14 i32.ctz=17 when i32.rotl=17</li>';
3262 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=15 i32.ctz=16 when i32.rotl=16</li>';
3263 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=16 i32.ctz=15 when i32.rotl=15</li>';
3264 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=17 i32.ctz=14 when i32.rotl=14</li>';
3265 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=18 i32.ctz=13 when i32.rotl=13</li>';
3266 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=19 i32.ctz=12 when i32.rotl=12</li>';
3267 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=20 i32.ctz=11 when i32.rotl=11</li>';
3268 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=21 i32.ctz=10 when i32.rotl=10</li>';
3269 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=22 i32.ctz=9 when i32.rotl=9</li>';
3270 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=23 i32.ctz=8 when i32.rotl=8</li>';
3271 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=24 i32.ctz=7 when i32.rotl=7</li>';
3272 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=25 i32.ctz=6 when i32.rotl=6</li>';
3273 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=26 i32.ctz=5 when i32.rotl=5</li>';
3274 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=27 i32.ctz=4 when i32.rotl=4</li>';
3275 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=28 i32.ctz=3 when i32.rotl=3</li>';
3276 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=29 i32.ctz=2 when i32.rotl=2</li>';
3277 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=30 i32.ctz=1 when i32.rotl=1</li>';
3278 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=31 i32.ctz=0 when i32.rotl=0</li>';
3279 value+='<li>0000 0000 0000 0000 0000 0000 0000 0001</li>';
3280 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">When input==1</li>';
3281 value+='<li>0000 0000 0000 0000 0000 0000 0000 0001</li>';
3282 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=31 i32.ctz=0 when i32.rotl=64</li>';
3283 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=31 when i32.rotl=63</li>';
3284 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=1 i32.ctz=30 when i32.rotl=62</li>';
3285 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=2 i32.ctz=29 when i32.rotl=61</li>';
3286 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=3 i32.ctz=28 when i32.rotl=60</li>';
3287 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=4 i32.ctz=27 when i32.rotl=59</li>';
3288 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=5 i32.ctz=26 when i32.rotl=58</li>';
3289 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=6 i32.ctz=25 when i32.rotl=57</li>';
3290 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=7 i32.ctz=24 when i32.rotl=56</li>';
3291 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=8 i32.ctz=23 when i32.rotl=55</li>';
3292 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=9 i32.ctz=22 when i32.rotl=54</li>';
3293 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=10 i32.ctz=21 when i32.rotl=53</li>';
3294 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=11 i32.ctz=20 when i32.rotl=52</li>';
3295 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=12 i32.ctz=19 when i32.rotl=51</li>';
3296 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=13 i32.ctz=18 when i32.rotl=50</li>';
3297 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=14 i32.ctz=17 when i32.rotl=49</li>';
3298 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=15 i32.ctz=16 when i32.rotl=48</li>';
3299 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=16 i32.ctz=15 when i32.rotl=47</li>';
3300 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=17 i32.ctz=14 when i32.rotl=46</li>';
3301 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=18 i32.ctz=13 when i32.rotl=45</li>';
3302 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=19 i32.ctz=12 when i32.rotl=44</li>';
3303 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=20 i32.ctz=11 when i32.rotl=43</li>';
3304 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=21 i32.ctz=10 when i32.rotl=42</li>';
3305 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=22 i32.ctz=9 when i32.rotl=41</li>';
3306 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=23 i32.ctz=8 when i32.rotl=40</li>';
3307 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=24 i32.ctz=7 when i32.rotl=39</li>';
3308 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=25 i32.ctz=6 when i32.rotl=38</li>';
3309 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=26 i32.ctz=5 when i32.rotl=37</li>';
3310 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=27 i32.ctz=4 when i32.rotl=36</li>';
3311 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=28 i32.ctz=3 when i32.rotl=35</li>';
3312 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=29 i32.ctz=2 when i32.rotl=34</li>';
3313 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=30 i32.ctz=1 when i32.rotl=33</li>';
3314 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=31 i32.ctz=0 when i32.rotl=32</li>';
3315 value+='<li>0000 0000 0000 0000 0000 0000 0000 0001</li>';
3316 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">When input==-7</li>';
3317 value+='<li>1111 1111 1111 1111 1111 1111 1111 1001</li>';
3318 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=32</li>';
3319 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=2 when i32.rotl=31</li>';
3320 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=1 i32.ctz=1 when i32.rotl=30</li>';
3321 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=2 i32.ctz=0 when i32.rotl=29</li>';
3322 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=28</li>';
3323 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=27</li>';
3324 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=26</li>';
3325 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=25</li>';
3326 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=24</li>';
3327 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=23</li>';
3328 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=22</li>';
3329 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=21</li>';
3330 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=20</li>';
3331 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=19</li>';
3332 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=18</li>';
3333 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=17</li>';
3334 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=16</li>';
3335 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=15</li>';
3336 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=14</li>';
3337 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=13</li>';
3338 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=12</li>';
3339 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=11</li>';
3340 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=10</li>';
3341 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=9</li>';
3342 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=8</li>';
3343 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=7</li>';
3344 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=6</li>';
3345 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=5</li>';
3346 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=4</li>';
3347 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=3</li>';
3348 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=2</li>';
3349 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=1</li>';
3350 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=0</li>';
3351 value+='<li>1111 1111 1111 1111 1111 1111 1111 1001</li>';
3352 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">When input==-7</li>';
3353 value+='<li>1111 1111 1111 1111 1111 1111 1111 1001</li>';
3354 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=64</li>';
3355 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=2 when i32.rotl=63</li>';
3356 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=1 i32.ctz=1 when i32.rotl=62</li>';
3357 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=2 i32.ctz=0 when i32.rotl=61</li>';
3358 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=60</li>';
3359 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=59</li>';
3360 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=58</li>';
3361 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=57</li>';
3362 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=56</li>';
3363 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=55</li>';
3364 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=54</li>';
3365 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=53</li>';
3366 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=52</li>';
3367 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=51</li>';
3368 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=50</li>';
3369 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=49</li>';
3370 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=48</li>';
3371 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=47</li>';
3372 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=46</li>';
3373 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=45</li>';
3374 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=44</li>';
3375 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=43</li>';
3376 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=42</li>';
3377 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=41</li>';
3378 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=40</li>';
3379 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=39</li>';
3380 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=38</li>';
3381 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=37</li>';
3382 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=36</li>';
3383 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=35</li>';
3384 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=34</li>';
3385 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=33</li>';
3386 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotl=32</li>';
3387 value+='<li>1111 1111 1111 1111 1111 1111 1111 1001</li>';
3388 value+='</ul>';
3389 break;
3390 case 71:
3391 value='';
3392 value+='<svg id="svg_clipboard_mod_title1" height="50" width="450" xmlns:xlink="http://www.w3.org/1999/xlink" class="clipboard_mod_title">';
3393 value+='<rect width="500" height="40" x="0" y="0" stroke="#000000" stroke-width="1" fill="#32323C"></rect>';
3394 value+='<text x="18" y="25" fill="#999999" stroke-width="0" style="font-size:20px;text-shadow:1px 1px 1px #101010;">Code module</text>';
3395 value+='</svg>';
3396
3397 value+='<div class="clickable" onclick="get_text_on_clipboard_client_side(\'clipboard_container1\')">[ copy module code to clipboard ]</div>';
3398 value+='<textarea cols="60" rows="5" id="clipboard_container1" class="clipboard_container">';
3399 value+="waX+=' '+'8a'; asi[a()]='i64.rotr'; asi[a()]+=' '; // [opcode]"+"\n";
3400 value+='</textarea>';
3401
3402 value+='<div class="clipboard_section_note">Note</div>';
3403 value+='<ul class="clipboard_section_note_ul">';
3404 value+='<li>2 on stack removed (farthest rotated right by nearest), result - sign-agnostic rotate right</li>';
3405 value+='<li>sign-agnostic rotate right</li>';
3406 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">When input==1</li>';
3407 value+='<li>0000 0000 0000 0000 0000 0000 0000 0001</li>';
3408 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=31 i32.ctz=0 when i32.rotr=32</li>';
3409 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=30 i32.ctz=1 when i32.rotr=31</li>';
3410 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=29 i32.ctz=2 when i32.rotr=30</li>';
3411 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=28 i32.ctz=3 when i32.rotr=29</li>';
3412 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=27 i32.ctz=4 when i32.rotr=28</li>';
3413 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=26 i32.ctz=5 when i32.rotr=27</li>';
3414 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=25 i32.ctz=6 when i32.rotr=26</li>';
3415 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=24 i32.ctz=7 when i32.rotr=25</li>';
3416 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=23 i32.ctz=8 when i32.rotr=24</li>';
3417 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=22 i32.ctz=9 when i32.rotr=23</li>';
3418 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=21 i32.ctz=10 when i32.rotr=22</li>';
3419 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=20 i32.ctz=11 when i32.rotr=21</li>';
3420 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=19 i32.ctz=12 when i32.rotr=20</li>';
3421 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=18 i32.ctz=13 when i32.rotr=19</li>';
3422 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=17 i32.ctz=14 when i32.rotr=18</li>';
3423 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=16 i32.ctz=15 when i32.rotr=17</li>';
3424 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=15 i32.ctz=16 when i32.rotr=16</li>';
3425 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=14 i32.ctz=17 when i32.rotr=15</li>';
3426 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=13 i32.ctz=18 when i32.rotr=14</li>';
3427 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=12 i32.ctz=19 when i32.rotr=13</li>';
3428 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=11 i32.ctz=20 when i32.rotr=12</li>';
3429 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=10 i32.ctz=21 when i32.rotr=11</li>';
3430 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=9 i32.ctz=22 when i32.rotr=10</li>';
3431 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=8 i32.ctz=23 when i32.rotr=9</li>';
3432 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=7 i32.ctz=24 when i32.rotr=8</li>';
3433 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=6 i32.ctz=25 when i32.rotr=7</li>';
3434 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=5 i32.ctz=26 when i32.rotr=6</li>';
3435 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=4 i32.ctz=27 when i32.rotr=5</li>';
3436 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=3 i32.ctz=28 when i32.rotr=4</li>';
3437 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=2 i32.ctz=29 when i32.rotr=3</li>';
3438 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=1 i32.ctz=30 when i32.rotr=2</li>';
3439 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=31 when i32.rotr=1</li>';
3440 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=31 i32.ctz=0 when i32.rotr=0</li>';
3441 value+='<li>0000 0000 0000 0000 0000 0000 0000 0001</li>';
3442 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">When input==1</li>';
3443 value+='<li>0000 0000 0000 0000 0000 0000 0000 0001</li>';
3444 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=31 i32.ctz=0 when i32.rotl=64</li>';
3445 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=30 i32.ctz=1 when i32.rotl=63</li>';
3446 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=29 i32.ctz=2 when i32.rotl=62</li>';
3447 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=28 i32.ctz=3 when i32.rotl=61</li>';
3448 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=27 i32.ctz=4 when i32.rotl=60</li>';
3449 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=26 i32.ctz=5 when i32.rotl=59</li>';
3450 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=25 i32.ctz=6 when i32.rotl=58</li>';
3451 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=24 i32.ctz=7 when i32.rotl=57</li>';
3452 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=23 i32.ctz=8 when i32.rotl=56</li>';
3453 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=22 i32.ctz=9 when i32.rotl=55</li>';
3454 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=21 i32.ctz=10 when i32.rotl=54</li>';
3455 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=20 i32.ctz=11 when i32.rotl=53</li>';
3456 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=19 i32.ctz=12 when i32.rotl=52</li>';
3457 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=18 i32.ctz=13 when i32.rotl=51</li>';
3458 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=17 i32.ctz=14 when i32.rotl=50</li>';
3459 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=16 i32.ctz=15 when i32.rotl=49</li>';
3460 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=15 i32.ctz=16 when i32.rotl=48</li>';
3461 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=14 i32.ctz=17 when i32.rotl=47</li>';
3462 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=13 i32.ctz=18 when i32.rotl=46</li>';
3463 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=12 i32.ctz=19 when i32.rotl=45</li>';
3464 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=11 i32.ctz=20 when i32.rotl=44</li>';
3465 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=10 i32.ctz=21 when i32.rotl=43</li>';
3466 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=9 i32.ctz=22 when i32.rotl=42</li>';
3467 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=8 i32.ctz=23 when i32.rotl=41</li>';
3468 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=7 i32.ctz=24 when i32.rotl=40</li>';
3469 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=6 i32.ctz=25 when i32.rotl=39</li>';
3470 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=5 i32.ctz=26 when i32.rotl=38</li>';
3471 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=4 i32.ctz=27 when i32.rotl=37</li>';
3472 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=3 i32.ctz=28 when i32.rotl=36</li>';
3473 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=2 i32.ctz=29 when i32.rotl=35</li>';
3474 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=1 i32.ctz=30 when i32.rotl=34</li>';
3475 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=31 when i32.rotl=33</li>';
3476 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=31 i32.ctz=0 when i32.rotl=32</li>';
3477 value+='<li>0000 0000 0000 0000 0000 0000 0000 0001</li>';
3478 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">When input==-7</li>';
3479 value+='<li>1111 1111 1111 1111 1111 1111 1111 1001</li>';
3480 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=32</li>';
3481 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=31</li>';
3482 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=30</li>';
3483 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=29</li>';
3484 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=28</li>';
3485 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=27</li>';
3486 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=26</li>';
3487 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=25</li>';
3488 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=24</li>';
3489 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=23</li>';
3490 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=22</li>';
3491 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=21</li>';
3492 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=20</li>';
3493 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=19</li>';
3494 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=18</li>';
3495 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=17</li>';
3496 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=16</li>';
3497 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=15</li>';
3498 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=14</li>';
3499 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=13</li>';
3500 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=12</li>';
3501 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=11</li>';
3502 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=10</li>';
3503 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=9</li>';
3504 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=8</li>';
3505 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=7</li>';
3506 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=6</li>';
3507 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=5</li>';
3508 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=4</li>';
3509 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=2 i32.ctz=0 when i32.rotr=3</li>';
3510 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=1 i32.ctz=1 when i32.rotr=2</li>';
3511 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=2 when i32.rotr=1</li>';
3512 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=0</li>';
3513 value+='<li>1111 1111 1111 1111 1111 1111 1111 1001</li>';
3514 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">When input==-7</li>';
3515 value+='<li>1111 1111 1111 1111 1111 1111 1111 1001</li>';
3516 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=64</li>';
3517 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=63</li>';
3518 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=62</li>';
3519 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=61</li>';
3520 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=60</li>';
3521 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=59</li>';
3522 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=58</li>';
3523 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=57</li>';
3524 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=56</li>';
3525 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=55</li>';
3526 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=54</li>';
3527 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=53</li>';
3528 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=52</li>';
3529 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=51</li>';
3530 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=50</li>';
3531 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=49</li>';
3532 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=48</li>';
3533 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=47</li>';
3534 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=46</li>';
3535 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=45</li>';
3536 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=44</li>';
3537 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=43</li>';
3538 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=42</li>';
3539 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=41</li>';
3540 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=40</li>';
3541 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=39</li>';
3542 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=38</li>';
3543 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=37</li>';
3544 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=36</li>';
3545 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=2 i32.ctz=0 when i32.rotr=35</li>';
3546 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=1 i32.ctz=1 when i32.rotr=34</li>';
3547 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=2 when i32.rotr=33</li>';
3548 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">i32.clz=0 i32.ctz=0 when i32.rotr=32</li>';
3549 value+='<li>1111 1111 1111 1111 1111 1111 1111 1001</li>';
3550 value+='</ul>';
3551 break;
3552 case 72:
3553 value='';
3554 value+='<svg id="svg_clipboard_mod_title1" height="50" width="450" xmlns:xlink="http://www.w3.org/1999/xlink" class="clipboard_mod_title">';
3555 value+='<rect width="500" height="40" x="0" y="0" stroke="#000000" stroke-width="1" fill="#32323C"></rect>';
3556 value+='<text x="18" y="25" fill="#999999" stroke-width="0" style="font-size:20px;text-shadow:1px 1px 1px #101010;">Code module</text>';
3557 value+='</svg>';
3558
3559 value+='<div class="clickable" onclick="get_text_on_clipboard_client_side(\'clipboard_container1\')">[ copy module code to clipboard ]</div>';
3560 value+='<textarea cols="60" rows="5" id="clipboard_container1" class="clipboard_container">';
3561 value+="waX+=' '+'82'; asi[a()]='i64.rem_u'; asi[a()]+=' '; // [opcode]"+"\n";
3562 value+='</textarea>';
3563
3564 value+='<div class="clipboard_section_note">Note</div>';
3565 value+='<ul class="clipboard_section_note_ul">';
3566 value+='<li>2 on stack removed , result - value as remainder of division</li>';
3567 value+='<li>unsigned remainder</li>';
3568 value+='</ul>';
3569 break;
3570 case 73:
3571 value='';
3572 value+='<svg id="svg_clipboard_mod_title1" height="50" width="450" xmlns:xlink="http://www.w3.org/1999/xlink" class="clipboard_mod_title">';
3573 value+='<rect width="500" height="40" x="0" y="0" stroke="#000000" stroke-width="1" fill="#32323C"></rect>';
3574 value+='<text x="18" y="25" fill="#999999" stroke-width="0" style="font-size:20px;text-shadow:1px 1px 1px #101010;">Code module</text>';
3575 value+='</svg>';
3576
3577 value+='<div class="clickable" onclick="get_text_on_clipboard_client_side(\'clipboard_container1\')">[ copy module code to clipboard ]</div>';
3578 value+='<textarea cols="60" rows="5" id="clipboard_container1" class="clipboard_container">';
3579 value+="waX+=' '+'81'; asi[a()]='i64.rem_s'; asi[a()]+=' '; // [opcode]"+"\n";
3580 value+='</textarea>';
3581
3582 value+='<div class="clipboard_section_note">Note</div>';
3583 value+='<ul class="clipboard_section_note_ul">';
3584 value+='<li>2 on stack removed , result - value as remainder of division</li>';
3585 value+='<li>farthest is divided by nearest, <b>dividend</b>=farthest</li>';
3586 value+='<li>signed remainder (result has the sign of the <b>dividend</b>)</li>';
3587
3588 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">~ ex. of i32.rem_s being applied like modulus</li>';
3589 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;"> 7 i32.rem_s2 = 1 as result (ex. odd row in looping recordset)</li>';
3590 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;"> 8 i32.rem_s2 = 0 as result (ex. even row in looping recordset)</li>';
3591
3592 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">~ ex. result does not inherit sign of dividend when i32.rem_s result is 0</li>';
3593 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;"> -1 i32.rem_s 1 =0 as result</li>';
3594 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;"> 1 i32.rem_s -1 =0 as result</li>';
3595 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;"> -6 i32.rem_s 2 =0 as result</li>';
3596 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;"> -6 i32.rem_s -2 =0 as result</li>';
3597
3598 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">~ ex. when first division of numbers results in a number containing a decimal point ~ then result is a duplicate of dividend and has sign of dividend</li>';
3599 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;"> (does not look like a remainder is given since division was not possible with a whole number as a result)</li>';
3600 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;"> -1 i32.rem_s 2 = -1 as result</li>';
3601 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;"> 1 i32.rem_s -6 = 1 as result</li>';
3602 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;"> 1 i32.rem_s -2 = 1 as result</li>';
3603 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;"> -1 i32.rem_s 6 = -1 as result</li>';
3604 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;"> -4 i32.rem_s -6 = -4 as result</li>';
3605 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;"> -4 i32.rem_s 6 = -4 as result</li>';
3606
3607 value+='<li style="color:#ffffee;font-weight:bold;font-size:14px;">~ ex. when first division (and any subsequent division) of numbers results in a whole number ~ then result is a remainder and has sign of dividend</li>';
3608 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;"> -7 i32.rem_s -6 = -1 as result</li>';
3609 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;"> -7 i32.rem_s -5 = -2 as result</li>';
3610 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;"> -7 i32.rem_s -4 = -3 as result</li>';
3611 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;"> -7 i32.rem_s -3 = -1 as result</li>';
3612 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;"> -7 i32.rem_s -2 = -1 as result</li>';
3613 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;"> 7 i32.rem_s -6 = 1 as result</li>';
3614 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;"> 7 i32.rem_s -5 = 2 as result</li>';
3615 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;"> 7 i32.rem_s -4 = 3 as result</li>';
3616 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;"> 7 i32.rem_s -3 = 1 as result</li>';
3617 value+='<li style="color:#ffffee;font-size:14px;list-style-type:none;"> 7 i32.rem_s -2 = 1 as result</li>';
3618
3619 value+='</ul>';
3620 break;
3621 case 74:
3622 value='';
3623 value+='<svg id="svg_clipboard_mod_title1" height="50" width="450" xmlns:xlink="http://www.w3.org/1999/xlink" class="clipboard_mod_title">';
3624 value+='<rect width="500" height="40" x="0" y="0" stroke="#000000" stroke-width="1" fill="#32323C"></rect>';
3625 value+='<text x="18" y="25" fill="#999999" stroke-width="0" style="font-size:20px;text-shadow:1px 1px 1px #101010;">Code module</text>';
3626 value+='</svg>';
3627
3628 value+='<div class="clickable" onclick="get_text_on_clipboard_client_side(\'clipboard_container1\')">[ copy module code to clipboard ]</div>';
3629 value+='<textarea cols="60" rows="5" id="clipboard_container1" class="clipboard_container">';
3630 value+="waX+=' '+'48'; asi[a()]='i32.lt_s'; asi[a()]+=' '; // [opcode]"+"\n";
3631 value+='</textarea>';
3632
3633 value+='<div class="clipboard_section_note">Note</div>';
3634 value+='<ul class="clipboard_section_note_ul">';
3635 value+='<li>2 on stack removed - is farthest < nearest, result 1 or 0 added to stack</li>';
3636 value+='<li>unsigned less than</li>';
3637 value+='</ul>';
3638 break;
3639 default:
3640 break;
3641 }
3642 document.getElementById('copy_paste_block').innerHTML=value;
3643}
3644</script>
3645<title>Binary Blocks</title>
3646<style>
3647body {background-color:#32323C;color:#c0c0c0;font-family:Arial;}
3648#copy_paste_block {padding-left:20px;}
3649.block {background-color:#000000;min-width:600px;min-height:725px;width:600px;height:725px;max-width:600px;max-height:725px;float:left;overflow:scroll;}
3650/*.wide_block {background-color:#000000;min-width:1200px;min-height:525px;width:1200px;height:525px;max-width:1200px;max-height:525px;float:left;overflow:scroll;}*/
3651.clickable {color:#ccff33;cursor:pointer;}
3652.clipboard_mod_title {background-color:#000000;margin-top:10px;}
3653.clipboard_option_title {color:#b3e0ff;line-height:40px;}
3654.clipboard_container {background-color:#101010;color:#ffffff;border:none;margin-top:10px;margin-bottom:30px;min-width:460px;width:460px;max-width:460px;}
3655.clipboard_section_note {color:#b3e0ff;margin-top:20px;}
3656.clipboard_section_note_ul {color:#ffffff;font-size:10px;line-height:24px;margin-bottom:50px;}
3657</style>
3658<body>
3659 <div>
3660 <div>
3661 <div class="block" style="padding-left:20px;">
3662 <div style="margin-top:20px;line-height:40px;">
3663<!-- <hr>
3664 <div class="clickable" onclick="during_wasm_execution(5)">Create Global within Wasm</div>
3665 <div class="clickable" onclick="during_wasm_execution(12)">Call function within Wasm</div>
3666 <hr>
3667 Create Data Module memory entry
3668 <hr>-->
3669 <script>
3670 function neon_highlight_changed(id) {
3671 if (window.neon_highlight!='') {
3672 // remove historic highlight from window.x element
3673 var element=document.getElementById(window.neon_highlight);
3674 element.setAttribute('stroke-width',1);
3675 }
3676 // highlight the calling id element
3677 var element=document.getElementById(id);
3678 element.setAttribute('stroke-width',3);
3679 // store newest highlight as historic highlight in window.x element
3680 window.neon_highlight=id;
3681 }
3682 </script>
3683
3684 <br>
3685 <meter min="0" max="100" low="25" high="75" optimum="100" value="25" style="margin-left:18px;margin-right:35px;width:530px;"></meter>
3686 <br>
3687
3688 <svg id="svg_container_numeric_operators" height="1100" width="580" xmlns:xlink="http://www.w3.org/1999/xlink"
3689 style="background-color:#000000;margin-top:10px;font-size:16px;">
3690 <rect width="550" height="40" x="0" y="0" stroke="#000000" stroke-width="1" fill="#101010"></rect>
3691 <text x="18" y="25" fill="#ccff99" stroke-width="0" style="font-size:20px;">Numeric Operators</text>
3692 <g>
3693 <line id="numeric_operators_highlight_1" x1="100" y1="80" x2="100" y2="44" stroke-width="1" stroke="#b3e0ff"></line>
3694 <text x="80" y="100" fill="#ccff33" stroke-width="0" class="clickable" onclick="during_wasm_execution(26),neon_highlight_changed('numeric_operators_highlight_1')">i32.clz</text>
3695 <line id="numeric_operators_highlight_2" x1="220" y1="80" x2="220" y2="44" stroke-width="1" stroke="#b3e0ff"></line>
3696 <text x="200" y="100" fill="#ccff33" stroke-width="0" class="clickable" onclick="during_wasm_execution(27),neon_highlight_changed('numeric_operators_highlight_2')">i32.ctz</text>
3697 <line id="numeric_operators_highlight_3" x1="340" y1="80" x2="340" y2="44" stroke-width="1" stroke="#b3e0ff"></line>
3698 <text x="320" y="100" fill="#ccff33" stroke-width="0" class="clickable" onclick="during_wasm_execution(28),neon_highlight_changed('numeric_operators_highlight_3')">i32.popcnt</text>
3699 <line id="numeric_operators_highlight_4" x1="460" y1="80" x2="460" y2="44" stroke-width="1" stroke="#b3e0ff"></line>
3700 <text x="440" y="100" fill="#ccff33" stroke-width="0" class="clickable" onclick="during_wasm_execution(29),neon_highlight_changed('numeric_operators_highlight_4')">i32.add</text>
3701 </g>
3702 <g>
3703 <line x1="550" y1="20" x2="565" y2="20" stroke-width="2" stroke="#b3e0ff"></line>
3704 <line x1="565" y1="20" x2="565" y2="60" stroke-width="2" stroke="#b3e0ff"></line>
3705 <line x1="565" y1="60" x2="40" y2="60" stroke-width="2" stroke="#c0c0c0"></line>
3706 </g>
3707 <g transform="translate(0,120)">
3708 <line id="numeric_operators_highlight_5" x1="100" y1="80" x2="100" y2="44" stroke-width="1" stroke="#b3e0ff"></line>
3709 <text x="80" y="100" fill="#ccff33" stroke-width="0" class="clickable" onclick="during_wasm_execution(30),neon_highlight_changed('numeric_operators_highlight_5')">i32.sub</text>
3710 <line id="numeric_operators_highlight_6" x1="220" y1="80" x2="220" y2="44" stroke-width="1" stroke="#b3e0ff"></line>
3711 <text x="200" y="100" fill="#ccff33" stroke-width="0" class="clickable" onclick="during_wasm_execution(31),neon_highlight_changed('numeric_operators_highlight_6')">i32.mul</text>
3712 <line id="numeric_operators_highlight_7" x1="340" y1="80" x2="340" y2="44" stroke-width="1" stroke="#b3e0ff"></line>
3713 <text x="320" y="100" fill="#ccff33" stroke-width="0" class="clickable" onclick="during_wasm_execution(32),neon_highlight_changed('numeric_operators_highlight_7')">i32.div_u</text>
3714 <line id="numeric_operators_highlight_8" x1="460" y1="80" x2="460" y2="44" stroke-width="1" stroke="#b3e0ff"></line>
3715 <text x="440" y="100" fill="#ccff33" stroke-width="0" class="clickable" onclick="during_wasm_execution(50),neon_highlight_changed('numeric_operators_highlight_8')">i32.div_s</text>
3716 </g>
3717 <g transform="translate(0,120)">
3718 <line x1="565" y1="-60" x2="565" y2="60" stroke-width="2" stroke="#c0c0c0"></line>
3719 <line x1="565" y1="60" x2="40" y2="60" stroke-width="2" stroke="#c0c0c0"></line>
3720 </g>
3721 <g transform="translate(0,240)">
3722 <line id="numeric_operators_highlight_9" x1="100" y1="80" x2="100" y2="44" stroke-width="1" stroke="#b3e0ff"></line>
3723 <text x="80" y="100" fill="#ccff33" stroke-width="0" class="clickable" onclick="during_wasm_execution(34),neon_highlight_changed('numeric_operators_highlight_9')">i32.and</text>
3724 <line id="numeric_operators_highlight_10" x1="220" y1="80" x2="220" y2="44" stroke-width="1" stroke="#b3e0ff"></line>
3725 <text x="200" y="100" fill="#ccff33" stroke-width="0" class="clickable" onclick="during_wasm_execution(35),neon_highlight_changed('numeric_operators_highlight_10')">i32.or</text>
3726 <line id="numeric_operators_highlight_11" x1="340" y1="80" x2="340" y2="44" stroke-width="1" stroke="#b3e0ff"></line>
3727 <text x="320" y="100" fill="#ccff33" stroke-width="0" class="clickable" onclick="during_wasm_execution(36),neon_highlight_changed('numeric_operators_highlight_11')">i32.xor</text>
3728 <line id="numeric_operators_highlight_12" x1="460" y1="80" x2="460" y2="44" stroke-width="1" stroke="#b3e0ff"></line>
3729 <text x="440" y="100" fill="#ccff33" stroke-width="0" class="clickable" onclick="during_wasm_execution(37),neon_highlight_changed('numeric_operators_highlight_12')">i32.shl</text>
3730 </g>
3731 <g transform="translate(0,240)">
3732 <line x1="565" y1="-60" x2="565" y2="60" stroke-width="2" stroke="#c0c0c0"></line>
3733 <line x1="565" y1="60" x2="40" y2="60" stroke-width="2" stroke="#c0c0c0"></line>
3734 </g>
3735 <g transform="translate(0,360)">
3736 <line id="numeric_operators_highlight_16" x1="100" y1="80" x2="100" y2="44" stroke-width="1" stroke="#b3e0ff"></line>
3737 <text x="80" y="100" fill="#ccff33" stroke-width="0" class="clickable" onclick="during_wasm_execution(38),neon_highlight_changed('numeric_operators_highlight_16')">i32.shr_u</text>
3738 <line id="numeric_operators_highlight_13" x1="220" y1="80" x2="220" y2="44" stroke-width="1" stroke="#b3e0ff"></line>
3739 <text x="200" y="100" fill="#ccff33" stroke-width="0" class="clickable" onclick="during_wasm_execution(49),neon_highlight_changed('numeric_operators_highlight_13')">i32.shr_s</text>
3740 <line id="numeric_operators_highlight_14" x1="340" y1="80" x2="340" y2="44" stroke-width="1" stroke="#b3e0ff"></line>
3741 <text x="320" y="100" fill="#ccff33" stroke-width="0" class="clickable" onclick="during_wasm_execution(39),neon_highlight_changed('numeric_operators_highlight_14')">i32.rotl</text>
3742 <line id="numeric_operators_highlight_15" x1="460" y1="80" x2="460" y2="44" stroke-width="1" stroke="#b3e0ff"></line>
3743 <text x="440" y="100" fill="#ccff33" stroke-width="0" class="clickable" onclick="during_wasm_execution(40),neon_highlight_changed('numeric_operators_highlight_15')">i32.rotr</text>
3744 </g>
3745 <g transform="translate(0,360)">
3746 <line x1="565" y1="-60" x2="565" y2="60" stroke-width="2" stroke="#c0c0c0"></line>
3747 <line x1="565" y1="60" x2="40" y2="60" stroke-width="2" stroke="#c0c0c0"></line>
3748 </g>
3749
3750
3751
3752 <g transform="translate(0,480)">
3753 <line id="numeric_operators_highlight_17" x1="100" y1="80" x2="100" y2="44" stroke-width="1" stroke="#b3e0ff"></line>
3754 <text x="80" y="100" fill="#ccff33" stroke-width="0" class="clickable" onclick="during_wasm_execution(33),neon_highlight_changed('numeric_operators_highlight_17')">i32.rem_u</text>
3755 <line id="numeric_operators_highlight_18" x1="220" y1="80" x2="220" y2="44" stroke-width="1" stroke="#b3e0ff"></line>
3756 <text x="200" y="100" fill="#ccff33" stroke-width="0" class="clickable" onclick="during_wasm_execution(51),neon_highlight_changed('numeric_operators_highlight_18')">i32.rem_s</text>
3757 <line id="numeric_operators_highlight_19" x1="340" y1="80" x2="340" y2="44" stroke-width="1" stroke="#b3e0ff"></line>
3758 <circle cx="320" cy="95" r="10" fill="#191919"/>
3759 <text x="320" y="100" fill="#ccff33" stroke-width="0" class="clickable" onclick="during_wasm_execution(52),neon_highlight_changed('numeric_operators_highlight_19')">i64.clz</text>
3760 <line id="numeric_operators_highlight_20" x1="460" y1="80" x2="460" y2="44" stroke-width="1" stroke="#b3e0ff"></line>
3761 <circle cx="440" cy="95" r="10" fill="#191919"/>
3762 <text x="440" y="100" fill="#ccff33" stroke-width="0" class="clickable" onclick="during_wasm_execution(53),neon_highlight_changed('numeric_operators_highlight_20')">i64.ctz</text>
3763 </g>
3764 <g transform="translate(0,480)">
3765 <line x1="565" y1="-60" x2="565" y2="60" stroke-width="2" stroke="#c0c0c0"></line>
3766 <line x1="565" y1="60" x2="40" y2="60" stroke-width="2" stroke="#c0c0c0"></line>
3767 </g>
3768
3769
3770
3771
3772
3773
3774
3775
3776
3777 <g transform="translate(0,600)">
3778 <line id="numeric_operators_highlight_21" x1="100" y1="80" x2="100" y2="44" stroke-width="1" stroke="#b3e0ff"></line>
3779 <circle cx="80" cy="95" r="10" fill="#191919"/>
3780 <text x="80" y="100" fill="#ccff33" stroke-width="0" class="clickable" onclick="during_wasm_execution(57),neon_highlight_changed('numeric_operators_highlight_21')">i64.popcnt</text>
3781 <line id="numeric_operators_highlight_22" x1="220" y1="80" x2="220" y2="44" stroke-width="1" stroke="#b3e0ff"></line>
3782 <circle cx="200" cy="95" r="10" fill="#191919"/>
3783 <text x="200" y="100" fill="#ccff33" stroke-width="0" class="clickable" onclick="during_wasm_execution(58),neon_highlight_changed('numeric_operators_highlight_22')">i64.add</text>
3784 <line id="numeric_operators_highlight_23" x1="340" y1="80" x2="340" y2="44" stroke-width="1" stroke="#b3e0ff"></line>
3785 <circle cx="320" cy="95" r="10" fill="#191919"/>
3786 <text x="320" y="100" fill="#ccff33" stroke-width="0" class="clickable" onclick="during_wasm_execution(59),neon_highlight_changed('numeric_operators_highlight_23')">i64.sub</text>
3787 <line id="numeric_operators_highlight_24" x1="460" y1="80" x2="460" y2="44" stroke-width="1" stroke="#b3e0ff"></line>
3788 <circle cx="440" cy="95" r="10" fill="#191919"/>
3789 <text x="440" y="100" fill="#ccff33" stroke-width="0" class="clickable" onclick="during_wasm_execution(60),neon_highlight_changed('numeric_operators_highlight_24')">i64.mul</text>
3790 </g>
3791 <g transform="translate(0,600)">
3792 <line x1="565" y1="-60" x2="565" y2="60" stroke-width="2" stroke="#c0c0c0"></line>
3793 <line x1="565" y1="60" x2="40" y2="60" stroke-width="2" stroke="#c0c0c0"></line>
3794 </g>
3795
3796 <g transform="translate(0,720)">
3797 <line id="numeric_operators_highlight_25" x1="100" y1="80" x2="100" y2="44" stroke-width="1" stroke="#b3e0ff"></line>
3798 <circle cx="80" cy="95" r="10" fill="#191919"/>
3799 <text x="80" y="100" fill="#ccff33" stroke-width="0" class="clickable" onclick="during_wasm_execution(61),neon_highlight_changed('numeric_operators_highlight_25')">i64.div_u</text>
3800 <line id="numeric_operators_highlight_26" x1="220" y1="80" x2="220" y2="44" stroke-width="1" stroke="#b3e0ff"></line>
3801 <circle cx="200" cy="95" r="10" fill="#191919"/>
3802 <text x="200" y="100" fill="#ccff33" stroke-width="0" class="clickable" onclick="during_wasm_execution(62),neon_highlight_changed('numeric_operators_highlight_26')">i64.div_s</text>
3803 <line id="numeric_operators_highlight_27" x1="340" y1="80" x2="340" y2="44" stroke-width="1" stroke="#b3e0ff"></line>
3804 <circle cx="320" cy="95" r="10" fill="#191919"/>
3805 <text x="320" y="100" fill="#ccff33" stroke-width="0" class="clickable" onclick="during_wasm_execution(63),neon_highlight_changed('numeric_operators_highlight_27')">i64.and</text>
3806 <line id="numeric_operators_highlight_28" x1="460" y1="80" x2="460" y2="44" stroke-width="1" stroke="#b3e0ff"></line>
3807 <circle cx="440" cy="95" r="10" fill="#191919"/>
3808 <text x="440" y="100" fill="#ccff33" stroke-width="0" class="clickable" onclick="during_wasm_execution(64),neon_highlight_changed('numeric_operators_highlight_28')">i64.or</text>
3809 </g>
3810 <g transform="translate(0,720)">
3811 <line x1="565" y1="-60" x2="565" y2="60" stroke-width="2" stroke="#c0c0c0"></line>
3812 <line x1="565" y1="60" x2="40" y2="60" stroke-width="2" stroke="#c0c0c0"></line>
3813 </g>
3814
3815 <g transform="translate(0,840)">
3816 <line id="numeric_operators_highlight_29" x1="100" y1="80" x2="100" y2="44" stroke-width="1" stroke="#b3e0ff"></line>
3817 <circle cx="80" cy="95" r="10" fill="#191919"/>
3818 <text x="80" y="100" fill="#ccff33" stroke-width="0" class="clickable" onclick="during_wasm_execution(65),neon_highlight_changed('numeric_operators_highlight_29')">i64.xor</text>
3819 <line id="numeric_operators_highlight_30" x1="220" y1="80" x2="220" y2="44" stroke-width="1" stroke="#b3e0ff"></line>
3820 <circle cx="200" cy="95" r="10" fill="#191919"/>
3821 <text x="200" y="100" fill="#ccff33" stroke-width="0" class="clickable" onclick="during_wasm_execution(66),neon_highlight_changed('numeric_operators_highlight_30')">i64.shl</text>
3822 <line id="numeric_operators_highlight_31" x1="340" y1="80" x2="340" y2="44" stroke-width="1" stroke="#b3e0ff"></line>
3823 <circle cx="320" cy="95" r="10" fill="#191919"/>
3824 <text x="320" y="100" fill="#ccff33" stroke-width="0" class="clickable" onclick="during_wasm_execution(68),neon_highlight_changed('numeric_operators_highlight_31')">i64.shr_u</text>
3825 <line id="numeric_operators_highlight_32" x1="460" y1="80" x2="460" y2="44" stroke-width="1" stroke="#b3e0ff"></line>
3826 <circle cx="440" cy="95" r="10" fill="#191919"/>
3827 <text x="440" y="100" fill="#ccff33" stroke-width="0" class="clickable" onclick="during_wasm_execution(67),neon_highlight_changed('numeric_operators_highlight_32')">i64.shr_s</text>
3828 </g>
3829 <g transform="translate(0,840)">
3830 <line x1="565" y1="-60" x2="565" y2="60" stroke-width="2" stroke="#c0c0c0"></line>
3831 <line x1="565" y1="60" x2="40" y2="60" stroke-width="2" stroke="#c0c0c0"></line>
3832 </g>
3833
3834 <g transform="translate(0,960)">
3835 <line id="numeric_operators_highlight_33" x1="100" y1="80" x2="100" y2="44" stroke-width="1" stroke="#b3e0ff"></line>
3836 <circle cx="80" cy="95" r="10" fill="#191919"/>
3837 <text x="80" y="100" fill="#ccff33" stroke-width="0" class="clickable" onclick="during_wasm_execution(70),neon_highlight_changed('numeric_operators_highlight_33')">i64.rotl</text>
3838 <line id="numeric_operators_highlight_34" x1="220" y1="80" x2="220" y2="44" stroke-width="1" stroke="#b3e0ff"></line>
3839 <circle cx="200" cy="95" r="10" fill="#191919"/>
3840 <text x="200" y="100" fill="#ccff33" stroke-width="0" class="clickable" onclick="during_wasm_execution(71),neon_highlight_changed('numeric_operators_highlight_34')">i64.rotr</text>
3841 <line id="numeric_operators_highlight_35" x1="340" y1="80" x2="340" y2="44" stroke-width="1" stroke="#b3e0ff"></line>
3842 <circle cx="320" cy="95" r="10" fill="#191919"/>
3843 <text x="320" y="100" fill="#ccff33" stroke-width="0" class="clickable" onclick="during_wasm_execution(72),neon_highlight_changed('numeric_operators_highlight_35')">i64.rem_u</text>
3844 <line id="numeric_operators_highlight_36" x1="460" y1="80" x2="460" y2="44" stroke-width="1" stroke="#b3e0ff"></line>
3845 <circle cx="440" cy="95" r="10" fill="#191919"/>
3846 <text x="440" y="100" fill="#ccff33" stroke-width="0" class="clickable" onclick="during_wasm_execution(73),neon_highlight_changed('numeric_operators_highlight_36')">i64.rem_s</text>
3847 </g>
3848 <g transform="translate(0,960)">
3849 <line x1="565" y1="-60" x2="565" y2="60" stroke-width="2" stroke="#c0c0c0"></line>
3850 <line x1="565" y1="60" x2="40" y2="60" stroke-width="2" stroke="#c0c0c0"></line>
3851 </g>
3852
3853
3854 </svg>
3855
3856
3857 <div style="border:1px solid #336699;padding-top:10px;padding-bottom:10px;margin-bottom:50px;margin-top:50px;">
3858 <div style="margin-left:10px;">
3859 <div class="clickable" onclick="during_wasm_execution(5)">Create Global within Wasm</div>
3860 <div class="clickable" onclick="during_wasm_execution(12)">Call function within Wasm</div>
3861 </div>
3862 </div>
3863
3864 <br>
3865 <meter min="0" max="100" low="25" high="75" optimum="100" value="25" style="margin-left:18px;margin-right:35px;width:530px;"></meter>
3866 <br>
3867
3868 <svg id="svg_container_comparison_operators" height="260" width="580" xmlns:xlink="http://www.w3.org/1999/xlink"
3869 style="background-color:#000000;margin-top:10px;font-size:16px;">
3870 <rect width="550" height="40" x="0" y="0" stroke="#000000" stroke-width="1" fill="#101010"></rect>
3871 <text x="18" y="25" fill="#ccff99" stroke-width="0" style="font-size:20px;">Comparison Operators</text>
3872 <g>
3873 <line id="comparison_operators_highlight_1" x1="100" y1="80" x2="100" y2="44" stroke-width="1" stroke="#b3e0ff"></line>
3874 <text x="80" y="100" fill="#ccff33" stroke-width="0" class="clickable" onclick="during_wasm_execution(19),neon_highlight_changed('comparison_operators_highlight_1')">i32.eqz</text>
3875 <line id="comparison_operators_highlight_2" x1="220" y1="80" x2="220" y2="44" stroke-width="1" stroke="#b3e0ff"></line>
3876 <text x="200" y="100" fill="#ccff33" stroke-width="0" class="clickable" onclick="during_wasm_execution(20),neon_highlight_changed('comparison_operators_highlight_2')">i32.eq</text>
3877 <line id="comparison_operators_highlight_3" x1="340" y1="80" x2="340" y2="44" stroke-width="1" stroke="#b3e0ff"></line>
3878 <text x="320" y="100" fill="#ccff33" stroke-width="0" class="clickable" onclick="during_wasm_execution(21),neon_highlight_changed('comparison_operators_highlight_3')">i32.ne</text>
3879 <line id="comparison_operators_highlight_4" x1="460" y1="80" x2="460" y2="44" stroke-width="1" stroke="#b3e0ff"></line>
3880 <text x="440" y="100" fill="#ccff33" stroke-width="0" class="clickable" onclick="during_wasm_execution(22),neon_highlight_changed('comparison_operators_highlight_4')">i32.lt_u</text>
3881 </g>
3882 <g>
3883 <line x1="550" y1="20" x2="565" y2="20" stroke-width="2" stroke="#b3e0ff"></line>
3884 <line x1="565" y1="20" x2="565" y2="60" stroke-width="2" stroke="#b3e0ff"></line>
3885 <line x1="565" y1="60" x2="40" y2="60" stroke-width="2" stroke="#c0c0c0"></line>
3886 </g>
3887
3888 <g transform="translate(0,120)">
3889 <line id="comparison_operators_highlight_8" x1="100" y1="80" x2="100" y2="44" stroke-width="1" stroke="#b3e0ff"></line>
3890 <circle cx="80" cy="95" r="10" fill="#191919"/>
3891 <text x="80" y="100" fill="#ccff33" stroke-width="0" class="clickable" onclick="during_wasm_execution(74),neon_highlight_changed('comparison_operators_highlight_8')">i32.lt_s</text>
3892 <line id="comparison_operators_highlight_5" x1="220" y1="80" x2="220" y2="44" stroke-width="1" stroke="#b3e0ff"></line>
3893 <text x="200" y="100" fill="#ccff33" stroke-width="0" class="clickable" onclick="during_wasm_execution(23),neon_highlight_changed('comparison_operators_highlight_5')">i32.gt_u</text>
3894 <line id="comparison_operators_highlight_6" x1="340" y1="80" x2="340" y2="44" stroke-width="1" stroke="#b3e0ff"></line>
3895 <text x="320" y="100" fill="#ccff33" stroke-width="0" class="clickable" onclick="during_wasm_execution(24),neon_highlight_changed('comparison_operators_highlight_6')">i32.le_u</text>
3896 <line id="comparison_operators_highlight_7" x1="460" y1="80" x2="460" y2="44" stroke-width="1" stroke="#b3e0ff"></line>
3897 <text x="440" y="100" fill="#ccff33" stroke-width="0" class="clickable" onclick="during_wasm_execution(25),neon_highlight_changed('comparison_operators_highlight_7')">i32.ge_u</text>
3898 </g>
3899 <g transform="translate(0,120)">
3900 <line x1="565" y1="-60" x2="565" y2="60" stroke-width="2" stroke="#c0c0c0"></line>
3901 <line x1="565" y1="60" x2="40" y2="60" stroke-width="2" stroke="#c0c0c0"></line>
3902 </g>
3903 </svg>
3904
3905 <br>
3906 <meter min="0" max="100" low="25" high="75" optimum="100" value="15" style="margin-left:18px;margin-right:35px;width:530px;"></meter>
3907 <br>
3908
3909 <svg id="svg_container_control_flow_operators" height="260" width="580" xmlns:xlink="http://www.w3.org/1999/xlink"
3910 style="background-color:#000000;margin-top:10px;font-size:16px;">
3911 <rect width="550" height="40" x="0" y="0" stroke="#000000" stroke-width="1" fill="#101010"></rect>
3912 <text x="18" y="25" fill="#ccff99" stroke-width="0" style="font-size:20px;">Control Flow Operators</text>
3913 <g>
3914 <line id="control_flow_operators_highlight_1" x1="100" y1="80" x2="100" y2="44" stroke-width="1" stroke="#b3e0ff"></line>
3915 <text x="80" y="100" fill="#ccff33" stroke-width="0" class="clickable" onclick="during_wasm_execution(15),neon_highlight_changed('control_flow_operators_highlight_1')">if...end</text>
3916 <line id="control_flow_operators_highlight_2" x1="220" y1="80" x2="220" y2="44" stroke-width="1" stroke="#b3e0ff"></line>
3917 <text x="200" y="100" fill="#ccff33" stroke-width="0" class="clickable" onclick="during_wasm_execution(16),neon_highlight_changed('control_flow_operators_highlight_2')">if else...</text>
3918 <line id="control_flow_operators_highlight_3" x1="340" y1="80" x2="340" y2="44" stroke-width="1" stroke="#b3e0ff"></line>
3919 <text x="320" y="100" fill="#ccff33" stroke-width="0" class="clickable" onclick="during_wasm_execution(17),neon_highlight_changed('control_flow_operators_highlight_3')">loop</text>
3920 <line id="control_flow_operators_highlight_4" x1="460" y1="80" x2="460" y2="44" stroke-width="1" stroke="#b3e0ff"></line>
3921 <text x="440" y="100" fill="#ccff33" stroke-width="0" class="clickable" onclick="during_wasm_execution(18),neon_highlight_changed('control_flow_operators_highlight_4')">return</text>
3922 </g>
3923 <g>
3924 <line x1="550" y1="20" x2="565" y2="20" stroke-width="2" stroke="#b3e0ff"></line>
3925 <line x1="565" y1="20" x2="565" y2="60" stroke-width="2" stroke="#b3e0ff"></line>
3926 <line x1="565" y1="60" x2="40" y2="60" stroke-width="2" stroke="#c0c0c0"></line>
3927 </g>
3928
3929 <g transform="translate(0,120)">
3930 <line id="control_flow_operators_highlight_6" x1="340" y1="80" x2="340" y2="44" stroke-width="1" stroke="#b3e0ff"></line>
3931 <text x="320" y="100" fill="#ccff33" stroke-width="0" class="clickable" onclick="during_wasm_execution(46),neon_highlight_changed('control_flow_operators_highlight_6')">block...br_if</text>
3932 <line id="control_flow_operators_highlight_5" x1="460" y1="80" x2="460" y2="44" stroke-width="1" stroke="#b3e0ff"></line>
3933 <text x="440" y="100" fill="#ccff33" stroke-width="0" class="clickable" onclick="during_wasm_execution(41),neon_highlight_changed('control_flow_operators_highlight_5')">nop</text>
3934 </g>
3935 <g transform="translate(0,120)">
3936 <line x1="565" y1="-60" x2="565" y2="60" stroke-width="2" stroke="#c0c0c0"></line>
3937 <line x1="565" y1="60" x2="40" y2="60" stroke-width="2" stroke="#c0c0c0"></line>
3938 </g>
3939 </svg>
3940
3941
3942 <br>
3943 <meter min="0" max="100" low="25" high="75" optimum="100" value="25" style="margin-left:18px;margin-right:35px;width:530px;"></meter>
3944 <br>
3945
3946 <svg id="svg_container_constants" height="140" width="580" xmlns:xlink="http://www.w3.org/1999/xlink"
3947 style="background-color:#000000;margin-top:10px;font-size:16px;">
3948 <rect width="550" height="40" x="0" y="0" stroke="#000000" stroke-width="1" fill="#101010"></rect>
3949 <text x="18" y="25" fill="#ccff99" stroke-width="0" style="font-size:20px;">Constants</text>
3950 <g>
3951 <line id="constants_highlight_1" x1="340" y1="80" x2="340" y2="44" stroke-width="1" stroke="#b3e0ff"></line>
3952 <text x="320" y="100" fill="#ccff33" stroke-width="0" class="clickable" onclick="during_wasm_execution(6),neon_highlight_changed('constants_highlight_1')">i32.const</text>
3953
3954 <line id="constants_highlight_2" x1="460" y1="80" x2="460" y2="44" stroke-width="1" stroke="#b3e0ff"></line>
3955 <text x="440" y="100" fill="#ccff33" stroke-width="0" class="clickable" onclick="during_wasm_execution(54),neon_highlight_changed('constants_highlight_2')">i64.const</text>
3956 </g>
3957 <g>
3958 <line x1="550" y1="20" x2="565" y2="20" stroke-width="2" stroke="#b3e0ff"></line>
3959 <line x1="565" y1="20" x2="565" y2="60" stroke-width="2" stroke="#b3e0ff"></line>
3960 <line x1="565" y1="60" x2="40" y2="60" stroke-width="2" stroke="#c0c0c0"></line>
3961 </g>
3962 </svg>
3963
3964
3965 <br>
3966 <meter min="0" max="100" low="25" high="75" optimum="100" value="100" style="margin-left:18px;margin-right:35px;width:530px;"></meter>
3967 <br>
3968
3969 <svg id="svg_container_parametric_operators" height="140" width="580" xmlns:xlink="http://www.w3.org/1999/xlink"
3970 style="background-color:#000000;margin-top:10px;font-size:16px;">
3971 <rect width="550" height="40" x="0" y="0" stroke="#000000" stroke-width="1" fill="#101010"></rect>
3972 <text x="18" y="25" fill="#ccff99" stroke-width="0" style="font-size:20px;">Parametric Operators</text>
3973 <g>
3974 <line id="parametric_operators_highlight_3" x1="340" y1="80" x2="340" y2="44" stroke-width="1" stroke="#b3e0ff"></line>
3975 <text x="320" y="100" fill="#ccff33" stroke-width="0" class="clickable" onclick="during_wasm_execution(14),neon_highlight_changed('parametric_operators_highlight_3')">select</text>
3976 <line id="parametric_operators_highlight_4" x1="460" y1="80" x2="460" y2="44" stroke-width="1" stroke="#b3e0ff"></line>
3977 <text x="440" y="100" fill="#ccff33" stroke-width="0" class="clickable" onclick="during_wasm_execution(13),neon_highlight_changed('parametric_operators_highlight_4')">drop</text>
3978 </g>
3979 <g>
3980 <line x1="550" y1="20" x2="565" y2="20" stroke-width="2" stroke="#b3e0ff"></line>
3981 <line x1="565" y1="20" x2="565" y2="60" stroke-width="2" stroke="#b3e0ff"></line>
3982 <line x1="565" y1="60" x2="40" y2="60" stroke-width="2" stroke="#c0c0c0"></line>
3983 </g>
3984 </svg>
3985
3986 <br>
3987 <meter min="0" max="100" low="25" high="75" optimum="100" value="100" style="margin-left:18px;margin-right:35px;width:530px;"></meter>
3988 <br>
3989
3990 <svg id="svg_container_variable_access" height="260" width="580" xmlns:xlink="http://www.w3.org/1999/xlink"
3991 style="background-color:#000000;margin-top:10px;font-size:16px;">
3992 <rect width="550" height="40" x="0" y="0" stroke="#000000" stroke-width="1" fill="#101010"></rect>
3993 <text x="18" y="25" fill="#ccff99" stroke-width="0" style="font-size:20px;">Variable Access</text>
3994 <g>
3995 <line id="variable_access_highlight_1" x1="100" y1="80" x2="100" y2="44" stroke-width="1" stroke="#b3e0ff"></line>
3996 <text x="80" y="100" fill="#ccff33" stroke-width="0" class="clickable" onclick="during_wasm_execution(10),neon_highlight_changed('variable_access_highlight_1')">global.get</text>
3997 <line id="variable_access_highlight_2" x1="220" y1="80" x2="220" y2="44" stroke-width="1" stroke="#b3e0ff"></line>
3998 <text x="200" y="100" fill="#ccff33" stroke-width="0" class="clickable" onclick="during_wasm_execution(11),neon_highlight_changed('variable_access_highlight_2')">global.set</text>
3999 <line id="variable_access_highlight_3" x1="340" y1="80" x2="340" y2="44" stroke-width="1" stroke="#b3e0ff"></line>
4000 <text x="320" y="100" fill="#ccff33" stroke-width="0" class="clickable" onclick="during_wasm_execution(7),neon_highlight_changed('variable_access_highlight_3')">local.get</text>
4001 <line id="variable_access_highlight_4" x1="460" y1="80" x2="460" y2="44" stroke-width="1" stroke="#b3e0ff"></line>
4002 <text x="440" y="100" fill="#ccff33" stroke-width="0" class="clickable" onclick="during_wasm_execution(8),neon_highlight_changed('variable_access_highlight_4')">local.set</text>
4003 </g>
4004 <g>
4005 <line x1="550" y1="20" x2="565" y2="20" stroke-width="2" stroke="#b3e0ff"></line>
4006 <line x1="565" y1="20" x2="565" y2="60" stroke-width="2" stroke="#b3e0ff"></line>
4007 <line x1="565" y1="60" x2="40" y2="60" stroke-width="2" stroke="#c0c0c0"></line>
4008 </g>
4009
4010 <g transform="translate(0,120)">
4011 <line id="variable_access_highlight_5" x1="460" y1="80" x2="460" y2="44" stroke-width="1" stroke="#b3e0ff"></line>
4012 <text x="440" y="100" fill="#ccff33" stroke-width="0" class="clickable" onclick="during_wasm_execution(9),neon_highlight_changed('variable_access_highlight_5')">local.tee</text>
4013 </g>
4014 <g transform="translate(0,120)">
4015 <line x1="565" y1="-60" x2="565" y2="60" stroke-width="2" stroke="#c0c0c0"></line>
4016 <line x1="565" y1="60" x2="40" y2="60" stroke-width="2" stroke="#c0c0c0"></line>
4017 </g>
4018 </svg>
4019
4020
4021 <br>
4022 <meter min="0" max="100" low="25" high="75" optimum="100" value="20" style="margin-left:18px;margin-right:35px;width:530px;"></meter>
4023 <br>
4024
4025 <svg id="svg_container_memory_related_operators" height="500" width="580" xmlns:xlink="http://www.w3.org/1999/xlink"
4026 style="background-color:#000000;margin-top:10px;font-size:16px;">
4027 <rect width="550" height="40" x="0" y="0" stroke="#000000" stroke-width="1" fill="#101010"></rect>
4028 <text x="18" y="25" fill="#ccff99" stroke-width="0" style="font-size:20px;">Memory related Operators</text>
4029 <g>
4030 <line id="memory_related_operators_highlight_1" x1="100" y1="80" x2="100" y2="44" stroke-width="1" stroke="#b3e0ff"></line>
4031 <text x="80" y="100" fill="#ccff33" stroke-width="0" class="clickable" onclick="during_wasm_execution(1),neon_highlight_changed('memory_related_operators_highlight_1')">i32.load8_u</text>
4032 <line id="memory_related_operators_highlight_2" x1="220" y1="80" x2="220" y2="44" stroke-width="1" stroke="#b3e0ff"></line>
4033 <text x="200" y="100" fill="#ccff33" stroke-width="0" class="clickable" onclick="during_wasm_execution(42),neon_highlight_changed('memory_related_operators_highlight_2')">i32.load16_u</text>
4034 <line id="memory_related_operators_highlight_3" x1="340" y1="80" x2="340" y2="44" stroke-width="1" stroke="#b3e0ff"></line>
4035 <text x="320" y="100" fill="#ccff33" stroke-width="0" class="clickable" onclick="during_wasm_execution(43),neon_highlight_changed('memory_related_operators_highlight_3')">i32.load</text>
4036 <line id="memory_related_operators_highlight_4" x1="460" y1="80" x2="460" y2="44" stroke-width="1" stroke="#b3e0ff"></line>
4037 <text x="440" y="100" fill="#ccff33" stroke-width="0" class="clickable" onclick="during_wasm_execution(2),neon_highlight_changed('memory_related_operators_highlight_4')">i32.store8</text>
4038 </g>
4039 <g>
4040 <line x1="550" y1="20" x2="565" y2="20" stroke-width="2" stroke="#b3e0ff"></line>
4041 <line x1="565" y1="20" x2="565" y2="60" stroke-width="2" stroke="#b3e0ff"></line>
4042 <line x1="565" y1="60" x2="40" y2="60" stroke-width="2" stroke="#c0c0c0"></line>
4043 </g>
4044 <g transform="translate(0,120)">
4045 <line id="memory_related_operators_highlight_5" x1="100" y1="80" x2="100" y2="44" stroke-width="1" stroke="#b3e0ff"></line>
4046 <text x="80" y="100" fill="#ccff33" stroke-width="0" class="clickable" onclick="during_wasm_execution(44),neon_highlight_changed('memory_related_operators_highlight_5')">i32.store16</text>
4047 <line id="memory_related_operators_highlight_6" x1="220" y1="80" x2="220" y2="44" stroke-width="1" stroke="#b3e0ff"></line>
4048 <text x="200" y="100" fill="#ccff33" stroke-width="0" class="clickable" onclick="during_wasm_execution(45),neon_highlight_changed('memory_related_operators_highlight_6')">i32.store</text>
4049 <line id="memory_related_operators_highlight_7" x1="340" y1="80" x2="340" y2="44" stroke-width="1" stroke="#b3e0ff"></line>
4050 <text x="300" y="100" fill="#ccff33" stroke-width="0" class="clickable" onclick="during_wasm_execution(3),neon_highlight_changed('memory_related_operators_highlight_7')">memory.size</text>
4051 <line id="memory_related_operators_highlight_8" x1="460" y1="80" x2="460" y2="44" stroke-width="1" stroke="#b3e0ff"></line>
4052 <text x="440" y="100" fill="#ccff33" stroke-width="0" class="clickable" onclick="during_wasm_execution(4),neon_highlight_changed('memory_related_operators_highlight_8')">memory.grow</text>
4053 </g>
4054 <g transform="translate(0,120)">
4055 <line x1="565" y1="-60" x2="565" y2="60" stroke-width="2" stroke="#c0c0c0"></line>
4056 <line x1="565" y1="60" x2="40" y2="60" stroke-width="2" stroke="#c0c0c0"></line>
4057 </g>
4058
4059
4060
4061
4062
4063
4064
4065
4066
4067
4068
4069
4070 <g transform="translate(0,240)">
4071 <line id="memory_related_operators_highlight_9" x1="100" y1="80" x2="100" y2="44" stroke-width="1" stroke="#b3e0ff"></line>
4072 <text x="80" y="100" fill="#ccff33" stroke-width="0" class="clickable" onclick="during_wasm_execution(47),neon_highlight_changed('memory_related_operators_highlight_9')">i32.load8_s</text>
4073 <line id="memory_related_operators_highlight_10" x1="220" y1="80" x2="220" y2="44" stroke-width="1" stroke="#b3e0ff"></line>
4074 <text x="200" y="100" fill="#ccff33" stroke-width="0" class="clickable" onclick="during_wasm_execution(48),neon_highlight_changed('memory_related_operators_highlight_10')">i32.load16_s</text>
4075 <line id="memory_related_operators_highlight_11" x1="340" y1="80" x2="340" y2="44" stroke-width="1" stroke="#b3e0ff"></line>
4076 <text x="320" y="100" fill="#ccff33" stroke-width="0" class="clickable" onclick="during_wasm_execution(55),neon_highlight_changed('memory_related_operators_highlight_11')">i64.store</text>
4077 <line id="memory_related_operators_highlight_12" x1="460" y1="80" x2="460" y2="44" stroke-width="1" stroke="#b3e0ff"></line>
4078 <text x="440" y="100" fill="#ccff33" stroke-width="0" class="clickable" onclick="during_wasm_execution(56),neon_highlight_changed('memory_related_operators_highlight_12')">i64.load</text>
4079 </g>
4080 <g transform="translate(0,240)">
4081 <line x1="565" y1="-60" x2="565" y2="60" stroke-width="2" stroke="#c0c0c0"></line>
4082 <line x1="565" y1="60" x2="40" y2="60" stroke-width="2" stroke="#c0c0c0"></line>
4083 </g>
4084
4085 </svg>
4086
4087
4088
4089
4090
4091
4092
4093 <br>
4094 <meter min="0" max="100" low="25" high="75" optimum="100" value="50" style="margin-left:18px;margin-right:35px;width:530px;"></meter>
4095 <br>
4096
4097 <svg id="svg_container_imports" height="130" width="400" xmlns:xlink="http://www.w3.org/1999/xlink"
4098 style="background-color:#000000;margin-top:10px;font-size:16px;">
4099 <rect width="400" height="40" x="0" y="0" stroke="#000000" stroke-width="1" fill="#101010"></rect>
4100 <text x="18" y="25" fill="#ccff99" stroke-width="0" style="font-size:20px;">Imports</text>
4101 <line x1="50" y1="80" x2="50" y2="44" stroke-width="1" stroke="#b3e0ff"></line>
4102 <text x="18" y="100" fill="#ccff33" stroke-width="0" class="clickable" onclick="create_imported_function()">Function</text>
4103 <line x1="145" y1="80" x2="145" y2="44" stroke-width="1" stroke="#b3e0ff"></line>
4104 <text x="118" y="100" fill="#ccff33" stroke-width="0" class="clickable" onclick="create_imported_global()">Global</text>
4105 <line x1="245" y1="80" x2="245" y2="44" stroke-width="1" stroke="#b3e0ff"></line>
4106 <text x="218" y="100" fill="#ccff33" stroke-width="0" class="clickable" onclick="create_imported_memory()">Memory</text>
4107 <line x1="338" y1="80" x2="338" y2="44" stroke-width="1" stroke="#b3e0ff"></line>
4108 <text x="318" y="100" fill="#ccff33" stroke-width="0" class="clickable">Table</text>
4109 </svg>
4110
4111
4112
4113 <br>
4114 <meter min="0" max="100" low="25" high="75" optimum="100" value="50" style="margin-left:18px;margin-right:35px;width:530px;"></meter>
4115 <br>
4116
4117
4118 <svg id="svg_container_exports" height="130" width="400" xmlns:xlink="http://www.w3.org/1999/xlink"
4119 style="background-color:#000000;margin-top:10px;font-size:16px;">
4120 <rect width="400" height="40" x="0" y="0" stroke="#000000" stroke-width="1" fill="#101010"></rect>
4121 <text x="18" y="25" fill="#ccff99" stroke-width="0" style="font-size:20px;">Exports</text>
4122 <line x1="50" y1="80" x2="50" y2="44" stroke-width="1" stroke="#b3e0ff"></line>
4123 <text x="18" y="100" fill="#ccff33" stroke-width="0" class="clickable" onclick="create_exported_function()">Function</text>
4124 <line x1="145" y1="80" x2="145" y2="44" stroke-width="1" stroke="#b3e0ff"></line>
4125 <text x="118" y="100" fill="#ccff33" stroke-width="0" class="clickable" onclick="create_exported_global()">Global</text>
4126 <line x1="245" y1="80" x2="245" y2="44" stroke-width="1" stroke="#b3e0ff"></line>
4127 <text x="218" y="100" fill="#ccff33" stroke-width="0" class="clickable" onclick="create_exported_memory()">Memory</text>
4128 <line x1="338" y1="80" x2="338" y2="44" stroke-width="1" stroke="#b3e0ff"></line>
4129 <text x="318" y="100" fill="#ccff33" stroke-width="0" class="clickable">Table</text>
4130 </svg>
4131 </div>
4132 </div>
4133 <div id="copy_paste_block" class="block">
4134 <div class="clipboard_section_note" style="margin-top:85px;font-size:30px;font-weight:bold;">Directions</div>
4135 <div class="clipboard_section_note">Click an action to populate a template inside this panel.</div>
4136 </div>
4137 <div style="clear:both;"></div>
4138 </div>
4139 </div>
4140
4141
4142<script>
4143/*
4144
4145http://webassembly.github.io/spec/core/syntax/values.html
4146
4147
4148*****************
4149
4150byte ::= 0x00 | ... | 0xFF
4151
4152byte production is hex value from 00 to ff
4153
4154*****************
4155
4156uN ::= 0 | 1 | ... | 2N−1
4157sN ::= −2N−1 | ... | −1 | 0 | 1 | ... | 2N−1−1
4158iN ::= uN
4159
4160ex. unisigned u32 production is 0 or 1 to 2 to the power of 32 minus 1
4161ex. signed s32 production is -2 to the power of 31 minus 1 to -1 or 0 or 1 to 2 to the power of 31 (31 because 32-1 in exponents) minus 1
4162ex. uN = uninterpreted integers
4163
4164ex. existing now u32, u64, s32, s64, i8, i16, i32, i64
4165
4166*****************
4167
4168sign - + -
4169magnitude ?
4170exponent = e
4171significand = m
4172significand (is bits)
4173M is the bit width of m
4174
4175MSB LSB
4176--------------------------
4177m0 m1 m2 ... mM <--- bits
4178
41791 ? ? ? <--- bit values
41800 ? ? ? <--- bit values
4181
4182https://stackoverflow.com/questions/8341395/what-is-a-subnormal-floating-point-number
4183
4184*****************
4185
4186name ::= codepoint∗ ( if |utf8( codepoint∗ )| <2 32)
4187codepoint ::= U+00 | ... | U+D7FF | U+E000 | ... | U+10FFFF
4188
4189name production is potentially null codepoint ( if all iterations of codepoints are less that 2 to the power of 32 then a codepoint is valid )
4190codepoint production is U+00 to U+D7FF or U+E000 to U+10FFFF
4191
4192
4193*****************
4194
4195
4196http://webassembly.github.io/spec/core/syntax/types.html
4197
4198*****************
4199
4200valtype ::= i32 | i64 | f32 | f64
4201
4202valtype production is i32 or i64 or f32 or f64
4203
4204*****************
4205
4206
4207*****************
4208
4209resulttype ::= [ valtype ? ]
4210
4211resulttype production is <= 1 iterations of valtype, while the brackets indicate future potentiality of a series
4212
4213*****************
4214
4215
4216functype ::= [ vec(valtype) ] → [ vec(valtype) ]
4217
4218functype production is [ vec(i32) ]
4219 vec(i32) ::= once >= 0 iterations of i32 are counted, (if iterations < 2 to the power of 32, accept this item)
4220 vec(1) ::= 1 iteration of i32 exists, (if iterations(1) < 2 to the power of 32, accept this item)
4221for parameters
4222
4223functype production is → [ vec(i32) ]
4224 vec(i32) ::= once >= 0 iterations of i32 are counted, (if iterations < 2 to the power of 32, accept this item)
4225 vec(1) ::= 1 iteration of i32 exists, (if iterations(1) < 2 to the power of 32, accept this item)
4226
4227for results
4228
4229*****************
4230
4231limits ::= { min u32 , max u32 ? }
4232
4233limits production is { min as u32 data type , max as u32 data type which is <= 1 iteration }
4234
4235*****************
4236
4237memtype ::= limits
4238
4239*****************
4240
4241 tabletype ::= limits elemtype
4242 elemtype ::= funcref
4243
4244Note: My browsers still expect 'anyfunc' to be used instead of 'funcref' from the js angle
4245
4246*****************
4247
4248 globaltype ::= mut valtype
4249 mut ::= const | var
4250
4251 globaltype production is mutability and valtype production
4252 mutability production is a constant or variable
4253
4254*****************
4255
4256 externtype ::= func functype | table tabletype | mem memtype | global globaltype
4257
4258*****************
4259
4260// figure these out
4261
4262 funcs(externtype∗)=[functype | (func functype)∈externtype∗]
4263 tables(externtype∗)=[tabletype | (table tabletype)∈externtype∗]
4264 mems(externtype∗)=[memtype | (mem memtype)∈externtype∗]
4265 globals(externtype∗)=[globaltype | (global globaltype)∈externtype∗]
4266
4267*****************
4268
4269http://webassembly.github.io/spec/core/syntax/instructions.html
4270
4271nn,mm ::= 32 | 64
4272sx ::= u | s
4273
4274instr ::= inn.const inn | fnn.const fnn
4275 | inn.iunop | fnn.funop
4276 | inn.ibinop | fnn.fbinop
4277 | inn.itestop
4278 | inn.irelop | fnn.frelop
4279 | i32.wrap_i64 | i64.extend_i32_sx | inn.trunc_fmm_sx
4280 | f32.demote_f64 | f64.promote_f32 | fnn.convert_imm_sx
4281 | inn.reinterpret_fnn | fnn.reinterpret_inn
4282 | ...
4283
4284iunop ::= clz | ctz | popcnt
4285ibinop ::= add | sub | mul | div_sx | rem_sx
4286 | and | or | xor | shl | shr_sx | rotl | rotr
4287funop ::= abs | neg | sqrt | ceil | floor | trunc | nearest
4288fbinop ::= add | sub | mul | div | min | max | copysign
4289itestop ::= eqz
4290irelop ::= eq | ne | lt_sx | gt_sx | le_sx | ge_sx
4291frelop ::= eq | ne | lt | gt | le | ge
4292
4293
4294
4295
4296
4297instr ::= inn.const inn | fnn.const fnn
4298 | inn.iunop | fnn.funop
4299 | inn.ibinop | fnn.fbinop
4300 | inn.itestop
4301 | inn.irelop | fnn.frelop
4302 | i32.wrap_i64 | i64.extend_i32_sx | inn.trunc_fmm_sx
4303 | f32.demote_f64 | f64.promote_f32 | fnn.convert_imm_sx
4304 | inn.reinterpret_fnn | fnn.reinterpret_inn
4305 | ...
4306
4307nn,mm ::= 32 | 64
4308
4309iunop ::= clz | ctz | popcnt
4310ibinop ::= add | sub | mul | div_sx | rem_sx
4311 | and | or | xor | shl | shr_sx | rotl | rotr
4312funop ::= abs | neg | sqrt | ceil | floor | trunc | nearest
4313fbinop ::= add | sub | mul | div | min | max | copysign
4314itestop ::= eqz
4315irelop ::= eq | ne | lt_sx | gt_sx | le_sx | ge_sx
4316frelop ::= eq | ne | lt | gt | le | ge
4317
4318sx ::= u | s
4319
4320Note: I ordered these differently to represent the way I see them applied with values when substitution is performed
4321
4322*****************
4323
4324 unop ::= iunop | funop
4325 binop ::= ibinop | fbinop
4326 testop ::= itestop
4327 relop ::= irelop | frelop
4328 cvtop ::= wrap | extend | trunc | convert | demote | promote | reinterpret
4329
4330*****************
4331 instr ::= ...
4332 | drop
4333 | select
4334
4335 instr ::= drop | select
4336
4337Note: I removed the ... in my version
4338
4339*****************
4340
4341instr ::= ...
4342| local.get localidx
4343| local.set localidx
4344| local.tee localidx
4345| global.get globalidx
4346| global.set globalidx
4347
4348instr ::= local.get u32
4349| local.set u32
4350| local.tee u32
4351| global.get u32
4352| global.set u32
4353
4354Note: I removed the ... in my version
4355
4356*****************
4357
4358memarg ::= {offset u32,align u32}
4359instr ::= ...
4360| inn.load memarg | fnn.load memarg
4361| inn.store memarg | fnn.store memarg
4362| inn.load8_sx memarg | inn.load16_sx memarg | i64.load32_sx memarg
4363| inn.store8 memarg | inn.store16 memarg | i64.store32 memarg
4364| memory.size
4365| memory.grow
4366
4367
4368
4369instr ::= ...
4370| inn.load memarg | fnn.load memarg
4371| inn.store memarg | fnn.store memarg
4372| inn.load8_sx memarg | inn.load16_sx memarg | i64.load32_sx memarg
4373| inn.store8 memarg | inn.store16 memarg | i64.store32 memarg
4374| memory.size
4375| memory.grow
4376
4377memarg (memory immediate) ::= {offset u32, align u32}
4378
4379sx ::= u | s
4380nn ::= 32 | 64
4381
4382Note: I added the nn production and moved memarg into a lower spot then added sx
4383
4384*****************
4385 instr ::= ...
4386 | nop
4387 | unreachable
4388 | block resulttype instr∗ end
4389 | loop resulttype instr∗ end
4390 | if resulttype instr∗ else instr∗ end
4391 | br labelidx
4392 | br_if labelidx
4393 | br_table vec(labelidx) labelidx
4394 | return
4395 | call funcidx
4396 | call_indirect typeidx
4397
4398
4399 instr ::= ...
4400 | nop
4401 | unreachable
4402 | block resulttype instr∗ end
4403 | loop resulttype instr∗ end
4404 | if resulttype instr∗ else instr∗ end
4405 | if resulttype instr∗ end
4406 | br labelidx
4407 | br_if labelidx
4408 | br_table vec(labelidx) labelidx
4409 | return
4410 | call funcidx
4411 | call_indirect typeidx
4412
4413Note: I added if...end
4414
4415*****************
4416
4417expr ::= instr∗ end
4418
4419expression production is 'potentially null iterations' of any instruction with an opcode for an 'end' byte
4420
4421Note: Testing showed that you cannot send nothing for those bytes in my current code (tested in Element module - all were removed then all but end were removed)
4422
4423*****************
4424
4425http://webassembly.github.io/spec/core/syntax/modules.html
4426
4427module ::= { types vec(functype),
4428 funcs vec(func),
4429 tables vec(table),
4430 mems vec(mem),
4431 globals vec(global),
4432 elem vec(elem),
4433 data vec(data),
4434 start start?,
4435 imports vec(import),
4436 exports vec(export)}
4437
4438
4439module ::= { types vec(functype), <-- functype defined already
4440 funcs vec(func), <-- func not defined yet
4441 tables vec(table), <-- func not defined yet
4442 mems vec(mem), <-- func not defined yet
4443 globals vec(global), <-- func not defined yet
4444 elem vec(elem), <-- func not defined yet
4445 data vec(data), <-- func not defined yet
4446 start start (can be <= 1), <-- func not defined yet
4447 imports vec(import), <-- func not defined yet
4448 exports vec(export)} <-- func not defined yet
4449
4450*****************
4451
4452typeidx ::= u32
4453funcidx ::= u32
4454tableidx ::= u32
4455memidx ::= u32
4456globalidx ::= u32
4457localidx ::= u32
4458labelidx ::= u32
4459
4460*****************
4461
4462func ::= {type typeidx,locals vec(valtype),body expr}
4463
4464func ::= {type u32, locals vec(valtype), body expr}
4465
4466*****************
4467
4468table ::= {type tabletype}
4469
4470*****************
4471
4472mem ::= {type memtype}
4473
4474*****************
4475
4476global ::= {type globaltype,init expr}
4477
4478*****************
4479
4480elem ::= {table tableidx,offset expr,init vec(funcidx)}
4481
4482elem ::= {table 0,offset expr,init vec(funcidx)}
4483
4484*****************
4485
4486data ::= {data memidx,offset expr,init vec(byte)}
4487
4488*****************
4489
4490start ::= {func funcidx}
4491
4492
4493*****************
4494
4495 export ::= {name name,desc exportdesc}
4496 exportdesc ::= func funcidx
4497 | table tableidx
4498 | mem memidx
4499 | global globalidx
4500
4501 export ::= {name name,desc exportdesc}
4502 exportdesc ::= func function m. index
4503 | table table m. index
4504 | mem memory m. index
4505 | global global m. index
4506
4507*****************
4508
4509// figure these out
4510
4511funcs(export∗)=[funcidx | func funcidx∈(export.desc)∗]
4512tables(export∗)=[tableidx | table tableidx∈(export.desc)∗]
4513mems(export∗)=[memidx | mem memidx∈(export.desc)∗]
4514globals(export∗)=[globalidx | global globalidx∈(export.desc)∗]
4515
4516*****************
4517
4518 import ::= {module name,name name,desc importdesc}
4519 importdesc ::= func typeidx
4520 | table tabletype
4521 | mem memtype
4522 | global globaltype
4523
4524*****************
4525
4526http://webassembly.github.io/spec/core/valid/conventions.html
4527
4528C ::= { types functype∗,
4529 funcs functype∗,
4530 tables tabletype∗,
4531 mems memtype∗,
4532 globals globaltype∗,
4533 locals valtype∗,
4534 labels resulttype∗,
4535 return resulttype? }
4536
4537*****************
4538
4539http://webassembly.github.io/spec/core/valid/conventions.html
4540
4541
4542C ⊢ A : T
4543
4544A= a set of assumptions
4545T= a statement
4546
4547To express this explicitly, the complete form is a judgement C⊢A:T, which says that A:T holds under the assumptions encoded in C
4548
4549*****************
4550
4551http://webassembly.github.io/spec/core/exec/runtime.html
4552
4553
4554*****************
4555 val ::= i32.const i32
4556 | i64.const i64
4557 | f32.const f32
4558 | f64.const f64
4559
4560*****************
4561
4562result ::= val∗
4563 | trap
4564
4565*****************
4566
4567store ::= { funcs funcinst∗,
4568 tables tableinst∗,
4569 mems meminst∗,
4570 globals globalinst∗ }
4571
4572*****************
4573
4574 addr ::= 0 | 1 | 2 | ...
4575 funcaddr ::= addr
4576 tableaddr ::= addr
4577 memaddr ::= addr
4578 globaladdr ::= addr
4579
4580
4581 funcaddr ::= addr
4582 tableaddr ::= addr
4583 memaddr ::= addr
4584 globaladdr ::= addr
4585 addr ::= 0 | 1 | 2 | ...
4586
4587*****************
4588
4589moduleinst ::= { types functype∗,
4590 funcaddrs funcaddr∗,
4591 tableaddrs tableaddr∗,
4592 memaddrs memaddr∗,
4593 globaladdrs globaladdr∗,
4594 exports exportinst∗ }
4595*****************
4596funcinst ::= {type functype,module moduleinst,code func}
4597 | {type functype,hostcode hostfunc}
4598hostfunc ::= ...
4599
4600*****************
4601 tableinst ::= {elem vec(funcelem),max u32?}
4602 funcelem ::= funcaddr?
4603
4604*****************
4605
4606 meminst ::= {data vec(byte),max u32?}
4607
4608*****************
4609
4610globalinst ::= {value val,mut mut}
4611
4612*****************
4613
4614 exportinst ::= {name name,value externval}
4615
4616*****************
4617
4618 externval ::= func funcaddr
4619 | table tableaddr
4620 | mem memaddr
4621 | global globaladdr
4622
4623*****************
4624
4625funcs(externval∗)=[funcaddr | (func funcaddr)∈externval∗]
4626tables(externval∗)=[tableaddr | (table tableaddr)∈externval∗]
4627mems(externval∗)=[memaddr | (mem memaddr)∈externval∗]
4628globals(externval∗)=[globaladdr | (global globaladdr)∈externval∗]
4629
4630*****************
4631
4632label ::= labeln{instr∗}
4633
4634*****************
4635
4636 activation ::= framen{frame}
4637 frame ::= {locals val∗,module moduleinst}
4638
4639*****************
4640
4641 instr ::= ...
4642 | trap
4643 | invoke funcaddr
4644 | init_elem tableaddr u32 funcidx∗
4645 | init_data memaddr u32 byte∗
4646 | labeln{instr∗} instr∗ end
4647 | framen{frame} instr∗ end
4648
4649*****************
4650
4651 B0 ::= val∗ [_] instr∗
4652 Bk+1 ::= val∗ labeln{instr∗} Bk end instr∗
4653
4654*****************
4655
4656 config ::= store;thread
4657 thread ::= frame;instr∗
4658
4659*****************
4660
4661config ::= store;thread
4662thread ::= frame;instr∗
4663
4664*****************
4665
4666E ::= [_] | val∗ E instr∗ | labeln{instr∗} E end
4667S;F;E[instr∗] ↪ S′;F′;E[instr′∗] (ifS;F;instr∗↪S′;F′;instr′∗) S;F;framen{F′} instr∗ end ↪ S′;F;framen{F″} instr′∗ end (ifS;F′;instr∗↪S′;F″;instr′∗) S;F;E[trap] ↪ S;F;trap(ifE≠[_]) S;F;framen{F′} trap end ↪ S;F;trap
4668
4669*****************
4670
4671*****************
4672
4673
4674*****************
4675i
4676am
4677amp
4678amps
4679UTF-8
4680in Table 3-7
4681
4682
4683U+004D as UTF-8 Code Unit Sequence = 4D
4684MglobalEXP
4685
4686U+0430 as UTF-8 Code Unit Sequence = D0 B0
4687аglobalEXP
4688
4689U+48EC as UTF-8 Code Unit Sequence = E4 BA 8C
4690二globalEXP
4691
4692U+10302 as UTF-8 Code Unit Sequence = F0 90 8C 82
4693ðŒ‚globalEXP
4694
4695
4696
4697*****************
4698
4699
4700
4701n=10
4702N=32
4703m= :
4704 V
4705u32 ::= 10:byte 10 if 10<128 AND 10<4,294,967,296
4706 | 10:byte m:u25 128*25 + (10-128) if 10>128 AND 32>7
4707
4708
4709u32 ::= 129:byte 129 if 129<128 AND 129<4,294,967,296
4710 | 129:byte m:u25 128*25 + (129-128) if 129>128 AND 32>7
4711 | 129:byte m:u25 3200 + (1) if 129>128 AND 32>7
4712 | 129:byte m:u25 3201 if 129>128 AND 32>7
4713 ^
4714 :
4715-->
4716
4717
4718<!--
4719http://webassembly.github.io/spec/core/syntax/values.html
4720https://dev.w3.org/html5/html-author/charref
4721https://en.wikipedia.org/wiki/List_of_logic_symbols
4722https://en.wikipedia.org/wiki/List_of_Unicode_characters
4723pile of poo town
4724https://stackoverflow.com/questions/5290182/how-many-bytes-does-one-unicode-character-take
4725
4726get fancy pants z next time here
4727
4728fN ::= +fNmag | −fNmag
4729fNmag ::= (1+uM⋅2−M)⋅2e (if−2E−1+2≤e≤2E−1−1)
4730 | (0+uM⋅2−M)⋅2e (ife=−2E−1+2)
4731 | infinity
4732 | nan(n) (if1≤n<2M)
4733
4734where M=signif(N) and E=expon(N) with
4735 signif(32) = 23 expon(32) = 8
4736 signif(64) = 52 expon(64) = 11
4737-->
4738
4739
4740<!--
4741
4742
4743<h4>Structure</h4>
4744<ul style="line-height:34px;">
4745<li>Terminal symbols are written in sans-serif font</li>
4746<li>Nonterminal symbols are written in italic font</li>
4747<li>A<sup>n</sup> is... n >= 0 iterations of A</li>
4748<li>A<sup>*</sup> is... potentially null iterations of A</li>
4749<li>A<sup>+</sup> is... n >= 1 iterations of A</li>
4750<li>A<sup>?</sup> is... n <= 1 iterations of A</li>
4751<li style="text-decoration:line-through;">x:A ... denotes the same language as the nonterminal A, but also binds the variable x to the attribute synthesized for A</li>
4752<li>Productions are written sym::= A<sub>1</sub> | ... | A<sub>n</sub></li>
4753<li>Large productions may be split into multiple definitions, indicated by ending the first one with explicit ellipses
4754<br> sym::= A<sub>1</sub> | ...,
4755<br> and starting continuations with ellipses
4756<br> sym::=... | A<sub>2</sub></li>
4757<li>Some productions are augmented with side conditions in parentheses, (ifcondition) , which restrict the applicability of the production, that provide a shorthand for a combinatorial expansion of the production into many separate cases</li>
4758<li>∈ denotes the empty sequence</li>
4759<li>|<span style="font-size:30px;">𝔰</span>| denotes the length of a sequence <span style="font-size:30px;">𝔰</span></li>
4760<li><span style="font-size:30px;">𝔰</span>[ i ] denotes the i-th element of a sequence <span style="font-size:30px;">𝔰</span>, starting from 0</li>
4761<li><span style="font-size:30px;">𝔰</span>[ i : n ] denotes the sub-sequence <span style="font-size:30px;">𝔰</span>[ i ] ... <span style="font-size:30px;">𝔰</span>[ i + n −1] of a sequence <span style="font-size:30px;">𝔰</span></li>
4762<li><span style="font-size:30px;">𝔰</span> with [ i ] = A denotes the same sequence as <span style="font-size:30px;">𝔰</span>, except that the i-th element is replaced with A</li>
4763<li><span style="font-size:30px;">𝔰</span> with [ i : n ] = A<sup>n</sup> denotes the same sequence as <span style="font-size:30px;">𝔰</span>, except that the sub-sequence <span style="font-size:30px;">𝔰</span>[ i : n ] is replaced with A<sup>n</sup></li>
4764<li>concat( <span style="font-size:30px;">𝔰</span> <sup>*</sup> ) denotes the flat sequence formed by concatenating all sequences <span style="font-size:30px;">𝔰</span><sub>i</sub> in <span style="font-size:30px;">𝔰</span><sup>*</sup></li>
4765<li style="text-decoration:line-through;">||A|| is the length of the byte sequence generated from the production A in a derivation</li>
4766<li>
4767Moreover, the following conventions are employed:
4768<br>
4769The notation x<sup>n</sup>, where x is a non-terminal symbol, is treated as a meta variable ranging over respective sequences of x (similarly for x<sup>*</sup>, x<sup>+</sup>, x<sup>?</sup>).
4770When given a sequence x<sup>n</sup>, then the occurrences of x in a sequence written (A1 x A2)<sup>n</sup> are assumed to be in point-wise correspondence with x<sup>n</sup> (similarly for x<sup>*</sup>, x<sup>+</sup>, x<sup>?</sup>). This implicitly expresses a form of mapping syntactic constructions over a sequence.
4771<br>
4772Productions of the following form are interpreted as records that map a fixed set of fields field<sub>i</sub> to “values†A<sub>i</sub>, respectively:
4773<br>
4774 <span style="font-style:italic;font-weight:bold;color:#ffffff;">r</span> ::= {field<sub>1</sub> A<sub>1</sub> , field<sub>2</sub> A<sub>2</sub> , ...}
4775<br>
4776The following notation is adopted for manipulating such records:
4777<br>
4778<span style="font-style:italic;font-weight:bold;color:#ffffff;">r</span> . field denotes the contents of the field component of <span style="font-style:italic;font-weight:bold;color:#ffffff;">r</span>.
4779<br>
4780<span style="font-style:italic;font-weight:bold;color:#ffffff;">r</span> with field = A denotes the same record as <span style="font-style:italic;font-weight:bold;color:#ffffff;">r</span>, except that the contents of the field component is replaced with A.
4781<br>
4782r1 ⊕ r2 denotes the composition of two records with the same fields of sequences by appending each sequence point-wise:
4783<br>
4784{field<sub>1</sub> A<sup>*</sup><sub>1</sub> , field <sub>2</sub> A<sup>*</sup> <sub>2</sub> , ...}
4785⊕
4786{ field<sub>1</sub> B<sup>*</sup><sub>1</sub> , field<sub>2</sub> B<sup>*</sup><sub>2</sub> , ...} = { field<sub>1</sub> A<sup>*</sup><sub>1</sub> B<sup>*</sup><sub>1</sub> , field<sub>2</sub> A<sup>*</sup><sub>2</sub> B<sup>*</sup><sub>2</sub> , ...}
4787<br>
4788⊕ <span style="font-style:italic;font-weight:bold;color:#ffffff;">r</span><sup>*</sup> denotes the composition of a sequence of records, respectively; if the sequence is empty, then all fields of the resulting record are empty.
4789<br>
4790The update notation for sequences and records generalizes recursively to nested components accessed by “paths†pth ::= ( [ ... ] | . field ) <sup>+</sup> :
4791<ul>
4792<li><span style="font-size:30px;">𝔰</span> with [ i ] pth = A is short for <span style="font-size:30px;">𝔰</span> with [ i ] = ( <span style="font-size:30px;">𝔰</span> [ i ] with pth = A).</li>
4793<li><span style="font-style:italic;font-weight:bold;color:#ffffff;">r</span> with field pth = A is short for <span style="font-style:italic;font-weight:bold;color:#ffffff;">r</span> with field = (<span style="font-style:italic;font-weight:bold;color:#ffffff;">r</span> . field with pth = A).</li>
4794</ul>
4795where <span style="font-style:italic;font-weight:bold;color:#ffffff;">r</span> with . field = A is shortened to <span style="font-style:italic;font-weight:bold;color:#ffffff;">r</span> with field = A
4796</li>
4797<li style="text-decoration:underline;">http://webassembly.github.io/spec/core/syntax/values.html</li>
4798<li>The meta variable b ranges over bytes</li>
4799<li>The meta variables m,n,i range over integers</li>
4800<li>
4801In order to distinguish arithmetics like 2<sup>n</sup> from sequences like ( 1 )<sup>n</sup>, the latter is distinguished with parentheses
4802</li>
4803<li>The meta variable z ranges over floating-point values where clear from context</li>
4804<li>http://webassembly.github.io/spec/core/syntax/types.html</li>
4805<li>The meta variable <span style="font-style:italic;">t</span> ranges over value types where clear from context</li>
4806<li>The notation | <span style="font-style:italic;">t</span> | denotes the bit width of a value type. That is, |i32|=|f32|=32 and |i64|=|f64|=64</li>
4807<li>http://webassembly.github.io/spec/core/syntax/types.html</li>
4808<li>brackets indicate a sequence of values ex. [ valtype ? ]
4809</li>
4810<li>http://webassembly.github.io/spec/core/syntax/instructions.html</li>
4811<li>Some integer instructions come in two flavors, where a signedness annotation <span style="font-style:italic;font-weight:bold;">sx</span> distinguishes whether the operands are to be interpreted as unsigned or signed integers</li>
4812<li>http://webassembly.github.io/spec/core/syntax/modules.html</li>
4813<li>The meta variable l ranges over label indices</li>
4814<li>The meta variables x,y range over indices in any of the other index spaces</li>
4815<li>Contexts are defined as C with abstract syntax</li>
4816<li>http://webassembly.github.io/spec/core/valid/conventions.html</li>
4817<li>The proposition that a phrase A has a respective type T is written A:T</li>
4818<li>http://webassembly.github.io/spec/core/exec/runtime.html</li>
4819<li>The meta variable S ranges over stores where clear from context</li>
4820<li>http://webassembly.github.io/spec/core/exec/runtime.html</li>
4821<li>The meta variable L ranges over labels where clear from context</li>
4822<li>The meta variable F ranges over frames where clear from context</li>
4823</ul>
4824
4825
4826
4827
4828<h4>Binary</h4>
4829<ul style="line-height:34px;">
4830<li>Terminal symbols are bytes expressed in hexadecimal notation: 0x0F</li>
4831<li>Nonterminal symbols are written in typewriter font</li>
4832<li>B<sup>n</sup> is... n >= 0 iterations of B</li>
4833<li>B<sup>*</sup> is... potentially null iterations of B</li>
4834<li style="text-decoration:line-through;">B<sup>+</sup> is... n >= 1 iterations of B</li>
4835<li>B<sup>?</sup> is... n <= 1 iterations of B</li>
4836<li>x:B ... denotes the same language as the nonterminal B, but also binds the variable x to the attribute synthesized for B</li>
4837<li>Productions are written sym::= B<sub>1</sub>→A<sub>1</sub> | ... | B<sub>n</sub>→A<sub>n</sub> , where each A<sub>i</sub> is the attribute that is synthesized for sym in the given case, usually from attribute variables bound in B<sub>i</sub></li>
4838<li>Some productions are augmented by side conditions in parentheses, which restrict the applicability of the production. They provide a shorthand for a combinatorial expansion of the production into many separate cases</li>
4839<li>∈ denotes the empty byte sequence</li>
4840<li style="text-decoration:line-through;">|<span style="font-size:30px;">𝔰</span>| denotes the length of a sequence <span style="font-size:30px;">𝔰</span></li>
4841<li style="text-decoration:line-through;"><span style="font-size:30px;">𝔰</span>[ i ] denotes the i-th element of a sequence <span style="font-size:30px;">𝔰</span>, starting from 0</li>
4842<li style="text-decoration:line-through;"><span style="font-size:30px;">𝔰</span>[ i : n ] denotes the sub-sequence <span style="font-size:30px;">𝔰</span>[ i ] ... <span style="font-size:30px;">𝔰</span>[ i + n −1] of a sequence <span style="font-size:30px;">𝔰</span></li>
4843<li style="text-decoration:line-through;"><span style="font-size:30px;">𝔰</span> with [ i ] = A denotes the same sequence as <span style="font-size:30px;">𝔰</span>, except that the i-th element is replaced with A</li>
4844<li style="text-decoration:line-through;"><span style="font-size:30px;">𝔰</span> with [ i : n ] = A<sup>n</sup> denotes the same sequence as <span style="font-size:30px;">𝔰</span>, except that the sub-sequence <span style="font-size:30px;">𝔰</span>[ i : n ] is replaced with A<sup>n</sup></li>
4845<li style="text-decoration:line-through;">concat( <span style="font-size:30px;">𝔰</span> <sup>*</sup> ) denotes the flat sequence formed by concatenating all sequences <span style="font-size:30px;">𝔰</span><sub>i</sub> in <span style="font-size:30px;">𝔰</span><sup>*</sup></li>
4846<li>||B|| is the length of the byte sequence generated from the production B in a derivation</li>
4847</ul>
4848
4849
4850
4851
4852<h4>Text</h4>
4853<ul style="line-height:34px;">
4854<li>Terminal symbols are either literal strings of characters enclosed in quotes or expressed as Unicode code points: ‘module’, U+0A. (All characters written literally are unambiguously drawn from the 7-bit ASCII subset of Unicode.)</li>
4855<li>Nonterminal symbols are written in typewriter font</li>
4856<li>T<sup>n</sup> is... n >= 0 iterations of T</li>
4857<li>T<sup>*</sup> is... potentially null iterations of T</li>
4858<li>T<sup>+</sup> is... n >= 1 iterations of T</li>
4859<li>T<sup>?</sup> is... n <= 1 iterations of T</li>
4860<li>x:T ... denotes the same language as the nonterminal T, but also binds the variable x to the attribute synthesized for T</li>
4861<li>Productions are written sym::= T<sub>1</sub>→A<sub>1</sub> | ... | T<sub>n</sub>→A<sub>n</sub> , where each A<sub>i</sub> is the attribute that is synthesized for sym in the given case, usually from attribute variables bound in T<sub>i</sub></li>
4862<li>Some productions are augmented with side conditions in parentheses, (ifcondition) , which restrict the applicability of the production, that provide a shorthand for a combinatorial expansion of the production into many separate cases</li>
4863<li style="text-decoration:line-through;">∈ denotes the empty sequence</li>
4864<li style="text-decoration:line-through;">|<span style="font-size:30px;">𝔰</span>| denotes the length of a sequence <span style="font-size:30px;">𝔰</span></li>
4865<li style="text-decoration:line-through;"><span style="font-size:30px;">𝔰</span>[ i ] denotes the i-th element of a sequence <span style="font-size:30px;">𝔰</span>, starting from 0</li>
4866<li style="text-decoration:line-through;"><span style="font-size:30px;">𝔰</span>[ i : n ] denotes the sub-sequence <span style="font-size:30px;">𝔰</span>[ i ] ... <span style="font-size:30px;">𝔰</span>[ i + n −1] of a sequence <span style="font-size:30px;">𝔰</span></li>
4867<li style="text-decoration:line-through;"><span style="font-size:30px;">𝔰</span> with [ i ] = A denotes the same sequence as <span style="font-size:30px;">𝔰</span>, except that the i-th element is replaced with A</li>
4868<li style="text-decoration:line-through;"><span style="font-size:30px;">𝔰</span> with [ i : n ] = A<sup>n</sup> denotes the same sequence as <span style="font-size:30px;">𝔰</span>, except that the sub-sequence <span style="font-size:30px;">𝔰</span>[ i : n ] is replaced with A<sup>n</sup></li>
4869<li style="text-decoration:line-through;">concat( <span style="font-size:30px;">𝔰</span> <sup>*</sup> ) denotes the flat sequence formed by concatenating all sequences <span style="font-size:30px;">𝔰</span><sub>i</sub> in <span style="font-size:30px;">𝔰</span><sup>*</sup></li>
4870<li style="text-decoration:line-through;">||T|| is the length of the byte sequence generated from the production T in a derivation</li>
4871</ul>
4872
4873
4874the memory buffer at the bottom calls everything a dataview when the ones at the bottom are actually a typed array
4875*/
4876</script>
4877
4878</body>
4879</html>