summaryrefslogtreecommitdiff
path: root/src/buildvm_x64win.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/buildvm_x64win.h')
-rw-r--r--src/buildvm_x64win.h1551
1 files changed, 776 insertions, 775 deletions
diff --git a/src/buildvm_x64win.h b/src/buildvm_x64win.h
index 656b6590..0f07de67 100644
--- a/src/buildvm_x64win.h
+++ b/src/buildvm_x64win.h
@@ -12,7 +12,7 @@
12#define DASM_SECTION_CODE_OP 0 12#define DASM_SECTION_CODE_OP 0
13#define DASM_SECTION_CODE_SUB 1 13#define DASM_SECTION_CODE_SUB 1
14#define DASM_MAXSECTION 2 14#define DASM_MAXSECTION 2
15static const unsigned char build_actionlist[14024] = { 15static const unsigned char build_actionlist[14026] = {
16 254,1,248,10,252,247,198,237,15,132,244,11,131,230,252,248,41,252,242,72, 16 254,1,248,10,252,247,198,237,15,132,244,11,131,230,252,248,41,252,242,72,
17 141,76,49,252,248,139,114,252,252,199,68,10,4,237,248,12,131,192,1,137,68, 17 141,76,49,252,248,139,114,252,252,199,68,10,4,237,248,12,131,192,1,137,68,
18 36,84,252,247,198,237,15,132,244,13,248,14,252,247,198,237,15,132,244,10, 18 36,84,252,247,198,237,15,132,244,13,248,14,252,247,198,237,15,132,244,10,
@@ -264,435 +264,436 @@ static const unsigned char build_actionlist[14024] = {
264 42,139,114,252,252,131,189,233,1,15,130,244,72,15,182,173,233,255,252,242, 264 42,139,114,252,252,131,189,233,1,15,130,244,72,15,182,173,233,255,252,242,
265 15,42,197,252,233,244,63,255,137,108,36,80,219,68,36,80,252,233,244,64,255, 265 15,42,197,252,233,244,63,255,137,108,36,80,219,68,36,80,252,233,244,64,255,
266 248,112,139,171,233,59,171,233,15,130,244,247,232,244,66,248,1,129,252,248, 266 248,112,139,171,233,59,171,233,15,130,244,247,232,244,66,248,1,129,252,248,
267 239,15,133,244,55,129,122,253,4,239,15,135,244,55,255,252,242,15,45,2,61, 267 239,15,133,244,55,129,122,253,4,239,15,135,244,55,255,252,242,15,45,42,129,
268 252,255,0,0,0,15,135,244,55,137,68,36,84,255,221,2,219,92,36,84,129,124,36, 268 252,253,252,255,0,0,0,15,135,244,55,137,108,36,84,255,221,2,219,92,36,84,
269 84,252,255,0,0,0,15,135,244,55,255,199,68,36,32,1,0,0,0,72,141,68,36,84,248, 269 129,124,36,84,252,255,0,0,0,15,135,244,55,255,199,68,36,32,1,0,0,0,72,141,
270 113,139,108,36,96,137,149,233,68,139,68,36,32,72,137,194,137,252,233,137, 270 68,36,84,248,113,139,108,36,96,137,149,233,68,139,68,36,32,72,137,194,137,
271 116,36,100,232,251,1,17,139,149,233,139,114,252,252,199,66,252,252,237,137, 271 252,233,137,116,36,100,232,251,1,17,139,149,233,139,114,252,252,199,66,252,
272 66,252,248,252,233,244,58,248,114,139,171,233,59,171,233,15,130,244,247,232, 272 252,237,137,66,252,248,252,233,244,58,248,114,139,171,233,59,171,233,15,130,
273 244,66,248,1,199,68,36,84,252,255,252,255,252,255,252,255,129,252,248,239, 273 244,247,232,244,66,248,1,199,68,36,84,252,255,252,255,252,255,252,255,129,
274 15,130,244,55,15,134,244,247,129,122,253,20,239,255,252,242,15,45,106,16, 274 252,248,239,15,130,244,55,15,134,244,247,129,122,253,20,239,255,252,242,15,
275 137,108,36,84,255,221,66,16,219,92,36,84,255,248,1,129,122,253,4,239,15,133, 275 45,106,16,137,108,36,84,255,221,66,16,219,92,36,84,255,248,1,129,122,253,
276 244,55,129,122,253,12,239,15,135,244,55,139,42,137,108,36,32,139,173,233, 276 4,239,15,133,244,55,129,122,253,12,239,15,135,244,55,139,42,137,108,36,32,
277 255,252,242,15,45,74,8,255,139,68,36,84,57,197,15,130,244,251,248,2,133,201, 277 139,173,233,255,252,242,15,45,74,8,255,139,68,36,84,57,197,15,130,244,251,
278 15,142,244,253,248,3,139,108,36,32,41,200,15,140,244,115,141,172,253,13,233, 278 248,2,133,201,15,142,244,253,248,3,139,108,36,32,41,200,15,140,244,115,141,
279 131,192,1,248,4,137,68,36,32,137,232,252,233,244,113,248,5,15,140,244,252, 279 172,253,13,233,131,192,1,248,4,137,68,36,32,137,232,252,233,244,113,248,5,
280 141,68,40,1,252,233,244,2,248,6,137,232,252,233,244,2,248,7,255,15,132,244, 280 15,140,244,252,141,68,40,1,252,233,244,2,248,6,137,232,252,233,244,2,248,
281 254,1,252,233,131,193,1,15,143,244,3,248,8,185,1,0,0,0,252,233,244,3,248, 281 7,255,15,132,244,254,1,252,233,131,193,1,15,143,244,3,248,8,185,1,0,0,0,252,
282 115,49,192,252,233,244,4,248,116,129,252,248,239,15,130,244,55,139,171,233, 282 233,244,3,248,115,49,192,252,233,244,4,248,116,129,252,248,239,15,130,244,
283 59,171,233,15,130,244,247,232,244,66,248,1,255,129,122,253,4,239,15,133,244, 283 55,139,171,233,59,171,233,15,130,244,247,232,244,66,248,1,255,129,122,253,
284 55,129,122,253,12,239,15,135,244,55,139,42,255,252,242,15,45,66,8,255,221, 284 4,239,15,133,244,55,129,122,253,12,239,15,135,244,55,139,42,255,252,242,15,
285 66,8,219,92,36,84,139,68,36,84,255,133,192,15,142,244,115,131,189,233,1,15, 285 45,66,8,255,221,66,8,219,92,36,84,139,68,36,84,255,133,192,15,142,244,115,
286 130,244,115,15,133,244,117,57,131,233,15,130,244,117,15,182,141,233,139,171, 286 131,189,233,1,15,130,244,115,15,133,244,117,57,131,233,15,130,244,117,15,
287 233,137,68,36,32,248,1,136,77,0,131,197,1,131,232,1,15,133,244,1,139,131, 287 182,141,233,139,171,233,137,68,36,32,248,1,136,77,0,131,197,1,131,232,1,15,
288 233,252,233,244,113,248,118,129,252,248,239,255,15,130,244,55,139,171,233, 288 133,244,1,139,131,233,252,233,244,113,248,118,129,252,248,239,255,15,130,
289 59,171,233,15,130,244,247,232,244,66,248,1,129,122,253,4,239,15,133,244,55, 289 244,55,139,171,233,59,171,233,15,130,244,247,232,244,66,248,1,129,122,253,
290 139,42,139,133,233,133,192,15,132,244,115,57,131,233,15,130,244,119,129,197, 290 4,239,15,133,244,55,139,42,139,133,233,133,192,15,132,244,115,57,131,233,
291 239,137,116,36,84,137,68,36,32,139,179,233,248,1,255,15,182,77,0,131,197, 291 15,130,244,119,129,197,239,137,116,36,84,137,68,36,32,139,179,233,248,1,255,
292 1,131,232,1,136,12,6,15,133,244,1,137,252,240,139,116,36,84,252,233,244,113, 292 15,182,77,0,131,197,1,131,232,1,136,12,6,15,133,244,1,137,252,240,139,116,
293 248,120,129,252,248,239,15,130,244,55,139,171,233,59,171,233,15,130,244,247, 293 36,84,252,233,244,113,248,120,129,252,248,239,15,130,244,55,139,171,233,59,
294 232,244,66,248,1,129,122,253,4,239,15,133,244,55,139,42,139,133,233,57,131, 294 171,233,15,130,244,247,232,244,66,248,1,129,122,253,4,239,15,133,244,55,139,
295 233,255,15,130,244,119,129,197,239,137,116,36,84,137,68,36,32,139,179,233, 295 42,139,133,233,57,131,233,255,15,130,244,119,129,197,239,137,116,36,84,137,
296 252,233,244,249,248,1,15,182,76,5,0,131,252,249,65,15,130,244,248,131,252, 296 68,36,32,139,179,233,252,233,244,249,248,1,15,182,76,5,0,131,252,249,65,15,
297 249,90,15,135,244,248,131,252,241,32,248,2,136,12,6,248,3,131,232,1,15,137, 297 130,244,248,131,252,249,90,15,135,244,248,131,252,241,32,248,2,136,12,6,248,
298 244,1,137,252,240,139,116,36,84,252,233,244,113,248,121,129,252,248,239,15, 298 3,131,232,1,15,137,244,1,137,252,240,139,116,36,84,252,233,244,113,248,121,
299 130,244,55,255,139,171,233,59,171,233,15,130,244,247,232,244,66,248,1,129, 299 129,252,248,239,15,130,244,55,255,139,171,233,59,171,233,15,130,244,247,232,
300 122,253,4,239,15,133,244,55,139,42,139,133,233,57,131,233,15,130,244,119, 300 244,66,248,1,129,122,253,4,239,15,133,244,55,139,42,139,133,233,57,131,233,
301 129,197,239,137,116,36,84,137,68,36,32,139,179,233,252,233,244,249,248,1, 301 15,130,244,119,129,197,239,137,116,36,84,137,68,36,32,139,179,233,252,233,
302 15,182,76,5,0,131,252,249,97,15,130,244,248,255,131,252,249,122,15,135,244, 302 244,249,248,1,15,182,76,5,0,131,252,249,97,15,130,244,248,255,131,252,249,
303 248,131,252,241,32,248,2,136,12,6,248,3,131,232,1,15,137,244,1,137,252,240, 303 122,15,135,244,248,131,252,241,32,248,2,136,12,6,248,3,131,232,1,15,137,244,
304 139,116,36,84,252,233,244,113,248,122,129,252,248,239,15,130,244,55,129,122, 304 1,137,252,240,139,116,36,84,252,233,244,113,248,122,129,252,248,239,15,130,
305 253,4,239,15,133,244,55,137,213,139,10,232,251,1,18,137,252,234,255,252,242, 305 244,55,129,122,253,4,239,15,133,244,55,137,213,139,10,232,251,1,18,137,252,
306 15,42,192,252,233,244,63,255,248,123,129,252,248,239,15,130,244,55,129,122, 306 234,255,252,242,15,42,192,252,233,244,63,255,248,123,129,252,248,239,15,130,
307 253,4,239,15,135,244,55,252,242,15,16,2,72,189,237,237,102,72,15,110,205, 307 244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,72,189,237,237,102,
308 252,242,15,88,193,102,15,126,197,252,242,15,42,197,252,233,244,63,255,248, 308 72,15,110,205,252,242,15,88,193,102,15,126,197,252,242,15,42,197,252,233,
309 124,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,242, 309 244,63,255,248,124,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,
310 15,16,2,72,189,237,237,102,72,15,110,205,252,242,15,88,193,102,15,126,197, 310 244,55,252,242,15,16,2,72,189,237,237,102,72,15,110,205,252,242,15,88,193,
311 255,137,68,36,84,141,68,194,252,240,248,1,57,208,15,134,244,125,129,120,253, 311 102,15,126,197,255,137,68,36,84,141,68,194,252,240,248,1,57,208,15,134,244,
312 4,239,15,135,244,126,255,252,242,15,16,0,252,242,15,88,193,102,15,126,193, 312 125,129,120,253,4,239,15,135,244,126,255,252,242,15,16,0,252,242,15,88,193,
313 33,205,255,131,232,8,252,233,244,1,255,248,127,129,252,248,239,15,130,244, 313 102,15,126,193,33,205,255,131,232,8,252,233,244,1,255,248,127,129,252,248,
314 239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,72,189,
315 237,237,102,72,15,110,205,252,242,15,88,193,102,15,126,197,255,252,242,15,
316 16,0,252,242,15,88,193,102,15,126,193,9,205,255,248,128,129,252,248,239,15,
317 130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,72,189,237,237,
318 102,72,15,110,205,252,242,15,88,193,102,15,126,197,255,252,242,15,16,0,252,
319 242,15,88,193,102,15,126,193,49,205,255,248,129,129,252,248,239,15,130,244,
314 55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,72,189,237,237,102,72, 320 55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,72,189,237,237,102,72,
315 15,110,205,252,242,15,88,193,102,15,126,197,255,252,242,15,16,0,252,242,15, 321 15,110,205,252,242,15,88,193,102,15,126,197,255,15,205,252,233,244,125,255,
316 88,193,102,15,126,193,9,205,255,248,128,129,252,248,239,15,130,244,55,129, 322 248,130,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,
317 122,253,4,239,15,135,244,55,252,242,15,16,2,72,189,237,237,102,72,15,110, 323 242,15,16,2,72,189,237,237,102,72,15,110,205,252,242,15,88,193,102,15,126,
318 205,252,242,15,88,193,102,15,126,197,255,252,242,15,16,0,252,242,15,88,193, 324 197,255,252,247,213,255,248,125,252,242,15,42,197,252,233,244,63,255,248,
319 102,15,126,193,49,205,255,248,129,129,252,248,239,15,130,244,55,129,122,253, 325 126,139,68,36,84,252,233,244,55,255,248,131,129,252,248,239,15,130,244,55,
320 4,239,15,135,244,55,252,242,15,16,2,72,189,237,237,102,72,15,110,205,252, 326 129,122,253,4,239,15,135,244,55,129,122,253,12,239,15,135,244,55,252,242,
321 242,15,88,193,102,15,126,197,255,15,205,252,233,244,125,255,248,130,129,252, 327 15,16,2,252,242,15,16,74,8,72,189,237,237,102,72,15,110,213,252,242,15,88,
322 248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,72, 328 194,252,242,15,88,202,137,200,102,15,126,197,102,15,126,201,255,211,229,137,
323 189,237,237,102,72,15,110,205,252,242,15,88,193,102,15,126,197,255,252,247, 329 193,252,233,244,125,255,248,132,129,252,248,239,15,130,244,55,129,122,253,
324 213,255,248,125,252,242,15,42,197,252,233,244,63,255,248,126,139,68,36,84, 330 4,239,15,135,244,55,129,122,253,12,239,15,135,244,55,252,242,15,16,2,252,
325 252,233,244,55,255,248,131,129,252,248,239,15,130,244,55,129,122,253,4,239, 331 242,15,16,74,8,72,189,237,237,102,72,15,110,213,252,242,15,88,194,252,242,
326 15,135,244,55,129,122,253,12,239,15,135,244,55,252,242,15,16,2,252,242,15, 332 15,88,202,137,200,102,15,126,197,102,15,126,201,255,211,252,237,137,193,252,
327 16,74,8,72,189,237,237,102,72,15,110,213,252,242,15,88,194,252,242,15,88, 333 233,244,125,255,248,133,129,252,248,239,15,130,244,55,129,122,253,4,239,15,
328 202,137,200,102,15,126,197,102,15,126,201,255,211,229,137,193,252,233,244, 334 135,244,55,129,122,253,12,239,15,135,244,55,252,242,15,16,2,252,242,15,16,
329 125,255,248,132,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244, 335 74,8,72,189,237,237,102,72,15,110,213,252,242,15,88,194,252,242,15,88,202,
336 137,200,102,15,126,197,102,15,126,201,255,211,252,253,137,193,252,233,244,
337 125,255,248,134,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,
330 55,129,122,253,12,239,15,135,244,55,252,242,15,16,2,252,242,15,16,74,8,72, 338 55,129,122,253,12,239,15,135,244,55,252,242,15,16,2,252,242,15,16,74,8,72,
331 189,237,237,102,72,15,110,213,252,242,15,88,194,252,242,15,88,202,137,200, 339 189,237,237,102,72,15,110,213,252,242,15,88,194,252,242,15,88,202,137,200,
332 102,15,126,197,102,15,126,201,255,211,252,237,137,193,252,233,244,125,255, 340 102,15,126,197,102,15,126,201,255,211,197,137,193,252,233,244,125,255,248,
333 248,133,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,129, 341 135,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,
334 122,253,12,239,15,135,244,55,252,242,15,16,2,252,242,15,16,74,8,72,189,237, 342 253,12,239,15,135,244,55,252,242,15,16,2,252,242,15,16,74,8,72,189,237,237,
335 237,102,72,15,110,213,252,242,15,88,194,252,242,15,88,202,137,200,102,15, 343 102,72,15,110,213,252,242,15,88,194,252,242,15,88,202,137,200,102,15,126,
336 126,197,102,15,126,201,255,211,252,253,137,193,252,233,244,125,255,248,134, 344 197,102,15,126,201,255,211,205,137,193,252,233,244,125,248,117,184,237,252,
337 129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,253, 345 233,244,55,248,119,184,237,248,55,139,108,36,96,139,114,252,252,137,116,36,
338 12,239,15,135,244,55,252,242,15,16,2,252,242,15,16,74,8,72,189,237,237,102, 346 100,137,149,233,141,68,194,252,248,141,136,233,137,133,233,139,66,252,248,
339 72,15,110,213,252,242,15,88,194,252,242,15,88,202,137,200,102,15,126,197, 347 59,141,233,15,135,244,251,137,252,233,252,255,144,233,139,149,233,133,192,
340 102,15,126,201,255,211,197,137,193,252,233,244,125,255,248,135,129,252,248, 348 15,133,244,69,248,1,255,139,133,233,41,208,193,232,3,131,192,1,139,106,252,
341 239,15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,239,15,135, 349 248,57,114,252,252,15,133,244,248,139,181,233,139,14,15,182,252,233,15,182,
342 244,55,252,242,15,16,2,252,242,15,16,74,8,72,189,237,237,102,72,15,110,213, 350 205,131,198,4,252,255,36,252,235,248,2,137,209,252,247,198,237,15,133,244,
343 252,242,15,88,194,252,242,15,88,202,137,200,102,15,126,197,102,15,126,201, 351 249,15,182,110,252,253,72,252,247,213,141,20,252,234,252,233,244,27,248,3,
344 255,211,205,137,193,252,233,244,125,248,117,184,237,252,233,244,55,248,119, 352 137,252,245,131,229,252,248,41,252,234,252,233,244,27,248,5,186,237,137,252,
345 184,237,248,55,139,108,36,96,139,114,252,252,137,116,36,100,137,149,233,141, 353 233,232,251,1,0,139,149,233,252,233,244,1,248,66,93,72,137,108,36,32,139,
346 68,194,252,248,141,136,233,137,133,233,139,66,252,248,59,141,233,15,135,244, 354 108,36,96,137,116,36,100,137,149,233,255,141,68,194,252,248,137,252,233,137,
347 251,137,252,233,252,255,144,233,139,149,233,133,192,15,133,244,69,248,1,255, 355 133,233,232,251,1,19,139,149,233,139,133,233,41,208,193,232,3,131,192,1,72,
348 139,133,233,41,208,193,232,3,131,192,1,139,106,252,248,57,114,252,252,15, 356 139,108,36,32,85,195,248,136,255,15,182,131,233,168,235,15,133,244,251,168,
349 133,244,248,139,181,233,139,14,15,182,252,233,15,182,205,131,198,4,252,255, 357 235,15,133,244,247,168,235,15,132,244,247,252,255,139,233,252,233,244,247,
350 36,252,235,248,2,137,209,252,247,198,237,15,133,244,249,15,182,110,252,253, 358 255,248,137,15,182,131,233,168,235,15,133,244,251,252,233,244,247,248,138,
351 72,252,247,213,141,20,252,234,252,233,244,27,248,3,137,252,245,131,229,252, 359 15,182,131,233,168,235,15,133,244,251,168,235,15,132,244,251,252,255,139,
352 248,41,252,234,252,233,244,27,248,5,186,237,137,252,233,232,251,1,0,139,149, 360 233,15,132,244,247,168,235,15,132,244,251,248,1,255,139,108,36,96,137,149,
353 233,252,233,244,1,248,66,93,72,137,108,36,32,139,108,36,96,137,116,36,100, 361 233,137,252,242,137,252,233,232,251,1,20,248,3,139,149,233,248,4,15,182,78,
354 137,149,233,255,141,68,194,252,248,137,252,233,137,133,233,232,251,1,19,139, 362 252,253,248,5,15,182,110,252,252,15,183,70,252,254,252,255,164,253,252,235,
355 149,233,139,133,233,41,208,193,232,3,131,192,1,72,139,108,36,32,85,195,248, 363 233,248,139,131,198,4,139,77,232,137,76,36,84,252,233,244,4,248,140,255,139,
356 136,255,15,182,131,233,168,235,15,133,244,251,168,235,15,133,244,247,168, 364 106,252,248,139,173,233,15,182,133,233,141,4,194,139,108,36,96,137,149,233,
357 235,15,132,244,247,252,255,139,233,252,233,244,247,255,248,137,15,182,131, 365 137,133,233,137,252,242,141,139,233,72,137,171,233,137,116,36,100,232,251,
358 233,168,235,15,133,244,251,252,233,244,247,248,138,15,182,131,233,168,235, 366 1,21,252,233,244,3,255,248,141,137,116,36,100,255,248,142,255,137,116,36,
359 15,133,244,251,168,235,15,132,244,251,252,255,139,233,15,132,244,247,168, 367 100,131,206,1,248,1,255,141,68,194,252,248,139,108,36,96,137,149,233,137,
360 235,15,132,244,251,248,1,255,139,108,36,96,137,149,233,137,252,242,137,252, 368 133,233,137,252,242,137,252,233,232,251,1,22,199,68,36,100,0,0,0,0,255,131,
361 233,232,251,1,20,248,3,139,149,233,248,4,15,182,78,252,253,248,5,15,182,110, 369 230,252,254,255,139,149,233,72,137,193,139,133,233,41,208,72,137,205,15,182,
362 252,252,15,183,70,252,254,252,255,164,253,252,235,233,248,139,131,198,4,139, 370 78,252,253,193,232,3,131,192,1,252,255,229,248,143,255,65,85,65,84,65,83,
363 77,232,137,76,36,84,252,233,244,4,248,140,255,139,106,252,248,139,173,233, 371 65,82,65,81,65,80,87,86,85,72,141,108,36,88,85,83,82,81,80,15,182,69,252,
364 15,182,133,233,141,4,194,139,108,36,96,137,149,233,137,133,233,137,252,242, 372 248,138,101,252,240,76,137,125,252,248,76,137,117,252,240,139,93,0,139,139,
365 141,139,233,72,137,171,233,137,116,36,100,232,251,1,21,252,233,244,3,255, 373 233,199,131,233,237,137,131,233,137,139,233,72,129,252,236,239,72,131,197,
366 248,141,137,116,36,100,255,248,142,255,137,116,36,100,131,206,1,248,1,255, 374 128,252,242,68,15,17,125,252,248,252,242,68,15,17,117,252,240,252,242,68,
367 141,68,194,252,248,139,108,36,96,137,149,233,137,133,233,137,252,242,137, 375 15,17,109,232,252,242,68,15,17,101,224,252,242,68,15,17,93,216,252,242,68,
368 252,233,232,251,1,22,199,68,36,100,0,0,0,0,255,131,230,252,254,255,139,149, 376 15,17,85,208,252,242,68,15,17,77,200,252,242,68,15,17,69,192,252,242,15,17,
369 233,72,137,193,139,133,233,41,208,72,137,205,15,182,78,252,253,193,232,3, 377 125,184,252,242,15,17,117,176,252,242,15,17,109,168,252,242,15,17,101,160,
370 131,192,1,252,255,229,248,143,255,65,85,65,84,65,83,65,82,65,81,65,80,87, 378 252,242,15,17,93,152,252,242,15,17,85,144,252,242,15,17,77,136,252,242,15,
371 86,85,72,141,108,36,88,85,83,82,81,80,15,182,69,252,248,138,101,252,240,76, 379 17,69,128,139,171,233,139,147,233,72,137,171,233,199,131,233,0,0,0,0,137,
372 137,125,252,248,76,137,117,252,240,139,93,0,139,139,233,199,131,233,237,137, 380 149,233,72,141,148,253,36,233,141,139,233,232,251,1,23,72,139,141,233,72,
373 131,233,137,139,233,72,129,252,236,239,72,131,197,128,252,242,68,15,17,125, 381 129,225,239,137,169,233,139,149,233,139,177,233,252,233,244,247,255,248,144,
374 252,248,252,242,68,15,17,117,252,240,252,242,68,15,17,109,232,252,242,68, 382 255,72,141,140,253,36,233,248,1,102,68,15,111,185,233,102,68,15,111,177,233,
375 15,17,101,224,252,242,68,15,17,93,216,252,242,68,15,17,85,208,252,242,68, 383 102,68,15,111,169,233,102,68,15,111,161,233,102,68,15,111,153,233,102,68,
376 15,17,77,200,252,242,68,15,17,69,192,252,242,15,17,125,184,252,242,15,17, 384 15,111,145,233,102,68,15,111,137,233,102,68,15,111,129,233,102,15,111,185,
377 117,176,252,242,15,17,109,168,252,242,15,17,101,160,252,242,15,17,93,152, 385 233,72,137,204,102,15,111,49,76,139,124,36,16,76,139,116,36,24,76,139,108,
378 252,242,15,17,85,144,252,242,15,17,77,136,252,242,15,17,69,128,139,171,233, 386 36,32,76,139,100,36,80,133,192,15,136,244,249,137,68,36,84,139,122,252,248,
379 139,147,233,72,137,171,233,199,131,233,0,0,0,0,137,149,233,72,141,148,253, 387 139,191,233,139,191,233,199,131,233,0,0,0,0,199,131,233,237,139,6,15,182,
380 36,233,141,139,233,232,251,1,23,72,139,141,233,72,129,225,239,137,169,233, 388 204,15,182,232,131,198,4,193,232,16,129,252,253,239,15,130,244,248,255,139,
381 139,149,233,139,177,233,252,233,244,247,255,248,144,255,72,141,140,253,36, 389 68,36,84,248,2,252,255,36,252,235,248,3,252,247,216,137,252,233,137,194,232,
382 233,248,1,102,68,15,111,185,233,102,68,15,111,177,233,102,68,15,111,169,233, 390 251,1,24,255,248,82,255,217,124,36,4,137,68,36,8,102,184,0,4,102,11,68,36,
383 102,68,15,111,161,233,102,68,15,111,153,233,102,68,15,111,145,233,102,68, 391 4,102,37,252,255,252,247,102,137,68,36,6,217,108,36,6,217,252,252,217,108,
384 15,111,137,233,102,68,15,111,129,233,102,15,111,185,233,72,137,204,102,15, 392 36,4,139,68,36,8,195,255,248,145,72,184,237,237,102,72,15,110,208,72,184,
385 111,49,76,139,124,36,16,76,139,116,36,24,76,139,108,36,32,76,139,100,36,80, 393 237,237,102,72,15,110,216,15,40,200,102,15,84,202,102,15,46,217,15,134,244,
386 133,192,15,136,244,249,137,68,36,84,139,122,252,248,139,191,233,139,191,233, 394 247,102,15,85,208,252,242,15,88,203,252,242,15,92,203,102,15,86,202,72,184,
387 199,131,233,0,0,0,0,199,131,233,237,139,6,15,182,204,15,182,232,131,198,4, 395 237,237,102,72,15,110,208,252,242,15,194,193,1,102,15,84,194,252,242,15,92,
388 193,232,16,129,252,253,239,15,130,244,248,255,139,68,36,84,248,2,252,255, 396 200,15,40,193,248,1,195,248,84,255,217,124,36,4,137,68,36,8,102,184,0,8,102,
389 36,252,235,248,3,252,247,216,137,252,233,137,194,232,251,1,24,255,248,82, 397 11,68,36,4,102,37,252,255,252,251,102,137,68,36,6,217,108,36,6,217,252,252,
390 255,217,124,36,4,137,68,36,8,102,184,0,4,102,11,68,36,4,102,37,252,255,252, 398 217,108,36,4,139,68,36,8,195,255,248,146,72,184,237,237,102,72,15,110,208,
391 247,102,137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,139,68,36,8,195, 399 72,184,237,237,102,72,15,110,216,15,40,200,102,15,84,202,102,15,46,217,15,
392 255,248,145,72,184,237,237,102,72,15,110,208,72,184,237,237,102,72,15,110, 400 134,244,247,102,15,85,208,252,242,15,88,203,252,242,15,92,203,102,15,86,202,
393 216,15,40,200,102,15,84,202,102,15,46,217,15,134,244,247,102,15,85,208,252, 401 72,184,237,237,102,72,15,110,208,252,242,15,194,193,6,102,15,84,194,252,242,
394 242,15,88,203,252,242,15,92,203,102,15,86,202,72,184,237,237,102,72,15,110, 402 15,92,200,15,40,193,248,1,195,248,104,255,217,124,36,4,137,68,36,8,102,184,
395 208,252,242,15,194,193,1,102,15,84,194,252,242,15,92,200,15,40,193,248,1, 403 0,12,102,11,68,36,4,102,137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,
396 195,248,84,255,217,124,36,4,137,68,36,8,102,184,0,8,102,11,68,36,4,102,37, 404 139,68,36,8,195,255,248,147,72,184,237,237,102,72,15,110,208,72,184,237,237,
397 252,255,252,251,102,137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,139, 405 102,72,15,110,216,15,40,200,102,15,84,202,102,15,46,217,15,134,244,247,102,
398 68,36,8,195,255,248,146,72,184,237,237,102,72,15,110,208,72,184,237,237,102, 406 15,85,208,15,40,193,252,242,15,88,203,252,242,15,92,203,72,184,237,237,102,
399 72,15,110,216,15,40,200,102,15,84,202,102,15,46,217,15,134,244,247,102,15, 407 72,15,110,216,252,242,15,194,193,1,102,15,84,195,252,242,15,92,200,102,15,
400 85,208,252,242,15,88,203,252,242,15,92,203,102,15,86,202,72,184,237,237,102, 408 86,202,15,40,193,248,1,195,248,148,255,15,40,232,252,242,15,94,193,72,184,
401 72,15,110,208,252,242,15,194,193,6,102,15,84,194,252,242,15,92,200,15,40, 409 237,237,102,72,15,110,208,72,184,237,237,102,72,15,110,216,15,40,224,102,
402 193,248,1,195,248,104,255,217,124,36,4,137,68,36,8,102,184,0,12,102,11,68, 410 15,84,226,102,15,46,220,15,134,244,247,102,15,85,208,252,242,15,88,227,252,
403 36,4,102,137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,139,68,36,8,195, 411 242,15,92,227,102,15,86,226,72,184,237,237,102,72,15,110,208,252,242,15,194,
404 255,248,147,72,184,237,237,102,72,15,110,208,72,184,237,237,102,72,15,110, 412 196,1,102,15,84,194,252,242,15,92,224,15,40,197,252,242,15,89,204,252,242,
405 216,15,40,200,102,15,84,202,102,15,46,217,15,134,244,247,102,15,85,208,15, 413 15,92,193,195,248,1,252,242,15,89,200,15,40,197,252,242,15,92,193,195,255,
406 40,193,252,242,15,88,203,252,242,15,92,203,72,184,237,237,102,72,15,110,216, 414 217,193,216,252,241,217,124,36,4,102,184,0,4,102,11,68,36,4,102,37,252,255,
407 252,242,15,194,193,1,102,15,84,195,252,242,15,92,200,102,15,86,202,15,40, 415 252,247,102,137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,222,201,222,
408 193,248,1,195,248,148,255,15,40,232,252,242,15,94,193,72,184,237,237,102, 416 252,233,195,255,248,88,217,252,234,222,201,248,149,217,84,36,8,129,124,36,
409 72,15,110,208,72,184,237,237,102,72,15,110,216,15,40,224,102,15,84,226,102, 417 8,0,0,128,127,15,132,244,247,129,124,36,8,0,0,128,252,255,15,132,244,248,
410 15,46,220,15,134,244,247,102,15,85,208,252,242,15,88,227,252,242,15,92,227, 418 248,150,217,192,217,252,252,220,252,233,217,201,217,252,240,217,232,222,193,
411 102,15,86,226,72,184,237,237,102,72,15,110,208,252,242,15,194,196,1,102,15, 419 217,252,253,221,217,248,1,195,248,2,221,216,217,252,238,195,255,248,107,255,
412 84,194,252,242,15,92,224,15,40,197,252,242,15,89,204,252,242,15,92,193,195, 420 248,151,252,242,15,45,193,252,242,15,42,208,102,15,46,202,15,133,244,254,
413 248,1,252,242,15,89,200,15,40,197,252,242,15,92,193,195,255,217,193,216,252, 421 15,138,244,255,248,152,131,252,248,1,15,142,244,252,248,1,169,1,0,0,0,15,
414 241,217,124,36,4,102,184,0,4,102,11,68,36,4,102,37,252,255,252,247,102,137, 422 133,244,248,252,242,15,89,192,209,232,252,233,244,1,248,2,209,232,15,132,
415 68,36,6,217,108,36,6,217,252,252,217,108,36,4,222,201,222,252,233,195,255, 423 244,251,15,40,200,248,3,252,242,15,89,192,209,232,15,132,244,250,15,131,244,
416 248,88,217,252,234,222,201,248,149,217,84,36,8,129,124,36,8,0,0,128,127,15, 424 3,255,252,242,15,89,200,252,233,244,3,248,4,252,242,15,89,193,248,5,195,248,
417 132,244,247,129,124,36,8,0,0,128,252,255,15,132,244,248,248,150,217,192,217, 425 6,15,132,244,5,15,130,244,253,80,72,184,237,237,102,72,15,110,200,252,242,
418 252,252,220,252,233,217,201,217,252,240,217,232,222,193,217,252,253,221,217, 426 15,94,200,88,15,40,193,252,247,216,131,252,248,1,15,132,244,5,252,233,244,
419 248,1,195,248,2,221,216,217,252,238,195,255,248,107,255,248,151,252,242,15, 427 1,248,7,72,184,237,237,102,72,15,110,192,195,248,8,102,72,15,126,200,72,209,
420 45,193,252,242,15,42,208,102,15,46,202,15,133,244,254,15,138,244,255,248, 428 224,72,193,192,12,72,61,252,254,15,0,0,15,132,244,248,255,102,72,15,126,192,
421 152,131,252,248,1,15,142,244,252,248,1,169,1,0,0,0,15,133,244,248,252,242, 429 72,209,224,15,132,244,250,72,193,192,12,72,61,252,254,15,0,0,15,132,244,251,
422 15,89,192,209,232,252,233,244,1,248,2,209,232,15,132,244,251,15,40,200,248, 430 252,242,15,17,76,36,16,252,242,15,17,68,36,8,221,68,36,16,221,68,36,8,217,
423 3,252,242,15,89,192,209,232,15,132,244,250,15,131,244,3,255,252,242,15,89, 431 252,241,217,192,217,252,252,220,252,233,217,201,217,252,240,217,232,222,193,
424 200,252,233,244,3,248,4,252,242,15,89,193,248,5,195,248,6,15,132,244,5,15, 432 217,252,253,221,217,221,92,36,8,252,242,15,16,68,36,8,195,248,9,72,184,237,
425 130,244,253,80,72,184,237,237,102,72,15,110,200,252,242,15,94,200,88,15,40, 433 237,102,72,15,110,208,102,15,46,194,15,132,244,247,15,40,193,248,1,195,248,
426 193,252,247,216,131,252,248,1,15,132,244,5,252,233,244,1,248,7,72,184,237, 434 2,72,184,237,237,102,72,15,110,208,102,15,84,194,72,184,237,237,102,72,15,
427 237,102,72,15,110,192,195,248,8,102,72,15,126,200,72,209,224,72,193,192,12, 435 110,208,102,15,46,194,15,132,244,1,102,15,80,193,15,87,192,136,196,15,146,
428 72,61,252,254,15,0,0,15,132,244,248,255,102,72,15,126,192,72,209,224,15,132, 436 208,48,224,15,133,244,1,248,3,72,184,237,237,255,102,72,15,110,192,195,248,
429 244,250,72,193,192,12,72,61,252,254,15,0,0,15,132,244,251,252,242,15,17,76, 437 4,102,15,80,193,133,192,15,133,244,3,15,87,192,195,248,5,102,15,80,193,133,
430 36,16,252,242,15,17,68,36,8,221,68,36,16,221,68,36,8,217,252,241,217,192, 438 192,15,132,244,3,15,87,192,195,248,153,255,131,252,250,1,15,130,244,82,15,
431 217,252,252,220,252,233,217,201,217,252,240,217,232,222,193,217,252,253,221, 439 132,244,84,131,252,250,3,15,130,244,104,15,135,244,248,252,242,15,81,192,
432 217,221,92,36,8,252,242,15,16,68,36,8,195,248,9,72,184,237,237,102,72,15, 440 195,248,2,252,242,15,17,68,36,8,221,68,36,8,131,252,250,5,15,135,244,248,
433 110,208,102,15,46,194,15,132,244,247,15,40,193,248,1,195,248,2,72,184,237, 441 88,15,132,244,247,232,244,88,80,252,233,244,253,248,1,232,244,149,255,80,
434 237,102,72,15,110,208,102,15,84,194,72,184,237,237,102,72,15,110,208,102, 442 252,233,244,253,248,2,131,252,250,7,15,132,244,247,15,135,244,248,217,252,
435 15,46,194,15,132,244,1,102,15,80,193,15,87,192,136,196,15,146,208,48,224, 443 237,217,201,217,252,241,252,233,244,253,248,1,217,232,217,201,217,252,241,
436 15,133,244,1,248,3,72,184,237,237,255,102,72,15,110,192,195,248,4,102,15, 444 252,233,244,253,248,2,131,252,250,9,15,132,244,247,15,135,244,248,217,252,
437 80,193,133,192,15,133,244,3,15,87,192,195,248,5,102,15,80,193,133,192,15, 445 236,217,201,217,252,241,252,233,244,253,248,1,255,217,252,254,252,233,244,
438 132,244,3,15,87,192,195,248,153,255,131,252,250,1,15,130,244,82,15,132,244, 446 253,248,2,131,252,250,11,15,132,244,247,15,135,244,255,217,252,255,252,233,
439 84,131,252,250,3,15,130,244,104,15,135,244,248,252,242,15,81,192,195,248, 447 244,253,248,1,217,252,242,221,216,248,7,221,92,36,8,252,242,15,16,68,36,8,
440 2,252,242,15,17,68,36,8,221,68,36,8,131,252,250,5,15,135,244,248,88,15,132, 448 195,255,139,84,36,12,221,68,36,4,131,252,250,1,15,130,244,82,15,132,244,84,
441 244,247,232,244,88,80,252,233,244,253,248,1,232,244,149,255,80,252,233,244, 449 131,252,250,3,15,130,244,104,15,135,244,248,217,252,250,195,248,2,131,252,
442 253,248,2,131,252,250,7,15,132,244,247,15,135,244,248,217,252,237,217,201, 450 250,5,15,130,244,88,15,132,244,149,131,252,250,7,15,132,244,247,15,135,244,
443 217,252,241,252,233,244,253,248,1,217,232,217,201,217,252,241,252,233,244, 451 248,217,252,237,217,201,217,252,241,195,248,1,217,232,217,201,217,252,241,
444 253,248,2,131,252,250,9,15,132,244,247,15,135,244,248,217,252,236,217,201, 452 195,248,2,131,252,250,9,15,132,244,247,255,15,135,244,248,217,252,236,217,
445 217,252,241,252,233,244,253,248,1,255,217,252,254,252,233,244,253,248,2,131, 453 201,217,252,241,195,248,1,217,252,254,195,248,2,131,252,250,11,15,132,244,
446 252,250,11,15,132,244,247,15,135,244,255,217,252,255,252,233,244,253,248, 454 247,15,135,244,255,217,252,255,195,248,1,217,252,242,221,216,195,255,248,
447 1,217,252,242,221,216,248,7,221,92,36,8,252,242,15,16,68,36,8,195,255,139, 455 9,204,248,154,255,65,131,252,248,1,15,132,244,247,15,135,244,248,252,242,
448 84,36,12,221,68,36,4,131,252,250,1,15,130,244,82,15,132,244,84,131,252,250, 456 15,88,193,195,248,1,252,242,15,92,193,195,248,2,65,131,252,248,3,15,132,244,
449 3,15,130,244,104,15,135,244,248,217,252,250,195,248,2,131,252,250,5,15,130, 457 247,15,135,244,248,252,242,15,89,193,195,248,1,252,242,15,94,193,195,248,
450 244,88,15,132,244,149,131,252,250,7,15,132,244,247,15,135,244,248,217,252, 458 2,65,131,252,248,5,15,130,244,148,15,132,244,107,65,131,252,248,7,15,132,
451 237,217,201,217,252,241,195,248,1,217,232,217,201,217,252,241,195,248,2,131, 459 244,247,15,135,244,248,72,184,237,237,255,102,72,15,110,200,15,87,193,195,
452 252,250,9,15,132,244,247,255,15,135,244,248,217,252,236,217,201,217,252,241, 460 248,1,72,184,237,237,102,72,15,110,200,15,84,193,195,248,2,65,131,252,248,
453 195,248,1,217,252,254,195,248,2,131,252,250,11,15,132,244,247,15,135,244, 461 9,15,135,244,248,252,242,15,17,68,36,8,252,242,15,17,76,36,16,221,68,36,8,
454 255,217,252,255,195,248,1,217,252,242,221,216,195,255,248,9,204,248,154,255, 462 221,68,36,16,15,132,244,247,217,252,243,248,7,221,92,36,8,252,242,15,16,68,
455 65,131,252,248,1,15,132,244,247,15,135,244,248,252,242,15,88,193,195,248, 463 36,8,195,248,1,217,201,217,252,253,221,217,252,233,244,7,248,2,65,131,252,
456 1,252,242,15,92,193,195,248,2,65,131,252,248,3,15,132,244,247,15,135,244, 464 248,11,15,132,244,247,15,135,244,255,252,242,15,93,193,195,248,1,252,242,
457 248,252,242,15,89,193,195,248,1,252,242,15,94,193,195,248,2,65,131,252,248, 465 15,95,193,195,248,9,204,255,139,68,36,20,221,68,36,4,221,68,36,12,131,252,
458 5,15,130,244,148,15,132,244,107,65,131,252,248,7,15,132,244,247,15,135,244, 466 248,1,15,132,244,247,15,135,244,248,222,193,195,248,1,222,252,233,195,248,
459 248,72,184,237,237,255,102,72,15,110,200,15,87,193,195,248,1,72,184,237,237, 467 2,131,252,248,3,15,132,244,247,15,135,244,248,222,201,195,248,1,222,252,249,
460 102,72,15,110,200,15,84,193,195,248,2,65,131,252,248,9,15,135,244,248,252, 468 195,248,2,131,252,248,5,15,130,244,148,15,132,244,107,131,252,248,7,15,132,
461 242,15,17,68,36,8,252,242,15,17,76,36,16,221,68,36,8,221,68,36,16,15,132, 469 244,247,15,135,244,248,255,221,216,217,224,195,248,1,221,216,217,225,195,
462 244,247,217,252,243,248,7,221,92,36,8,252,242,15,16,68,36,8,195,248,1,217, 470 248,2,131,252,248,9,15,132,244,247,15,135,244,248,217,252,243,195,248,1,217,
463 201,217,252,253,221,217,252,233,244,7,248,2,65,131,252,248,11,15,132,244, 471 201,217,252,253,221,217,195,248,2,131,252,248,11,15,132,244,247,15,135,244,
464 247,15,135,244,255,252,242,15,93,193,195,248,1,252,242,15,95,193,195,248, 472 255,255,219,252,233,219,209,221,217,195,248,1,219,252,233,218,209,221,217,
465 9,204,255,139,68,36,20,221,68,36,4,221,68,36,12,131,252,248,1,15,132,244, 473 195,255,221,225,223,224,252,246,196,1,15,132,244,248,217,201,248,2,221,216,
466 247,15,135,244,248,222,193,195,248,1,222,252,233,195,248,2,131,252,248,3, 474 195,248,1,221,225,223,224,252,246,196,1,15,133,244,248,217,201,248,2,221,
467 15,132,244,247,15,135,244,248,222,201,195,248,1,222,252,249,195,248,2,131, 475 216,195,255,248,155,137,200,86,72,137,214,83,15,162,137,6,137,94,4,137,78,
468 252,248,5,15,130,244,148,15,132,244,107,131,252,248,7,15,132,244,247,15,135, 476 8,137,86,12,91,94,195,255,129,124,253,202,4,239,15,135,244,41,129,124,253,
469 244,248,255,221,216,217,224,195,248,1,221,216,217,225,195,248,2,131,252,248, 477 194,4,239,15,135,244,41,255,252,242,15,16,4,194,131,198,4,102,15,46,4,202,
470 9,15,132,244,247,15,135,244,248,217,252,243,195,248,1,217,201,217,252,253, 478 255,221,4,202,221,4,194,131,198,4,255,223,252,233,221,216,255,218,252,233,
471 221,217,195,248,2,131,252,248,11,15,132,244,247,15,135,244,255,255,219,252, 479 223,224,158,255,15,134,244,248,255,15,131,244,248,255,248,1,15,183,70,252,
472 233,219,209,221,217,195,248,1,219,252,233,218,209,221,217,195,255,221,225, 480 254,141,180,253,134,233,248,2,139,6,15,182,204,15,182,232,131,198,4,193,232,
473 223,224,252,246,196,1,15,132,244,248,217,201,248,2,221,216,195,248,1,221, 481 16,252,255,36,252,235,255,139,108,194,4,131,198,4,129,252,253,239,15,135,
474 225,223,224,252,246,196,1,15,133,244,248,217,201,248,2,221,216,195,255,248, 482 244,251,129,124,253,202,4,239,15,135,244,251,255,252,242,15,16,4,194,102,
475 155,137,200,86,72,137,214,83,15,162,137,6,137,94,4,137,78,8,137,86,12,91, 483 15,46,4,202,255,221,4,202,221,4,194,255,15,138,244,248,15,133,244,248,255,
476 94,195,255,129,124,253,202,4,239,15,135,244,41,129,124,253,194,4,239,15,135, 484 15,138,244,248,15,132,244,247,255,248,1,15,183,70,252,254,141,180,253,134,
477 244,41,255,252,242,15,16,4,194,131,198,4,102,15,46,4,202,255,221,4,202,221, 485 233,248,2,255,248,2,15,183,70,252,254,141,180,253,134,233,248,1,255,248,5,
478 4,194,131,198,4,255,223,252,233,221,216,255,218,252,233,223,224,158,255,15, 486 57,108,202,4,15,133,244,2,129,252,253,239,15,131,244,1,139,12,202,139,4,194,
479 134,244,248,255,15,131,244,248,255,248,1,15,183,70,252,254,141,180,253,134, 487 57,193,15,132,244,1,129,252,253,239,15,135,244,2,139,169,233,133,252,237,
480 233,248,2,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252, 488 15,132,244,2,252,246,133,233,235,15,133,244,2,255,49,252,237,255,189,1,0,
481 235,255,139,108,194,4,131,198,4,129,252,253,239,15,135,244,251,129,124,253, 489 0,0,255,252,233,244,45,255,72,252,247,208,131,198,4,129,124,253,202,4,239,
482 202,4,239,15,135,244,251,255,252,242,15,16,4,194,102,15,46,4,202,255,221, 490 15,133,244,248,139,12,202,59,12,135,255,131,198,4,129,124,253,202,4,239,15,
483 4,202,221,4,194,255,15,138,244,248,15,133,244,248,255,15,138,244,248,15,132, 491 135,244,248,255,252,242,15,16,4,199,102,15,46,4,202,255,221,4,202,221,4,199,
484 244,247,255,248,1,15,183,70,252,254,141,180,253,134,233,248,2,255,248,2,15, 492 255,72,252,247,208,131,198,4,57,68,202,4,255,139,108,194,4,131,198,4,129,
485 183,70,252,254,141,180,253,134,233,248,1,255,248,5,57,108,202,4,15,133,244, 493 252,253,239,255,15,131,244,247,255,15,130,244,247,255,137,108,202,4,139,44,
486 2,129,252,253,239,15,131,244,1,139,12,202,139,4,194,57,193,15,132,244,1,129, 494 194,137,44,202,255,15,183,70,252,254,141,180,253,134,233,248,1,139,6,15,182,
487 252,253,239,15,135,244,2,139,169,233,133,252,237,15,132,244,2,252,246,133, 495 204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,139,108,194,4,
488 233,235,15,133,244,2,255,49,252,237,255,189,1,0,0,0,255,252,233,244,45,255, 496 139,4,194,137,108,202,4,137,4,202,139,6,15,182,204,15,182,232,131,198,4,193,
489 72,252,247,208,131,198,4,129,124,253,202,4,239,15,133,244,248,139,12,202, 497 232,16,252,255,36,252,235,255,49,252,237,129,124,253,194,4,239,129,213,239,
490 59,12,135,255,131,198,4,129,124,253,202,4,239,15,135,244,248,255,252,242, 498 137,108,202,4,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,
491 15,16,4,199,102,15,46,4,202,255,221,4,202,221,4,199,255,72,252,247,208,131, 499 252,235,255,129,124,253,194,4,239,15,135,244,48,255,252,242,15,16,4,194,72,
492 198,4,57,68,202,4,255,139,108,194,4,131,198,4,129,252,253,239,255,15,131, 500 184,237,237,102,72,15,110,200,15,87,193,252,242,15,17,4,202,255,221,4,194,
493 244,247,255,15,130,244,247,255,137,108,202,4,139,44,194,137,44,202,255,15, 501 217,224,221,28,202,255,129,124,253,194,4,239,15,133,244,248,139,4,194,255,
494 183,70,252,254,141,180,253,134,233,248,1,139,6,15,182,204,15,182,232,131, 502 15,87,192,252,242,15,42,128,233,248,1,252,242,15,17,4,202,255,219,128,233,
495 198,4,193,232,16,252,255,36,252,235,255,139,108,194,4,139,4,194,137,108,202, 503 248,1,221,28,202,255,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,
496 4,137,4,202,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252, 504 255,36,252,235,248,2,129,124,253,194,4,239,15,133,244,50,139,12,194,137,213,
497 235,255,49,252,237,129,124,253,194,4,239,129,213,239,137,108,202,4,139,6, 505 232,251,1,18,255,252,242,15,42,192,137,252,234,255,15,182,78,252,253,252,
498 15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,129,124, 506 233,244,1,255,15,182,252,236,15,182,192,255,129,124,253,252,234,4,239,15,
499 253,194,4,239,15,135,244,48,255,252,242,15,16,4,194,72,184,237,237,102,72, 507 135,244,46,255,252,242,15,16,4,252,234,252,242,15,88,4,199,255,221,4,252,
500 15,110,200,15,87,193,252,242,15,17,4,202,255,221,4,194,217,224,221,28,202, 508 234,220,4,199,255,129,124,253,252,234,4,239,15,135,244,47,255,252,242,15,
501 255,129,124,253,194,4,239,15,133,244,248,139,4,194,255,15,87,192,252,242, 509 16,4,199,252,242,15,88,4,252,234,255,221,4,199,220,4,252,234,255,129,124,
502 15,42,128,233,248,1,252,242,15,17,4,202,255,219,128,233,248,1,221,28,202, 510 253,252,234,4,239,15,135,244,49,129,124,253,194,4,239,15,135,244,49,255,252,
503 255,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,248, 511 242,15,16,4,252,234,252,242,15,88,4,194,255,221,4,252,234,220,4,194,255,252,
504 2,129,124,253,194,4,239,15,133,244,50,139,12,194,137,213,232,251,1,18,255, 512 242,15,16,4,252,234,252,242,15,92,4,199,255,221,4,252,234,220,36,199,255,
505 252,242,15,42,192,137,252,234,255,15,182,78,252,253,252,233,244,1,255,15, 513 252,242,15,16,4,199,252,242,15,92,4,252,234,255,221,4,199,220,36,252,234,
506 182,252,236,15,182,192,255,129,124,253,252,234,4,239,15,135,244,46,255,252, 514 255,252,242,15,16,4,252,234,252,242,15,92,4,194,255,221,4,252,234,220,36,
507 242,15,16,4,252,234,252,242,15,88,4,199,255,221,4,252,234,220,4,199,255,129, 515 194,255,252,242,15,16,4,252,234,252,242,15,89,4,199,255,221,4,252,234,220,
508 124,253,252,234,4,239,15,135,244,47,255,252,242,15,16,4,199,252,242,15,88, 516 12,199,255,252,242,15,16,4,199,252,242,15,89,4,252,234,255,221,4,199,220,
509 4,252,234,255,221,4,199,220,4,252,234,255,129,124,253,252,234,4,239,15,135, 517 12,252,234,255,252,242,15,16,4,252,234,252,242,15,89,4,194,255,221,4,252,
510 244,49,129,124,253,194,4,239,15,135,244,49,255,252,242,15,16,4,252,234,252, 518 234,220,12,194,255,252,242,15,16,4,252,234,252,242,15,94,4,199,255,221,4,
511 242,15,88,4,194,255,221,4,252,234,220,4,194,255,252,242,15,16,4,252,234,252, 519 252,234,220,52,199,255,252,242,15,16,4,199,252,242,15,94,4,252,234,255,221,
512 242,15,92,4,199,255,221,4,252,234,220,36,199,255,252,242,15,16,4,199,252, 520 4,199,220,52,252,234,255,252,242,15,16,4,252,234,252,242,15,94,4,194,255,
513 242,15,92,4,252,234,255,221,4,199,220,36,252,234,255,252,242,15,16,4,252, 521 221,4,252,234,220,52,194,255,252,242,15,16,4,252,234,252,242,15,16,12,199,
514 234,252,242,15,92,4,194,255,221,4,252,234,220,36,194,255,252,242,15,16,4, 522 255,221,4,252,234,221,4,199,255,252,242,15,16,4,199,252,242,15,16,12,252,
515 252,234,252,242,15,89,4,199,255,221,4,252,234,220,12,199,255,252,242,15,16, 523 234,255,221,4,199,221,4,252,234,255,252,242,15,16,4,252,234,252,242,15,16,
516 4,199,252,242,15,89,4,252,234,255,221,4,199,220,12,252,234,255,252,242,15, 524 12,194,255,221,4,252,234,221,4,194,255,248,156,232,244,148,255,252,233,244,
517 16,4,252,234,252,242,15,89,4,194,255,221,4,252,234,220,12,194,255,252,242, 525 156,255,232,244,107,255,15,182,252,236,15,182,192,139,76,36,96,137,145,233,
518 15,16,4,252,234,252,242,15,94,4,199,255,221,4,252,234,220,52,199,255,252, 526 141,20,194,65,137,192,65,41,232,248,33,137,205,137,116,36,100,232,251,1,25,
519 242,15,16,4,199,252,242,15,94,4,252,234,255,221,4,199,220,52,252,234,255, 527 139,149,233,133,192,15,133,244,42,15,182,110,252,255,15,182,78,252,253,139,
520 252,242,15,16,4,252,234,252,242,15,94,4,194,255,221,4,252,234,220,52,194, 528 68,252,234,4,139,44,252,234,137,68,202,4,137,44,202,139,6,15,182,204,15,182,
521 255,252,242,15,16,4,252,234,252,242,15,16,12,199,255,221,4,252,234,221,4, 529 232,131,198,4,193,232,16,252,255,36,252,235,255,72,252,247,208,139,4,135,
522 199,255,252,242,15,16,4,199,252,242,15,16,12,252,234,255,221,4,199,221,4, 530 199,68,202,4,237,137,4,202,139,6,15,182,204,15,182,232,131,198,4,193,232,
523 252,234,255,252,242,15,16,4,252,234,252,242,15,16,12,194,255,221,4,252,234, 531 16,252,255,36,252,235,255,15,191,192,252,242,15,42,192,252,242,15,17,4,202,
524 221,4,194,255,248,156,232,244,148,255,252,233,244,156,255,232,244,107,255, 532 255,223,70,252,254,221,28,202,255,252,242,15,16,4,199,252,242,15,17,4,202,
525 15,182,252,236,15,182,192,139,76,36,96,137,145,233,141,20,194,65,137,192, 533 255,221,4,199,221,28,202,255,72,252,247,208,137,68,202,4,139,6,15,182,204,
526 65,41,232,248,33,137,205,137,116,36,100,232,251,1,25,139,149,233,133,192, 534 15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,141,76,202,12,141,
527 15,133,244,42,15,182,110,252,255,15,182,78,252,253,139,68,252,234,4,139,44, 535 68,194,4,189,237,137,105,252,248,248,1,137,41,131,193,8,57,193,15,134,244,
528 252,234,137,68,202,4,137,44,202,139,6,15,182,204,15,182,232,131,198,4,193, 536 1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,
529 232,16,252,255,36,252,235,255,72,252,247,208,139,4,135,199,68,202,4,237,137, 537 139,106,252,248,139,172,253,133,233,139,173,233,139,69,4,139,109,0,137,68,
530 4,202,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235, 538 202,4,137,44,202,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,
531 255,15,191,192,252,242,15,42,192,252,242,15,17,4,202,255,223,70,252,254,221, 539 36,252,235,255,139,106,252,248,139,172,253,141,233,128,189,233,0,139,173,
532 28,202,255,252,242,15,16,4,199,252,242,15,17,4,202,255,221,4,199,221,28,202, 540 233,139,12,194,139,68,194,4,137,77,0,137,69,4,15,132,244,247,252,246,133,
533 255,72,252,247,208,137,68,202,4,139,6,15,182,204,15,182,232,131,198,4,193, 541 233,235,15,133,244,248,248,1,139,6,15,182,204,15,182,232,131,198,4,193,232,
534 232,16,252,255,36,252,235,255,141,76,202,12,141,68,194,4,189,237,137,105, 542 16,252,255,36,252,235,248,2,129,232,239,129,252,248,239,15,134,244,1,252,
535 252,248,248,1,137,41,131,193,8,57,193,15,134,244,1,139,6,15,182,204,15,182, 543 246,129,233,235,15,132,244,1,135,213,141,139,233,255,232,251,1,26,137,252,
536 232,131,198,4,193,232,16,252,255,36,252,235,255,139,106,252,248,139,172,253, 544 234,252,233,244,1,255,72,252,247,208,139,106,252,248,139,172,253,141,233,
537 133,233,139,173,233,139,69,4,139,109,0,137,68,202,4,137,44,202,139,6,15,182, 545 139,12,135,139,133,233,137,8,199,64,4,237,252,246,133,233,235,15,133,244,
538 204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,139,106,252,248, 546 248,248,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,
539 139,172,253,141,233,128,189,233,0,139,173,233,139,12,194,139,68,194,4,137, 547 235,248,2,252,246,129,233,235,15,132,244,1,128,189,233,0,15,132,244,1,137,
540 77,0,137,69,4,15,132,244,247,252,246,133,233,235,15,133,244,248,248,1,139, 548 213,137,194,141,139,233,232,251,1,26,137,252,234,252,233,244,1,255,139,106,
541 6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,2,129, 549 252,248,255,252,242,15,16,4,199,255,139,172,253,141,233,139,141,233,255,252,
542 232,239,129,252,248,239,15,134,244,1,252,246,129,233,235,15,132,244,1,135, 550 242,15,17,1,255,221,25,255,72,252,247,208,139,106,252,248,139,172,253,141,
543 213,141,139,233,255,232,251,1,26,137,252,234,252,233,244,1,255,72,252,247, 551 233,139,141,233,137,65,4,139,6,15,182,204,15,182,232,131,198,4,193,232,16,
544 208,139,106,252,248,139,172,253,141,233,139,12,135,139,133,233,137,8,199, 552 252,255,36,252,235,255,141,180,253,134,233,139,108,36,96,131,189,233,0,15,
545 64,4,237,252,246,133,233,235,15,133,244,248,248,1,139,6,15,182,204,15,182, 553 132,244,247,137,149,233,141,20,202,137,252,233,232,251,1,27,139,149,233,248,
546 232,131,198,4,193,232,16,252,255,36,252,235,248,2,252,246,129,233,235,15, 554 1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,
547 132,244,1,128,189,233,0,15,132,244,1,137,213,137,194,141,139,233,232,251, 555 72,252,247,208,139,108,36,96,137,149,233,68,139,66,252,248,139,20,135,137,
548 1,26,137,252,234,252,233,244,1,255,139,106,252,248,255,252,242,15,16,4,199, 556 252,233,137,116,36,100,232,251,1,28,139,149,233,15,182,78,252,253,137,4,202,
549 255,139,172,253,141,233,139,141,233,255,252,242,15,17,1,255,221,25,255,72,
550 252,247,208,139,106,252,248,139,172,253,141,233,139,141,233,137,65,4,139,
551 6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,141,180,
552 253,134,233,139,108,36,96,131,189,233,0,15,132,244,247,137,149,233,141,20,
553 202,137,252,233,232,251,1,27,139,149,233,248,1,139,6,15,182,204,15,182,232,
554 131,198,4,193,232,16,252,255,36,252,235,255,72,252,247,208,139,108,36,96,
555 137,149,233,68,139,66,252,248,139,20,135,137,252,233,137,116,36,100,232,251,
556 1,28,139,149,233,15,182,78,252,253,137,4,202,199,68,202,4,237,139,6,15,182,
557 204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,139,108,36,96,
558 137,149,233,139,139,233,59,139,233,137,116,36,100,15,131,244,251,248,1,65,
559 137,192,37,252,255,7,0,0,65,193,232,11,61,252,255,7,0,0,15,132,244,249,248,
560 2,137,252,233,137,194,232,251,1,29,139,149,233,15,182,78,252,253,137,4,202,
561 199,68,202,4,237,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255, 557 199,68,202,4,237,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,
562 36,252,235,248,3,184,1,8,0,0,252,233,244,2,248,5,137,252,233,232,251,1,30, 558 36,252,235,255,139,108,36,96,137,149,233,139,139,233,59,139,233,137,116,36,
563 15,183,70,252,254,252,233,244,1,255,72,252,247,208,139,108,36,96,139,139, 559 100,15,131,244,251,248,1,65,137,192,37,252,255,7,0,0,65,193,232,11,61,252,
564 233,137,116,36,100,59,139,233,137,149,233,15,131,244,249,248,2,139,20,135, 560 255,7,0,0,15,132,244,249,248,2,137,252,233,137,194,232,251,1,29,139,149,233,
565 137,252,233,232,251,1,31,139,149,233,15,182,78,252,253,137,4,202,199,68,202, 561 15,182,78,252,253,137,4,202,199,68,202,4,237,139,6,15,182,204,15,182,232,
566 4,237,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235, 562 131,198,4,193,232,16,252,255,36,252,235,248,3,184,1,8,0,0,252,233,244,2,248,
567 248,3,137,252,233,232,251,1,30,15,183,70,252,254,72,252,247,208,252,233,244, 563 5,137,252,233,232,251,1,30,15,183,70,252,254,252,233,244,1,255,72,252,247,
568 2,255,72,252,247,208,139,106,252,248,139,173,233,139,4,135,252,233,244,157, 564 208,139,108,36,96,139,139,233,137,116,36,100,59,139,233,137,149,233,15,131,
569 255,72,252,247,208,139,106,252,248,139,173,233,139,4,135,252,233,244,158, 565 244,249,248,2,139,20,135,137,252,233,232,251,1,31,139,149,233,15,182,78,252,
570 255,15,182,252,236,15,182,192,129,124,253,252,234,4,239,15,133,244,36,139, 566 253,137,4,202,199,68,202,4,237,139,6,15,182,204,15,182,232,131,198,4,193,
571 44,252,234,129,124,253,194,4,239,15,135,244,251,255,252,242,15,16,4,194,252, 567 232,16,252,255,36,252,235,248,3,137,252,233,232,251,1,30,15,183,70,252,254,
572 242,15,45,192,252,242,15,42,200,102,15,46,193,255,15,133,244,36,59,133,233, 568 72,252,247,208,252,233,244,2,255,72,252,247,208,139,106,252,248,139,173,233,
573 15,131,244,36,193,224,3,3,133,233,129,120,253,4,239,15,132,244,248,248,1, 569 139,4,135,252,233,244,157,255,72,252,247,208,139,106,252,248,139,173,233,
574 139,40,139,64,4,137,44,202,137,68,202,4,139,6,15,182,204,15,182,232,131,198, 570 139,4,135,252,233,244,158,255,15,182,252,236,15,182,192,129,124,253,252,234,
575 4,193,232,16,252,255,36,252,235,248,2,131,189,233,0,15,132,244,1,139,141, 571 4,239,15,133,244,36,139,44,252,234,129,124,253,194,4,239,15,135,244,251,255,
576 233,252,246,129,233,235,15,132,244,36,15,182,78,252,253,252,233,244,1,248, 572 252,242,15,16,4,194,252,242,15,45,192,252,242,15,42,200,102,15,46,193,255,
577 5,255,129,124,253,194,4,239,15,133,244,36,139,4,194,252,233,244,157,255,15, 573 15,133,244,36,59,133,233,15,131,244,36,193,224,3,3,133,233,129,120,253,4,
578 182,252,236,15,182,192,72,252,247,208,139,4,135,129,124,253,252,234,4,239, 574 239,15,132,244,248,248,1,139,40,139,64,4,137,44,202,137,68,202,4,139,6,15,
579 15,133,244,34,139,44,252,234,248,157,139,141,233,35,136,233,105,201,239,3, 575 182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,2,131,189,
580 141,233,248,1,129,185,233,239,15,133,244,250,57,129,233,15,133,244,250,129, 576 233,0,15,132,244,1,139,141,233,252,246,129,233,235,15,132,244,36,15,182,78,
581 121,253,4,239,15,132,244,251,15,182,70,252,253,139,41,139,73,4,137,44,194, 577 252,253,252,233,244,1,248,5,255,129,124,253,194,4,239,15,133,244,36,139,4,
582 248,2,255,137,76,194,4,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252, 578 194,252,233,244,157,255,15,182,252,236,15,182,192,72,252,247,208,139,4,135,
583 255,36,252,235,248,3,15,182,70,252,253,185,237,252,233,244,2,248,4,139,137, 579 129,124,253,252,234,4,239,15,133,244,34,139,44,252,234,248,157,139,141,233,
584 233,133,201,15,133,244,1,248,5,139,141,233,133,201,15,132,244,3,252,246,129, 580 35,136,233,105,201,239,3,141,233,248,1,129,185,233,239,15,133,244,250,57,
585 233,235,15,133,244,3,252,233,244,34,255,15,182,252,236,15,182,192,129,124, 581 129,233,15,133,244,250,129,121,253,4,239,15,132,244,251,15,182,70,252,253,
586 253,252,234,4,239,15,133,244,35,139,44,252,234,59,133,233,15,131,244,35,193, 582 139,41,139,73,4,137,44,194,248,2,255,137,76,194,4,139,6,15,182,204,15,182,
587 224,3,3,133,233,129,120,253,4,239,15,132,244,248,248,1,139,40,139,64,4,137, 583 232,131,198,4,193,232,16,252,255,36,252,235,248,3,15,182,70,252,253,185,237,
588 44,202,137,68,202,4,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252, 584 252,233,244,2,248,4,139,137,233,133,201,15,133,244,1,248,5,139,141,233,133,
589 255,36,252,235,248,2,131,189,233,0,15,132,244,1,139,141,233,252,246,129,233, 585 201,15,132,244,3,252,246,129,233,235,15,133,244,3,252,233,244,34,255,15,182,
590 235,15,132,244,35,255,15,182,252,236,15,182,192,129,124,253,252,234,4,239, 586 252,236,15,182,192,129,124,253,252,234,4,239,15,133,244,35,139,44,252,234,
591 15,133,244,39,139,44,252,234,129,124,253,194,4,239,15,135,244,251,255,15, 587 59,133,233,15,131,244,35,193,224,3,3,133,233,129,120,253,4,239,15,132,244,
592 133,244,39,59,133,233,15,131,244,39,193,224,3,3,133,233,129,120,253,4,239, 588 248,248,1,139,40,139,64,4,137,44,202,137,68,202,4,139,6,15,182,204,15,182,
589 232,131,198,4,193,232,16,252,255,36,252,235,248,2,131,189,233,0,15,132,244,
590 1,139,141,233,252,246,129,233,235,15,132,244,35,255,15,182,252,236,15,182,
591 192,129,124,253,252,234,4,239,15,133,244,39,139,44,252,234,129,124,253,194,
592 4,239,15,135,244,251,255,15,133,244,39,59,133,233,15,131,244,39,193,224,3,
593 3,133,233,129,120,253,4,239,15,132,244,249,248,1,252,246,133,233,235,15,133,
594 244,253,248,2,139,108,202,4,139,12,202,137,104,4,137,8,139,6,15,182,204,15,
595 182,232,131,198,4,193,232,16,252,255,36,252,235,248,3,131,189,233,0,15,132,
596 244,1,139,141,233,255,252,246,129,233,235,15,132,244,39,15,182,78,252,253,
597 252,233,244,1,248,5,129,124,253,194,4,239,15,133,244,39,139,4,194,252,233,
598 244,158,248,7,128,165,233,235,139,139,233,137,171,233,137,141,233,15,182,
599 78,252,253,252,233,244,2,255,15,182,252,236,15,182,192,72,252,247,208,139,
600 4,135,129,124,253,252,234,4,239,15,133,244,37,139,44,252,234,248,158,139,
601 141,233,35,136,233,105,201,239,198,133,233,0,3,141,233,248,1,129,185,233,
602 239,15,133,244,251,57,129,233,15,133,244,251,129,121,253,4,239,15,132,244,
603 250,248,2,255,252,246,133,233,235,15,133,244,253,248,3,15,182,70,252,253,
604 139,108,194,4,139,4,194,137,105,4,137,1,139,6,15,182,204,15,182,232,131,198,
605 4,193,232,16,252,255,36,252,235,248,4,131,189,233,0,15,132,244,2,137,76,36,
606 80,139,141,233,252,246,129,233,235,15,132,244,37,139,76,36,80,252,233,244,
607 2,248,5,139,137,233,133,201,15,133,244,1,255,139,141,233,133,201,15,132,244,
608 252,252,246,129,233,235,15,132,244,37,248,6,137,68,36,80,199,68,36,84,237,
609 137,108,36,32,139,76,36,96,137,145,233,76,141,68,36,80,137,252,234,137,205,
610 137,116,36,100,232,251,1,32,139,149,233,139,108,36,32,137,193,252,233,244,
611 2,248,7,128,165,233,235,139,131,233,137,171,233,137,133,233,252,233,244,3,
612 255,15,182,252,236,15,182,192,129,124,253,252,234,4,239,15,133,244,38,139,
613 44,252,234,59,133,233,15,131,244,38,193,224,3,3,133,233,129,120,253,4,239,
593 15,132,244,249,248,1,252,246,133,233,235,15,133,244,253,248,2,139,108,202, 614 15,132,244,249,248,1,252,246,133,233,235,15,133,244,253,248,2,139,108,202,
594 4,139,12,202,137,104,4,137,8,139,6,15,182,204,15,182,232,131,198,4,193,232, 615 4,139,12,202,137,104,4,137,8,139,6,15,182,204,15,182,232,131,198,4,193,232,
595 16,252,255,36,252,235,248,3,131,189,233,0,15,132,244,1,139,141,233,255,252, 616 16,252,255,36,252,235,248,3,131,189,233,0,15,132,244,1,255,139,141,233,252,
596 246,129,233,235,15,132,244,39,15,182,78,252,253,252,233,244,1,248,5,129,124, 617 246,129,233,235,15,132,244,38,15,182,78,252,253,252,233,244,1,248,7,128,165,
597 253,194,4,239,15,133,244,39,139,4,194,252,233,244,158,248,7,128,165,233,235, 618 233,235,139,139,233,137,171,233,137,141,233,15,182,78,252,253,252,233,244,
598 139,139,233,137,171,233,137,141,233,15,182,78,252,253,252,233,244,2,255,15, 619 2,255,137,124,36,80,255,252,242,15,45,60,199,255,248,1,141,12,202,139,105,
599 182,252,236,15,182,192,72,252,247,208,139,4,135,129,124,253,252,234,4,239, 620 252,248,252,246,133,233,235,15,133,244,253,248,2,139,68,36,84,131,232,1,15,
600 15,133,244,37,139,44,252,234,248,158,139,141,233,35,136,233,105,201,239,198, 621 132,244,250,1,252,248,59,133,233,15,131,244,251,41,252,248,193,231,3,3,189,
601 133,233,0,3,141,233,248,1,129,185,233,239,15,133,244,251,57,129,233,15,133, 622 233,248,3,139,41,137,47,139,105,4,131,193,8,137,111,4,131,199,8,131,232,1,
602 244,251,129,121,253,4,239,15,132,244,250,248,2,255,252,246,133,233,235,15, 623 15,133,244,3,248,4,139,124,36,80,139,6,15,182,204,15,182,232,131,198,4,193,
603 133,244,253,248,3,15,182,70,252,253,139,108,194,4,139,4,194,137,105,4,137, 624 232,16,252,255,36,252,235,248,5,139,76,36,96,137,145,233,137,252,234,65,137,
604 1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,248, 625 192,137,205,137,116,36,100,232,251,1,33,139,149,233,15,182,78,252,253,252,
605 4,131,189,233,0,15,132,244,2,137,76,36,80,139,141,233,252,246,129,233,235, 626 233,244,1,248,7,255,128,165,233,235,139,131,233,137,171,233,137,133,233,252,
606 15,132,244,37,139,76,36,80,252,233,244,2,248,5,139,137,233,133,201,15,133, 627 233,244,2,255,3,68,36,84,255,129,124,253,202,4,239,139,44,202,15,133,244,
607 244,1,255,139,141,233,133,201,15,132,244,252,252,246,129,233,235,15,132,244, 628 51,141,84,202,8,137,114,252,252,139,181,233,139,14,15,182,252,233,15,182,
608 37,248,6,137,68,36,80,199,68,36,84,237,137,108,36,32,139,76,36,96,137,145, 629 205,131,198,4,252,255,36,252,235,255,141,76,202,8,137,215,139,105,252,248,
609 233,76,141,68,36,80,137,252,234,137,205,137,116,36,100,232,251,1,32,139,149, 630 129,121,253,252,252,239,15,133,244,28,248,52,139,114,252,252,252,247,198,
610 233,139,108,36,32,137,193,252,233,244,2,248,7,128,165,233,235,139,131,233, 631 237,15,133,244,253,248,1,137,106,252,248,137,68,36,84,131,232,1,15,132,244,
611 137,171,233,137,133,233,252,233,244,3,255,15,182,252,236,15,182,192,129,124, 632 249,248,2,139,41,137,47,139,105,4,137,111,4,131,199,8,131,193,8,131,232,1,
612 253,252,234,4,239,15,133,244,38,139,44,252,234,59,133,233,15,131,244,38,193, 633 15,133,244,2,139,106,252,248,248,3,139,68,36,84,128,189,233,1,15,135,244,
613 224,3,3,133,233,129,120,253,4,239,15,132,244,249,248,1,252,246,133,233,235, 634 251,248,4,139,181,233,139,14,15,182,252,233,15,182,205,131,198,4,252,255,
614 15,133,244,253,248,2,139,108,202,4,139,12,202,137,104,4,137,8,139,6,15,182, 635 36,252,235,248,5,255,252,247,198,237,15,133,244,4,15,182,78,252,253,72,252,
615 204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,3,131,189,233, 636 247,209,141,12,202,139,121,252,248,139,191,233,139,191,233,252,233,244,4,
616 0,15,132,244,1,255,139,141,233,252,246,129,233,235,15,132,244,38,15,182,78, 637 248,7,15,139,244,1,131,230,252,248,41,252,242,137,215,139,114,252,252,252,
617 252,253,252,233,244,1,248,7,128,165,233,235,139,139,233,137,171,233,137,141, 638 233,244,1,255,141,76,202,8,139,105,232,139,65,252,236,137,41,137,65,4,139,
618 233,15,182,78,252,253,252,233,244,2,255,137,124,36,80,255,252,242,15,45,60, 639 105,252,240,139,65,252,244,137,105,8,137,65,12,139,105,224,139,65,228,137,
619 199,255,248,1,141,12,202,139,105,252,248,252,246,133,233,235,15,133,244,253, 640 105,252,248,137,65,252,252,129,252,248,239,184,237,15,133,244,28,137,202,
620 248,2,139,68,36,84,131,232,1,15,132,244,250,1,252,248,59,133,233,15,131,244, 641 137,114,252,252,139,181,233,139,14,15,182,252,233,15,182,205,131,198,4,252,
621 251,41,252,248,193,231,3,3,189,233,248,3,139,41,137,47,139,105,4,131,193, 642 255,36,252,235,255,15,182,252,236,139,66,252,248,141,12,202,139,128,233,15,
622 8,137,111,4,131,199,8,131,232,1,15,133,244,3,248,4,139,124,36,80,139,6,15, 643 182,128,233,137,124,36,80,141,188,253,194,233,43,122,252,252,133,252,237,
623 182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,5,139,76,36, 644 15,132,244,251,141,108,252,233,252,248,57,215,15,131,244,248,248,1,139,71,
624 96,137,145,233,137,252,234,65,137,192,137,205,137,116,36,100,232,251,1,33, 645 252,248,137,1,139,71,252,252,131,199,8,137,65,4,131,193,8,57,252,233,15,131,
625 139,149,233,15,182,78,252,253,252,233,244,1,248,7,255,128,165,233,235,139, 646 244,249,57,215,15,130,244,1,248,2,199,65,4,237,131,193,8,57,252,233,15,130,
626 131,233,137,171,233,137,133,233,252,233,244,2,255,3,68,36,84,255,129,124, 647 244,2,248,3,139,124,36,80,139,6,15,182,204,15,182,232,131,198,4,193,232,16,
627 253,202,4,239,139,44,202,15,133,244,51,141,84,202,8,137,114,252,252,139,181, 648 252,255,36,252,235,248,5,199,68,36,84,1,0,0,0,137,208,41,252,248,15,134,244,
628 233,139,14,15,182,252,233,15,182,205,131,198,4,252,255,36,252,235,255,141, 649 3,255,137,197,193,252,237,3,131,197,1,137,108,36,84,139,108,36,96,1,200,59,
629 76,202,8,137,215,139,105,252,248,129,121,253,252,252,239,15,133,244,28,248, 650 133,233,15,135,244,253,248,6,139,71,252,248,137,1,139,71,252,252,131,199,
630 52,139,114,252,252,252,247,198,237,15,133,244,253,248,1,137,106,252,248,137, 651 8,137,65,4,131,193,8,57,215,15,130,244,6,252,233,244,3,248,7,137,149,233,
631 68,36,84,131,232,1,15,132,244,249,248,2,139,41,137,47,139,105,4,137,111,4, 652 137,141,233,137,116,36,100,41,215,139,84,36,84,131,252,234,1,137,252,233,
632 131,199,8,131,193,8,131,232,1,15,133,244,2,139,106,252,248,248,3,139,68,36, 653 232,251,1,0,139,149,233,139,141,233,1,215,252,233,244,6,255,193,225,3,255,
633 84,128,189,233,1,15,135,244,251,248,4,139,181,233,139,14,15,182,252,233,15, 654 248,1,139,114,252,252,137,68,36,84,252,247,198,237,15,133,244,253,255,248,
634 182,205,131,198,4,252,255,36,252,235,248,5,255,252,247,198,237,15,133,244, 655 13,137,215,131,232,1,15,132,244,249,248,2,139,44,15,137,111,252,248,139,108,
635 4,15,182,78,252,253,72,252,247,209,141,12,202,139,121,252,248,139,191,233, 656 15,4,137,111,252,252,131,199,8,131,232,1,15,133,244,2,248,3,139,68,36,84,
636 139,191,233,252,233,244,4,248,7,15,139,244,1,131,230,252,248,41,252,242,137, 657 15,182,110,252,255,248,5,57,197,15,135,244,252,255,139,108,10,4,137,106,252,
637 215,139,114,252,252,252,233,244,1,255,141,76,202,8,139,105,232,139,65,252, 658 252,139,44,10,137,106,252,248,255,248,5,56,70,252,255,15,135,244,252,255,
638 236,137,41,137,65,4,139,105,252,240,139,65,252,244,137,105,8,137,65,12,139, 659 15,182,78,252,253,72,252,247,209,141,20,202,139,122,252,248,139,191,233,139,
639 105,224,139,65,228,137,105,252,248,137,65,252,252,129,252,248,239,184,237, 660 191,233,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,
640 15,133,244,28,137,202,137,114,252,252,139,181,233,139,14,15,182,252,233,15, 661 248,6,255,199,71,252,252,237,131,199,8,255,199,68,194,252,244,237,255,131,
641 182,205,131,198,4,252,255,36,252,235,255,15,182,252,236,139,66,252,248,141, 662 192,1,252,233,244,5,248,7,15,139,244,14,131,230,252,248,41,252,242,255,1,
642 12,202,139,128,233,15,182,128,233,137,124,36,80,141,188,253,194,233,43,122, 663 252,241,255,137,252,245,209,252,237,129,229,239,102,131,172,253,43,233,1,
643 252,252,133,252,237,15,132,244,251,141,108,252,233,252,248,57,215,15,131, 664 15,132,244,140,255,141,12,202,255,129,121,253,4,239,15,135,244,53,129,121,
644 244,248,248,1,139,71,252,248,137,1,139,71,252,252,131,199,8,137,65,4,131, 665 253,12,239,15,135,244,53,255,139,105,20,255,129,252,253,239,15,135,244,53,
645 193,8,57,252,233,15,131,244,249,57,215,15,130,244,1,248,2,199,65,4,237,131, 666 255,252,242,15,16,1,252,242,15,16,73,8,255,252,242,15,88,65,16,252,242,15,
646 193,8,57,252,233,15,130,244,2,248,3,139,124,36,80,139,6,15,182,204,15,182, 667 17,1,133,252,237,15,136,244,249,255,15,140,244,249,255,102,15,46,200,248,
647 232,131,198,4,193,232,16,252,255,36,252,235,248,5,199,68,36,84,1,0,0,0,137, 668 1,252,242,15,17,65,24,255,221,65,8,221,1,255,220,65,16,221,17,221,81,24,133,
648 208,41,252,248,15,134,244,3,255,137,197,193,252,237,3,131,197,1,137,108,36, 669 252,237,15,136,244,247,255,221,81,24,15,140,244,247,255,217,201,248,1,255,
649 84,139,108,36,96,1,200,59,133,233,15,135,244,253,248,6,139,71,252,248,137, 670 15,183,70,252,254,255,15,131,244,248,141,180,253,134,233,255,141,180,253,
650 1,139,71,252,252,131,199,8,137,65,4,131,193,8,57,215,15,130,244,6,252,233, 671 134,233,15,183,70,252,254,15,131,245,255,15,130,244,248,141,180,253,134,233,
651 244,3,248,7,137,149,233,137,141,233,137,116,36,100,41,215,139,84,36,84,131, 672 255,248,3,102,15,46,193,252,233,244,1,255,141,12,202,139,105,4,129,252,253,
652 252,234,1,137,252,233,232,251,1,0,139,149,233,139,141,233,1,215,252,233,244, 673 239,15,132,244,247,255,137,105,252,252,139,41,137,105,252,248,252,233,245,
653 6,255,193,225,3,255,248,1,139,114,252,252,137,68,36,84,252,247,198,237,15, 674 255,141,180,253,134,233,139,1,137,105,252,252,137,65,252,248,255,139,139,
654 133,244,253,255,248,13,137,215,131,232,1,15,132,244,249,248,2,139,44,15,137, 675 233,139,4,129,72,139,128,233,139,108,36,96,137,147,233,137,171,233,76,137,
655 111,252,248,139,108,15,4,137,111,252,252,131,199,8,131,232,1,15,133,244,2, 676 100,36,80,76,137,108,36,32,76,137,116,36,24,76,137,124,36,16,72,137,225,72,
656 248,3,139,68,36,84,15,182,110,252,255,248,5,57,197,15,135,244,252,255,139, 677 129,252,236,239,102,15,127,49,102,15,127,185,233,102,68,15,127,129,233,102,
657 108,10,4,137,106,252,252,139,44,10,137,106,252,248,255,248,5,56,70,252,255, 678 68,15,127,137,233,102,68,15,127,145,233,102,68,15,127,153,233,102,68,15,127,
658 15,135,244,252,255,15,182,78,252,253,72,252,247,209,141,20,202,139,122,252, 679 161,233,102,68,15,127,169,233,102,68,15,127,177,233,102,68,15,127,185,233,
659 248,139,191,233,139,191,233,139,6,15,182,204,15,182,232,131,198,4,193,232, 680 252,255,224,255,141,180,253,134,233,139,6,15,182,204,15,182,232,131,198,4,
660 16,252,255,36,252,235,248,6,255,199,71,252,252,237,131,199,8,255,199,68,194, 681 193,232,16,252,255,36,252,235,255,137,252,245,209,252,237,129,229,239,102,
661 252,244,237,255,131,192,1,252,233,244,5,248,7,15,139,244,14,131,230,252,248, 682 131,172,253,43,233,1,15,132,244,142,255,139,190,233,139,108,36,96,141,12,
662 41,252,242,255,1,252,241,255,137,252,245,209,252,237,129,229,239,102,131, 683 202,59,141,233,15,135,244,23,15,182,142,233,57,200,15,134,244,249,248,2,255,
663 172,253,43,233,1,15,132,244,140,255,141,12,202,255,129,121,253,4,239,15,135, 684 15,183,70,252,254,252,233,245,255,248,3,199,68,194,252,252,237,131,192,1,
664 244,53,129,121,253,12,239,15,135,244,53,255,139,105,20,255,129,252,253,239, 685 57,200,15,134,244,3,252,233,244,2,255,141,44,197,237,141,4,194,139,122,252,
665 15,135,244,53,255,252,242,15,16,1,252,242,15,16,73,8,255,252,242,15,88,65, 686 248,137,104,252,252,137,120,252,248,139,108,36,96,141,12,200,59,141,233,15,
666 16,252,242,15,17,1,133,252,237,15,136,244,249,255,15,140,244,249,255,102, 687 135,244,22,137,209,137,194,15,182,174,233,133,252,237,15,132,244,248,248,
667 15,46,200,248,1,252,242,15,17,65,24,255,221,65,8,221,1,255,220,65,16,221, 688 1,131,193,8,57,209,15,131,244,249,139,121,252,248,137,56,139,121,252,252,
668 17,221,81,24,133,252,237,15,136,244,247,255,221,81,24,15,140,244,247,255, 689 137,120,4,131,192,8,199,65,252,252,237,131,252,237,1,15,133,244,1,248,2,255,
669 217,201,248,1,255,15,183,70,252,254,255,15,131,244,248,141,180,253,134,233, 690 139,190,233,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,
670 255,141,180,253,134,233,15,183,70,252,254,15,131,245,255,15,130,244,248,141, 691 235,255,248,3,199,64,4,237,131,192,8,131,252,237,1,15,133,244,3,252,233,244,
671 180,253,134,233,255,248,3,102,15,46,193,252,233,244,1,255,141,12,202,139, 692 2,255,139,106,252,248,72,139,189,233,139,108,36,96,141,68,194,252,248,137,
672 105,4,129,252,253,239,15,132,244,247,255,137,105,252,252,139,41,137,105,252, 693 149,233,141,136,233,59,141,233,137,133,233,255,137,252,233,255,72,137,252,
673 248,252,233,245,255,141,180,253,134,233,139,1,137,105,252,252,137,65,252, 694 250,137,252,233,255,15,135,244,21,199,131,233,237,255,252,255,215,255,252,
674 248,255,139,139,233,139,4,129,72,139,128,233,139,108,36,96,137,147,233,137, 695 255,147,233,255,199,131,233,237,139,149,233,141,12,194,252,247,217,3,141,
675 171,233,76,137,100,36,80,76,137,108,36,32,76,137,116,36,24,76,137,124,36, 696 233,139,114,252,252,252,233,244,12,255,254,0
676 16,72,137,225,72,129,252,236,239,102,15,127,49,102,15,127,185,233,102,68,
677 15,127,129,233,102,68,15,127,137,233,102,68,15,127,145,233,102,68,15,127,
678 153,233,102,68,15,127,161,233,102,68,15,127,169,233,102,68,15,127,177,233,
679 102,68,15,127,185,233,252,255,224,255,141,180,253,134,233,139,6,15,182,204,
680 15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,137,252,245,209,252,
681 237,129,229,239,102,131,172,253,43,233,1,15,132,244,142,255,139,190,233,139,
682 108,36,96,141,12,202,59,141,233,15,135,244,23,15,182,142,233,57,200,15,134,
683 244,249,248,2,255,15,183,70,252,254,252,233,245,255,248,3,199,68,194,252,
684 252,237,131,192,1,57,200,15,134,244,3,252,233,244,2,255,141,44,197,237,141,
685 4,194,139,122,252,248,137,104,252,252,137,120,252,248,139,108,36,96,141,12,
686 200,59,141,233,15,135,244,22,137,209,137,194,15,182,174,233,133,252,237,15,
687 132,244,248,248,1,131,193,8,57,209,15,131,244,249,139,121,252,248,137,56,
688 139,121,252,252,137,120,4,131,192,8,199,65,252,252,237,131,252,237,1,15,133,
689 244,1,248,2,255,139,190,233,139,6,15,182,204,15,182,232,131,198,4,193,232,
690 16,252,255,36,252,235,255,248,3,199,64,4,237,131,192,8,131,252,237,1,15,133,
691 244,3,252,233,244,2,255,139,106,252,248,72,139,189,233,139,108,36,96,141,
692 68,194,252,248,137,149,233,141,136,233,59,141,233,137,133,233,255,137,252,
693 233,255,72,137,252,250,137,252,233,255,15,135,244,21,199,131,233,237,255,
694 252,255,215,255,252,255,147,233,255,199,131,233,237,139,149,233,141,12,194,
695 252,247,217,3,141,233,139,114,252,252,252,233,244,12,255,254,0
696}; 697};
697 698
698enum { 699enum {
@@ -1237,193 +1238,193 @@ static void build_subroutines(BuildCtx *ctx, int cmov, int sse)
1237 if (sse) { 1238 if (sse) {
1238 dasm_put(Dst, 5173); 1239 dasm_put(Dst, 5173);
1239 } else { 1240 } else {
1240 dasm_put(Dst, 5193); 1241 dasm_put(Dst, 5195);
1241 } 1242 }
1242 dasm_put(Dst, 5213, Dt1(->base), Dt1(->base), LJ_TSTR, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+2, LJ_TISNUM); 1243 dasm_put(Dst, 5215, Dt1(->base), Dt1(->base), LJ_TSTR, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+2, LJ_TISNUM);
1243 dasm_put(Dst, 2162); 1244 dasm_put(Dst, 2162);
1244 if (sse) { 1245 if (sse) {
1245 dasm_put(Dst, 5321); 1246 dasm_put(Dst, 5323);
1246 } else { 1247 } else {
1247 dasm_put(Dst, 5332); 1248 dasm_put(Dst, 5334);
1248 } 1249 }
1249 dasm_put(Dst, 5340, LJ_TSTR, LJ_TISNUM, Dt5(->len)); 1250 dasm_put(Dst, 5342, LJ_TSTR, LJ_TISNUM, Dt5(->len));
1250 if (sse) { 1251 if (sse) {
1251 dasm_put(Dst, 5370); 1252 dasm_put(Dst, 5372);
1252 } else { 1253 } else {
1253 } 1254 }
1254 dasm_put(Dst, 5377, sizeof(GCstr)-1); 1255 dasm_put(Dst, 5379, sizeof(GCstr)-1);
1255 dasm_put(Dst, 5452, 2+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold)); 1256 dasm_put(Dst, 5454, 2+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold));
1256 dasm_put(Dst, 5511, LJ_TSTR, LJ_TISNUM); 1257 dasm_put(Dst, 5513, LJ_TSTR, LJ_TISNUM);
1257 if (sse) { 1258 if (sse) {
1258 dasm_put(Dst, 5532); 1259 dasm_put(Dst, 5534);
1259 } else { 1260 } else {
1260 dasm_put(Dst, 5539); 1261 dasm_put(Dst, 5541);
1261 } 1262 }
1262 dasm_put(Dst, 5551, Dt5(->len), DISPATCH_GL(tmpbuf.sz), Dt5([1]), DISPATCH_GL(tmpbuf.buf), DISPATCH_GL(tmpbuf.buf), 1+1); 1263 dasm_put(Dst, 5553, Dt5(->len), DISPATCH_GL(tmpbuf.sz), Dt5([1]), DISPATCH_GL(tmpbuf.buf), DISPATCH_GL(tmpbuf.buf), 1+1);
1263 dasm_put(Dst, 5616, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf)); 1264 dasm_put(Dst, 5618, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf));
1264 dasm_put(Dst, 5679, 1+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz)); 1265 dasm_put(Dst, 5681, 1+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz));
1265 dasm_put(Dst, 5750, sizeof(GCstr), DISPATCH_GL(tmpbuf.buf), 1+1); 1266 dasm_put(Dst, 5752, sizeof(GCstr), DISPATCH_GL(tmpbuf.buf), 1+1);
1266 dasm_put(Dst, 5835, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf)); 1267 dasm_put(Dst, 5837, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf));
1267 dasm_put(Dst, 5905, 1+1, LJ_TTAB); 1268 dasm_put(Dst, 5907, 1+1, LJ_TTAB);
1268 if (sse) { 1269 if (sse) {
1269 dasm_put(Dst, 5973); 1270 dasm_put(Dst, 5975);
1270 } else { 1271 } else {
1271 } 1272 }
1272 if (sse) { 1273 if (sse) {
1273 dasm_put(Dst, 5983, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1274 dasm_put(Dst, 5985, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1274 } else { 1275 } else {
1275 } 1276 }
1276 if (sse) { 1277 if (sse) {
1277 dasm_put(Dst, 6035, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1278 dasm_put(Dst, 6037, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1278 } else { 1279 } else {
1279 } 1280 }
1280 dasm_put(Dst, 6078, LJ_TISNUM); 1281 dasm_put(Dst, 6080, LJ_TISNUM);
1281 if (sse) { 1282 if (sse) {
1282 dasm_put(Dst, 6105); 1283 dasm_put(Dst, 6107);
1283 } else { 1284 } else {
1284 } 1285 }
1285 dasm_put(Dst, 6122); 1286 dasm_put(Dst, 6124);
1286 if (sse) { 1287 if (sse) {
1287 dasm_put(Dst, 6130, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1288 dasm_put(Dst, 6132, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1288 } else { 1289 } else {
1289 } 1290 }
1290 dasm_put(Dst, 6078, LJ_TISNUM); 1291 dasm_put(Dst, 6080, LJ_TISNUM);
1291 if (sse) { 1292 if (sse) {
1292 dasm_put(Dst, 6173); 1293 dasm_put(Dst, 6175);
1293 } else { 1294 } else {
1294 } 1295 }
1295 dasm_put(Dst, 6122); 1296 dasm_put(Dst, 6124);
1296 if (sse) { 1297 if (sse) {
1297 dasm_put(Dst, 6190, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1298 dasm_put(Dst, 6192, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1298 } else { 1299 } else {
1299 } 1300 }
1300 dasm_put(Dst, 6078, LJ_TISNUM); 1301 dasm_put(Dst, 6080, LJ_TISNUM);
1301 if (sse) { 1302 if (sse) {
1302 dasm_put(Dst, 6233); 1303 dasm_put(Dst, 6235);
1303 } else { 1304 } else {
1304 } 1305 }
1305 dasm_put(Dst, 6122); 1306 dasm_put(Dst, 6124);
1306 if (sse) { 1307 if (sse) {
1307 dasm_put(Dst, 6250, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1308 dasm_put(Dst, 6252, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1308 } else { 1309 } else {
1309 } 1310 }
1310 dasm_put(Dst, 6293); 1311 dasm_put(Dst, 6295);
1311 if (sse) { 1312 if (sse) {
1312 dasm_put(Dst, 6300, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1313 dasm_put(Dst, 6302, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1313 } else { 1314 } else {
1314 } 1315 }
1315 dasm_put(Dst, 6343); 1316 dasm_put(Dst, 6345);
1316 if (sse) { 1317 if (sse) {
1317 dasm_put(Dst, 6347); 1318 dasm_put(Dst, 6349);
1318 } else { 1319 } else {
1319 } 1320 }
1320 dasm_put(Dst, 6359); 1321 dasm_put(Dst, 6361);
1321 if (sse) { 1322 if (sse) {
1322 dasm_put(Dst, 6370, 1+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1323 dasm_put(Dst, 6372, 1+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1323 } else { 1324 } else {
1324 } 1325 }
1325 dasm_put(Dst, 6439); 1326 dasm_put(Dst, 6441);
1326 if (sse) { 1327 if (sse) {
1327 dasm_put(Dst, 6448, 1+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1328 dasm_put(Dst, 6450, 1+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1328 } else { 1329 } else {
1329 } 1330 }
1330 dasm_put(Dst, 6517); 1331 dasm_put(Dst, 6519);
1331 if (sse) { 1332 if (sse) {
1332 dasm_put(Dst, 6527, 1+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1333 dasm_put(Dst, 6529, 1+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1333 } else { 1334 } else {
1334 } 1335 }
1335 dasm_put(Dst, 6596); 1336 dasm_put(Dst, 6598);
1336 if (sse) { 1337 if (sse) {
1337 dasm_put(Dst, 6606, 1+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1338 dasm_put(Dst, 6608, 1+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1338 } else { 1339 } else {
1339 } 1340 }
1340 dasm_put(Dst, 6675); 1341 dasm_put(Dst, 6677);
1341 if (sse) { 1342 if (sse) {
1342 dasm_put(Dst, 6684, 1+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1343 dasm_put(Dst, 6686, 1+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1343 } else { 1344 } else {
1344 } 1345 }
1345 dasm_put(Dst, 6753, 1+2, 1+1, Dt1(->base), 8*LUA_MINSTACK, Dt1(->top), Dt1(->maxstack), Dt8(->f), Dt1(->base)); 1346 dasm_put(Dst, 6755, 1+2, 1+1, Dt1(->base), 8*LUA_MINSTACK, Dt1(->top), Dt1(->maxstack), Dt8(->f), Dt1(->base));
1346 dasm_put(Dst, 6831, Dt1(->top), Dt7(->pc), FRAME_TYPE, LUA_MINSTACK, Dt1(->base), Dt1(->base)); 1347 dasm_put(Dst, 6833, Dt1(->top), Dt7(->pc), FRAME_TYPE, LUA_MINSTACK, Dt1(->base), Dt1(->base));
1347 dasm_put(Dst, 6957, Dt1(->top), Dt1(->base), Dt1(->top)); 1348 dasm_put(Dst, 6959, Dt1(->top), Dt1(->base), Dt1(->top));
1348#if LJ_HASJIT 1349#if LJ_HASJIT
1349 dasm_put(Dst, 6996, DISPATCH_GL(hookmask), HOOK_VMEVENT, HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount)); 1350 dasm_put(Dst, 6998, DISPATCH_GL(hookmask), HOOK_VMEVENT, HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount));
1350#endif 1351#endif
1351 dasm_put(Dst, 7027, DISPATCH_GL(hookmask), HOOK_ACTIVE, DISPATCH_GL(hookmask), HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount), LUA_MASKLINE); 1352 dasm_put(Dst, 7029, DISPATCH_GL(hookmask), HOOK_ACTIVE, DISPATCH_GL(hookmask), HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount), LUA_MASKLINE);
1352 dasm_put(Dst, 7078, Dt1(->base), Dt1(->base), GG_DISP2STATIC); 1353 dasm_put(Dst, 7080, Dt1(->base), Dt1(->base), GG_DISP2STATIC);
1353#if LJ_HASJIT 1354#if LJ_HASJIT
1354 dasm_put(Dst, 7145, Dt7(->pc), PC2PROTO(framesize), Dt1(->base), Dt1(->top), GG_DISP2J, DISPATCH_J(L)); 1355 dasm_put(Dst, 7147, Dt7(->pc), PC2PROTO(framesize), Dt1(->base), Dt1(->top), GG_DISP2J, DISPATCH_J(L));
1355#endif 1356#endif
1356 dasm_put(Dst, 7192); 1357 dasm_put(Dst, 7194);
1357#if LJ_HASJIT 1358#if LJ_HASJIT
1358 dasm_put(Dst, 7022); 1359 dasm_put(Dst, 7024);
1359#endif 1360#endif
1360 dasm_put(Dst, 7199); 1361 dasm_put(Dst, 7201);
1361#if LJ_HASJIT 1362#if LJ_HASJIT
1362 dasm_put(Dst, 7202); 1363 dasm_put(Dst, 7204);
1363#endif 1364#endif
1364 dasm_put(Dst, 7212, Dt1(->base), Dt1(->top)); 1365 dasm_put(Dst, 7214, Dt1(->base), Dt1(->top));
1365#if LJ_HASJIT 1366#if LJ_HASJIT
1366 dasm_put(Dst, 7246); 1367 dasm_put(Dst, 7248);
1367#endif 1368#endif
1368 dasm_put(Dst, 7251, Dt1(->base), Dt1(->top)); 1369 dasm_put(Dst, 7253, Dt1(->base), Dt1(->top));
1369#if LJ_HASJIT 1370#if LJ_HASJIT
1370 dasm_put(Dst, 7282, DISPATCH_GL(vmstate), DISPATCH_GL(vmstate), ~LJ_VMST_EXIT, DISPATCH_J(exitno), DISPATCH_J(parent), 16*8+4*8, DISPATCH_GL(jit_L), DISPATCH_GL(jit_base), DISPATCH_J(L), DISPATCH_GL(jit_L), Dt1(->base), 4*8, GG_DISP2J, Dt1(->cframe), CFRAME_RAWMASK, CFRAME_OFS_L, Dt1(->base), CFRAME_OFS_PC); 1371 dasm_put(Dst, 7284, DISPATCH_GL(vmstate), DISPATCH_GL(vmstate), ~LJ_VMST_EXIT, DISPATCH_J(exitno), DISPATCH_J(parent), 16*8+4*8, DISPATCH_GL(jit_L), DISPATCH_GL(jit_base), DISPATCH_J(L), DISPATCH_GL(jit_L), Dt1(->base), 4*8, GG_DISP2J, Dt1(->cframe), CFRAME_RAWMASK, CFRAME_OFS_L, Dt1(->base), CFRAME_OFS_PC);
1371#endif 1372#endif
1372 dasm_put(Dst, 7512); 1373 dasm_put(Dst, 7514);
1373#if LJ_HASJIT 1374#if LJ_HASJIT
1374 dasm_put(Dst, 7515, 9*16+4*8, -9*16, -8*16, -7*16, -6*16, -5*16, -4*16, -3*16, -2*16, -1*16, Dt7(->pc), PC2PROTO(k), DISPATCH_GL(jit_L), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, BC_FUNCF); 1375 dasm_put(Dst, 7517, 9*16+4*8, -9*16, -8*16, -7*16, -6*16, -5*16, -4*16, -3*16, -2*16, -1*16, Dt7(->pc), PC2PROTO(k), DISPATCH_GL(jit_L), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, BC_FUNCF);
1375 dasm_put(Dst, 7657); 1376 dasm_put(Dst, 7659);
1376#endif 1377#endif
1377 dasm_put(Dst, 7683); 1378 dasm_put(Dst, 7685);
1378 if (!sse) { 1379 if (!sse) {
1379 dasm_put(Dst, 7686); 1380 dasm_put(Dst, 7688);
1380 } 1381 }
1381 dasm_put(Dst, 7731, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(43300000,00000000)), (unsigned int)((U64x(43300000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32)); 1382 dasm_put(Dst, 7733, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(43300000,00000000)), (unsigned int)((U64x(43300000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32));
1382 if (!sse) { 1383 if (!sse) {
1383 dasm_put(Dst, 7817); 1384 dasm_put(Dst, 7819);
1384 } 1385 }
1385 dasm_put(Dst, 7862, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(43300000,00000000)), (unsigned int)((U64x(43300000,00000000))>>32), (unsigned int)(U64x(bff00000,00000000)), (unsigned int)((U64x(bff00000,00000000))>>32)); 1386 dasm_put(Dst, 7864, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(43300000,00000000)), (unsigned int)((U64x(43300000,00000000))>>32), (unsigned int)(U64x(bff00000,00000000)), (unsigned int)((U64x(bff00000,00000000))>>32));
1386 if (!sse) { 1387 if (!sse) {
1387 dasm_put(Dst, 7948); 1388 dasm_put(Dst, 7950);
1388 } 1389 }
1389 dasm_put(Dst, 7987, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(43300000,00000000)), (unsigned int)((U64x(43300000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32)); 1390 dasm_put(Dst, 7989, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(43300000,00000000)), (unsigned int)((U64x(43300000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32));
1390 if (sse) { 1391 if (sse) {
1391 dasm_put(Dst, 8076, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(43300000,00000000)), (unsigned int)((U64x(43300000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32)); 1392 dasm_put(Dst, 8078, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(43300000,00000000)), (unsigned int)((U64x(43300000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32));
1392 } else { 1393 } else {
1393 dasm_put(Dst, 8190); 1394 dasm_put(Dst, 8192);
1394 } 1395 }
1395 dasm_put(Dst, 8237); 1396 dasm_put(Dst, 8239);
1396 if (!sse) { 1397 if (!sse) {
1397 } else { 1398 } else {
1398 dasm_put(Dst, 8311); 1399 dasm_put(Dst, 8313);
1399 } 1400 }
1400 dasm_put(Dst, 8314); 1401 dasm_put(Dst, 8316);
1401 dasm_put(Dst, 8399, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32)); 1402 dasm_put(Dst, 8401, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32));
1402 dasm_put(Dst, 8500, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(7ff00000,00000000)), (unsigned int)((U64x(7ff00000,00000000))>>32)); 1403 dasm_put(Dst, 8502, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(7ff00000,00000000)), (unsigned int)((U64x(7ff00000,00000000))>>32));
1403 dasm_put(Dst, 8668); 1404 dasm_put(Dst, 8670);
1404 if (sse) { 1405 if (sse) {
1405 dasm_put(Dst, 8709); 1406 dasm_put(Dst, 8711);
1406 dasm_put(Dst, 8779); 1407 dasm_put(Dst, 8781);
1407 dasm_put(Dst, 8852); 1408 dasm_put(Dst, 8854);
1408 } else { 1409 } else {
1409 dasm_put(Dst, 8902); 1410 dasm_put(Dst, 8904);
1410 dasm_put(Dst, 8994); 1411 dasm_put(Dst, 8996);
1411 } 1412 }
1412 dasm_put(Dst, 9040); 1413 dasm_put(Dst, 9042);
1413 if (sse) { 1414 if (sse) {
1414 dasm_put(Dst, 9046, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32)); 1415 dasm_put(Dst, 9048, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32));
1415 dasm_put(Dst, 9135, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32)); 1416 dasm_put(Dst, 9137, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32));
1416 } else { 1417 } else {
1417 dasm_put(Dst, 9259); 1418 dasm_put(Dst, 9261);
1418 dasm_put(Dst, 9342); 1419 dasm_put(Dst, 9344);
1419 if (cmov) { 1420 if (cmov) {
1420 dasm_put(Dst, 9397); 1421 dasm_put(Dst, 9399);
1421 } else { 1422 } else {
1422 dasm_put(Dst, 9416); 1423 dasm_put(Dst, 9418);
1423 } 1424 }
1424 dasm_put(Dst, 9255); 1425 dasm_put(Dst, 9257);
1425 } 1426 }
1426 dasm_put(Dst, 9457); 1427 dasm_put(Dst, 9459);
1427} 1428}
1428 1429
1429/* Generate the code for a single instruction. */ 1430/* Generate the code for a single instruction. */
@@ -1439,595 +1440,595 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
1439 /* Remember: all ops branch for a true comparison, fall through otherwise. */ 1440 /* Remember: all ops branch for a true comparison, fall through otherwise. */
1440 1441
1441 case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT: 1442 case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT:
1442 dasm_put(Dst, 9483, LJ_TISNUM, LJ_TISNUM); 1443 dasm_put(Dst, 9485, LJ_TISNUM, LJ_TISNUM);
1443 if (sse) { 1444 if (sse) {
1444 dasm_put(Dst, 9504); 1445 dasm_put(Dst, 9506);
1445 } else { 1446 } else {
1446 dasm_put(Dst, 9519); 1447 dasm_put(Dst, 9521);
1447 if (cmov) { 1448 if (cmov) {
1448 dasm_put(Dst, 9529); 1449 dasm_put(Dst, 9531);
1449 } else { 1450 } else {
1450 dasm_put(Dst, 9535); 1451 dasm_put(Dst, 9537);
1451 } 1452 }
1452 } 1453 }
1453 switch (op) { 1454 switch (op) {
1454 case BC_ISLT: 1455 case BC_ISLT:
1455 dasm_put(Dst, 9542); 1456 dasm_put(Dst, 9544);
1456 break; 1457 break;
1457 case BC_ISGE: 1458 case BC_ISGE:
1458 dasm_put(Dst, 9337); 1459 dasm_put(Dst, 9339);
1459 break; 1460 break;
1460 case BC_ISLE: 1461 case BC_ISLE:
1461 dasm_put(Dst, 5900); 1462 dasm_put(Dst, 5902);
1462 break; 1463 break;
1463 case BC_ISGT: 1464 case BC_ISGT:
1464 dasm_put(Dst, 9547); 1465 dasm_put(Dst, 9549);
1465 break; 1466 break;
1466 default: break; /* Shut up GCC. */ 1467 default: break; /* Shut up GCC. */
1467 } 1468 }
1468 dasm_put(Dst, 9552, -BCBIAS_J*4); 1469 dasm_put(Dst, 9554, -BCBIAS_J*4);
1469 break; 1470 break;
1470 1471
1471 case BC_ISEQV: case BC_ISNEV: 1472 case BC_ISEQV: case BC_ISNEV:
1472 vk = op == BC_ISEQV; 1473 vk = op == BC_ISEQV;
1473 dasm_put(Dst, 9586, LJ_TISNUM, LJ_TISNUM); 1474 dasm_put(Dst, 9588, LJ_TISNUM, LJ_TISNUM);
1474 if (sse) { 1475 if (sse) {
1475 dasm_put(Dst, 9612); 1476 dasm_put(Dst, 9614);
1476 } else { 1477 } else {
1477 dasm_put(Dst, 9624); 1478 dasm_put(Dst, 9626);
1478 if (cmov) { 1479 if (cmov) {
1479 dasm_put(Dst, 9529); 1480 dasm_put(Dst, 9531);
1480 } else { 1481 } else {
1481 dasm_put(Dst, 9535); 1482 dasm_put(Dst, 9537);
1482 } 1483 }
1483 } 1484 }
1484 iseqne_fp: 1485 iseqne_fp:
1485 if (vk) { 1486 if (vk) {
1486 dasm_put(Dst, 9631); 1487 dasm_put(Dst, 9633);
1487 } else { 1488 } else {
1488 dasm_put(Dst, 9640); 1489 dasm_put(Dst, 9642);
1489 } 1490 }
1490 iseqne_end: 1491 iseqne_end:
1491 if (vk) { 1492 if (vk) {
1492 dasm_put(Dst, 9649, -BCBIAS_J*4); 1493 dasm_put(Dst, 9651, -BCBIAS_J*4);
1493 } else { 1494 } else {
1494 dasm_put(Dst, 9664, -BCBIAS_J*4); 1495 dasm_put(Dst, 9666, -BCBIAS_J*4);
1495 } 1496 }
1496 dasm_put(Dst, 9566); 1497 dasm_put(Dst, 9568);
1497 if (op == BC_ISEQV || op == BC_ISNEV) { 1498 if (op == BC_ISEQV || op == BC_ISNEV) {
1498 dasm_put(Dst, 9679, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq); 1499 dasm_put(Dst, 9681, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq);
1499 if (vk) { 1500 if (vk) {
1500 dasm_put(Dst, 9737); 1501 dasm_put(Dst, 9739);
1501 } else { 1502 } else {
1502 dasm_put(Dst, 9741); 1503 dasm_put(Dst, 9743);
1503 } 1504 }
1504 dasm_put(Dst, 9747); 1505 dasm_put(Dst, 9749);
1505 } 1506 }
1506 break; 1507 break;
1507 case BC_ISEQS: case BC_ISNES: 1508 case BC_ISEQS: case BC_ISNES:
1508 vk = op == BC_ISEQS; 1509 vk = op == BC_ISEQS;
1509 dasm_put(Dst, 9752, LJ_TSTR); 1510 dasm_put(Dst, 9754, LJ_TSTR);
1510 iseqne_test: 1511 iseqne_test:
1511 if (vk) { 1512 if (vk) {
1512 dasm_put(Dst, 9635); 1513 dasm_put(Dst, 9637);
1513 } else { 1514 } else {
1514 dasm_put(Dst, 2802); 1515 dasm_put(Dst, 2802);
1515 } 1516 }
1516 goto iseqne_end; 1517 goto iseqne_end;
1517 case BC_ISEQN: case BC_ISNEN: 1518 case BC_ISEQN: case BC_ISNEN:
1518 vk = op == BC_ISEQN; 1519 vk = op == BC_ISEQN;
1519 dasm_put(Dst, 9776, LJ_TISNUM); 1520 dasm_put(Dst, 9778, LJ_TISNUM);
1520 if (sse) { 1521 if (sse) {
1521 dasm_put(Dst, 9790); 1522 dasm_put(Dst, 9792);
1522 } else { 1523 } else {
1523 dasm_put(Dst, 9802); 1524 dasm_put(Dst, 9804);
1524 if (cmov) { 1525 if (cmov) {
1525 dasm_put(Dst, 9529); 1526 dasm_put(Dst, 9531);
1526 } else { 1527 } else {
1527 dasm_put(Dst, 9535); 1528 dasm_put(Dst, 9537);
1528 } 1529 }
1529 } 1530 }
1530 goto iseqne_fp; 1531 goto iseqne_fp;
1531 case BC_ISEQP: case BC_ISNEP: 1532 case BC_ISEQP: case BC_ISNEP:
1532 vk = op == BC_ISEQP; 1533 vk = op == BC_ISEQP;
1533 dasm_put(Dst, 9809); 1534 dasm_put(Dst, 9811);
1534 goto iseqne_test; 1535 goto iseqne_test;
1535 1536
1536 /* -- Unary test and copy ops ------------------------------------------- */ 1537 /* -- Unary test and copy ops ------------------------------------------- */
1537 1538
1538 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF: 1539 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF:
1539 dasm_put(Dst, 9821, LJ_TISTRUECOND); 1540 dasm_put(Dst, 9823, LJ_TISTRUECOND);
1540 if (op == BC_IST || op == BC_ISTC) { 1541 if (op == BC_IST || op == BC_ISTC) {
1541 dasm_put(Dst, 9833); 1542 dasm_put(Dst, 9835);
1542 } else { 1543 } else {
1543 dasm_put(Dst, 9838); 1544 dasm_put(Dst, 9840);
1544 } 1545 }
1545 if (op == BC_ISTC || op == BC_ISFC) { 1546 if (op == BC_ISTC || op == BC_ISFC) {
1546 dasm_put(Dst, 9843); 1547 dasm_put(Dst, 9845);
1547 } 1548 }
1548 dasm_put(Dst, 9854, -BCBIAS_J*4); 1549 dasm_put(Dst, 9856, -BCBIAS_J*4);
1549 break; 1550 break;
1550 1551
1551 /* -- Unary ops --------------------------------------------------------- */ 1552 /* -- Unary ops --------------------------------------------------------- */
1552 1553
1553 case BC_MOV: 1554 case BC_MOV:
1554 dasm_put(Dst, 9886); 1555 dasm_put(Dst, 9888);
1555 break; 1556 break;
1556 case BC_NOT: 1557 case BC_NOT:
1557 dasm_put(Dst, 9920, LJ_TISTRUECOND, LJ_TTRUE); 1558 dasm_put(Dst, 9922, LJ_TISTRUECOND, LJ_TTRUE);
1558 break; 1559 break;
1559 case BC_UNM: 1560 case BC_UNM:
1560 dasm_put(Dst, 9956, LJ_TISNUM); 1561 dasm_put(Dst, 9958, LJ_TISNUM);
1561 if (sse) { 1562 if (sse) {
1562 dasm_put(Dst, 9967, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32)); 1563 dasm_put(Dst, 9969, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32));
1563 } else { 1564 } else {
1564 dasm_put(Dst, 9992); 1565 dasm_put(Dst, 9994);
1565 } 1566 }
1566 dasm_put(Dst, 9566); 1567 dasm_put(Dst, 9568);
1567 break; 1568 break;
1568 case BC_LEN: 1569 case BC_LEN:
1569 dasm_put(Dst, 10001, LJ_TSTR); 1570 dasm_put(Dst, 10003, LJ_TSTR);
1570 if (sse) { 1571 if (sse) {
1571 dasm_put(Dst, 10015, Dt5(->len)); 1572 dasm_put(Dst, 10017, Dt5(->len));
1572 } else { 1573 } else {
1573 dasm_put(Dst, 10033, Dt5(->len)); 1574 dasm_put(Dst, 10035, Dt5(->len));
1574 } 1575 }
1575 dasm_put(Dst, 10042, LJ_TTAB); 1576 dasm_put(Dst, 10044, LJ_TTAB);
1576 if (sse) { 1577 if (sse) {
1577 dasm_put(Dst, 10083); 1578 dasm_put(Dst, 10085);
1578 } else { 1579 } else {
1579 } 1580 }
1580 dasm_put(Dst, 10092); 1581 dasm_put(Dst, 10094);
1581 break; 1582 break;
1582 1583
1583 /* -- Binary ops -------------------------------------------------------- */ 1584 /* -- Binary ops -------------------------------------------------------- */
1584 1585
1585 1586
1586 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV: 1587 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV:
1587 dasm_put(Dst, 10102); 1588 dasm_put(Dst, 10104);
1588 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1589 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1589 switch (vk) { 1590 switch (vk) {
1590 case 0: 1591 case 0:
1591 dasm_put(Dst, 10110, LJ_TISNUM); 1592 dasm_put(Dst, 10112, LJ_TISNUM);
1592 if (sse) { 1593 if (sse) {
1593 dasm_put(Dst, 10122); 1594 dasm_put(Dst, 10124);
1594 } else { 1595 } else {
1595 dasm_put(Dst, 10136); 1596 dasm_put(Dst, 10138);
1596 } 1597 }
1597 break; 1598 break;
1598 case 1: 1599 case 1:
1599 dasm_put(Dst, 10144, LJ_TISNUM); 1600 dasm_put(Dst, 10146, LJ_TISNUM);
1600 if (sse) { 1601 if (sse) {
1601 dasm_put(Dst, 10156); 1602 dasm_put(Dst, 10158);
1602 } else { 1603 } else {
1603 dasm_put(Dst, 10170); 1604 dasm_put(Dst, 10172);
1604 } 1605 }
1605 break; 1606 break;
1606 default: 1607 default:
1607 dasm_put(Dst, 10178, LJ_TISNUM, LJ_TISNUM); 1608 dasm_put(Dst, 10180, LJ_TISNUM, LJ_TISNUM);
1608 if (sse) { 1609 if (sse) {
1609 dasm_put(Dst, 10200); 1610 dasm_put(Dst, 10202);
1610 } else { 1611 } else {
1611 dasm_put(Dst, 10214); 1612 dasm_put(Dst, 10216);
1612 } 1613 }
1613 break; 1614 break;
1614 } 1615 }
1615 if (sse) { 1616 if (sse) {
1616 dasm_put(Dst, 9985); 1617 dasm_put(Dst, 9987);
1617 } else { 1618 } else {
1618 dasm_put(Dst, 9997); 1619 dasm_put(Dst, 9999);
1619 } 1620 }
1620 dasm_put(Dst, 9566); 1621 dasm_put(Dst, 9568);
1621 break; 1622 break;
1622 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV: 1623 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV:
1623 dasm_put(Dst, 10102); 1624 dasm_put(Dst, 10104);
1624 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1625 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1625 switch (vk) { 1626 switch (vk) {
1626 case 0: 1627 case 0:
1627 dasm_put(Dst, 10110, LJ_TISNUM); 1628 dasm_put(Dst, 10112, LJ_TISNUM);
1628 if (sse) { 1629 if (sse) {
1629 dasm_put(Dst, 10222); 1630 dasm_put(Dst, 10224);
1630 } else { 1631 } else {
1631 dasm_put(Dst, 10236); 1632 dasm_put(Dst, 10238);
1632 } 1633 }
1633 break; 1634 break;
1634 case 1: 1635 case 1:
1635 dasm_put(Dst, 10144, LJ_TISNUM); 1636 dasm_put(Dst, 10146, LJ_TISNUM);
1636 if (sse) { 1637 if (sse) {
1637 dasm_put(Dst, 10244); 1638 dasm_put(Dst, 10246);
1638 } else { 1639 } else {
1639 dasm_put(Dst, 10258); 1640 dasm_put(Dst, 10260);
1640 } 1641 }
1641 break; 1642 break;
1642 default: 1643 default:
1643 dasm_put(Dst, 10178, LJ_TISNUM, LJ_TISNUM); 1644 dasm_put(Dst, 10180, LJ_TISNUM, LJ_TISNUM);
1644 if (sse) { 1645 if (sse) {
1645 dasm_put(Dst, 10266); 1646 dasm_put(Dst, 10268);
1646 } else { 1647 } else {
1647 dasm_put(Dst, 10280); 1648 dasm_put(Dst, 10282);
1648 } 1649 }
1649 break; 1650 break;
1650 } 1651 }
1651 if (sse) { 1652 if (sse) {
1652 dasm_put(Dst, 9985); 1653 dasm_put(Dst, 9987);
1653 } else { 1654 } else {
1654 dasm_put(Dst, 9997); 1655 dasm_put(Dst, 9999);
1655 } 1656 }
1656 dasm_put(Dst, 9566); 1657 dasm_put(Dst, 9568);
1657 break; 1658 break;
1658 case BC_MULVN: case BC_MULNV: case BC_MULVV: 1659 case BC_MULVN: case BC_MULNV: case BC_MULVV:
1659 dasm_put(Dst, 10102); 1660 dasm_put(Dst, 10104);
1660 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1661 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1661 switch (vk) { 1662 switch (vk) {
1662 case 0: 1663 case 0:
1663 dasm_put(Dst, 10110, LJ_TISNUM); 1664 dasm_put(Dst, 10112, LJ_TISNUM);
1664 if (sse) { 1665 if (sse) {
1665 dasm_put(Dst, 10288); 1666 dasm_put(Dst, 10290);
1666 } else { 1667 } else {
1667 dasm_put(Dst, 10302); 1668 dasm_put(Dst, 10304);
1668 } 1669 }
1669 break; 1670 break;
1670 case 1: 1671 case 1:
1671 dasm_put(Dst, 10144, LJ_TISNUM); 1672 dasm_put(Dst, 10146, LJ_TISNUM);
1672 if (sse) { 1673 if (sse) {
1673 dasm_put(Dst, 10310); 1674 dasm_put(Dst, 10312);
1674 } else { 1675 } else {
1675 dasm_put(Dst, 10324); 1676 dasm_put(Dst, 10326);
1676 } 1677 }
1677 break; 1678 break;
1678 default: 1679 default:
1679 dasm_put(Dst, 10178, LJ_TISNUM, LJ_TISNUM); 1680 dasm_put(Dst, 10180, LJ_TISNUM, LJ_TISNUM);
1680 if (sse) { 1681 if (sse) {
1681 dasm_put(Dst, 10332); 1682 dasm_put(Dst, 10334);
1682 } else { 1683 } else {
1683 dasm_put(Dst, 10346); 1684 dasm_put(Dst, 10348);
1684 } 1685 }
1685 break; 1686 break;
1686 } 1687 }
1687 if (sse) { 1688 if (sse) {
1688 dasm_put(Dst, 9985); 1689 dasm_put(Dst, 9987);
1689 } else { 1690 } else {
1690 dasm_put(Dst, 9997); 1691 dasm_put(Dst, 9999);
1691 } 1692 }
1692 dasm_put(Dst, 9566); 1693 dasm_put(Dst, 9568);
1693 break; 1694 break;
1694 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV: 1695 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV:
1695 dasm_put(Dst, 10102); 1696 dasm_put(Dst, 10104);
1696 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1697 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1697 switch (vk) { 1698 switch (vk) {
1698 case 0: 1699 case 0:
1699 dasm_put(Dst, 10110, LJ_TISNUM); 1700 dasm_put(Dst, 10112, LJ_TISNUM);
1700 if (sse) { 1701 if (sse) {
1701 dasm_put(Dst, 10354); 1702 dasm_put(Dst, 10356);
1702 } else { 1703 } else {
1703 dasm_put(Dst, 10368); 1704 dasm_put(Dst, 10370);
1704 } 1705 }
1705 break; 1706 break;
1706 case 1: 1707 case 1:
1707 dasm_put(Dst, 10144, LJ_TISNUM); 1708 dasm_put(Dst, 10146, LJ_TISNUM);
1708 if (sse) { 1709 if (sse) {
1709 dasm_put(Dst, 10376); 1710 dasm_put(Dst, 10378);
1710 } else { 1711 } else {
1711 dasm_put(Dst, 10390); 1712 dasm_put(Dst, 10392);
1712 } 1713 }
1713 break; 1714 break;
1714 default: 1715 default:
1715 dasm_put(Dst, 10178, LJ_TISNUM, LJ_TISNUM); 1716 dasm_put(Dst, 10180, LJ_TISNUM, LJ_TISNUM);
1716 if (sse) { 1717 if (sse) {
1717 dasm_put(Dst, 10398); 1718 dasm_put(Dst, 10400);
1718 } else { 1719 } else {
1719 dasm_put(Dst, 10412); 1720 dasm_put(Dst, 10414);
1720 } 1721 }
1721 break; 1722 break;
1722 } 1723 }
1723 if (sse) { 1724 if (sse) {
1724 dasm_put(Dst, 9985); 1725 dasm_put(Dst, 9987);
1725 } else { 1726 } else {
1726 dasm_put(Dst, 9997); 1727 dasm_put(Dst, 9999);
1727 } 1728 }
1728 dasm_put(Dst, 9566); 1729 dasm_put(Dst, 9568);
1729 break; 1730 break;
1730 case BC_MODVN: 1731 case BC_MODVN:
1731 dasm_put(Dst, 10102); 1732 dasm_put(Dst, 10104);
1732 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1733 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1733 switch (vk) { 1734 switch (vk) {
1734 case 0: 1735 case 0:
1735 dasm_put(Dst, 10110, LJ_TISNUM); 1736 dasm_put(Dst, 10112, LJ_TISNUM);
1736 if (sse) { 1737 if (sse) {
1737 dasm_put(Dst, 10420); 1738 dasm_put(Dst, 10422);
1738 } else { 1739 } else {
1739 dasm_put(Dst, 10434); 1740 dasm_put(Dst, 10436);
1740 } 1741 }
1741 break; 1742 break;
1742 case 1: 1743 case 1:
1743 dasm_put(Dst, 10144, LJ_TISNUM); 1744 dasm_put(Dst, 10146, LJ_TISNUM);
1744 if (sse) { 1745 if (sse) {
1745 dasm_put(Dst, 10442); 1746 dasm_put(Dst, 10444);
1746 } else { 1747 } else {
1747 dasm_put(Dst, 10456); 1748 dasm_put(Dst, 10458);
1748 } 1749 }
1749 break; 1750 break;
1750 default: 1751 default:
1751 dasm_put(Dst, 10178, LJ_TISNUM, LJ_TISNUM); 1752 dasm_put(Dst, 10180, LJ_TISNUM, LJ_TISNUM);
1752 if (sse) { 1753 if (sse) {
1753 dasm_put(Dst, 10464); 1754 dasm_put(Dst, 10466);
1754 } else { 1755 } else {
1755 dasm_put(Dst, 10478); 1756 dasm_put(Dst, 10480);
1756 } 1757 }
1757 break; 1758 break;
1758 } 1759 }
1759 dasm_put(Dst, 10486); 1760 dasm_put(Dst, 10488);
1760 if (sse) { 1761 if (sse) {
1761 dasm_put(Dst, 9985); 1762 dasm_put(Dst, 9987);
1762 } else { 1763 } else {
1763 dasm_put(Dst, 9997); 1764 dasm_put(Dst, 9999);
1764 } 1765 }
1765 dasm_put(Dst, 9566); 1766 dasm_put(Dst, 9568);
1766 break; 1767 break;
1767 case BC_MODNV: case BC_MODVV: 1768 case BC_MODNV: case BC_MODVV:
1768 dasm_put(Dst, 10102); 1769 dasm_put(Dst, 10104);
1769 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1770 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1770 switch (vk) { 1771 switch (vk) {
1771 case 0: 1772 case 0:
1772 dasm_put(Dst, 10110, LJ_TISNUM); 1773 dasm_put(Dst, 10112, LJ_TISNUM);
1773 if (sse) { 1774 if (sse) {
1774 dasm_put(Dst, 10420); 1775 dasm_put(Dst, 10422);
1775 } else { 1776 } else {
1776 dasm_put(Dst, 10434); 1777 dasm_put(Dst, 10436);
1777 } 1778 }
1778 break; 1779 break;
1779 case 1: 1780 case 1:
1780 dasm_put(Dst, 10144, LJ_TISNUM); 1781 dasm_put(Dst, 10146, LJ_TISNUM);
1781 if (sse) { 1782 if (sse) {
1782 dasm_put(Dst, 10442); 1783 dasm_put(Dst, 10444);
1783 } else { 1784 } else {
1784 dasm_put(Dst, 10456); 1785 dasm_put(Dst, 10458);
1785 } 1786 }
1786 break; 1787 break;
1787 default: 1788 default:
1788 dasm_put(Dst, 10178, LJ_TISNUM, LJ_TISNUM); 1789 dasm_put(Dst, 10180, LJ_TISNUM, LJ_TISNUM);
1789 if (sse) { 1790 if (sse) {
1790 dasm_put(Dst, 10464); 1791 dasm_put(Dst, 10466);
1791 } else { 1792 } else {
1792 dasm_put(Dst, 10478); 1793 dasm_put(Dst, 10480);
1793 } 1794 }
1794 break; 1795 break;
1795 } 1796 }
1796 dasm_put(Dst, 10492); 1797 dasm_put(Dst, 10494);
1797 break; 1798 break;
1798 case BC_POW: 1799 case BC_POW:
1799 dasm_put(Dst, 10102); 1800 dasm_put(Dst, 10104);
1800 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1801 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1801 switch (vk) { 1802 switch (vk) {
1802 case 0: 1803 case 0:
1803 dasm_put(Dst, 10110, LJ_TISNUM); 1804 dasm_put(Dst, 10112, LJ_TISNUM);
1804 if (sse) { 1805 if (sse) {
1805 dasm_put(Dst, 10420); 1806 dasm_put(Dst, 10422);
1806 } else { 1807 } else {
1807 dasm_put(Dst, 10434); 1808 dasm_put(Dst, 10436);
1808 } 1809 }
1809 break; 1810 break;
1810 case 1: 1811 case 1:
1811 dasm_put(Dst, 10144, LJ_TISNUM); 1812 dasm_put(Dst, 10146, LJ_TISNUM);
1812 if (sse) { 1813 if (sse) {
1813 dasm_put(Dst, 10442); 1814 dasm_put(Dst, 10444);
1814 } else { 1815 } else {
1815 dasm_put(Dst, 10456); 1816 dasm_put(Dst, 10458);
1816 } 1817 }
1817 break; 1818 break;
1818 default: 1819 default:
1819 dasm_put(Dst, 10178, LJ_TISNUM, LJ_TISNUM); 1820 dasm_put(Dst, 10180, LJ_TISNUM, LJ_TISNUM);
1820 if (sse) { 1821 if (sse) {
1821 dasm_put(Dst, 10464); 1822 dasm_put(Dst, 10466);
1822 } else { 1823 } else {
1823 dasm_put(Dst, 10478); 1824 dasm_put(Dst, 10480);
1824 } 1825 }
1825 break; 1826 break;
1826 } 1827 }
1827 dasm_put(Dst, 10497); 1828 dasm_put(Dst, 10499);
1828 if (sse) { 1829 if (sse) {
1829 dasm_put(Dst, 9985); 1830 dasm_put(Dst, 9987);
1830 } else { 1831 } else {
1831 dasm_put(Dst, 9997); 1832 dasm_put(Dst, 9999);
1832 } 1833 }
1833 dasm_put(Dst, 9566); 1834 dasm_put(Dst, 9568);
1834 break; 1835 break;
1835 1836
1836 case BC_CAT: 1837 case BC_CAT:
1837 dasm_put(Dst, 10501, Dt1(->base), Dt1(->base)); 1838 dasm_put(Dst, 10503, Dt1(->base), Dt1(->base));
1838 break; 1839 break;
1839 1840
1840 /* -- Constant ops ------------------------------------------------------ */ 1841 /* -- Constant ops ------------------------------------------------------ */
1841 1842
1842 case BC_KSTR: 1843 case BC_KSTR:
1843 dasm_put(Dst, 10591, LJ_TSTR); 1844 dasm_put(Dst, 10593, LJ_TSTR);
1844 break; 1845 break;
1845 case BC_KSHORT: 1846 case BC_KSHORT:
1846 if (sse) { 1847 if (sse) {
1847 dasm_put(Dst, 10626); 1848 dasm_put(Dst, 10628);
1848 } else { 1849 } else {
1849 dasm_put(Dst, 10641); 1850 dasm_put(Dst, 10643);
1850 } 1851 }
1851 dasm_put(Dst, 9566); 1852 dasm_put(Dst, 9568);
1852 break; 1853 break;
1853 case BC_KNUM: 1854 case BC_KNUM:
1854 if (sse) { 1855 if (sse) {
1855 dasm_put(Dst, 10649); 1856 dasm_put(Dst, 10651);
1856 } else { 1857 } else {
1857 dasm_put(Dst, 10662); 1858 dasm_put(Dst, 10664);
1858 } 1859 }
1859 dasm_put(Dst, 9566); 1860 dasm_put(Dst, 9568);
1860 break; 1861 break;
1861 case BC_KPRI: 1862 case BC_KPRI:
1862 dasm_put(Dst, 10669); 1863 dasm_put(Dst, 10671);
1863 break; 1864 break;
1864 case BC_KNIL: 1865 case BC_KNIL:
1865 dasm_put(Dst, 10697, LJ_TNIL); 1866 dasm_put(Dst, 10699, LJ_TNIL);
1866 break; 1867 break;
1867 1868
1868 /* -- Upvalue and function ops ------------------------------------------ */ 1869 /* -- Upvalue and function ops ------------------------------------------ */
1869 1870
1870 case BC_UGET: 1871 case BC_UGET:
1871 dasm_put(Dst, 10744, offsetof(GCfuncL, uvptr), DtA(->v)); 1872 dasm_put(Dst, 10746, offsetof(GCfuncL, uvptr), DtA(->v));
1872 break; 1873 break;
1873 case BC_USETV: 1874 case BC_USETV:
1874#define TV2MARKOFS \ 1875#define TV2MARKOFS \
1875 ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv)) 1876 ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv))
1876 dasm_put(Dst, 10789, offsetof(GCfuncL, uvptr), DtA(->closed), DtA(->v), TV2MARKOFS, LJ_GC_BLACK, LJ_TISGCV, LJ_TISNUM - LJ_TISGCV, Dt4(->gch.marked), LJ_GC_WHITES, GG_DISP2G); 1877 dasm_put(Dst, 10791, offsetof(GCfuncL, uvptr), DtA(->closed), DtA(->v), TV2MARKOFS, LJ_GC_BLACK, LJ_TISGCV, LJ_TISNUM - LJ_TISGCV, Dt4(->gch.marked), LJ_GC_WHITES, GG_DISP2G);
1877 dasm_put(Dst, 10880); 1878 dasm_put(Dst, 10882);
1878 break; 1879 break;
1879#undef TV2MARKOFS 1880#undef TV2MARKOFS
1880 case BC_USETS: 1881 case BC_USETS:
1881 dasm_put(Dst, 10892, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G); 1882 dasm_put(Dst, 10894, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G);
1882 break; 1883 break;
1883 case BC_USETN: 1884 case BC_USETN:
1884 dasm_put(Dst, 10985); 1885 dasm_put(Dst, 10987);
1885 if (sse) { 1886 if (sse) {
1886 dasm_put(Dst, 10990); 1887 dasm_put(Dst, 10992);
1887 } else { 1888 } else {
1888 dasm_put(Dst, 9805); 1889 dasm_put(Dst, 9807);
1889 } 1890 }
1890 dasm_put(Dst, 10997, offsetof(GCfuncL, uvptr), DtA(->v)); 1891 dasm_put(Dst, 10999, offsetof(GCfuncL, uvptr), DtA(->v));
1891 if (sse) { 1892 if (sse) {
1892 dasm_put(Dst, 11006); 1893 dasm_put(Dst, 11008);
1893 } else { 1894 } else {
1894 dasm_put(Dst, 11012); 1895 dasm_put(Dst, 11014);
1895 } 1896 }
1896 dasm_put(Dst, 9566); 1897 dasm_put(Dst, 9568);
1897 break; 1898 break;
1898 case BC_USETP: 1899 case BC_USETP:
1899 dasm_put(Dst, 11015, offsetof(GCfuncL, uvptr), DtA(->v)); 1900 dasm_put(Dst, 11017, offsetof(GCfuncL, uvptr), DtA(->v));
1900 break; 1901 break;
1901 case BC_UCLO: 1902 case BC_UCLO:
1902 dasm_put(Dst, 11054, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base)); 1903 dasm_put(Dst, 11056, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base));
1903 break; 1904 break;
1904 1905
1905 case BC_FNEW: 1906 case BC_FNEW:
1906 dasm_put(Dst, 11109, Dt1(->base), Dt1(->base), LJ_TFUNC); 1907 dasm_put(Dst, 11111, Dt1(->base), Dt1(->base), LJ_TFUNC);
1907 break; 1908 break;
1908 1909
1909 /* -- Table ops --------------------------------------------------------- */ 1910 /* -- Table ops --------------------------------------------------------- */
1910 1911
1911 case BC_TNEW: 1912 case BC_TNEW:
1912 dasm_put(Dst, 11175, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB); 1913 dasm_put(Dst, 11177, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB);
1913 break; 1914 break;
1914 case BC_TDUP: 1915 case BC_TDUP:
1915 dasm_put(Dst, 11297, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB); 1916 dasm_put(Dst, 11299, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB);
1916 break; 1917 break;
1917 1918
1918 case BC_GGET: 1919 case BC_GGET:
1919 dasm_put(Dst, 11392, Dt7(->env)); 1920 dasm_put(Dst, 11394, Dt7(->env));
1920 break; 1921 break;
1921 case BC_GSET: 1922 case BC_GSET:
1922 dasm_put(Dst, 11411, Dt7(->env)); 1923 dasm_put(Dst, 11413, Dt7(->env));
1923 break; 1924 break;
1924 1925
1925 case BC_TGETV: 1926 case BC_TGETV:
1926 dasm_put(Dst, 11430, LJ_TTAB, LJ_TISNUM); 1927 dasm_put(Dst, 11432, LJ_TTAB, LJ_TISNUM);
1927 if (sse) { 1928 if (sse) {
1928 dasm_put(Dst, 11463); 1929 dasm_put(Dst, 11465);
1929 } else { 1930 } else {
1930 } 1931 }
1931 dasm_put(Dst, 11484, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 1932 dasm_put(Dst, 11486, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
1932 dasm_put(Dst, 11577, LJ_TSTR); 1933 dasm_put(Dst, 11579, LJ_TSTR);
1933 break; 1934 break;
1934 case BC_TGETS: 1935 case BC_TGETS:
1935 dasm_put(Dst, 11595, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); 1936 dasm_put(Dst, 11597, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
1936 dasm_put(Dst, 11680, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 1937 dasm_put(Dst, 11682, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
1937 break; 1938 break;
1938 case BC_TGETB: 1939 case BC_TGETB:
1939 dasm_put(Dst, 11752, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 1940 dasm_put(Dst, 11754, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
1940 dasm_put(Dst, 10092); 1941 dasm_put(Dst, 10094);
1941 break; 1942 break;
1942 1943
1943 case BC_TSETV: 1944 case BC_TSETV:
1944 dasm_put(Dst, 11852, LJ_TTAB, LJ_TISNUM); 1945 dasm_put(Dst, 11854, LJ_TTAB, LJ_TISNUM);
1945 if (sse) { 1946 if (sse) {
1946 dasm_put(Dst, 11463); 1947 dasm_put(Dst, 11465);
1947 } else { 1948 } else {
1948 } 1949 }
1949 dasm_put(Dst, 11885, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable)); 1950 dasm_put(Dst, 11887, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable));
1950 dasm_put(Dst, 11969, Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 1951 dasm_put(Dst, 11971, Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
1951 break; 1952 break;
1952 case BC_TSETS: 1953 case BC_TSETS:
1953 dasm_put(Dst, 12031, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); 1954 dasm_put(Dst, 12033, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
1954 dasm_put(Dst, 12107, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next)); 1955 dasm_put(Dst, 12109, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next));
1955 dasm_put(Dst, 12200, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt1(->base), Dt1(->base), Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 1956 dasm_put(Dst, 12202, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt1(->base), Dt1(->base), Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
1956 break; 1957 break;
1957 case BC_TSETB: 1958 case BC_TSETB:
1958 dasm_put(Dst, 12291, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable)); 1959 dasm_put(Dst, 12293, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable));
1959 dasm_put(Dst, 12390, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 1960 dasm_put(Dst, 12392, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
1960 break; 1961 break;
1961 1962
1962 case BC_TSETM: 1963 case BC_TSETM:
1963 dasm_put(Dst, 12436); 1964 dasm_put(Dst, 12438);
1964 if (sse) { 1965 if (sse) {
1965 dasm_put(Dst, 12441); 1966 dasm_put(Dst, 12443);
1966 } else { 1967 } else {
1967 } 1968 }
1968 dasm_put(Dst, 12448, Dt6(->marked), LJ_GC_BLACK, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base)); 1969 dasm_put(Dst, 12450, Dt6(->marked), LJ_GC_BLACK, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base));
1969 dasm_put(Dst, 12588, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 1970 dasm_put(Dst, 12590, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
1970 break; 1971 break;
1971 1972
1972 /* -- Calls and vararg handling ----------------------------------------- */ 1973 /* -- Calls and vararg handling ----------------------------------------- */
1973 1974
1974 case BC_CALL: case BC_CALLM: 1975 case BC_CALL: case BC_CALLM:
1975 dasm_put(Dst, 10106); 1976 dasm_put(Dst, 10108);
1976 if (op == BC_CALLM) { 1977 if (op == BC_CALLM) {
1977 dasm_put(Dst, 12606); 1978 dasm_put(Dst, 12608);
1978 } 1979 }
1979 dasm_put(Dst, 12611, LJ_TFUNC, Dt7(->pc)); 1980 dasm_put(Dst, 12613, LJ_TFUNC, Dt7(->pc));
1980 break; 1981 break;
1981 1982
1982 case BC_CALLMT: 1983 case BC_CALLMT:
1983 dasm_put(Dst, 12606); 1984 dasm_put(Dst, 12608);
1984 break; 1985 break;
1985 case BC_CALLT: 1986 case BC_CALLT:
1986 dasm_put(Dst, 12653, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc)); 1987 dasm_put(Dst, 12655, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc));
1987 dasm_put(Dst, 12772, FRAME_TYPE, Dt7(->pc), PC2PROTO(k)); 1988 dasm_put(Dst, 12774, FRAME_TYPE, Dt7(->pc), PC2PROTO(k));
1988 break; 1989 break;
1989 1990
1990 case BC_ITERC: 1991 case BC_ITERC:
1991 dasm_put(Dst, 12830, LJ_TFUNC, 2+1, Dt7(->pc)); 1992 dasm_put(Dst, 12832, LJ_TFUNC, 2+1, Dt7(->pc));
1992 break; 1993 break;
1993 1994
1994 case BC_VARG: 1995 case BC_VARG:
1995 dasm_put(Dst, 12911, Dt7(->pc), PC2PROTO(numparams), (8+FRAME_VARG), LJ_TNIL); 1996 dasm_put(Dst, 12913, Dt7(->pc), PC2PROTO(numparams), (8+FRAME_VARG), LJ_TNIL);
1996 dasm_put(Dst, 13056, Dt1(->maxstack), Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top)); 1997 dasm_put(Dst, 13058, Dt1(->maxstack), Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top));
1997 break; 1998 break;
1998 1999
1999 /* -- Returns ----------------------------------------------------------- */ 2000 /* -- Returns ----------------------------------------------------------- */
2000 2001
2001 case BC_RETM: 2002 case BC_RETM:
2002 dasm_put(Dst, 12606); 2003 dasm_put(Dst, 12608);
2003 break; 2004 break;
2004 2005
2005 case BC_RET: case BC_RET0: case BC_RET1: 2006 case BC_RET: case BC_RET0: case BC_RET1:
2006 if (op != BC_RET0) { 2007 if (op != BC_RET0) {
2007 dasm_put(Dst, 13155); 2008 dasm_put(Dst, 13157);
2008 } 2009 }
2009 dasm_put(Dst, 13159, FRAME_TYPE); 2010 dasm_put(Dst, 13161, FRAME_TYPE);
2010 switch (op) { 2011 switch (op) {
2011 case BC_RET: 2012 case BC_RET:
2012 dasm_put(Dst, 13178); 2013 dasm_put(Dst, 13180);
2013 break; 2014 break;
2014 case BC_RET1: 2015 case BC_RET1:
2015 dasm_put(Dst, 13236); 2016 dasm_put(Dst, 13238);
2016 /* fallthrough */ 2017 /* fallthrough */
2017 case BC_RET0: 2018 case BC_RET0:
2018 dasm_put(Dst, 13252); 2019 dasm_put(Dst, 13254);
2019 default: 2020 default:
2020 break; 2021 break;
2021 } 2022 }
2022 dasm_put(Dst, 13263, Dt7(->pc), PC2PROTO(k)); 2023 dasm_put(Dst, 13265, Dt7(->pc), PC2PROTO(k));
2023 if (op == BC_RET) { 2024 if (op == BC_RET) {
2024 dasm_put(Dst, 13307, LJ_TNIL); 2025 dasm_put(Dst, 13309, LJ_TNIL);
2025 } else { 2026 } else {
2026 dasm_put(Dst, 13316, LJ_TNIL); 2027 dasm_put(Dst, 13318, LJ_TNIL);
2027 } 2028 }
2028 dasm_put(Dst, 13323); 2029 dasm_put(Dst, 13325);
2029 if (op != BC_RET0) { 2030 if (op != BC_RET0) {
2030 dasm_put(Dst, 13344); 2031 dasm_put(Dst, 13346);
2031 } 2032 }
2032 dasm_put(Dst, 4570); 2033 dasm_put(Dst, 4570);
2033 break; 2034 break;
@@ -2037,7 +2038,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2037 2038
2038 case BC_FORL: 2039 case BC_FORL:
2039#if LJ_HASJIT 2040#if LJ_HASJIT
2040 dasm_put(Dst, 13348, HOTCOUNT_PCMASK, GG_DISP2HOT); 2041 dasm_put(Dst, 13350, HOTCOUNT_PCMASK, GG_DISP2HOT);
2041#endif 2042#endif
2042 break; 2043 break;
2043 2044
@@ -2049,57 +2050,57 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2049 case BC_FORI: 2050 case BC_FORI:
2050 case BC_IFORL: 2051 case BC_IFORL:
2051 vk = (op == BC_IFORL || op == BC_JFORL); 2052 vk = (op == BC_IFORL || op == BC_JFORL);
2052 dasm_put(Dst, 13369); 2053 dasm_put(Dst, 13371);
2053 if (!vk) { 2054 if (!vk) {
2054 dasm_put(Dst, 13373, LJ_TISNUM, LJ_TISNUM); 2055 dasm_put(Dst, 13375, LJ_TISNUM, LJ_TISNUM);
2055 } 2056 }
2056 dasm_put(Dst, 13392); 2057 dasm_put(Dst, 13394);
2057 if (!vk) { 2058 if (!vk) {
2058 dasm_put(Dst, 13396, LJ_TISNUM); 2059 dasm_put(Dst, 13398, LJ_TISNUM);
2059 } 2060 }
2060 if (sse) { 2061 if (sse) {
2061 dasm_put(Dst, 13405); 2062 dasm_put(Dst, 13407);
2062 if (vk) { 2063 if (vk) {
2063 dasm_put(Dst, 13417); 2064 dasm_put(Dst, 13419);
2064 } else { 2065 } else {
2065 dasm_put(Dst, 13436); 2066 dasm_put(Dst, 13438);
2066 } 2067 }
2067 dasm_put(Dst, 13441); 2068 dasm_put(Dst, 13443);
2068 } else { 2069 } else {
2069 dasm_put(Dst, 13454); 2070 dasm_put(Dst, 13456);
2070 if (vk) { 2071 if (vk) {
2071 dasm_put(Dst, 13460); 2072 dasm_put(Dst, 13462);
2072 } else { 2073 } else {
2073 dasm_put(Dst, 13476); 2074 dasm_put(Dst, 13478);
2074 } 2075 }
2075 dasm_put(Dst, 13484); 2076 dasm_put(Dst, 13486);
2076 if (cmov) { 2077 if (cmov) {
2077 dasm_put(Dst, 9529); 2078 dasm_put(Dst, 9531);
2078 } else { 2079 } else {
2079 dasm_put(Dst, 9535); 2080 dasm_put(Dst, 9537);
2080 } 2081 }
2081 if (!cmov) { 2082 if (!cmov) {
2082 dasm_put(Dst, 13489); 2083 dasm_put(Dst, 13491);
2083 } 2084 }
2084 } 2085 }
2085 if (op == BC_FORI) { 2086 if (op == BC_FORI) {
2086 dasm_put(Dst, 13495, -BCBIAS_J*4); 2087 dasm_put(Dst, 13497, -BCBIAS_J*4);
2087 } else if (op == BC_JFORI) { 2088 } else if (op == BC_JFORI) {
2088 dasm_put(Dst, 13505, -BCBIAS_J*4, BC_JLOOP); 2089 dasm_put(Dst, 13507, -BCBIAS_J*4, BC_JLOOP);
2089 } else if (op == BC_IFORL) { 2090 } else if (op == BC_IFORL) {
2090 dasm_put(Dst, 13519, -BCBIAS_J*4); 2091 dasm_put(Dst, 13521, -BCBIAS_J*4);
2091 } else { 2092 } else {
2092 dasm_put(Dst, 13515, BC_JLOOP); 2093 dasm_put(Dst, 13517, BC_JLOOP);
2093 } 2094 }
2094 dasm_put(Dst, 9564); 2095 dasm_put(Dst, 9566);
2095 if (sse) { 2096 if (sse) {
2096 dasm_put(Dst, 13529); 2097 dasm_put(Dst, 13531);
2097 } 2098 }
2098 break; 2099 break;
2099 2100
2100 case BC_ITERL: 2101 case BC_ITERL:
2101#if LJ_HASJIT 2102#if LJ_HASJIT
2102 dasm_put(Dst, 13348, HOTCOUNT_PCMASK, GG_DISP2HOT); 2103 dasm_put(Dst, 13350, HOTCOUNT_PCMASK, GG_DISP2HOT);
2103#endif 2104#endif
2104 break; 2105 break;
2105 2106
@@ -2108,33 +2109,33 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2108 break; 2109 break;
2109#endif 2110#endif
2110 case BC_IITERL: 2111 case BC_IITERL:
2111 dasm_put(Dst, 13540, LJ_TNIL); 2112 dasm_put(Dst, 13542, LJ_TNIL);
2112 if (op == BC_JITERL) { 2113 if (op == BC_JITERL) {
2113 dasm_put(Dst, 13555, BC_JLOOP); 2114 dasm_put(Dst, 13557, BC_JLOOP);
2114 } else { 2115 } else {
2115 dasm_put(Dst, 13569, -BCBIAS_J*4); 2116 dasm_put(Dst, 13571, -BCBIAS_J*4);
2116 } 2117 }
2117 dasm_put(Dst, 9864); 2118 dasm_put(Dst, 9866);
2118 break; 2119 break;
2119 2120
2120 case BC_LOOP: 2121 case BC_LOOP:
2121#if LJ_HASJIT 2122#if LJ_HASJIT
2122 dasm_put(Dst, 13348, HOTCOUNT_PCMASK, GG_DISP2HOT); 2123 dasm_put(Dst, 13350, HOTCOUNT_PCMASK, GG_DISP2HOT);
2123#endif 2124#endif
2124 break; 2125 break;
2125 2126
2126 case BC_ILOOP: 2127 case BC_ILOOP:
2127 dasm_put(Dst, 9566); 2128 dasm_put(Dst, 9568);
2128 break; 2129 break;
2129 2130
2130 case BC_JLOOP: 2131 case BC_JLOOP:
2131#if LJ_HASJIT 2132#if LJ_HASJIT
2132 dasm_put(Dst, 13585, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L), 9*16+4*8, -1*16, -2*16, -3*16, -4*16, -5*16, -6*16, -7*16, -8*16, -9*16); 2133 dasm_put(Dst, 13587, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L), 9*16+4*8, -1*16, -2*16, -3*16, -4*16, -5*16, -6*16, -7*16, -8*16, -9*16);
2133#endif 2134#endif
2134 break; 2135 break;
2135 2136
2136 case BC_JMP: 2137 case BC_JMP:
2137 dasm_put(Dst, 13694, -BCBIAS_J*4); 2138 dasm_put(Dst, 13696, -BCBIAS_J*4);
2138 break; 2139 break;
2139 2140
2140 /* -- Function headers -------------------------------------------------- */ 2141 /* -- Function headers -------------------------------------------------- */
@@ -2148,7 +2149,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2148 2149
2149 case BC_FUNCF: 2150 case BC_FUNCF:
2150#if LJ_HASJIT 2151#if LJ_HASJIT
2151 dasm_put(Dst, 13719, HOTCOUNT_PCMASK, GG_DISP2HOT); 2152 dasm_put(Dst, 13721, HOTCOUNT_PCMASK, GG_DISP2HOT);
2152#endif 2153#endif
2153 case BC_FUNCV: /* NYI: compiled vararg functions. */ 2154 case BC_FUNCV: /* NYI: compiled vararg functions. */
2154 break; 2155 break;
@@ -2158,47 +2159,47 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2158 break; 2159 break;
2159#endif 2160#endif
2160 case BC_IFUNCF: 2161 case BC_IFUNCF:
2161 dasm_put(Dst, 13740, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams)); 2162 dasm_put(Dst, 13742, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams));
2162 if (op == BC_JFUNCF) { 2163 if (op == BC_JFUNCF) {
2163 dasm_put(Dst, 13770, BC_JLOOP); 2164 dasm_put(Dst, 13772, BC_JLOOP);
2164 } else { 2165 } else {
2165 dasm_put(Dst, 9566); 2166 dasm_put(Dst, 9568);
2166 } 2167 }
2167 dasm_put(Dst, 13779, LJ_TNIL); 2168 dasm_put(Dst, 13781, LJ_TNIL);
2168 break; 2169 break;
2169 2170
2170 case BC_JFUNCV: 2171 case BC_JFUNCV:
2171#if !LJ_HASJIT 2172#if !LJ_HASJIT
2172 break; 2173 break;
2173#endif 2174#endif
2174 dasm_put(Dst, 9257); 2175 dasm_put(Dst, 9259);
2175 break; /* NYI: compiled vararg functions. */ 2176 break; /* NYI: compiled vararg functions. */
2176 2177
2177 case BC_IFUNCV: 2178 case BC_IFUNCV:
2178 dasm_put(Dst, 13801, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL); 2179 dasm_put(Dst, 13803, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL);
2179 if (op == BC_JFUNCV) { 2180 if (op == BC_JFUNCV) {
2180 dasm_put(Dst, 13770, BC_JLOOP); 2181 dasm_put(Dst, 13772, BC_JLOOP);
2181 } else { 2182 } else {
2182 dasm_put(Dst, 13892, -4+PC2PROTO(k)); 2183 dasm_put(Dst, 13894, -4+PC2PROTO(k));
2183 } 2184 }
2184 dasm_put(Dst, 13915, LJ_TNIL); 2185 dasm_put(Dst, 13917, LJ_TNIL);
2185 break; 2186 break;
2186 2187
2187 case BC_FUNCC: 2188 case BC_FUNCC:
2188 case BC_FUNCCW: 2189 case BC_FUNCCW:
2189 dasm_put(Dst, 13937, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top)); 2190 dasm_put(Dst, 13939, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top));
2190 if (op == BC_FUNCC) { 2191 if (op == BC_FUNCC) {
2191 dasm_put(Dst, 13967); 2192 dasm_put(Dst, 13969);
2192 } else { 2193 } else {
2193 dasm_put(Dst, 13971); 2194 dasm_put(Dst, 13973);
2194 } 2195 }
2195 dasm_put(Dst, 13979, DISPATCH_GL(vmstate), ~LJ_VMST_C); 2196 dasm_put(Dst, 13981, DISPATCH_GL(vmstate), ~LJ_VMST_C);
2196 if (op == BC_FUNCC) { 2197 if (op == BC_FUNCC) {
2197 dasm_put(Dst, 13988); 2198 dasm_put(Dst, 13990);
2198 } else { 2199 } else {
2199 dasm_put(Dst, 13992, DISPATCH_GL(wrapf)); 2200 dasm_put(Dst, 13994, DISPATCH_GL(wrapf));
2200 } 2201 }
2201 dasm_put(Dst, 13997, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top)); 2202 dasm_put(Dst, 13999, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top));
2202 break; 2203 break;
2203 2204
2204 /* ---------------------------------------------------------------------- */ 2205 /* ---------------------------------------------------------------------- */
@@ -2226,7 +2227,7 @@ static int build_backend(BuildCtx *ctx)
2226 2227
2227 build_subroutines(ctx, cmov, sse); 2228 build_subroutines(ctx, cmov, sse);
2228 2229
2229 dasm_put(Dst, 14022); 2230 dasm_put(Dst, 14024);
2230 for (op = 0; op < BC__MAX; op++) 2231 for (op = 0; op < BC__MAX; op++)
2231 build_ins(ctx, (BCOp)op, op, cmov, sse); 2232 build_ins(ctx, (BCOp)op, op, cmov, sse);
2232 2233