aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMike Pall <mike>2010-04-18 13:41:30 +0200
committerMike Pall <mike>2010-04-19 00:43:35 +0200
commit932cda0fe3cbd34e60aa68479935c946f69b756f (patch)
tree9e46aa620a75b5ac5bc95413b8b7b57e507d82a1 /src
parentff82df797a5ddf6ed2610ff1808b1fdc53686ea1 (diff)
downloadluajit-932cda0fe3cbd34e60aa68479935c946f69b756f.tar.gz
luajit-932cda0fe3cbd34e60aa68479935c946f69b756f.tar.bz2
luajit-932cda0fe3cbd34e60aa68479935c946f69b756f.zip
Replace on-trace GC frame syncing with interpreter exit.
Need to sync GC objects to stack only during atomic GC phase. Need to setup a proper frame structure only for calling finalizers. Force an exit to the interpreter and let it handle the uncommon cases. Finally solves the "NYI: gcstep sync with frames" issue.
Diffstat (limited to 'src')
-rw-r--r--src/buildvm_x64.h1208
-rw-r--r--src/buildvm_x64win.h1146
-rw-r--r--src/buildvm_x86.dasc1
-rw-r--r--src/buildvm_x86.h1277
-rw-r--r--src/lj_asm.c66
-rw-r--r--src/lj_gc.c57
-rw-r--r--src/lj_gc.h2
-rw-r--r--src/lj_parse.c2
-rw-r--r--src/lj_record.c23
-rw-r--r--src/lj_trace.c8
-rw-r--r--src/lj_traceerr.h1
11 files changed, 1885 insertions, 1906 deletions
diff --git a/src/buildvm_x64.h b/src/buildvm_x64.h
index 747253fd..6a15006b 100644
--- a/src/buildvm_x64.h
+++ b/src/buildvm_x64.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[14067] = { 15static const unsigned char build_actionlist[14075] = {
16 254,1,248,10,252,247,195,237,15,132,244,11,131,227,252,248,41,218,72,141, 16 254,1,248,10,252,247,195,237,15,132,244,11,131,227,252,248,41,218,72,141,
17 76,25,252,248,139,90,252,252,199,68,10,4,237,248,12,131,192,1,137,68,36,4, 17 76,25,252,248,139,90,252,252,199,68,10,4,237,248,12,131,192,1,137,68,36,4,
18 252,247,195,237,15,132,244,13,248,14,252,247,195,237,15,132,244,10,65,199, 18 252,247,195,237,15,132,244,13,248,14,252,247,195,237,15,132,244,10,65,199,
@@ -377,322 +377,322 @@ static const unsigned char build_actionlist[14067] = {
377 15,17,69,192,252,242,15,17,125,184,252,242,15,17,117,176,252,242,15,17,109, 377 15,17,69,192,252,242,15,17,125,184,252,242,15,17,117,176,252,242,15,17,109,
378 168,252,242,15,17,101,160,252,242,15,17,93,152,252,242,15,17,85,144,252,242, 378 168,252,242,15,17,101,160,252,242,15,17,93,152,252,242,15,17,85,144,252,242,
379 15,17,77,136,252,242,15,17,69,128,65,139,174,233,65,139,150,233,73,137,174, 379 15,17,77,136,252,242,15,17,69,128,65,139,174,233,65,139,150,233,73,137,174,
380 233,137,149,233,72,137,230,65,141,190,233,232,251,1,23,72,139,141,233,72, 380 233,65,199,134,233,0,0,0,0,137,149,233,72,137,230,65,141,190,233,232,251,
381 129,225,239,72,137,204,137,169,233,139,149,233,139,153,233,252,233,244,247, 381 1,23,72,139,141,233,72,129,225,239,72,137,204,137,169,233,139,149,233,139,
382 255,248,144,255,72,131,196,16,248,1,76,139,108,36,8,76,139,36,36,133,192, 382 153,233,252,233,244,247,255,248,144,255,72,131,196,16,248,1,76,139,108,36,
383 15,136,244,249,137,68,36,4,68,139,122,252,248,69,139,191,233,69,139,191,233, 383 8,76,139,36,36,133,192,15,136,244,249,137,68,36,4,68,139,122,252,248,69,139,
384 65,199,134,233,0,0,0,0,65,199,134,233,237,139,3,15,182,204,15,182,232,131, 384 191,233,69,139,191,233,65,199,134,233,0,0,0,0,65,199,134,233,237,139,3,15,
385 195,4,193,232,16,129,252,253,239,15,130,244,248,139,68,36,4,248,2,65,252, 385 182,204,15,182,232,131,195,4,193,232,16,129,252,253,239,15,130,244,248,139,
386 255,36,252,238,248,3,252,247,216,137,252,239,137,198,232,251,1,24,255,248, 386 68,36,4,248,2,65,252,255,36,252,238,248,3,252,247,216,137,252,239,137,198,
387 82,255,217,124,36,4,137,68,36,8,102,184,0,4,102,11,68,36,4,102,37,252,255, 387 232,251,1,24,255,248,82,255,217,124,36,4,137,68,36,8,102,184,0,4,102,11,68,
388 252,247,102,137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,139,68,36,8, 388 36,4,102,37,252,255,252,247,102,137,68,36,6,217,108,36,6,217,252,252,217,
389 195,255,248,145,72,184,237,237,102,72,15,110,208,72,184,237,237,102,72,15, 389 108,36,4,139,68,36,8,195,255,248,145,72,184,237,237,102,72,15,110,208,72,
390 110,216,15,40,200,102,15,84,202,102,15,46,217,15,134,244,247,102,15,85,208, 390 184,237,237,102,72,15,110,216,15,40,200,102,15,84,202,102,15,46,217,15,134,
391 252,242,15,88,203,252,242,15,92,203,102,15,86,202,72,184,237,237,102,72,15, 391 244,247,102,15,85,208,252,242,15,88,203,252,242,15,92,203,102,15,86,202,72,
392 110,208,252,242,15,194,193,1,102,15,84,194,252,242,15,92,200,15,40,193,248, 392 184,237,237,102,72,15,110,208,252,242,15,194,193,1,102,15,84,194,252,242,
393 1,195,248,84,255,217,124,36,4,137,68,36,8,102,184,0,8,102,11,68,36,4,102, 393 15,92,200,15,40,193,248,1,195,248,84,255,217,124,36,4,137,68,36,8,102,184,
394 37,252,255,252,251,102,137,68,36,6,217,108,36,6,217,252,252,217,108,36,4, 394 0,8,102,11,68,36,4,102,37,252,255,252,251,102,137,68,36,6,217,108,36,6,217,
395 139,68,36,8,195,255,248,146,72,184,237,237,102,72,15,110,208,72,184,237,237, 395 252,252,217,108,36,4,139,68,36,8,195,255,248,146,72,184,237,237,102,72,15,
396 102,72,15,110,216,15,40,200,102,15,84,202,102,15,46,217,15,134,244,247,102, 396 110,208,72,184,237,237,102,72,15,110,216,15,40,200,102,15,84,202,102,15,46,
397 15,85,208,252,242,15,88,203,252,242,15,92,203,102,15,86,202,72,184,237,237, 397 217,15,134,244,247,102,15,85,208,252,242,15,88,203,252,242,15,92,203,102,
398 102,72,15,110,208,252,242,15,194,193,6,102,15,84,194,252,242,15,92,200,15, 398 15,86,202,72,184,237,237,102,72,15,110,208,252,242,15,194,193,6,102,15,84,
399 40,193,248,1,195,248,104,255,217,124,36,4,137,68,36,8,102,184,0,12,102,11, 399 194,252,242,15,92,200,15,40,193,248,1,195,248,104,255,217,124,36,4,137,68,
400 68,36,4,102,137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,139,68,36,8, 400 36,8,102,184,0,12,102,11,68,36,4,102,137,68,36,6,217,108,36,6,217,252,252,
401 195,255,248,147,72,184,237,237,102,72,15,110,208,72,184,237,237,102,72,15, 401 217,108,36,4,139,68,36,8,195,255,248,147,72,184,237,237,102,72,15,110,208,
402 110,216,15,40,200,102,15,84,202,102,15,46,217,15,134,244,247,102,15,85,208, 402 72,184,237,237,102,72,15,110,216,15,40,200,102,15,84,202,102,15,46,217,15,
403 15,40,193,252,242,15,88,203,252,242,15,92,203,72,184,237,237,102,72,15,110, 403 134,244,247,102,15,85,208,15,40,193,252,242,15,88,203,252,242,15,92,203,72,
404 216,252,242,15,194,193,1,102,15,84,195,252,242,15,92,200,102,15,86,202,15, 404 184,237,237,102,72,15,110,216,252,242,15,194,193,1,102,15,84,195,252,242,
405 40,193,248,1,195,248,148,255,15,40,232,252,242,15,94,193,72,184,237,237,102, 405 15,92,200,102,15,86,202,15,40,193,248,1,195,248,148,255,15,40,232,252,242,
406 72,15,110,208,72,184,237,237,102,72,15,110,216,15,40,224,102,15,84,226,102, 406 15,94,193,72,184,237,237,102,72,15,110,208,72,184,237,237,102,72,15,110,216,
407 15,46,220,15,134,244,247,102,15,85,208,252,242,15,88,227,252,242,15,92,227, 407 15,40,224,102,15,84,226,102,15,46,220,15,134,244,247,102,15,85,208,252,242,
408 102,15,86,226,72,184,237,237,102,72,15,110,208,252,242,15,194,196,1,102,15, 408 15,88,227,252,242,15,92,227,102,15,86,226,72,184,237,237,102,72,15,110,208,
409 84,194,252,242,15,92,224,15,40,197,252,242,15,89,204,252,242,15,92,193,195, 409 252,242,15,194,196,1,102,15,84,194,252,242,15,92,224,15,40,197,252,242,15,
410 248,1,252,242,15,89,200,15,40,197,252,242,15,92,193,195,255,217,193,216,252, 410 89,204,252,242,15,92,193,195,248,1,252,242,15,89,200,15,40,197,252,242,15,
411 241,217,124,36,4,102,184,0,4,102,11,68,36,4,102,37,252,255,252,247,102,137, 411 92,193,195,255,217,193,216,252,241,217,124,36,4,102,184,0,4,102,11,68,36,
412 68,36,6,217,108,36,6,217,252,252,217,108,36,4,222,201,222,252,233,195,255, 412 4,102,37,252,255,252,247,102,137,68,36,6,217,108,36,6,217,252,252,217,108,
413 248,88,217,252,234,222,201,248,149,217,84,36,252,248,129,124,36,252,248,0, 413 36,4,222,201,222,252,233,195,255,248,88,217,252,234,222,201,248,149,217,84,
414 0,128,127,15,132,244,247,129,124,36,252,248,0,0,128,252,255,15,132,244,248, 414 36,252,248,129,124,36,252,248,0,0,128,127,15,132,244,247,129,124,36,252,248,
415 248,150,217,192,217,252,252,220,252,233,217,201,217,252,240,217,232,222,193, 415 0,0,128,252,255,15,132,244,248,248,150,217,192,217,252,252,220,252,233,217,
416 217,252,253,221,217,248,1,195,248,2,221,216,217,252,238,195,255,248,107,255, 416 201,217,252,240,217,232,222,193,217,252,253,221,217,248,1,195,248,2,221,216,
417 248,151,252,242,15,45,193,252,242,15,42,208,102,15,46,202,15,133,244,254, 417 217,252,238,195,255,248,107,255,248,151,252,242,15,45,193,252,242,15,42,208,
418 15,138,244,255,248,152,131,252,248,1,15,142,244,252,248,1,169,1,0,0,0,15, 418 102,15,46,202,15,133,244,254,15,138,244,255,248,152,131,252,248,1,15,142,
419 133,244,248,252,242,15,89,192,209,232,252,233,244,1,248,2,209,232,15,132, 419 244,252,248,1,169,1,0,0,0,15,133,244,248,252,242,15,89,192,209,232,252,233,
420 244,251,15,40,200,248,3,252,242,15,89,192,209,232,15,132,244,250,15,131,244, 420 244,1,248,2,209,232,15,132,244,251,15,40,200,248,3,252,242,15,89,192,209,
421 3,255,252,242,15,89,200,252,233,244,3,248,4,252,242,15,89,193,248,5,195,248, 421 232,15,132,244,250,15,131,244,3,255,252,242,15,89,200,252,233,244,3,248,4,
422 6,15,132,244,5,15,130,244,253,80,72,184,237,237,102,72,15,110,200,252,242, 422 252,242,15,89,193,248,5,195,248,6,15,132,244,5,15,130,244,253,80,72,184,237,
423 15,94,200,88,15,40,193,252,247,216,131,252,248,1,15,132,244,5,252,233,244, 423 237,102,72,15,110,200,252,242,15,94,200,88,15,40,193,252,247,216,131,252,
424 1,248,7,72,184,237,237,102,72,15,110,192,195,248,8,102,72,15,126,200,72,209, 424 248,1,15,132,244,5,252,233,244,1,248,7,72,184,237,237,102,72,15,110,192,195,
425 224,72,193,192,12,72,61,252,254,15,0,0,15,132,244,248,255,102,72,15,126,192, 425 248,8,102,72,15,126,200,72,209,224,72,193,192,12,72,61,252,254,15,0,0,15,
426 72,209,224,15,132,244,250,72,193,192,12,72,61,252,254,15,0,0,15,132,244,251, 426 132,244,248,255,102,72,15,126,192,72,209,224,15,132,244,250,72,193,192,12,
427 252,242,15,17,76,36,252,240,252,242,15,17,68,36,252,248,221,68,36,252,240, 427 72,61,252,254,15,0,0,15,132,244,251,252,242,15,17,76,36,252,240,252,242,15,
428 221,68,36,252,248,217,252,241,217,192,217,252,252,220,252,233,217,201,217, 428 17,68,36,252,248,221,68,36,252,240,221,68,36,252,248,217,252,241,217,192,
429 252,240,217,232,222,193,217,252,253,221,217,221,92,36,252,248,252,242,15, 429 217,252,252,220,252,233,217,201,217,252,240,217,232,222,193,217,252,253,221,
430 16,68,36,252,248,195,248,9,72,184,237,237,102,72,15,110,208,102,15,46,194, 430 217,221,92,36,252,248,252,242,15,16,68,36,252,248,195,248,9,72,184,237,237,
431 15,132,244,247,15,40,193,248,1,195,248,2,72,184,237,237,102,72,15,110,208, 431 102,72,15,110,208,102,15,46,194,15,132,244,247,15,40,193,248,1,195,248,2,
432 102,15,84,194,72,184,237,237,102,72,15,110,208,102,15,46,194,15,132,244,1, 432 72,184,237,237,102,72,15,110,208,102,15,84,194,72,184,237,237,102,72,15,110,
433 102,15,80,193,15,87,192,136,196,15,146,208,48,224,15,133,244,1,248,3,72,184, 433 208,102,15,46,194,15,132,244,1,102,15,80,193,15,87,192,136,196,15,146,208,
434 237,237,255,102,72,15,110,192,195,248,4,102,15,80,193,133,192,15,133,244, 434 48,224,15,133,244,1,248,3,72,184,237,237,255,102,72,15,110,192,195,248,4,
435 3,15,87,192,195,248,5,102,15,80,193,133,192,15,132,244,3,15,87,192,195,248, 435 102,15,80,193,133,192,15,133,244,3,15,87,192,195,248,5,102,15,80,193,133,
436 153,255,131,252,255,1,15,130,244,82,15,132,244,84,131,252,255,3,15,130,244, 436 192,15,132,244,3,15,87,192,195,248,153,255,131,252,255,1,15,130,244,82,15,
437 104,15,135,244,248,252,242,15,81,192,195,248,2,252,242,15,17,68,36,252,248, 437 132,244,84,131,252,255,3,15,130,244,104,15,135,244,248,252,242,15,81,192,
438 221,68,36,252,248,131,252,255,5,15,135,244,248,15,132,244,247,232,244,88, 438 195,248,2,252,242,15,17,68,36,252,248,221,68,36,252,248,131,252,255,5,15,
439 252,233,244,253,248,1,232,244,149,255,252,233,244,253,248,2,131,252,255,7, 439 135,244,248,15,132,244,247,232,244,88,252,233,244,253,248,1,232,244,149,255,
440 15,132,244,247,15,135,244,248,217,252,237,217,201,217,252,241,252,233,244, 440 252,233,244,253,248,2,131,252,255,7,15,132,244,247,15,135,244,248,217,252,
441 253,248,1,217,232,217,201,217,252,241,252,233,244,253,248,2,131,252,255,9, 441 237,217,201,217,252,241,252,233,244,253,248,1,217,232,217,201,217,252,241,
442 15,132,244,247,15,135,244,248,217,252,236,217,201,217,252,241,252,233,244, 442 252,233,244,253,248,2,131,252,255,9,15,132,244,247,15,135,244,248,217,252,
443 253,248,1,255,217,252,254,252,233,244,253,248,2,131,252,255,11,15,132,244, 443 236,217,201,217,252,241,252,233,244,253,248,1,255,217,252,254,252,233,244,
444 247,15,135,244,255,217,252,255,252,233,244,253,248,1,217,252,242,221,216, 444 253,248,2,131,252,255,11,15,132,244,247,15,135,244,255,217,252,255,252,233,
445 248,7,221,92,36,252,248,252,242,15,16,68,36,252,248,195,255,139,124,36,12, 445 244,253,248,1,217,252,242,221,216,248,7,221,92,36,252,248,252,242,15,16,68,
446 221,68,36,4,131,252,255,1,15,130,244,82,15,132,244,84,131,252,255,3,15,130, 446 36,252,248,195,255,139,124,36,12,221,68,36,4,131,252,255,1,15,130,244,82,
447 244,104,15,135,244,248,217,252,250,195,248,2,131,252,255,5,15,130,244,88, 447 15,132,244,84,131,252,255,3,15,130,244,104,15,135,244,248,217,252,250,195,
448 15,132,244,149,131,252,255,7,15,132,244,247,15,135,244,248,217,252,237,217, 448 248,2,131,252,255,5,15,130,244,88,15,132,244,149,131,252,255,7,15,132,244,
449 201,217,252,241,195,248,1,217,232,217,201,217,252,241,195,248,2,131,252,255, 449 247,15,135,244,248,217,252,237,217,201,217,252,241,195,248,1,217,232,217,
450 9,15,132,244,247,255,15,135,244,248,217,252,236,217,201,217,252,241,195,248, 450 201,217,252,241,195,248,2,131,252,255,9,15,132,244,247,255,15,135,244,248,
451 1,217,252,254,195,248,2,131,252,255,11,15,132,244,247,15,135,244,255,217, 451 217,252,236,217,201,217,252,241,195,248,1,217,252,254,195,248,2,131,252,255,
452 252,255,195,248,1,217,252,242,221,216,195,255,248,9,204,248,154,255,131,252, 452 11,15,132,244,247,15,135,244,255,217,252,255,195,248,1,217,252,242,221,216,
453 255,1,15,132,244,247,15,135,244,248,252,242,15,88,193,195,248,1,252,242,15, 453 195,255,248,9,204,248,154,255,131,252,255,1,15,132,244,247,15,135,244,248,
454 92,193,195,248,2,131,252,255,3,15,132,244,247,15,135,244,248,252,242,15,89, 454 252,242,15,88,193,195,248,1,252,242,15,92,193,195,248,2,131,252,255,3,15,
455 193,195,248,1,252,242,15,94,193,195,248,2,131,252,255,5,15,130,244,148,15, 455 132,244,247,15,135,244,248,252,242,15,89,193,195,248,1,252,242,15,94,193,
456 132,244,107,131,252,255,7,15,132,244,247,15,135,244,248,72,184,237,237,255, 456 195,248,2,131,252,255,5,15,130,244,148,15,132,244,107,131,252,255,7,15,132,
457 102,72,15,110,200,15,87,193,195,248,1,72,184,237,237,102,72,15,110,200,15, 457 244,247,15,135,244,248,72,184,237,237,255,102,72,15,110,200,15,87,193,195,
458 84,193,195,248,2,131,252,255,9,15,135,244,248,252,242,15,17,68,36,252,248, 458 248,1,72,184,237,237,102,72,15,110,200,15,84,193,195,248,2,131,252,255,9,
459 252,242,15,17,76,36,252,240,221,68,36,252,248,221,68,36,252,240,15,132,244, 459 15,135,244,248,252,242,15,17,68,36,252,248,252,242,15,17,76,36,252,240,221,
460 247,217,252,243,248,7,221,92,36,252,248,252,242,15,16,68,36,252,248,195,248, 460 68,36,252,248,221,68,36,252,240,15,132,244,247,217,252,243,248,7,221,92,36,
461 1,217,201,217,252,253,221,217,252,233,244,7,248,2,131,252,255,11,15,132,244, 461 252,248,252,242,15,16,68,36,252,248,195,248,1,217,201,217,252,253,221,217,
462 247,15,135,244,255,252,242,15,93,193,195,248,1,252,242,15,95,193,195,248, 462 252,233,244,7,248,2,131,252,255,11,15,132,244,247,15,135,244,255,252,242,
463 9,204,255,139,68,36,20,221,68,36,4,221,68,36,12,131,252,248,1,15,132,244, 463 15,93,193,195,248,1,252,242,15,95,193,195,248,9,204,255,139,68,36,20,221,
464 247,15,135,244,248,222,193,195,248,1,222,252,233,195,248,2,131,252,248,3, 464 68,36,4,221,68,36,12,131,252,248,1,15,132,244,247,15,135,244,248,222,193,
465 15,132,244,247,15,135,244,248,222,201,195,248,1,222,252,249,195,248,2,131, 465 195,248,1,222,252,233,195,248,2,131,252,248,3,15,132,244,247,15,135,244,248,
466 252,248,5,15,130,244,148,15,132,244,107,131,252,248,7,15,132,244,247,15,135, 466 222,201,195,248,1,222,252,249,195,248,2,131,252,248,5,15,130,244,148,15,132,
467 244,248,255,221,216,217,224,195,248,1,221,216,217,225,195,248,2,131,252,248, 467 244,107,131,252,248,7,15,132,244,247,15,135,244,248,255,221,216,217,224,195,
468 9,15,132,244,247,15,135,244,248,217,252,243,195,248,1,217,201,217,252,253, 468 248,1,221,216,217,225,195,248,2,131,252,248,9,15,132,244,247,15,135,244,248,
469 221,217,195,248,2,131,252,248,11,15,132,244,247,15,135,244,255,255,219,252, 469 217,252,243,195,248,1,217,201,217,252,253,221,217,195,248,2,131,252,248,11,
470 233,219,209,221,217,195,248,1,219,252,233,218,209,221,217,195,255,221,225, 470 15,132,244,247,15,135,244,255,255,219,252,233,219,209,221,217,195,248,1,219,
471 223,224,252,246,196,1,15,132,244,248,217,201,248,2,221,216,195,248,1,221, 471 252,233,218,209,221,217,195,255,221,225,223,224,252,246,196,1,15,132,244,
472 225,223,224,252,246,196,1,15,133,244,248,217,201,248,2,221,216,195,255,248, 472 248,217,201,248,2,221,216,195,248,1,221,225,223,224,252,246,196,1,15,133,
473 155,137,252,248,83,15,162,137,6,137,94,4,137,78,8,137,86,12,91,195,255,129, 473 244,248,217,201,248,2,221,216,195,255,248,155,137,252,248,83,15,162,137,6,
474 124,253,202,4,239,15,135,244,41,129,124,253,194,4,239,15,135,244,41,255,252, 474 137,94,4,137,78,8,137,86,12,91,195,255,129,124,253,202,4,239,15,135,244,41,
475 242,15,16,4,194,131,195,4,102,15,46,4,202,255,221,4,202,221,4,194,131,195, 475 129,124,253,194,4,239,15,135,244,41,255,252,242,15,16,4,194,131,195,4,102,
476 4,255,223,252,233,221,216,255,218,252,233,223,224,158,255,15,134,244,248, 476 15,46,4,202,255,221,4,202,221,4,194,131,195,4,255,223,252,233,221,216,255,
477 255,15,131,244,248,255,248,1,15,183,67,252,254,141,156,253,131,233,248,2, 477 218,252,233,223,224,158,255,15,134,244,248,255,15,131,244,248,255,248,1,15,
478 183,67,252,254,141,156,253,131,233,248,2,139,3,15,182,204,15,182,232,131,
479 195,4,193,232,16,65,252,255,36,252,238,255,139,108,194,4,131,195,4,129,252,
480 253,239,15,135,244,251,129,124,253,202,4,239,15,135,244,251,255,252,242,15,
481 16,4,194,102,15,46,4,202,255,221,4,202,221,4,194,255,15,138,244,248,15,133,
482 244,248,255,15,138,244,248,15,132,244,247,255,248,1,15,183,67,252,254,141,
483 156,253,131,233,248,2,255,248,2,15,183,67,252,254,141,156,253,131,233,248,
484 1,255,248,5,57,108,202,4,15,133,244,2,129,252,253,239,15,131,244,1,139,12,
485 202,139,4,194,57,193,15,132,244,1,129,252,253,239,15,135,244,2,139,169,233,
486 133,252,237,15,132,244,2,252,246,133,233,235,15,133,244,2,255,49,252,237,
487 255,189,1,0,0,0,255,252,233,244,45,255,72,252,247,208,131,195,4,129,124,253,
488 202,4,239,15,133,244,248,139,12,202,65,59,12,135,255,131,195,4,129,124,253,
489 202,4,239,15,135,244,248,255,252,242,65,15,16,4,199,102,15,46,4,202,255,221,
490 4,202,65,221,4,199,255,72,252,247,208,131,195,4,57,68,202,4,255,139,108,194,
491 4,131,195,4,129,252,253,239,255,15,131,244,247,255,15,130,244,247,255,137,
492 108,202,4,139,44,194,137,44,202,255,15,183,67,252,254,141,156,253,131,233,
493 248,1,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,
494 238,255,139,108,194,4,139,4,194,137,108,202,4,137,4,202,139,3,15,182,204,
495 15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,255,49,252,237,129,
496 124,253,194,4,239,129,213,239,137,108,202,4,139,3,15,182,204,15,182,232,131,
497 195,4,193,232,16,65,252,255,36,252,238,255,129,124,253,194,4,239,15,135,244,
498 48,255,252,242,15,16,4,194,72,184,237,237,102,72,15,110,200,15,87,193,252,
499 242,15,17,4,202,255,221,4,194,217,224,221,28,202,255,129,124,253,194,4,239,
500 15,133,244,248,139,4,194,255,15,87,192,252,242,15,42,128,233,248,1,252,242,
501 15,17,4,202,255,219,128,233,248,1,221,28,202,255,139,3,15,182,204,15,182,
502 232,131,195,4,193,232,16,65,252,255,36,252,238,248,2,129,124,253,194,4,239,
503 15,133,244,50,139,60,194,137,213,232,251,1,18,255,252,242,15,42,192,137,252,
504 234,255,15,182,75,252,253,252,233,244,1,255,15,182,252,236,15,182,192,255,
505 129,124,253,252,234,4,239,15,135,244,46,255,252,242,15,16,4,252,234,252,242,
506 65,15,88,4,199,255,221,4,252,234,65,220,4,199,255,129,124,253,252,234,4,239,
507 15,135,244,47,255,252,242,65,15,16,4,199,252,242,15,88,4,252,234,255,65,221,
508 4,199,220,4,252,234,255,129,124,253,252,234,4,239,15,135,244,49,129,124,253,
509 194,4,239,15,135,244,49,255,252,242,15,16,4,252,234,252,242,15,88,4,194,255,
510 221,4,252,234,220,4,194,255,252,242,15,16,4,252,234,252,242,65,15,92,4,199,
511 255,221,4,252,234,65,220,36,199,255,252,242,65,15,16,4,199,252,242,15,92,
512 4,252,234,255,65,221,4,199,220,36,252,234,255,252,242,15,16,4,252,234,252,
513 242,15,92,4,194,255,221,4,252,234,220,36,194,255,252,242,15,16,4,252,234,
514 252,242,65,15,89,4,199,255,221,4,252,234,65,220,12,199,255,252,242,65,15,
515 16,4,199,252,242,15,89,4,252,234,255,65,221,4,199,220,12,252,234,255,252,
516 242,15,16,4,252,234,252,242,15,89,4,194,255,221,4,252,234,220,12,194,255,
517 252,242,15,16,4,252,234,252,242,65,15,94,4,199,255,221,4,252,234,65,220,52,
518 199,255,252,242,65,15,16,4,199,252,242,15,94,4,252,234,255,65,221,4,199,220,
519 52,252,234,255,252,242,15,16,4,252,234,252,242,15,94,4,194,255,221,4,252,
520 234,220,52,194,255,252,242,15,16,4,252,234,252,242,65,15,16,12,199,255,221,
521 4,252,234,65,221,4,199,255,252,242,65,15,16,4,199,252,242,15,16,12,252,234,
522 255,65,221,4,199,221,4,252,234,255,252,242,15,16,4,252,234,252,242,15,16,
523 12,194,255,221,4,252,234,221,4,194,255,248,156,232,244,148,255,252,233,244,
524 156,255,232,244,107,255,15,182,252,236,15,182,192,139,124,36,24,137,151,233,
525 141,52,194,137,194,41,252,234,248,33,137,252,253,137,92,36,28,232,251,1,25,
526 139,149,233,133,192,15,133,244,42,15,182,107,252,255,15,182,75,252,253,139,
527 68,252,234,4,139,44,252,234,137,68,202,4,137,44,202,139,3,15,182,204,15,182,
528 232,131,195,4,193,232,16,65,252,255,36,252,238,255,72,252,247,208,65,139,
529 4,135,199,68,202,4,237,137,4,202,139,3,15,182,204,15,182,232,131,195,4,193,
530 232,16,65,252,255,36,252,238,255,15,191,192,252,242,15,42,192,252,242,15,
531 17,4,202,255,223,67,252,254,221,28,202,255,252,242,65,15,16,4,199,252,242,
532 15,17,4,202,255,65,221,4,199,221,28,202,255,72,252,247,208,137,68,202,4,139,
533 3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,255,141,
534 76,202,12,141,68,194,4,189,237,137,105,252,248,248,1,137,41,131,193,8,57,
535 193,15,134,244,1,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,
536 255,36,252,238,255,139,106,252,248,139,172,253,133,233,139,173,233,139,69,
537 4,139,109,0,137,68,202,4,137,44,202,139,3,15,182,204,15,182,232,131,195,4,
538 193,232,16,65,252,255,36,252,238,255,139,106,252,248,139,172,253,141,233,
539 128,189,233,0,139,173,233,139,12,194,139,68,194,4,137,77,0,137,69,4,15,132,
540 244,247,252,246,133,233,235,15,133,244,248,248,1,139,3,15,182,204,15,182,
541 232,131,195,4,193,232,16,65,252,255,36,252,238,248,2,129,232,239,129,252,
542 248,239,15,134,244,1,252,246,129,233,235,15,132,244,1,137,252,238,137,213,
543 65,141,190,233,255,232,251,1,26,137,252,234,252,233,244,1,255,72,252,247,
544 208,139,106,252,248,139,172,253,141,233,65,139,12,135,139,133,233,137,8,199,
545 64,4,237,252,246,133,233,235,15,133,244,248,248,1,139,3,15,182,204,15,182,
546 232,131,195,4,193,232,16,65,252,255,36,252,238,248,2,252,246,129,233,235,
547 15,132,244,1,128,189,233,0,15,132,244,1,137,213,137,198,65,141,190,233,232,
548 251,1,26,137,252,234,252,233,244,1,255,139,106,252,248,255,252,242,65,15,
549 16,4,199,255,139,172,253,141,233,139,141,233,255,252,242,15,17,1,255,221,
550 25,255,72,252,247,208,139,106,252,248,139,172,253,141,233,139,141,233,137,
551 65,4,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,
552 255,141,156,253,131,233,139,108,36,24,131,189,233,0,15,132,244,247,137,149,
553 233,141,52,202,137,252,239,232,251,1,27,139,149,233,248,1,139,3,15,182,204,
554 15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,255,72,252,247,208,
555 139,108,36,24,137,149,233,139,82,252,248,65,139,52,135,137,252,239,137,92,
556 36,28,232,251,1,28,139,149,233,15,182,75,252,253,137,4,202,199,68,202,4,237,
478 139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,255, 557 139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,255,
479 139,108,194,4,131,195,4,129,252,253,239,15,135,244,251,129,124,253,202,4, 558 139,124,36,24,137,151,233,248,1,137,194,37,252,255,7,0,0,193,252,234,11,61,
480 239,15,135,244,251,255,252,242,15,16,4,194,102,15,46,4,202,255,221,4,202, 559 252,255,7,0,0,15,132,244,249,248,2,137,198,65,139,134,233,137,252,253,65,
481 221,4,194,255,15,138,244,248,15,133,244,248,255,15,138,244,248,15,132,244, 560 59,134,233,137,92,36,28,15,131,244,251,232,251,1,29,139,149,233,15,182,75,
482 247,255,248,1,15,183,67,252,254,141,156,253,131,233,248,2,255,248,2,15,183, 561 252,253,137,4,202,199,68,202,4,237,139,3,15,182,204,15,182,232,131,195,4,
483 67,252,254,141,156,253,131,233,248,1,255,248,5,57,108,202,4,15,133,244,2, 562 193,232,16,65,252,255,36,252,238,248,3,184,1,8,0,0,252,233,244,2,248,5,232,
484 129,252,253,239,15,131,244,1,139,12,202,139,4,194,57,193,15,132,244,1,129, 563 251,1,30,15,183,67,252,254,137,252,239,252,233,244,1,255,72,252,247,208,139,
485 252,253,239,15,135,244,2,139,169,233,133,252,237,15,132,244,2,252,246,133, 564 108,36,24,65,139,142,233,137,92,36,28,65,59,142,233,137,149,233,15,131,244,
486 233,235,15,133,244,2,255,49,252,237,255,189,1,0,0,0,255,252,233,244,45,255, 565 249,248,2,65,139,52,135,137,252,239,232,251,1,31,139,149,233,15,182,75,252,
487 72,252,247,208,131,195,4,129,124,253,202,4,239,15,133,244,248,139,12,202, 566 253,137,4,202,199,68,202,4,237,139,3,15,182,204,15,182,232,131,195,4,193,
488 65,59,12,135,255,131,195,4,129,124,253,202,4,239,15,135,244,248,255,252,242, 567 232,16,65,252,255,36,252,238,248,3,137,252,239,232,251,1,30,15,183,67,252,
489 65,15,16,4,199,102,15,46,4,202,255,221,4,202,65,221,4,199,255,72,252,247, 568 254,72,252,247,208,252,233,244,2,255,72,252,247,208,139,106,252,248,139,173,
490 208,131,195,4,57,68,202,4,255,139,108,194,4,131,195,4,129,252,253,239,255, 569 233,65,139,4,135,252,233,244,157,255,72,252,247,208,139,106,252,248,139,173,
491 15,131,244,247,255,15,130,244,247,255,137,108,202,4,139,44,194,137,44,202, 570 233,65,139,4,135,252,233,244,158,255,15,182,252,236,15,182,192,129,124,253,
492 255,15,183,67,252,254,141,156,253,131,233,248,1,139,3,15,182,204,15,182,232, 571 252,234,4,239,15,133,244,36,139,44,252,234,129,124,253,194,4,239,15,135,244,
493 131,195,4,193,232,16,65,252,255,36,252,238,255,139,108,194,4,139,4,194,137, 572 251,255,252,242,15,16,4,194,252,242,15,45,192,252,242,15,42,200,102,15,46,
494 108,202,4,137,4,202,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252, 573 193,255,15,133,244,36,59,133,233,15,131,244,36,193,224,3,3,133,233,129,120,
495 255,36,252,238,255,49,252,237,129,124,253,194,4,239,129,213,239,137,108,202, 574 253,4,239,15,132,244,248,248,1,139,40,139,64,4,137,44,202,137,68,202,4,139,
496 4,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238, 575 3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,2,
497 255,129,124,253,194,4,239,15,135,244,48,255,252,242,15,16,4,194,72,184,237, 576 131,189,233,0,15,132,244,1,139,141,233,252,246,129,233,235,15,132,244,36,
498 237,102,72,15,110,200,15,87,193,252,242,15,17,4,202,255,221,4,194,217,224, 577 15,182,75,252,253,252,233,244,1,248,5,255,129,124,253,194,4,239,15,133,244,
499 221,28,202,255,129,124,253,194,4,239,15,133,244,248,139,4,194,255,15,87,192, 578 36,139,4,194,252,233,244,157,255,15,182,252,236,15,182,192,72,252,247,208,
500 252,242,15,42,128,233,248,1,252,242,15,17,4,202,255,219,128,233,248,1,221, 579 65,139,4,135,129,124,253,252,234,4,239,15,133,244,34,139,44,252,234,248,157,
501 28,202,255,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36, 580 139,141,233,35,136,233,105,201,239,3,141,233,248,1,129,185,233,239,15,133,
502 252,238,248,2,129,124,253,194,4,239,15,133,244,50,139,60,194,137,213,232, 581 244,250,57,129,233,15,133,244,250,129,121,253,4,239,15,132,244,251,15,182,
503 251,1,18,255,252,242,15,42,192,137,252,234,255,15,182,75,252,253,252,233, 582 67,252,253,139,41,139,73,4,137,44,194,248,2,255,137,76,194,4,139,3,15,182,
504 244,1,255,15,182,252,236,15,182,192,255,129,124,253,252,234,4,239,15,135, 583 204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,3,15,182,67,
505 244,46,255,252,242,15,16,4,252,234,252,242,65,15,88,4,199,255,221,4,252,234, 584 252,253,185,237,252,233,244,2,248,4,139,137,233,133,201,15,133,244,1,248,
506 65,220,4,199,255,129,124,253,252,234,4,239,15,135,244,47,255,252,242,65,15, 585 5,139,141,233,133,201,15,132,244,3,252,246,129,233,235,15,133,244,3,252,233,
507 16,4,199,252,242,15,88,4,252,234,255,65,221,4,199,220,4,252,234,255,129,124, 586 244,34,255,15,182,252,236,15,182,192,129,124,253,252,234,4,239,15,133,244,
508 253,252,234,4,239,15,135,244,49,129,124,253,194,4,239,15,135,244,49,255,252, 587 35,139,44,252,234,59,133,233,15,131,244,35,193,224,3,3,133,233,129,120,253,
509 242,15,16,4,252,234,252,242,15,88,4,194,255,221,4,252,234,220,4,194,255,252, 588 4,239,15,132,244,248,248,1,139,40,139,64,4,137,44,202,137,68,202,4,139,3,
510 242,15,16,4,252,234,252,242,65,15,92,4,199,255,221,4,252,234,65,220,36,199, 589 15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,2,131,
511 255,252,242,65,15,16,4,199,252,242,15,92,4,252,234,255,65,221,4,199,220,36, 590 189,233,0,15,132,244,1,139,141,233,252,246,129,233,235,15,132,244,35,255,
512 252,234,255,252,242,15,16,4,252,234,252,242,15,92,4,194,255,221,4,252,234, 591 15,182,252,236,15,182,192,129,124,253,252,234,4,239,15,133,244,39,139,44,
513 220,36,194,255,252,242,15,16,4,252,234,252,242,65,15,89,4,199,255,221,4,252, 592 252,234,129,124,253,194,4,239,15,135,244,251,255,15,133,244,39,59,133,233,
514 234,65,220,12,199,255,252,242,65,15,16,4,199,252,242,15,89,4,252,234,255, 593 15,131,244,39,193,224,3,3,133,233,129,120,253,4,239,15,132,244,249,248,1,
515 65,221,4,199,220,12,252,234,255,252,242,15,16,4,252,234,252,242,15,89,4,194, 594 252,246,133,233,235,15,133,244,253,248,2,139,108,202,4,139,12,202,137,104,
516 255,221,4,252,234,220,12,194,255,252,242,15,16,4,252,234,252,242,65,15,94,
517 4,199,255,221,4,252,234,65,220,52,199,255,252,242,65,15,16,4,199,252,242,
518 15,94,4,252,234,255,65,221,4,199,220,52,252,234,255,252,242,15,16,4,252,234,
519 252,242,15,94,4,194,255,221,4,252,234,220,52,194,255,252,242,15,16,4,252,
520 234,252,242,65,15,16,12,199,255,221,4,252,234,65,221,4,199,255,252,242,65,
521 15,16,4,199,252,242,15,16,12,252,234,255,65,221,4,199,221,4,252,234,255,252,
522 242,15,16,4,252,234,252,242,15,16,12,194,255,221,4,252,234,221,4,194,255,
523 248,156,232,244,148,255,252,233,244,156,255,232,244,107,255,15,182,252,236,
524 15,182,192,139,124,36,24,137,151,233,141,52,194,137,194,41,252,234,248,33,
525 137,252,253,137,92,36,28,232,251,1,25,139,149,233,133,192,15,133,244,42,15,
526 182,107,252,255,15,182,75,252,253,139,68,252,234,4,139,44,252,234,137,68,
527 202,4,137,44,202,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,
528 255,36,252,238,255,72,252,247,208,65,139,4,135,199,68,202,4,237,137,4,202,
529 139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,255,
530 15,191,192,252,242,15,42,192,252,242,15,17,4,202,255,223,67,252,254,221,28,
531 202,255,252,242,65,15,16,4,199,252,242,15,17,4,202,255,65,221,4,199,221,28,
532 202,255,72,252,247,208,137,68,202,4,139,3,15,182,204,15,182,232,131,195,4,
533 193,232,16,65,252,255,36,252,238,255,141,76,202,12,141,68,194,4,189,237,137,
534 105,252,248,248,1,137,41,131,193,8,57,193,15,134,244,1,139,3,15,182,204,15,
535 182,232,131,195,4,193,232,16,65,252,255,36,252,238,255,139,106,252,248,139,
536 172,253,133,233,139,173,233,139,69,4,139,109,0,137,68,202,4,137,44,202,139,
537 3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,255,139,
538 106,252,248,139,172,253,141,233,128,189,233,0,139,173,233,139,12,194,139,
539 68,194,4,137,77,0,137,69,4,15,132,244,247,252,246,133,233,235,15,133,244,
540 248,248,1,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,
541 252,238,248,2,129,232,239,129,252,248,239,15,134,244,1,252,246,129,233,235,
542 15,132,244,1,137,252,238,137,213,65,141,190,233,255,232,251,1,26,137,252,
543 234,252,233,244,1,255,72,252,247,208,139,106,252,248,139,172,253,141,233,
544 65,139,12,135,139,133,233,137,8,199,64,4,237,252,246,133,233,235,15,133,244,
545 248,248,1,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,
546 252,238,248,2,252,246,129,233,235,15,132,244,1,128,189,233,0,15,132,244,1,
547 137,213,137,198,65,141,190,233,232,251,1,26,137,252,234,252,233,244,1,255,
548 139,106,252,248,255,252,242,65,15,16,4,199,255,139,172,253,141,233,139,141,
549 233,255,252,242,15,17,1,255,221,25,255,72,252,247,208,139,106,252,248,139,
550 172,253,141,233,139,141,233,137,65,4,139,3,15,182,204,15,182,232,131,195,
551 4,193,232,16,65,252,255,36,252,238,255,141,156,253,131,233,139,108,36,24,
552 131,189,233,0,15,132,244,247,137,149,233,141,52,202,137,252,239,232,251,1,
553 27,139,149,233,248,1,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,
554 252,255,36,252,238,255,72,252,247,208,139,108,36,24,137,149,233,139,82,252,
555 248,65,139,52,135,137,252,239,137,92,36,28,232,251,1,28,139,149,233,15,182,
556 75,252,253,137,4,202,199,68,202,4,237,139,3,15,182,204,15,182,232,131,195,
557 4,193,232,16,65,252,255,36,252,238,255,139,124,36,24,137,151,233,248,1,137,
558 194,37,252,255,7,0,0,193,252,234,11,61,252,255,7,0,0,15,132,244,249,248,2,
559 137,198,65,139,134,233,137,252,253,65,59,134,233,137,92,36,28,15,131,244,
560 251,232,251,1,29,139,149,233,15,182,75,252,253,137,4,202,199,68,202,4,237,
561 139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,
562 3,184,1,8,0,0,252,233,244,2,248,5,232,251,1,30,15,183,67,252,254,137,252,
563 239,252,233,244,1,255,72,252,247,208,139,108,36,24,65,139,142,233,137,92,
564 36,28,65,59,142,233,137,149,233,15,131,244,249,248,2,65,139,52,135,137,252,
565 239,232,251,1,31,139,149,233,15,182,75,252,253,137,4,202,199,68,202,4,237,
566 139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,
567 3,137,252,239,232,251,1,30,15,183,67,252,254,72,252,247,208,252,233,244,2,
568 255,72,252,247,208,139,106,252,248,139,173,233,65,139,4,135,252,233,244,157,
569 255,72,252,247,208,139,106,252,248,139,173,233,65,139,4,135,252,233,244,158,
570 255,15,182,252,236,15,182,192,129,124,253,252,234,4,239,15,133,244,36,139,
571 44,252,234,129,124,253,194,4,239,15,135,244,251,255,252,242,15,16,4,194,252,
572 242,15,45,192,252,242,15,42,200,102,15,46,193,255,15,133,244,36,59,133,233,
573 15,131,244,36,193,224,3,3,133,233,129,120,253,4,239,15,132,244,248,248,1,
574 139,40,139,64,4,137,44,202,137,68,202,4,139,3,15,182,204,15,182,232,131,195,
575 4,193,232,16,65,252,255,36,252,238,248,2,131,189,233,0,15,132,244,1,139,141,
576 233,252,246,129,233,235,15,132,244,36,15,182,75,252,253,252,233,244,1,248,
577 5,255,129,124,253,194,4,239,15,133,244,36,139,4,194,252,233,244,157,255,15,
578 182,252,236,15,182,192,72,252,247,208,65,139,4,135,129,124,253,252,234,4,
579 239,15,133,244,34,139,44,252,234,248,157,139,141,233,35,136,233,105,201,239,
580 3,141,233,248,1,129,185,233,239,15,133,244,250,57,129,233,15,133,244,250,
581 129,121,253,4,239,15,132,244,251,15,182,67,252,253,139,41,139,73,4,137,44,
582 194,248,2,255,137,76,194,4,139,3,15,182,204,15,182,232,131,195,4,193,232,
583 16,65,252,255,36,252,238,248,3,15,182,67,252,253,185,237,252,233,244,2,248,
584 4,139,137,233,133,201,15,133,244,1,248,5,139,141,233,133,201,15,132,244,3,
585 252,246,129,233,235,15,133,244,3,252,233,244,34,255,15,182,252,236,15,182,
586 192,129,124,253,252,234,4,239,15,133,244,35,139,44,252,234,59,133,233,15,
587 131,244,35,193,224,3,3,133,233,129,120,253,4,239,15,132,244,248,248,1,139,
588 40,139,64,4,137,44,202,137,68,202,4,139,3,15,182,204,15,182,232,131,195,4,
589 193,232,16,65,252,255,36,252,238,248,2,131,189,233,0,15,132,244,1,139,141,
590 233,252,246,129,233,235,15,132,244,35,255,15,182,252,236,15,182,192,129,124,
591 253,252,234,4,239,15,133,244,39,139,44,252,234,129,124,253,194,4,239,15,135,
592 244,251,255,15,133,244,39,59,133,233,15,131,244,39,193,224,3,3,133,233,129,
593 120,253,4,239,15,132,244,249,248,1,252,246,133,233,235,15,133,244,253,248,
594 2,139,108,202,4,139,12,202,137,104,4,137,8,139,3,15,182,204,15,182,232,131,
595 195,4,193,232,16,65,252,255,36,252,238,248,3,131,189,233,0,15,132,244,1,139,
596 141,233,255,252,246,129,233,235,15,132,244,39,15,182,75,252,253,252,233,244,
597 1,248,5,129,124,253,194,4,239,15,133,244,39,139,4,194,252,233,244,158,248,
598 7,128,165,233,235,65,139,142,233,65,137,174,233,137,141,233,15,182,75,252,
599 253,252,233,244,2,255,15,182,252,236,15,182,192,72,252,247,208,65,139,4,135,
600 129,124,253,252,234,4,239,15,133,244,37,139,44,252,234,248,158,139,141,233,
601 35,136,233,105,201,239,198,133,233,0,3,141,233,248,1,129,185,233,239,15,133,
602 244,251,57,129,233,15,133,244,251,129,121,253,4,239,15,132,244,250,248,2,
603 255,252,246,133,233,235,15,133,244,253,248,3,15,182,67,252,253,139,108,194,
604 4,139,4,194,137,105,4,137,1,139,3,15,182,204,15,182,232,131,195,4,193,232,
605 16,65,252,255,36,252,238,248,4,131,189,233,0,15,132,244,2,137,12,36,139,141,
606 233,252,246,129,233,235,15,132,244,37,139,12,36,252,233,244,2,248,5,139,137,
607 233,133,201,15,133,244,1,255,139,141,233,133,201,15,132,244,252,252,246,129,
608 233,235,15,132,244,37,248,6,137,4,36,199,68,36,4,237,137,108,36,8,139,124,
609 36,24,137,151,233,72,141,20,36,137,252,238,137,252,253,137,92,36,28,232,251,
610 1,32,139,149,233,139,108,36,8,137,193,252,233,244,2,248,7,128,165,233,235,
611 65,139,134,233,65,137,174,233,137,133,233,252,233,244,3,255,15,182,252,236,
612 15,182,192,129,124,253,252,234,4,239,15,133,244,38,139,44,252,234,59,133,
613 233,15,131,244,38,193,224,3,3,133,233,129,120,253,4,239,15,132,244,249,248,
614 1,252,246,133,233,235,15,133,244,253,248,2,139,108,202,4,139,12,202,137,104,
615 4,137,8,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252, 595 4,137,8,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,
616 238,248,3,131,189,233,0,15,132,244,1,255,139,141,233,252,246,129,233,235, 596 238,248,3,131,189,233,0,15,132,244,1,139,141,233,255,252,246,129,233,235,
617 15,132,244,38,15,182,75,252,253,252,233,244,1,248,7,128,165,233,235,65,139, 597 15,132,244,39,15,182,75,252,253,252,233,244,1,248,5,129,124,253,194,4,239,
618 142,233,65,137,174,233,137,141,233,15,182,75,252,253,252,233,244,2,255,68, 598 15,133,244,39,139,4,194,252,233,244,158,248,7,128,165,233,235,65,139,142,
619 137,60,36,255,252,242,69,15,45,60,199,255,248,1,141,12,202,139,105,252,248, 599 233,65,137,174,233,137,141,233,15,182,75,252,253,252,233,244,2,255,15,182,
620 252,246,133,233,235,15,133,244,253,248,2,139,68,36,4,131,232,1,15,132,244, 600 252,236,15,182,192,72,252,247,208,65,139,4,135,129,124,253,252,234,4,239,
621 250,68,1,252,248,59,133,233,15,131,244,251,68,41,252,248,65,193,231,3,68, 601 15,133,244,37,139,44,252,234,248,158,139,141,233,35,136,233,105,201,239,198,
622 3,189,233,248,3,139,41,65,137,47,139,105,4,131,193,8,65,137,111,4,65,131, 602 133,233,0,3,141,233,248,1,129,185,233,239,15,133,244,251,57,129,233,15,133,
623 199,8,131,232,1,15,133,244,3,248,4,68,139,60,36,139,3,15,182,204,15,182,232, 603 244,251,129,121,253,4,239,15,132,244,250,248,2,255,252,246,133,233,235,15,
624 131,195,4,193,232,16,65,252,255,36,252,238,248,5,139,124,36,24,137,151,233, 604 133,244,253,248,3,15,182,67,252,253,139,108,194,4,139,4,194,137,105,4,137,
625 137,252,238,137,194,137,252,253,137,92,36,28,232,251,1,33,139,149,233,15, 605 1,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,
626 182,75,252,253,252,233,244,1,248,7,255,128,165,233,235,65,139,134,233,65, 606 248,4,131,189,233,0,15,132,244,2,137,12,36,139,141,233,252,246,129,233,235,
627 137,174,233,137,133,233,252,233,244,2,255,3,68,36,4,255,129,124,253,202,4, 607 15,132,244,37,139,12,36,252,233,244,2,248,5,139,137,233,133,201,15,133,244,
628 239,139,44,202,15,133,244,51,141,84,202,8,137,90,252,252,139,157,233,139, 608 1,255,139,141,233,133,201,15,132,244,252,252,246,129,233,235,15,132,244,37,
629 11,15,182,252,233,15,182,205,131,195,4,65,252,255,36,252,238,255,141,76,202, 609 248,6,137,4,36,199,68,36,4,237,137,108,36,8,139,124,36,24,137,151,233,72,
630 8,65,137,215,139,105,252,248,129,121,253,252,252,239,15,133,244,28,248,52, 610 141,20,36,137,252,238,137,252,253,137,92,36,28,232,251,1,32,139,149,233,139,
631 139,90,252,252,252,247,195,237,15,133,244,253,248,1,137,106,252,248,137,68, 611 108,36,8,137,193,252,233,244,2,248,7,128,165,233,235,65,139,134,233,65,137,
632 36,4,131,232,1,15,132,244,249,248,2,139,41,65,137,47,139,105,4,65,137,111, 612 174,233,137,133,233,252,233,244,3,255,15,182,252,236,15,182,192,129,124,253,
633 4,65,131,199,8,131,193,8,131,232,1,15,133,244,2,139,106,252,248,248,3,139, 613 252,234,4,239,15,133,244,38,139,44,252,234,59,133,233,15,131,244,38,193,224,
634 68,36,4,128,189,233,1,15,135,244,251,248,4,139,157,233,139,11,15,182,252, 614 3,3,133,233,129,120,253,4,239,15,132,244,249,248,1,252,246,133,233,235,15,
635 233,15,182,205,131,195,4,65,252,255,36,252,238,248,5,255,252,247,195,237, 615 133,244,253,248,2,139,108,202,4,139,12,202,137,104,4,137,8,139,3,15,182,204,
636 15,133,244,4,15,182,75,252,253,72,252,247,209,141,12,202,68,139,121,252,248, 616 15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,3,131,189,233,0,
637 69,139,191,233,69,139,191,233,252,233,244,4,248,7,15,139,244,1,131,227,252, 617 15,132,244,1,255,139,141,233,252,246,129,233,235,15,132,244,38,15,182,75,
638 248,41,218,65,137,215,139,90,252,252,252,233,244,1,255,141,76,202,8,139,105, 618 252,253,252,233,244,1,248,7,128,165,233,235,65,139,142,233,65,137,174,233,
639 232,139,65,252,236,137,41,137,65,4,139,105,252,240,139,65,252,244,137,105, 619 137,141,233,15,182,75,252,253,252,233,244,2,255,68,137,60,36,255,252,242,
640 8,137,65,12,139,105,224,139,65,228,137,105,252,248,137,65,252,252,129,252, 620 69,15,45,60,199,255,248,1,141,12,202,139,105,252,248,252,246,133,233,235,
641 248,239,184,237,15,133,244,28,137,202,137,90,252,252,139,157,233,139,11,15, 621 15,133,244,253,248,2,139,68,36,4,131,232,1,15,132,244,250,68,1,252,248,59,
642 182,252,233,15,182,205,131,195,4,65,252,255,36,252,238,255,15,182,252,236, 622 133,233,15,131,244,251,68,41,252,248,65,193,231,3,68,3,189,233,248,3,139,
643 139,66,252,248,141,12,202,139,128,233,15,182,128,233,68,137,60,36,68,141, 623 41,65,137,47,139,105,4,131,193,8,65,137,111,4,65,131,199,8,131,232,1,15,133,
644 188,253,194,233,68,43,122,252,252,133,252,237,15,132,244,251,141,108,252, 624 244,3,248,4,68,139,60,36,139,3,15,182,204,15,182,232,131,195,4,193,232,16,
645 233,252,248,65,57,215,15,131,244,248,248,1,65,139,71,252,248,137,1,65,139, 625 65,252,255,36,252,238,248,5,139,124,36,24,137,151,233,137,252,238,137,194,
646 71,252,252,65,131,199,8,137,65,4,131,193,8,57,252,233,15,131,244,249,65,57, 626 137,252,253,137,92,36,28,232,251,1,33,139,149,233,15,182,75,252,253,252,233,
647 215,15,130,244,1,248,2,199,65,4,237,131,193,8,57,252,233,15,130,244,2,248, 627 244,1,248,7,255,128,165,233,235,65,139,134,233,65,137,174,233,137,133,233,
648 3,68,139,60,36,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255, 628 252,233,244,2,255,3,68,36,4,255,129,124,253,202,4,239,139,44,202,15,133,244,
649 36,252,238,248,5,199,68,36,4,1,0,0,0,137,208,68,41,252,248,15,134,244,3,255, 629 51,141,84,202,8,137,90,252,252,139,157,233,139,11,15,182,252,233,15,182,205,
650 137,197,193,252,237,3,131,197,1,137,108,36,4,139,108,36,24,1,200,59,133,233, 630 131,195,4,65,252,255,36,252,238,255,141,76,202,8,65,137,215,139,105,252,248,
651 15,135,244,253,248,6,65,139,71,252,248,137,1,65,139,71,252,252,65,131,199, 631 129,121,253,252,252,239,15,133,244,28,248,52,139,90,252,252,252,247,195,237,
652 8,137,65,4,131,193,8,65,57,215,15,130,244,6,252,233,244,3,248,7,137,149,233, 632 15,133,244,253,248,1,137,106,252,248,137,68,36,4,131,232,1,15,132,244,249,
653 137,141,233,137,92,36,28,65,41,215,139,116,36,4,131,252,238,1,137,252,239, 633 248,2,139,41,65,137,47,139,105,4,65,137,111,4,65,131,199,8,131,193,8,131,
654 232,251,1,0,139,149,233,139,141,233,65,1,215,252,233,244,6,255,193,225,3, 634 232,1,15,133,244,2,139,106,252,248,248,3,139,68,36,4,128,189,233,1,15,135,
655 255,248,1,139,90,252,252,137,68,36,4,252,247,195,237,15,133,244,253,255,248, 635 244,251,248,4,139,157,233,139,11,15,182,252,233,15,182,205,131,195,4,65,252,
656 13,65,137,215,131,232,1,15,132,244,249,248,2,65,139,44,15,65,137,111,252, 636 255,36,252,238,248,5,255,252,247,195,237,15,133,244,4,15,182,75,252,253,72,
657 248,65,139,108,15,4,65,137,111,252,252,65,131,199,8,131,232,1,15,133,244, 637 252,247,209,141,12,202,68,139,121,252,248,69,139,191,233,69,139,191,233,252,
658 2,248,3,139,68,36,4,15,182,107,252,255,248,5,57,197,15,135,244,252,255,139, 638 233,244,4,248,7,15,139,244,1,131,227,252,248,41,218,65,137,215,139,90,252,
659 108,10,4,137,106,252,252,139,44,10,137,106,252,248,255,248,5,56,67,252,255, 639 252,252,233,244,1,255,141,76,202,8,139,105,232,139,65,252,236,137,41,137,
660 15,135,244,252,255,15,182,75,252,253,72,252,247,209,141,20,202,68,139,122, 640 65,4,139,105,252,240,139,65,252,244,137,105,8,137,65,12,139,105,224,139,65,
661 252,248,69,139,191,233,69,139,191,233,139,3,15,182,204,15,182,232,131,195, 641 228,137,105,252,248,137,65,252,252,129,252,248,239,184,237,15,133,244,28,
662 4,193,232,16,65,252,255,36,252,238,248,6,255,65,199,71,252,252,237,65,131, 642 137,202,137,90,252,252,139,157,233,139,11,15,182,252,233,15,182,205,131,195,
663 199,8,255,199,68,194,252,244,237,255,131,192,1,252,233,244,5,248,7,15,139, 643 4,65,252,255,36,252,238,255,15,182,252,236,139,66,252,248,141,12,202,139,
664 244,14,131,227,252,248,41,218,255,1,217,255,137,221,209,252,237,129,229,239, 644 128,233,15,182,128,233,68,137,60,36,68,141,188,253,194,233,68,43,122,252,
665 102,65,131,172,253,46,233,1,15,132,244,140,255,141,12,202,255,129,121,253, 645 252,133,252,237,15,132,244,251,141,108,252,233,252,248,65,57,215,15,131,244,
666 4,239,15,135,244,53,129,121,253,12,239,15,135,244,53,255,139,105,20,255,129, 646 248,248,1,65,139,71,252,248,137,1,65,139,71,252,252,65,131,199,8,137,65,4,
667 252,253,239,15,135,244,53,255,252,242,15,16,1,252,242,15,16,73,8,255,252, 647 131,193,8,57,252,233,15,131,244,249,65,57,215,15,130,244,1,248,2,199,65,4,
668 242,15,88,65,16,252,242,15,17,1,133,252,237,15,136,244,249,255,15,140,244, 648 237,131,193,8,57,252,233,15,130,244,2,248,3,68,139,60,36,139,3,15,182,204,
669 249,255,102,15,46,200,248,1,252,242,15,17,65,24,255,221,65,8,221,1,255,220, 649 15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,5,199,68,36,4,1,
670 65,16,221,17,221,81,24,133,252,237,15,136,244,247,255,221,81,24,15,140,244, 650 0,0,0,137,208,68,41,252,248,15,134,244,3,255,137,197,193,252,237,3,131,197,
671 247,255,217,201,248,1,255,15,183,67,252,254,255,15,131,244,248,141,156,253, 651 1,137,108,36,4,139,108,36,24,1,200,59,133,233,15,135,244,253,248,6,65,139,
672 131,233,255,141,156,253,131,233,15,183,67,252,254,15,131,245,255,15,130,244, 652 71,252,248,137,1,65,139,71,252,252,65,131,199,8,137,65,4,131,193,8,65,57,
673 248,141,156,253,131,233,255,248,3,102,15,46,193,252,233,244,1,255,141,12, 653 215,15,130,244,6,252,233,244,3,248,7,137,149,233,137,141,233,137,92,36,28,
674 202,139,105,4,129,252,253,239,15,132,244,247,255,137,105,252,252,139,41,137, 654 65,41,215,139,116,36,4,131,252,238,1,137,252,239,232,251,1,0,139,149,233,
675 105,252,248,252,233,245,255,141,156,253,131,233,139,1,137,105,252,252,137, 655 139,141,233,65,1,215,252,233,244,6,255,193,225,3,255,248,1,139,90,252,252,
676 65,252,248,255,65,139,142,233,139,4,193,72,139,128,233,139,108,36,24,65,137, 656 137,68,36,4,252,247,195,237,15,133,244,253,255,248,13,65,137,215,131,232,
677 150,233,65,137,174,233,76,137,36,36,76,137,108,36,8,72,131,252,236,16,252, 657 1,15,132,244,249,248,2,65,139,44,15,65,137,111,252,248,65,139,108,15,4,65,
678 255,224,255,141,156,253,131,233,139,3,15,182,204,15,182,232,131,195,4,193, 658 137,111,252,252,65,131,199,8,131,232,1,15,133,244,2,248,3,139,68,36,4,15,
679 232,16,65,252,255,36,252,238,255,137,221,209,252,237,129,229,239,102,65,131, 659 182,107,252,255,248,5,57,197,15,135,244,252,255,139,108,10,4,137,106,252,
680 172,253,46,233,1,15,132,244,142,255,68,139,187,233,139,108,36,24,141,12,202, 660 252,139,44,10,137,106,252,248,255,248,5,56,67,252,255,15,135,244,252,255,
681 59,141,233,15,135,244,23,15,182,139,233,57,200,15,134,244,249,248,2,255,15, 661 15,182,75,252,253,72,252,247,209,141,20,202,68,139,122,252,248,69,139,191,
682 183,67,252,254,252,233,245,255,248,3,199,68,194,252,252,237,131,192,1,57, 662 233,69,139,191,233,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,
683 200,15,134,244,3,252,233,244,2,255,141,44,197,237,141,4,194,68,139,122,252, 663 255,36,252,238,248,6,255,65,199,71,252,252,237,65,131,199,8,255,199,68,194,
684 248,137,104,252,252,68,137,120,252,248,139,108,36,24,141,12,200,59,141,233, 664 252,244,237,255,131,192,1,252,233,244,5,248,7,15,139,244,14,131,227,252,248,
685 15,135,244,22,137,209,137,194,15,182,171,233,133,252,237,15,132,244,248,248, 665 41,218,255,1,217,255,137,221,209,252,237,129,229,239,102,65,131,172,253,46,
686 1,131,193,8,57,209,15,131,244,249,68,139,121,252,248,68,137,56,68,139,121, 666 233,1,15,132,244,140,255,141,12,202,255,129,121,253,4,239,15,135,244,53,129,
687 252,252,68,137,120,4,131,192,8,199,65,252,252,237,131,252,237,1,15,133,244, 667 121,253,12,239,15,135,244,53,255,139,105,20,255,129,252,253,239,15,135,244,
688 1,248,2,255,68,139,187,233,139,3,15,182,204,15,182,232,131,195,4,193,232, 668 53,255,252,242,15,16,1,252,242,15,16,73,8,255,252,242,15,88,65,16,252,242,
689 16,65,252,255,36,252,238,255,248,3,199,64,4,237,131,192,8,131,252,237,1,15, 669 15,17,1,133,252,237,15,136,244,249,255,15,140,244,249,255,102,15,46,200,248,
690 133,244,3,252,233,244,2,255,139,106,252,248,76,139,189,233,139,108,36,24, 670 1,252,242,15,17,65,24,255,221,65,8,221,1,255,220,65,16,221,17,221,81,24,133,
691 141,68,194,252,248,137,149,233,141,136,233,59,141,233,137,133,233,255,137, 671 252,237,15,136,244,247,255,221,81,24,15,140,244,247,255,217,201,248,1,255,
692 252,239,255,76,137,252,254,137,252,239,255,15,135,244,21,65,199,134,233,237, 672 15,183,67,252,254,255,15,131,244,248,141,156,253,131,233,255,141,156,253,
693 255,65,252,255,215,255,65,252,255,150,233,255,65,199,134,233,237,139,149, 673 131,233,15,183,67,252,254,15,131,245,255,15,130,244,248,141,156,253,131,233,
694 233,141,12,194,252,247,217,3,141,233,139,90,252,252,252,233,244,12,255,254, 674 255,248,3,102,15,46,193,252,233,244,1,255,141,12,202,139,105,4,129,252,253,
695 0 675 239,15,132,244,247,255,137,105,252,252,139,41,137,105,252,248,252,233,245,
676 255,141,156,253,131,233,139,1,137,105,252,252,137,65,252,248,255,65,139,142,
677 233,139,4,193,72,139,128,233,139,108,36,24,65,137,150,233,65,137,174,233,
678 76,137,36,36,76,137,108,36,8,72,131,252,236,16,252,255,224,255,141,156,253,
679 131,233,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,
680 238,255,137,221,209,252,237,129,229,239,102,65,131,172,253,46,233,1,15,132,
681 244,142,255,68,139,187,233,139,108,36,24,141,12,202,59,141,233,15,135,244,
682 23,15,182,139,233,57,200,15,134,244,249,248,2,255,15,183,67,252,254,252,233,
683 245,255,248,3,199,68,194,252,252,237,131,192,1,57,200,15,134,244,3,252,233,
684 244,2,255,141,44,197,237,141,4,194,68,139,122,252,248,137,104,252,252,68,
685 137,120,252,248,139,108,36,24,141,12,200,59,141,233,15,135,244,22,137,209,
686 137,194,15,182,171,233,133,252,237,15,132,244,248,248,1,131,193,8,57,209,
687 15,131,244,249,68,139,121,252,248,68,137,56,68,139,121,252,252,68,137,120,
688 4,131,192,8,199,65,252,252,237,131,252,237,1,15,133,244,1,248,2,255,68,139,
689 187,233,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,
690 238,255,248,3,199,64,4,237,131,192,8,131,252,237,1,15,133,244,3,252,233,244,
691 2,255,139,106,252,248,76,139,189,233,139,108,36,24,141,68,194,252,248,137,
692 149,233,141,136,233,59,141,233,137,133,233,255,137,252,239,255,76,137,252,
693 254,137,252,239,255,15,135,244,21,65,199,134,233,237,255,65,252,255,215,255,
694 65,252,255,150,233,255,65,199,134,233,237,139,149,233,141,12,194,252,247,
695 217,3,141,233,139,90,252,252,252,233,244,12,255,254,0
696}; 696};
697 697
698enum { 698enum {
@@ -1367,62 +1367,62 @@ static void build_subroutines(BuildCtx *ctx, int cmov, int sse)
1367#endif 1367#endif
1368 dasm_put(Dst, 7296, Dt1(->base), Dt1(->top)); 1368 dasm_put(Dst, 7296, Dt1(->base), Dt1(->top));
1369#if LJ_HASJIT 1369#if LJ_HASJIT
1370 dasm_put(Dst, 7327, DISPATCH_GL(vmstate), DISPATCH_GL(vmstate), ~LJ_VMST_EXIT, DISPATCH_J(exitno), DISPATCH_J(parent), 16*8, DISPATCH_GL(jit_L), DISPATCH_GL(jit_base), DISPATCH_J(L), Dt1(->base), GG_DISP2J, Dt1(->cframe), CFRAME_RAWMASK, CFRAME_OFS_L, Dt1(->base), CFRAME_OFS_PC); 1370 dasm_put(Dst, 7327, DISPATCH_GL(vmstate), DISPATCH_GL(vmstate), ~LJ_VMST_EXIT, DISPATCH_J(exitno), DISPATCH_J(parent), 16*8, DISPATCH_GL(jit_L), DISPATCH_GL(jit_base), DISPATCH_J(L), DISPATCH_GL(jit_L), Dt1(->base), GG_DISP2J, Dt1(->cframe), CFRAME_RAWMASK, CFRAME_OFS_L, Dt1(->base), CFRAME_OFS_PC);
1371#endif 1371#endif
1372 dasm_put(Dst, 7558); 1372 dasm_put(Dst, 7566);
1373#if LJ_HASJIT 1373#if LJ_HASJIT
1374 dasm_put(Dst, 7561, Dt7(->pc), PC2PROTO(k), DISPATCH_GL(jit_L), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, BC_FUNCF); 1374 dasm_put(Dst, 7569, Dt7(->pc), PC2PROTO(k), DISPATCH_GL(jit_L), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, BC_FUNCF);
1375#endif 1375#endif
1376 dasm_put(Dst, 7661); 1376 dasm_put(Dst, 7669);
1377 if (!sse) { 1377 if (!sse) {
1378 dasm_put(Dst, 7664); 1378 dasm_put(Dst, 7672);
1379 } 1379 }
1380 dasm_put(Dst, 7709, (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)); 1380 dasm_put(Dst, 7717, (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));
1381 if (!sse) { 1381 if (!sse) {
1382 dasm_put(Dst, 7795); 1382 dasm_put(Dst, 7803);
1383 } 1383 }
1384 dasm_put(Dst, 7840, (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)); 1384 dasm_put(Dst, 7848, (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));
1385 if (!sse) { 1385 if (!sse) {
1386 dasm_put(Dst, 7926); 1386 dasm_put(Dst, 7934);
1387 } 1387 }
1388 dasm_put(Dst, 7965, (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)); 1388 dasm_put(Dst, 7973, (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));
1389 if (sse) { 1389 if (sse) {
1390 dasm_put(Dst, 8054, (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, 8062, (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));
1391 } else { 1391 } else {
1392 dasm_put(Dst, 8168); 1392 dasm_put(Dst, 8176);
1393 } 1393 }
1394 dasm_put(Dst, 8215); 1394 dasm_put(Dst, 8223);
1395 if (!sse) { 1395 if (!sse) {
1396 } else { 1396 } else {
1397 dasm_put(Dst, 8292); 1397 dasm_put(Dst, 8300);
1398 } 1398 }
1399 dasm_put(Dst, 8295); 1399 dasm_put(Dst, 8303);
1400 dasm_put(Dst, 8380, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32)); 1400 dasm_put(Dst, 8388, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32));
1401 dasm_put(Dst, 8481, (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)); 1401 dasm_put(Dst, 8489, (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));
1402 dasm_put(Dst, 8655); 1402 dasm_put(Dst, 8663);
1403 if (sse) { 1403 if (sse) {
1404 dasm_put(Dst, 8696); 1404 dasm_put(Dst, 8704);
1405 dasm_put(Dst, 8766); 1405 dasm_put(Dst, 8774);
1406 dasm_put(Dst, 8838); 1406 dasm_put(Dst, 8846);
1407 } else { 1407 } else {
1408 dasm_put(Dst, 8890); 1408 dasm_put(Dst, 8898);
1409 dasm_put(Dst, 8982); 1409 dasm_put(Dst, 8990);
1410 } 1410 }
1411 dasm_put(Dst, 9028); 1411 dasm_put(Dst, 9036);
1412 if (sse) { 1412 if (sse) {
1413 dasm_put(Dst, 9034, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32)); 1413 dasm_put(Dst, 9042, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32));
1414 dasm_put(Dst, 9119, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32)); 1414 dasm_put(Dst, 9127, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32));
1415 } else { 1415 } else {
1416 dasm_put(Dst, 9247); 1416 dasm_put(Dst, 9255);
1417 dasm_put(Dst, 9330); 1417 dasm_put(Dst, 9338);
1418 if (cmov) { 1418 if (cmov) {
1419 dasm_put(Dst, 9385); 1419 dasm_put(Dst, 9393);
1420 } else { 1420 } else {
1421 dasm_put(Dst, 9404); 1421 dasm_put(Dst, 9412);
1422 } 1422 }
1423 dasm_put(Dst, 9243); 1423 dasm_put(Dst, 9251);
1424 } 1424 }
1425 dasm_put(Dst, 9445); 1425 dasm_put(Dst, 9453);
1426} 1426}
1427 1427
1428/* Generate the code for a single instruction. */ 1428/* Generate the code for a single instruction. */
@@ -1438,595 +1438,595 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
1438 /* Remember: all ops branch for a true comparison, fall through otherwise. */ 1438 /* Remember: all ops branch for a true comparison, fall through otherwise. */
1439 1439
1440 case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT: 1440 case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT:
1441 dasm_put(Dst, 9467, LJ_TISNUM, LJ_TISNUM); 1441 dasm_put(Dst, 9475, LJ_TISNUM, LJ_TISNUM);
1442 if (sse) { 1442 if (sse) {
1443 dasm_put(Dst, 9488); 1443 dasm_put(Dst, 9496);
1444 } else { 1444 } else {
1445 dasm_put(Dst, 9503); 1445 dasm_put(Dst, 9511);
1446 if (cmov) { 1446 if (cmov) {
1447 dasm_put(Dst, 9513); 1447 dasm_put(Dst, 9521);
1448 } else { 1448 } else {
1449 dasm_put(Dst, 9519); 1449 dasm_put(Dst, 9527);
1450 } 1450 }
1451 } 1451 }
1452 switch (op) { 1452 switch (op) {
1453 case BC_ISLT: 1453 case BC_ISLT:
1454 dasm_put(Dst, 9526); 1454 dasm_put(Dst, 9534);
1455 break; 1455 break;
1456 case BC_ISGE: 1456 case BC_ISGE:
1457 dasm_put(Dst, 9325); 1457 dasm_put(Dst, 9333);
1458 break; 1458 break;
1459 case BC_ISLE: 1459 case BC_ISLE:
1460 dasm_put(Dst, 5942); 1460 dasm_put(Dst, 5942);
1461 break; 1461 break;
1462 case BC_ISGT: 1462 case BC_ISGT:
1463 dasm_put(Dst, 9531); 1463 dasm_put(Dst, 9539);
1464 break; 1464 break;
1465 default: break; /* Shut up GCC. */ 1465 default: break; /* Shut up GCC. */
1466 } 1466 }
1467 dasm_put(Dst, 9536, -BCBIAS_J*4); 1467 dasm_put(Dst, 9544, -BCBIAS_J*4);
1468 break; 1468 break;
1469 1469
1470 case BC_ISEQV: case BC_ISNEV: 1470 case BC_ISEQV: case BC_ISNEV:
1471 vk = op == BC_ISEQV; 1471 vk = op == BC_ISEQV;
1472 dasm_put(Dst, 9571, LJ_TISNUM, LJ_TISNUM); 1472 dasm_put(Dst, 9579, LJ_TISNUM, LJ_TISNUM);
1473 if (sse) { 1473 if (sse) {
1474 dasm_put(Dst, 9597); 1474 dasm_put(Dst, 9605);
1475 } else { 1475 } else {
1476 dasm_put(Dst, 9609); 1476 dasm_put(Dst, 9617);
1477 if (cmov) { 1477 if (cmov) {
1478 dasm_put(Dst, 9513); 1478 dasm_put(Dst, 9521);
1479 } else { 1479 } else {
1480 dasm_put(Dst, 9519); 1480 dasm_put(Dst, 9527);
1481 } 1481 }
1482 } 1482 }
1483 iseqne_fp: 1483 iseqne_fp:
1484 if (vk) { 1484 if (vk) {
1485 dasm_put(Dst, 9616); 1485 dasm_put(Dst, 9624);
1486 } else { 1486 } else {
1487 dasm_put(Dst, 9625); 1487 dasm_put(Dst, 9633);
1488 } 1488 }
1489 iseqne_end: 1489 iseqne_end:
1490 if (vk) { 1490 if (vk) {
1491 dasm_put(Dst, 9634, -BCBIAS_J*4); 1491 dasm_put(Dst, 9642, -BCBIAS_J*4);
1492 } else { 1492 } else {
1493 dasm_put(Dst, 9649, -BCBIAS_J*4); 1493 dasm_put(Dst, 9657, -BCBIAS_J*4);
1494 } 1494 }
1495 dasm_put(Dst, 9550); 1495 dasm_put(Dst, 9558);
1496 if (op == BC_ISEQV || op == BC_ISNEV) { 1496 if (op == BC_ISEQV || op == BC_ISNEV) {
1497 dasm_put(Dst, 9664, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq); 1497 dasm_put(Dst, 9672, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq);
1498 if (vk) { 1498 if (vk) {
1499 dasm_put(Dst, 9722); 1499 dasm_put(Dst, 9730);
1500 } else { 1500 } else {
1501 dasm_put(Dst, 9726); 1501 dasm_put(Dst, 9734);
1502 } 1502 }
1503 dasm_put(Dst, 9732); 1503 dasm_put(Dst, 9740);
1504 } 1504 }
1505 break; 1505 break;
1506 case BC_ISEQS: case BC_ISNES: 1506 case BC_ISEQS: case BC_ISNES:
1507 vk = op == BC_ISEQS; 1507 vk = op == BC_ISEQS;
1508 dasm_put(Dst, 9737, LJ_TSTR); 1508 dasm_put(Dst, 9745, LJ_TSTR);
1509 iseqne_test: 1509 iseqne_test:
1510 if (vk) { 1510 if (vk) {
1511 dasm_put(Dst, 9620); 1511 dasm_put(Dst, 9628);
1512 } else { 1512 } else {
1513 dasm_put(Dst, 2833); 1513 dasm_put(Dst, 2833);
1514 } 1514 }
1515 goto iseqne_end; 1515 goto iseqne_end;
1516 case BC_ISEQN: case BC_ISNEN: 1516 case BC_ISEQN: case BC_ISNEN:
1517 vk = op == BC_ISEQN; 1517 vk = op == BC_ISEQN;
1518 dasm_put(Dst, 9762, LJ_TISNUM); 1518 dasm_put(Dst, 9770, LJ_TISNUM);
1519 if (sse) { 1519 if (sse) {
1520 dasm_put(Dst, 9776); 1520 dasm_put(Dst, 9784);
1521 } else { 1521 } else {
1522 dasm_put(Dst, 9789); 1522 dasm_put(Dst, 9797);
1523 if (cmov) { 1523 if (cmov) {
1524 dasm_put(Dst, 9513); 1524 dasm_put(Dst, 9521);
1525 } else { 1525 } else {
1526 dasm_put(Dst, 9519); 1526 dasm_put(Dst, 9527);
1527 } 1527 }
1528 } 1528 }
1529 goto iseqne_fp; 1529 goto iseqne_fp;
1530 case BC_ISEQP: case BC_ISNEP: 1530 case BC_ISEQP: case BC_ISNEP:
1531 vk = op == BC_ISEQP; 1531 vk = op == BC_ISEQP;
1532 dasm_put(Dst, 9797); 1532 dasm_put(Dst, 9805);
1533 goto iseqne_test; 1533 goto iseqne_test;
1534 1534
1535 /* -- Unary test and copy ops ------------------------------------------- */ 1535 /* -- Unary test and copy ops ------------------------------------------- */
1536 1536
1537 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF: 1537 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF:
1538 dasm_put(Dst, 9809, LJ_TISTRUECOND); 1538 dasm_put(Dst, 9817, LJ_TISTRUECOND);
1539 if (op == BC_IST || op == BC_ISTC) { 1539 if (op == BC_IST || op == BC_ISTC) {
1540 dasm_put(Dst, 9821); 1540 dasm_put(Dst, 9829);
1541 } else { 1541 } else {
1542 dasm_put(Dst, 9826); 1542 dasm_put(Dst, 9834);
1543 } 1543 }
1544 if (op == BC_ISTC || op == BC_ISFC) { 1544 if (op == BC_ISTC || op == BC_ISFC) {
1545 dasm_put(Dst, 9831); 1545 dasm_put(Dst, 9839);
1546 } 1546 }
1547 dasm_put(Dst, 9842, -BCBIAS_J*4); 1547 dasm_put(Dst, 9850, -BCBIAS_J*4);
1548 break; 1548 break;
1549 1549
1550 /* -- Unary ops --------------------------------------------------------- */ 1550 /* -- Unary ops --------------------------------------------------------- */
1551 1551
1552 case BC_MOV: 1552 case BC_MOV:
1553 dasm_put(Dst, 9875); 1553 dasm_put(Dst, 9883);
1554 break; 1554 break;
1555 case BC_NOT: 1555 case BC_NOT:
1556 dasm_put(Dst, 9910, LJ_TISTRUECOND, LJ_TTRUE); 1556 dasm_put(Dst, 9918, LJ_TISTRUECOND, LJ_TTRUE);
1557 break; 1557 break;
1558 case BC_UNM: 1558 case BC_UNM:
1559 dasm_put(Dst, 9947, LJ_TISNUM); 1559 dasm_put(Dst, 9955, LJ_TISNUM);
1560 if (sse) { 1560 if (sse) {
1561 dasm_put(Dst, 9958, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32)); 1561 dasm_put(Dst, 9966, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32));
1562 } else { 1562 } else {
1563 dasm_put(Dst, 9983); 1563 dasm_put(Dst, 9991);
1564 } 1564 }
1565 dasm_put(Dst, 9550); 1565 dasm_put(Dst, 9558);
1566 break; 1566 break;
1567 case BC_LEN: 1567 case BC_LEN:
1568 dasm_put(Dst, 9992, LJ_TSTR); 1568 dasm_put(Dst, 10000, LJ_TSTR);
1569 if (sse) { 1569 if (sse) {
1570 dasm_put(Dst, 10006, Dt5(->len)); 1570 dasm_put(Dst, 10014, Dt5(->len));
1571 } else { 1571 } else {
1572 dasm_put(Dst, 10024, Dt5(->len)); 1572 dasm_put(Dst, 10032, Dt5(->len));
1573 } 1573 }
1574 dasm_put(Dst, 10033, LJ_TTAB); 1574 dasm_put(Dst, 10041, LJ_TTAB);
1575 if (sse) { 1575 if (sse) {
1576 dasm_put(Dst, 10075); 1576 dasm_put(Dst, 10083);
1577 } else { 1577 } else {
1578 } 1578 }
1579 dasm_put(Dst, 10084); 1579 dasm_put(Dst, 10092);
1580 break; 1580 break;
1581 1581
1582 /* -- Binary ops -------------------------------------------------------- */ 1582 /* -- Binary ops -------------------------------------------------------- */
1583 1583
1584 1584
1585 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV: 1585 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV:
1586 dasm_put(Dst, 10094); 1586 dasm_put(Dst, 10102);
1587 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1587 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1588 switch (vk) { 1588 switch (vk) {
1589 case 0: 1589 case 0:
1590 dasm_put(Dst, 10102, LJ_TISNUM); 1590 dasm_put(Dst, 10110, LJ_TISNUM);
1591 if (sse) { 1591 if (sse) {
1592 dasm_put(Dst, 10114); 1592 dasm_put(Dst, 10122);
1593 } else { 1593 } else {
1594 dasm_put(Dst, 10129); 1594 dasm_put(Dst, 10137);
1595 } 1595 }
1596 break; 1596 break;
1597 case 1: 1597 case 1:
1598 dasm_put(Dst, 10138, LJ_TISNUM); 1598 dasm_put(Dst, 10146, LJ_TISNUM);
1599 if (sse) { 1599 if (sse) {
1600 dasm_put(Dst, 10150); 1600 dasm_put(Dst, 10158);
1601 } else { 1601 } else {
1602 dasm_put(Dst, 10165); 1602 dasm_put(Dst, 10173);
1603 } 1603 }
1604 break; 1604 break;
1605 default: 1605 default:
1606 dasm_put(Dst, 10174, LJ_TISNUM, LJ_TISNUM); 1606 dasm_put(Dst, 10182, LJ_TISNUM, LJ_TISNUM);
1607 if (sse) { 1607 if (sse) {
1608 dasm_put(Dst, 10196); 1608 dasm_put(Dst, 10204);
1609 } else { 1609 } else {
1610 dasm_put(Dst, 10210); 1610 dasm_put(Dst, 10218);
1611 } 1611 }
1612 break; 1612 break;
1613 } 1613 }
1614 if (sse) { 1614 if (sse) {
1615 dasm_put(Dst, 9976); 1615 dasm_put(Dst, 9984);
1616 } else { 1616 } else {
1617 dasm_put(Dst, 9988); 1617 dasm_put(Dst, 9996);
1618 } 1618 }
1619 dasm_put(Dst, 9550); 1619 dasm_put(Dst, 9558);
1620 break; 1620 break;
1621 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV: 1621 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV:
1622 dasm_put(Dst, 10094); 1622 dasm_put(Dst, 10102);
1623 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1623 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1624 switch (vk) { 1624 switch (vk) {
1625 case 0: 1625 case 0:
1626 dasm_put(Dst, 10102, LJ_TISNUM); 1626 dasm_put(Dst, 10110, LJ_TISNUM);
1627 if (sse) { 1627 if (sse) {
1628 dasm_put(Dst, 10218); 1628 dasm_put(Dst, 10226);
1629 } else { 1629 } else {
1630 dasm_put(Dst, 10233); 1630 dasm_put(Dst, 10241);
1631 } 1631 }
1632 break; 1632 break;
1633 case 1: 1633 case 1:
1634 dasm_put(Dst, 10138, LJ_TISNUM); 1634 dasm_put(Dst, 10146, LJ_TISNUM);
1635 if (sse) { 1635 if (sse) {
1636 dasm_put(Dst, 10242); 1636 dasm_put(Dst, 10250);
1637 } else { 1637 } else {
1638 dasm_put(Dst, 10257); 1638 dasm_put(Dst, 10265);
1639 } 1639 }
1640 break; 1640 break;
1641 default: 1641 default:
1642 dasm_put(Dst, 10174, LJ_TISNUM, LJ_TISNUM); 1642 dasm_put(Dst, 10182, LJ_TISNUM, LJ_TISNUM);
1643 if (sse) { 1643 if (sse) {
1644 dasm_put(Dst, 10266); 1644 dasm_put(Dst, 10274);
1645 } else { 1645 } else {
1646 dasm_put(Dst, 10280); 1646 dasm_put(Dst, 10288);
1647 } 1647 }
1648 break; 1648 break;
1649 } 1649 }
1650 if (sse) { 1650 if (sse) {
1651 dasm_put(Dst, 9976); 1651 dasm_put(Dst, 9984);
1652 } else { 1652 } else {
1653 dasm_put(Dst, 9988); 1653 dasm_put(Dst, 9996);
1654 } 1654 }
1655 dasm_put(Dst, 9550); 1655 dasm_put(Dst, 9558);
1656 break; 1656 break;
1657 case BC_MULVN: case BC_MULNV: case BC_MULVV: 1657 case BC_MULVN: case BC_MULNV: case BC_MULVV:
1658 dasm_put(Dst, 10094); 1658 dasm_put(Dst, 10102);
1659 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1659 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1660 switch (vk) { 1660 switch (vk) {
1661 case 0: 1661 case 0:
1662 dasm_put(Dst, 10102, LJ_TISNUM); 1662 dasm_put(Dst, 10110, LJ_TISNUM);
1663 if (sse) { 1663 if (sse) {
1664 dasm_put(Dst, 10288); 1664 dasm_put(Dst, 10296);
1665 } else { 1665 } else {
1666 dasm_put(Dst, 10303); 1666 dasm_put(Dst, 10311);
1667 } 1667 }
1668 break; 1668 break;
1669 case 1: 1669 case 1:
1670 dasm_put(Dst, 10138, LJ_TISNUM); 1670 dasm_put(Dst, 10146, LJ_TISNUM);
1671 if (sse) { 1671 if (sse) {
1672 dasm_put(Dst, 10312); 1672 dasm_put(Dst, 10320);
1673 } else { 1673 } else {
1674 dasm_put(Dst, 10327); 1674 dasm_put(Dst, 10335);
1675 } 1675 }
1676 break; 1676 break;
1677 default: 1677 default:
1678 dasm_put(Dst, 10174, LJ_TISNUM, LJ_TISNUM); 1678 dasm_put(Dst, 10182, LJ_TISNUM, LJ_TISNUM);
1679 if (sse) { 1679 if (sse) {
1680 dasm_put(Dst, 10336); 1680 dasm_put(Dst, 10344);
1681 } else { 1681 } else {
1682 dasm_put(Dst, 10350); 1682 dasm_put(Dst, 10358);
1683 } 1683 }
1684 break; 1684 break;
1685 } 1685 }
1686 if (sse) { 1686 if (sse) {
1687 dasm_put(Dst, 9976); 1687 dasm_put(Dst, 9984);
1688 } else { 1688 } else {
1689 dasm_put(Dst, 9988); 1689 dasm_put(Dst, 9996);
1690 } 1690 }
1691 dasm_put(Dst, 9550); 1691 dasm_put(Dst, 9558);
1692 break; 1692 break;
1693 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV: 1693 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV:
1694 dasm_put(Dst, 10094); 1694 dasm_put(Dst, 10102);
1695 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1695 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1696 switch (vk) { 1696 switch (vk) {
1697 case 0: 1697 case 0:
1698 dasm_put(Dst, 10102, LJ_TISNUM); 1698 dasm_put(Dst, 10110, LJ_TISNUM);
1699 if (sse) { 1699 if (sse) {
1700 dasm_put(Dst, 10358); 1700 dasm_put(Dst, 10366);
1701 } else { 1701 } else {
1702 dasm_put(Dst, 10373); 1702 dasm_put(Dst, 10381);
1703 } 1703 }
1704 break; 1704 break;
1705 case 1: 1705 case 1:
1706 dasm_put(Dst, 10138, LJ_TISNUM); 1706 dasm_put(Dst, 10146, LJ_TISNUM);
1707 if (sse) { 1707 if (sse) {
1708 dasm_put(Dst, 10382); 1708 dasm_put(Dst, 10390);
1709 } else { 1709 } else {
1710 dasm_put(Dst, 10397); 1710 dasm_put(Dst, 10405);
1711 } 1711 }
1712 break; 1712 break;
1713 default: 1713 default:
1714 dasm_put(Dst, 10174, LJ_TISNUM, LJ_TISNUM); 1714 dasm_put(Dst, 10182, LJ_TISNUM, LJ_TISNUM);
1715 if (sse) { 1715 if (sse) {
1716 dasm_put(Dst, 10406); 1716 dasm_put(Dst, 10414);
1717 } else { 1717 } else {
1718 dasm_put(Dst, 10420); 1718 dasm_put(Dst, 10428);
1719 } 1719 }
1720 break; 1720 break;
1721 } 1721 }
1722 if (sse) { 1722 if (sse) {
1723 dasm_put(Dst, 9976); 1723 dasm_put(Dst, 9984);
1724 } else { 1724 } else {
1725 dasm_put(Dst, 9988); 1725 dasm_put(Dst, 9996);
1726 } 1726 }
1727 dasm_put(Dst, 9550); 1727 dasm_put(Dst, 9558);
1728 break; 1728 break;
1729 case BC_MODVN: 1729 case BC_MODVN:
1730 dasm_put(Dst, 10094); 1730 dasm_put(Dst, 10102);
1731 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1731 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1732 switch (vk) { 1732 switch (vk) {
1733 case 0: 1733 case 0:
1734 dasm_put(Dst, 10102, LJ_TISNUM); 1734 dasm_put(Dst, 10110, LJ_TISNUM);
1735 if (sse) { 1735 if (sse) {
1736 dasm_put(Dst, 10428); 1736 dasm_put(Dst, 10436);
1737 } else { 1737 } else {
1738 dasm_put(Dst, 10443); 1738 dasm_put(Dst, 10451);
1739 } 1739 }
1740 break; 1740 break;
1741 case 1: 1741 case 1:
1742 dasm_put(Dst, 10138, LJ_TISNUM); 1742 dasm_put(Dst, 10146, LJ_TISNUM);
1743 if (sse) { 1743 if (sse) {
1744 dasm_put(Dst, 10452); 1744 dasm_put(Dst, 10460);
1745 } else { 1745 } else {
1746 dasm_put(Dst, 10467); 1746 dasm_put(Dst, 10475);
1747 } 1747 }
1748 break; 1748 break;
1749 default: 1749 default:
1750 dasm_put(Dst, 10174, LJ_TISNUM, LJ_TISNUM); 1750 dasm_put(Dst, 10182, LJ_TISNUM, LJ_TISNUM);
1751 if (sse) { 1751 if (sse) {
1752 dasm_put(Dst, 10476); 1752 dasm_put(Dst, 10484);
1753 } else { 1753 } else {
1754 dasm_put(Dst, 10490); 1754 dasm_put(Dst, 10498);
1755 } 1755 }
1756 break; 1756 break;
1757 } 1757 }
1758 dasm_put(Dst, 10498); 1758 dasm_put(Dst, 10506);
1759 if (sse) { 1759 if (sse) {
1760 dasm_put(Dst, 9976); 1760 dasm_put(Dst, 9984);
1761 } else { 1761 } else {
1762 dasm_put(Dst, 9988); 1762 dasm_put(Dst, 9996);
1763 } 1763 }
1764 dasm_put(Dst, 9550); 1764 dasm_put(Dst, 9558);
1765 break; 1765 break;
1766 case BC_MODNV: case BC_MODVV: 1766 case BC_MODNV: case BC_MODVV:
1767 dasm_put(Dst, 10094); 1767 dasm_put(Dst, 10102);
1768 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1768 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1769 switch (vk) { 1769 switch (vk) {
1770 case 0: 1770 case 0:
1771 dasm_put(Dst, 10102, LJ_TISNUM); 1771 dasm_put(Dst, 10110, LJ_TISNUM);
1772 if (sse) { 1772 if (sse) {
1773 dasm_put(Dst, 10428); 1773 dasm_put(Dst, 10436);
1774 } else { 1774 } else {
1775 dasm_put(Dst, 10443); 1775 dasm_put(Dst, 10451);
1776 } 1776 }
1777 break; 1777 break;
1778 case 1: 1778 case 1:
1779 dasm_put(Dst, 10138, LJ_TISNUM); 1779 dasm_put(Dst, 10146, LJ_TISNUM);
1780 if (sse) { 1780 if (sse) {
1781 dasm_put(Dst, 10452); 1781 dasm_put(Dst, 10460);
1782 } else { 1782 } else {
1783 dasm_put(Dst, 10467); 1783 dasm_put(Dst, 10475);
1784 } 1784 }
1785 break; 1785 break;
1786 default: 1786 default:
1787 dasm_put(Dst, 10174, LJ_TISNUM, LJ_TISNUM); 1787 dasm_put(Dst, 10182, LJ_TISNUM, LJ_TISNUM);
1788 if (sse) { 1788 if (sse) {
1789 dasm_put(Dst, 10476); 1789 dasm_put(Dst, 10484);
1790 } else { 1790 } else {
1791 dasm_put(Dst, 10490); 1791 dasm_put(Dst, 10498);
1792 } 1792 }
1793 break; 1793 break;
1794 } 1794 }
1795 dasm_put(Dst, 10504); 1795 dasm_put(Dst, 10512);
1796 break; 1796 break;
1797 case BC_POW: 1797 case BC_POW:
1798 dasm_put(Dst, 10094); 1798 dasm_put(Dst, 10102);
1799 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1799 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1800 switch (vk) { 1800 switch (vk) {
1801 case 0: 1801 case 0:
1802 dasm_put(Dst, 10102, LJ_TISNUM); 1802 dasm_put(Dst, 10110, LJ_TISNUM);
1803 if (sse) { 1803 if (sse) {
1804 dasm_put(Dst, 10428); 1804 dasm_put(Dst, 10436);
1805 } else { 1805 } else {
1806 dasm_put(Dst, 10443); 1806 dasm_put(Dst, 10451);
1807 } 1807 }
1808 break; 1808 break;
1809 case 1: 1809 case 1:
1810 dasm_put(Dst, 10138, LJ_TISNUM); 1810 dasm_put(Dst, 10146, LJ_TISNUM);
1811 if (sse) { 1811 if (sse) {
1812 dasm_put(Dst, 10452); 1812 dasm_put(Dst, 10460);
1813 } else { 1813 } else {
1814 dasm_put(Dst, 10467); 1814 dasm_put(Dst, 10475);
1815 } 1815 }
1816 break; 1816 break;
1817 default: 1817 default:
1818 dasm_put(Dst, 10174, LJ_TISNUM, LJ_TISNUM); 1818 dasm_put(Dst, 10182, LJ_TISNUM, LJ_TISNUM);
1819 if (sse) { 1819 if (sse) {
1820 dasm_put(Dst, 10476); 1820 dasm_put(Dst, 10484);
1821 } else { 1821 } else {
1822 dasm_put(Dst, 10490); 1822 dasm_put(Dst, 10498);
1823 } 1823 }
1824 break; 1824 break;
1825 } 1825 }
1826 dasm_put(Dst, 10509); 1826 dasm_put(Dst, 10517);
1827 if (sse) { 1827 if (sse) {
1828 dasm_put(Dst, 9976); 1828 dasm_put(Dst, 9984);
1829 } else { 1829 } else {
1830 dasm_put(Dst, 9988); 1830 dasm_put(Dst, 9996);
1831 } 1831 }
1832 dasm_put(Dst, 9550); 1832 dasm_put(Dst, 9558);
1833 break; 1833 break;
1834 1834
1835 case BC_CAT: 1835 case BC_CAT:
1836 dasm_put(Dst, 10513, Dt1(->base), Dt1(->base)); 1836 dasm_put(Dst, 10521, Dt1(->base), Dt1(->base));
1837 break; 1837 break;
1838 1838
1839 /* -- Constant ops ------------------------------------------------------ */ 1839 /* -- Constant ops ------------------------------------------------------ */
1840 1840
1841 case BC_KSTR: 1841 case BC_KSTR:
1842 dasm_put(Dst, 10604, LJ_TSTR); 1842 dasm_put(Dst, 10612, LJ_TSTR);
1843 break; 1843 break;
1844 case BC_KSHORT: 1844 case BC_KSHORT:
1845 if (sse) { 1845 if (sse) {
1846 dasm_put(Dst, 10641); 1846 dasm_put(Dst, 10649);
1847 } else { 1847 } else {
1848 dasm_put(Dst, 10656); 1848 dasm_put(Dst, 10664);
1849 } 1849 }
1850 dasm_put(Dst, 9550); 1850 dasm_put(Dst, 9558);
1851 break; 1851 break;
1852 case BC_KNUM: 1852 case BC_KNUM:
1853 if (sse) { 1853 if (sse) {
1854 dasm_put(Dst, 10664); 1854 dasm_put(Dst, 10672);
1855 } else { 1855 } else {
1856 dasm_put(Dst, 10678); 1856 dasm_put(Dst, 10686);
1857 } 1857 }
1858 dasm_put(Dst, 9550); 1858 dasm_put(Dst, 9558);
1859 break; 1859 break;
1860 case BC_KPRI: 1860 case BC_KPRI:
1861 dasm_put(Dst, 10686); 1861 dasm_put(Dst, 10694);
1862 break; 1862 break;
1863 case BC_KNIL: 1863 case BC_KNIL:
1864 dasm_put(Dst, 10715, LJ_TNIL); 1864 dasm_put(Dst, 10723, LJ_TNIL);
1865 break; 1865 break;
1866 1866
1867 /* -- Upvalue and function ops ------------------------------------------ */ 1867 /* -- Upvalue and function ops ------------------------------------------ */
1868 1868
1869 case BC_UGET: 1869 case BC_UGET:
1870 dasm_put(Dst, 10763, offsetof(GCfuncL, uvptr), DtA(->v)); 1870 dasm_put(Dst, 10771, offsetof(GCfuncL, uvptr), DtA(->v));
1871 break; 1871 break;
1872 case BC_USETV: 1872 case BC_USETV:
1873#define TV2MARKOFS \ 1873#define TV2MARKOFS \
1874 ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv)) 1874 ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv))
1875 dasm_put(Dst, 10809, 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); 1875 dasm_put(Dst, 10817, 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);
1876 dasm_put(Dst, 10905); 1876 dasm_put(Dst, 10913);
1877 break; 1877 break;
1878#undef TV2MARKOFS 1878#undef TV2MARKOFS
1879 case BC_USETS: 1879 case BC_USETS:
1880 dasm_put(Dst, 10917, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G); 1880 dasm_put(Dst, 10925, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G);
1881 break; 1881 break;
1882 case BC_USETN: 1882 case BC_USETN:
1883 dasm_put(Dst, 11013); 1883 dasm_put(Dst, 11021);
1884 if (sse) { 1884 if (sse) {
1885 dasm_put(Dst, 11018); 1885 dasm_put(Dst, 11026);
1886 } else { 1886 } else {
1887 dasm_put(Dst, 9792); 1887 dasm_put(Dst, 9800);
1888 } 1888 }
1889 dasm_put(Dst, 11026, offsetof(GCfuncL, uvptr), DtA(->v)); 1889 dasm_put(Dst, 11034, offsetof(GCfuncL, uvptr), DtA(->v));
1890 if (sse) { 1890 if (sse) {
1891 dasm_put(Dst, 11035); 1891 dasm_put(Dst, 11043);
1892 } else { 1892 } else {
1893 dasm_put(Dst, 11041); 1893 dasm_put(Dst, 11049);
1894 } 1894 }
1895 dasm_put(Dst, 9550); 1895 dasm_put(Dst, 9558);
1896 break; 1896 break;
1897 case BC_USETP: 1897 case BC_USETP:
1898 dasm_put(Dst, 11044, offsetof(GCfuncL, uvptr), DtA(->v)); 1898 dasm_put(Dst, 11052, offsetof(GCfuncL, uvptr), DtA(->v));
1899 break; 1899 break;
1900 case BC_UCLO: 1900 case BC_UCLO:
1901 dasm_put(Dst, 11084, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base)); 1901 dasm_put(Dst, 11092, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base));
1902 break; 1902 break;
1903 1903
1904 case BC_FNEW: 1904 case BC_FNEW:
1905 dasm_put(Dst, 11140, Dt1(->base), Dt1(->base), LJ_TFUNC); 1905 dasm_put(Dst, 11148, Dt1(->base), Dt1(->base), LJ_TFUNC);
1906 break; 1906 break;
1907 1907
1908 /* -- Table ops --------------------------------------------------------- */ 1908 /* -- Table ops --------------------------------------------------------- */
1909 1909
1910 case BC_TNEW: 1910 case BC_TNEW:
1911 dasm_put(Dst, 11207, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB); 1911 dasm_put(Dst, 11215, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB);
1912 break; 1912 break;
1913 case BC_TDUP: 1913 case BC_TDUP:
1914 dasm_put(Dst, 11331, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB); 1914 dasm_put(Dst, 11339, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB);
1915 break; 1915 break;
1916 1916
1917 case BC_GGET: 1917 case BC_GGET:
1918 dasm_put(Dst, 11430, Dt7(->env)); 1918 dasm_put(Dst, 11438, Dt7(->env));
1919 break; 1919 break;
1920 case BC_GSET: 1920 case BC_GSET:
1921 dasm_put(Dst, 11450, Dt7(->env)); 1921 dasm_put(Dst, 11458, Dt7(->env));
1922 break; 1922 break;
1923 1923
1924 case BC_TGETV: 1924 case BC_TGETV:
1925 dasm_put(Dst, 11470, LJ_TTAB, LJ_TISNUM); 1925 dasm_put(Dst, 11478, LJ_TTAB, LJ_TISNUM);
1926 if (sse) { 1926 if (sse) {
1927 dasm_put(Dst, 11503); 1927 dasm_put(Dst, 11511);
1928 } else { 1928 } else {
1929 } 1929 }
1930 dasm_put(Dst, 11524, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 1930 dasm_put(Dst, 11532, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
1931 dasm_put(Dst, 11618, LJ_TSTR); 1931 dasm_put(Dst, 11626, LJ_TSTR);
1932 break; 1932 break;
1933 case BC_TGETS: 1933 case BC_TGETS:
1934 dasm_put(Dst, 11636, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); 1934 dasm_put(Dst, 11644, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
1935 dasm_put(Dst, 11722, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 1935 dasm_put(Dst, 11730, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
1936 break; 1936 break;
1937 case BC_TGETB: 1937 case BC_TGETB:
1938 dasm_put(Dst, 11795, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 1938 dasm_put(Dst, 11803, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
1939 dasm_put(Dst, 10084); 1939 dasm_put(Dst, 10092);
1940 break; 1940 break;
1941 1941
1942 case BC_TSETV: 1942 case BC_TSETV:
1943 dasm_put(Dst, 11896, LJ_TTAB, LJ_TISNUM); 1943 dasm_put(Dst, 11904, LJ_TTAB, LJ_TISNUM);
1944 if (sse) { 1944 if (sse) {
1945 dasm_put(Dst, 11503); 1945 dasm_put(Dst, 11511);
1946 } else { 1946 } else {
1947 } 1947 }
1948 dasm_put(Dst, 11929, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable)); 1948 dasm_put(Dst, 11937, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable));
1949 dasm_put(Dst, 12014, Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 1949 dasm_put(Dst, 12022, Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
1950 break; 1950 break;
1951 case BC_TSETS: 1951 case BC_TSETS:
1952 dasm_put(Dst, 12078, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); 1952 dasm_put(Dst, 12086, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
1953 dasm_put(Dst, 12155, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next)); 1953 dasm_put(Dst, 12163, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next));
1954 dasm_put(Dst, 12247, 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)); 1954 dasm_put(Dst, 12255, 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));
1955 break; 1955 break;
1956 case BC_TSETB: 1956 case BC_TSETB:
1957 dasm_put(Dst, 12339, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable)); 1957 dasm_put(Dst, 12347, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable));
1958 dasm_put(Dst, 12439, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 1958 dasm_put(Dst, 12447, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
1959 break; 1959 break;
1960 1960
1961 case BC_TSETM: 1961 case BC_TSETM:
1962 dasm_put(Dst, 12487); 1962 dasm_put(Dst, 12495);
1963 if (sse) { 1963 if (sse) {
1964 dasm_put(Dst, 12492); 1964 dasm_put(Dst, 12500);
1965 } else { 1965 } else {
1966 } 1966 }
1967 dasm_put(Dst, 12500, Dt6(->marked), LJ_GC_BLACK, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base)); 1967 dasm_put(Dst, 12508, Dt6(->marked), LJ_GC_BLACK, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base));
1968 dasm_put(Dst, 12648, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 1968 dasm_put(Dst, 12656, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
1969 break; 1969 break;
1970 1970
1971 /* -- Calls and vararg handling ----------------------------------------- */ 1971 /* -- Calls and vararg handling ----------------------------------------- */
1972 1972
1973 case BC_CALL: case BC_CALLM: 1973 case BC_CALL: case BC_CALLM:
1974 dasm_put(Dst, 10098); 1974 dasm_put(Dst, 10106);
1975 if (op == BC_CALLM) { 1975 if (op == BC_CALLM) {
1976 dasm_put(Dst, 12668); 1976 dasm_put(Dst, 12676);
1977 } 1977 }
1978 dasm_put(Dst, 12673, LJ_TFUNC, Dt7(->pc)); 1978 dasm_put(Dst, 12681, LJ_TFUNC, Dt7(->pc));
1979 break; 1979 break;
1980 1980
1981 case BC_CALLMT: 1981 case BC_CALLMT:
1982 dasm_put(Dst, 12668); 1982 dasm_put(Dst, 12676);
1983 break; 1983 break;
1984 case BC_CALLT: 1984 case BC_CALLT:
1985 dasm_put(Dst, 12716, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc)); 1985 dasm_put(Dst, 12724, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc));
1986 dasm_put(Dst, 12840, FRAME_TYPE, Dt7(->pc), PC2PROTO(k)); 1986 dasm_put(Dst, 12848, FRAME_TYPE, Dt7(->pc), PC2PROTO(k));
1987 break; 1987 break;
1988 1988
1989 case BC_ITERC: 1989 case BC_ITERC:
1990 dasm_put(Dst, 12901, LJ_TFUNC, 2+1, Dt7(->pc)); 1990 dasm_put(Dst, 12909, LJ_TFUNC, 2+1, Dt7(->pc));
1991 break; 1991 break;
1992 1992
1993 case BC_VARG: 1993 case BC_VARG:
1994 dasm_put(Dst, 12983, Dt7(->pc), PC2PROTO(numparams), (8+FRAME_VARG), LJ_TNIL); 1994 dasm_put(Dst, 12991, Dt7(->pc), PC2PROTO(numparams), (8+FRAME_VARG), LJ_TNIL);
1995 dasm_put(Dst, 13137, Dt1(->maxstack), Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top)); 1995 dasm_put(Dst, 13145, Dt1(->maxstack), Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top));
1996 break; 1996 break;
1997 1997
1998 /* -- Returns ----------------------------------------------------------- */ 1998 /* -- Returns ----------------------------------------------------------- */
1999 1999
2000 case BC_RETM: 2000 case BC_RETM:
2001 dasm_put(Dst, 12668); 2001 dasm_put(Dst, 12676);
2002 break; 2002 break;
2003 2003
2004 case BC_RET: case BC_RET0: case BC_RET1: 2004 case BC_RET: case BC_RET0: case BC_RET1:
2005 if (op != BC_RET0) { 2005 if (op != BC_RET0) {
2006 dasm_put(Dst, 13242); 2006 dasm_put(Dst, 13250);
2007 } 2007 }
2008 dasm_put(Dst, 13246, FRAME_TYPE); 2008 dasm_put(Dst, 13254, FRAME_TYPE);
2009 switch (op) { 2009 switch (op) {
2010 case BC_RET: 2010 case BC_RET:
2011 dasm_put(Dst, 13265); 2011 dasm_put(Dst, 13273);
2012 break; 2012 break;
2013 case BC_RET1: 2013 case BC_RET1:
2014 dasm_put(Dst, 13329); 2014 dasm_put(Dst, 13337);
2015 /* fallthrough */ 2015 /* fallthrough */
2016 case BC_RET0: 2016 case BC_RET0:
2017 dasm_put(Dst, 13345); 2017 dasm_put(Dst, 13353);
2018 default: 2018 default:
2019 break; 2019 break;
2020 } 2020 }
2021 dasm_put(Dst, 13356, Dt7(->pc), PC2PROTO(k)); 2021 dasm_put(Dst, 13364, Dt7(->pc), PC2PROTO(k));
2022 if (op == BC_RET) { 2022 if (op == BC_RET) {
2023 dasm_put(Dst, 13404, LJ_TNIL); 2023 dasm_put(Dst, 13412, LJ_TNIL);
2024 } else { 2024 } else {
2025 dasm_put(Dst, 13415, LJ_TNIL); 2025 dasm_put(Dst, 13423, LJ_TNIL);
2026 } 2026 }
2027 dasm_put(Dst, 13422); 2027 dasm_put(Dst, 13430);
2028 if (op != BC_RET0) { 2028 if (op != BC_RET0) {
2029 dasm_put(Dst, 13442); 2029 dasm_put(Dst, 13450);
2030 } 2030 }
2031 dasm_put(Dst, 4596); 2031 dasm_put(Dst, 4596);
2032 break; 2032 break;
@@ -2036,7 +2036,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2036 2036
2037 case BC_FORL: 2037 case BC_FORL:
2038#if LJ_HASJIT 2038#if LJ_HASJIT
2039 dasm_put(Dst, 13445, HOTCOUNT_PCMASK, GG_DISP2HOT); 2039 dasm_put(Dst, 13453, HOTCOUNT_PCMASK, GG_DISP2HOT);
2040#endif 2040#endif
2041 break; 2041 break;
2042 2042
@@ -2048,57 +2048,57 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2048 case BC_FORI: 2048 case BC_FORI:
2049 case BC_IFORL: 2049 case BC_IFORL:
2050 vk = (op == BC_IFORL || op == BC_JFORL); 2050 vk = (op == BC_IFORL || op == BC_JFORL);
2051 dasm_put(Dst, 13466); 2051 dasm_put(Dst, 13474);
2052 if (!vk) { 2052 if (!vk) {
2053 dasm_put(Dst, 13470, LJ_TISNUM, LJ_TISNUM); 2053 dasm_put(Dst, 13478, LJ_TISNUM, LJ_TISNUM);
2054 } 2054 }
2055 dasm_put(Dst, 13489); 2055 dasm_put(Dst, 13497);
2056 if (!vk) { 2056 if (!vk) {
2057 dasm_put(Dst, 13493, LJ_TISNUM); 2057 dasm_put(Dst, 13501, LJ_TISNUM);
2058 } 2058 }
2059 if (sse) { 2059 if (sse) {
2060 dasm_put(Dst, 13502); 2060 dasm_put(Dst, 13510);
2061 if (vk) { 2061 if (vk) {
2062 dasm_put(Dst, 13514); 2062 dasm_put(Dst, 13522);
2063 } else { 2063 } else {
2064 dasm_put(Dst, 13533); 2064 dasm_put(Dst, 13541);
2065 } 2065 }
2066 dasm_put(Dst, 13538); 2066 dasm_put(Dst, 13546);
2067 } else { 2067 } else {
2068 dasm_put(Dst, 13551); 2068 dasm_put(Dst, 13559);
2069 if (vk) { 2069 if (vk) {
2070 dasm_put(Dst, 13557); 2070 dasm_put(Dst, 13565);
2071 } else { 2071 } else {
2072 dasm_put(Dst, 13573); 2072 dasm_put(Dst, 13581);
2073 } 2073 }
2074 dasm_put(Dst, 13581); 2074 dasm_put(Dst, 13589);
2075 if (cmov) { 2075 if (cmov) {
2076 dasm_put(Dst, 9513); 2076 dasm_put(Dst, 9521);
2077 } else { 2077 } else {
2078 dasm_put(Dst, 9519); 2078 dasm_put(Dst, 9527);
2079 } 2079 }
2080 if (!cmov) { 2080 if (!cmov) {
2081 dasm_put(Dst, 13586); 2081 dasm_put(Dst, 13594);
2082 } 2082 }
2083 } 2083 }
2084 if (op == BC_FORI) { 2084 if (op == BC_FORI) {
2085 dasm_put(Dst, 13592, -BCBIAS_J*4); 2085 dasm_put(Dst, 13600, -BCBIAS_J*4);
2086 } else if (op == BC_JFORI) { 2086 } else if (op == BC_JFORI) {
2087 dasm_put(Dst, 13602, -BCBIAS_J*4, BC_JLOOP); 2087 dasm_put(Dst, 13610, -BCBIAS_J*4, BC_JLOOP);
2088 } else if (op == BC_IFORL) { 2088 } else if (op == BC_IFORL) {
2089 dasm_put(Dst, 13616, -BCBIAS_J*4); 2089 dasm_put(Dst, 13624, -BCBIAS_J*4);
2090 } else { 2090 } else {
2091 dasm_put(Dst, 13612, BC_JLOOP); 2091 dasm_put(Dst, 13620, BC_JLOOP);
2092 } 2092 }
2093 dasm_put(Dst, 9548); 2093 dasm_put(Dst, 9556);
2094 if (sse) { 2094 if (sse) {
2095 dasm_put(Dst, 13626); 2095 dasm_put(Dst, 13634);
2096 } 2096 }
2097 break; 2097 break;
2098 2098
2099 case BC_ITERL: 2099 case BC_ITERL:
2100#if LJ_HASJIT 2100#if LJ_HASJIT
2101 dasm_put(Dst, 13445, HOTCOUNT_PCMASK, GG_DISP2HOT); 2101 dasm_put(Dst, 13453, HOTCOUNT_PCMASK, GG_DISP2HOT);
2102#endif 2102#endif
2103 break; 2103 break;
2104 2104
@@ -2107,33 +2107,33 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2107 break; 2107 break;
2108#endif 2108#endif
2109 case BC_IITERL: 2109 case BC_IITERL:
2110 dasm_put(Dst, 13637, LJ_TNIL); 2110 dasm_put(Dst, 13645, LJ_TNIL);
2111 if (op == BC_JITERL) { 2111 if (op == BC_JITERL) {
2112 dasm_put(Dst, 13652, BC_JLOOP); 2112 dasm_put(Dst, 13660, BC_JLOOP);
2113 } else { 2113 } else {
2114 dasm_put(Dst, 13666, -BCBIAS_J*4); 2114 dasm_put(Dst, 13674, -BCBIAS_J*4);
2115 } 2115 }
2116 dasm_put(Dst, 9852); 2116 dasm_put(Dst, 9860);
2117 break; 2117 break;
2118 2118
2119 case BC_LOOP: 2119 case BC_LOOP:
2120#if LJ_HASJIT 2120#if LJ_HASJIT
2121 dasm_put(Dst, 13445, HOTCOUNT_PCMASK, GG_DISP2HOT); 2121 dasm_put(Dst, 13453, HOTCOUNT_PCMASK, GG_DISP2HOT);
2122#endif 2122#endif
2123 break; 2123 break;
2124 2124
2125 case BC_ILOOP: 2125 case BC_ILOOP:
2126 dasm_put(Dst, 9550); 2126 dasm_put(Dst, 9558);
2127 break; 2127 break;
2128 2128
2129 case BC_JLOOP: 2129 case BC_JLOOP:
2130#if LJ_HASJIT 2130#if LJ_HASJIT
2131 dasm_put(Dst, 13682, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L)); 2131 dasm_put(Dst, 13690, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L));
2132#endif 2132#endif
2133 break; 2133 break;
2134 2134
2135 case BC_JMP: 2135 case BC_JMP:
2136 dasm_put(Dst, 13723, -BCBIAS_J*4); 2136 dasm_put(Dst, 13731, -BCBIAS_J*4);
2137 break; 2137 break;
2138 2138
2139 /* -- Function headers -------------------------------------------------- */ 2139 /* -- Function headers -------------------------------------------------- */
@@ -2147,7 +2147,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2147 2147
2148 case BC_FUNCF: 2148 case BC_FUNCF:
2149#if LJ_HASJIT 2149#if LJ_HASJIT
2150 dasm_put(Dst, 13749, HOTCOUNT_PCMASK, GG_DISP2HOT); 2150 dasm_put(Dst, 13757, HOTCOUNT_PCMASK, GG_DISP2HOT);
2151#endif 2151#endif
2152 case BC_FUNCV: /* NYI: compiled vararg functions. */ 2152 case BC_FUNCV: /* NYI: compiled vararg functions. */
2153 break; 2153 break;
@@ -2157,47 +2157,47 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2157 break; 2157 break;
2158#endif 2158#endif
2159 case BC_IFUNCF: 2159 case BC_IFUNCF:
2160 dasm_put(Dst, 13770, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams)); 2160 dasm_put(Dst, 13778, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams));
2161 if (op == BC_JFUNCF) { 2161 if (op == BC_JFUNCF) {
2162 dasm_put(Dst, 13801, BC_JLOOP); 2162 dasm_put(Dst, 13809, BC_JLOOP);
2163 } else { 2163 } else {
2164 dasm_put(Dst, 9550); 2164 dasm_put(Dst, 9558);
2165 } 2165 }
2166 dasm_put(Dst, 13810, LJ_TNIL); 2166 dasm_put(Dst, 13818, LJ_TNIL);
2167 break; 2167 break;
2168 2168
2169 case BC_JFUNCV: 2169 case BC_JFUNCV:
2170#if !LJ_HASJIT 2170#if !LJ_HASJIT
2171 break; 2171 break;
2172#endif 2172#endif
2173 dasm_put(Dst, 9245); 2173 dasm_put(Dst, 9253);
2174 break; /* NYI: compiled vararg functions. */ 2174 break; /* NYI: compiled vararg functions. */
2175 2175
2176 case BC_IFUNCV: 2176 case BC_IFUNCV:
2177 dasm_put(Dst, 13832, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL); 2177 dasm_put(Dst, 13840, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL);
2178 if (op == BC_JFUNCV) { 2178 if (op == BC_JFUNCV) {
2179 dasm_put(Dst, 13801, BC_JLOOP); 2179 dasm_put(Dst, 13809, BC_JLOOP);
2180 } else { 2180 } else {
2181 dasm_put(Dst, 13929, -4+PC2PROTO(k)); 2181 dasm_put(Dst, 13937, -4+PC2PROTO(k));
2182 } 2182 }
2183 dasm_put(Dst, 13954, LJ_TNIL); 2183 dasm_put(Dst, 13962, LJ_TNIL);
2184 break; 2184 break;
2185 2185
2186 case BC_FUNCC: 2186 case BC_FUNCC:
2187 case BC_FUNCCW: 2187 case BC_FUNCCW:
2188 dasm_put(Dst, 13976, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top)); 2188 dasm_put(Dst, 13984, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top));
2189 if (op == BC_FUNCC) { 2189 if (op == BC_FUNCC) {
2190 dasm_put(Dst, 14006); 2190 dasm_put(Dst, 14014);
2191 } else { 2191 } else {
2192 dasm_put(Dst, 14010); 2192 dasm_put(Dst, 14018);
2193 } 2193 }
2194 dasm_put(Dst, 14018, DISPATCH_GL(vmstate), ~LJ_VMST_C); 2194 dasm_put(Dst, 14026, DISPATCH_GL(vmstate), ~LJ_VMST_C);
2195 if (op == BC_FUNCC) { 2195 if (op == BC_FUNCC) {
2196 dasm_put(Dst, 14028); 2196 dasm_put(Dst, 14036);
2197 } else { 2197 } else {
2198 dasm_put(Dst, 14033, DISPATCH_GL(wrapf)); 2198 dasm_put(Dst, 14041, DISPATCH_GL(wrapf));
2199 } 2199 }
2200 dasm_put(Dst, 14039, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top)); 2200 dasm_put(Dst, 14047, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top));
2201 break; 2201 break;
2202 2202
2203 /* ---------------------------------------------------------------------- */ 2203 /* ---------------------------------------------------------------------- */
@@ -2225,7 +2225,7 @@ static int build_backend(BuildCtx *ctx)
2225 2225
2226 build_subroutines(ctx, cmov, sse); 2226 build_subroutines(ctx, cmov, sse);
2227 2227
2228 dasm_put(Dst, 14065); 2228 dasm_put(Dst, 14073);
2229 for (op = 0; op < BC__MAX; op++) 2229 for (op = 0; op < BC__MAX; op++)
2230 build_ins(ctx, (BCOp)op, op, cmov, sse); 2230 build_ins(ctx, (BCOp)op, op, cmov, sse);
2231 2231
diff --git a/src/buildvm_x64win.h b/src/buildvm_x64win.h
index b5cc4679..e1b243f4 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[14016] = { 15static const unsigned char build_actionlist[14023] = {
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,
@@ -376,288 +376,288 @@ static const unsigned char build_actionlist[14016] = {
376 15,17,77,200,252,242,68,15,17,69,192,252,242,15,17,125,184,252,242,15,17, 376 15,17,77,200,252,242,68,15,17,69,192,252,242,15,17,125,184,252,242,15,17,
377 117,176,252,242,15,17,109,168,252,242,15,17,101,160,252,242,15,17,93,152, 377 117,176,252,242,15,17,109,168,252,242,15,17,101,160,252,242,15,17,93,152,
378 252,242,15,17,85,144,252,242,15,17,77,136,252,242,15,17,69,128,139,171,233, 378 252,242,15,17,85,144,252,242,15,17,77,136,252,242,15,17,69,128,139,171,233,
379 139,147,233,72,137,171,233,137,149,233,72,141,148,253,36,233,141,139,233, 379 139,147,233,72,137,171,233,199,131,233,0,0,0,0,137,149,233,72,141,148,253,
380 232,251,1,23,72,139,141,233,72,129,225,239,137,169,233,139,149,233,139,177, 380 36,233,141,139,233,232,251,1,23,72,139,141,233,72,129,225,239,137,169,233,
381 233,252,233,244,247,255,248,144,255,72,141,140,253,36,233,248,1,102,68,15, 381 139,149,233,139,177,233,252,233,244,247,255,248,144,255,72,141,140,253,36,
382 111,185,233,102,68,15,111,177,233,102,68,15,111,169,233,102,68,15,111,161, 382 233,248,1,102,68,15,111,185,233,102,68,15,111,177,233,102,68,15,111,169,233,
383 233,102,68,15,111,153,233,102,68,15,111,145,233,102,68,15,111,137,233,102, 383 102,68,15,111,161,233,102,68,15,111,153,233,102,68,15,111,145,233,102,68,
384 68,15,111,129,233,102,15,111,185,233,72,137,204,102,15,111,49,76,139,124, 384 15,111,137,233,102,68,15,111,129,233,102,15,111,185,233,72,137,204,102,15,
385 36,16,76,139,116,36,24,76,139,108,36,32,76,139,100,36,80,133,192,15,136,244, 385 111,49,76,139,124,36,16,76,139,116,36,24,76,139,108,36,32,76,139,100,36,80,
386 249,137,68,36,84,139,122,252,248,139,191,233,139,191,233,199,131,233,0,0, 386 133,192,15,136,244,249,137,68,36,84,139,122,252,248,139,191,233,139,191,233,
387 0,0,199,131,233,237,139,6,15,182,204,15,182,232,131,198,4,193,232,16,129, 387 199,131,233,0,0,0,0,199,131,233,237,139,6,15,182,204,15,182,232,131,198,4,
388 252,253,239,15,130,244,248,255,139,68,36,84,248,2,252,255,36,252,235,248, 388 193,232,16,129,252,253,239,15,130,244,248,255,139,68,36,84,248,2,252,255,
389 3,252,247,216,137,252,233,137,194,232,251,1,24,255,248,82,255,217,124,36, 389 36,252,235,248,3,252,247,216,137,252,233,137,194,232,251,1,24,255,248,82,
390 4,137,68,36,8,102,184,0,4,102,11,68,36,4,102,37,252,255,252,247,102,137,68, 390 255,217,124,36,4,137,68,36,8,102,184,0,4,102,11,68,36,4,102,37,252,255,252,
391 36,6,217,108,36,6,217,252,252,217,108,36,4,139,68,36,8,195,255,248,145,72, 391 247,102,137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,139,68,36,8,195,
392 184,237,237,102,72,15,110,208,72,184,237,237,102,72,15,110,216,15,40,200, 392 255,248,145,72,184,237,237,102,72,15,110,208,72,184,237,237,102,72,15,110,
393 102,15,84,202,102,15,46,217,15,134,244,247,102,15,85,208,252,242,15,88,203, 393 216,15,40,200,102,15,84,202,102,15,46,217,15,134,244,247,102,15,85,208,252,
394 252,242,15,92,203,102,15,86,202,72,184,237,237,102,72,15,110,208,252,242, 394 242,15,88,203,252,242,15,92,203,102,15,86,202,72,184,237,237,102,72,15,110,
395 15,194,193,1,102,15,84,194,252,242,15,92,200,15,40,193,248,1,195,248,84,255, 395 208,252,242,15,194,193,1,102,15,84,194,252,242,15,92,200,15,40,193,248,1,
396 217,124,36,4,137,68,36,8,102,184,0,8,102,11,68,36,4,102,37,252,255,252,251, 396 195,248,84,255,217,124,36,4,137,68,36,8,102,184,0,8,102,11,68,36,4,102,37,
397 102,137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,139,68,36,8,195,255, 397 252,255,252,251,102,137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,139,
398 248,146,72,184,237,237,102,72,15,110,208,72,184,237,237,102,72,15,110,216, 398 68,36,8,195,255,248,146,72,184,237,237,102,72,15,110,208,72,184,237,237,102,
399 15,40,200,102,15,84,202,102,15,46,217,15,134,244,247,102,15,85,208,252,242, 399 72,15,110,216,15,40,200,102,15,84,202,102,15,46,217,15,134,244,247,102,15,
400 15,88,203,252,242,15,92,203,102,15,86,202,72,184,237,237,102,72,15,110,208, 400 85,208,252,242,15,88,203,252,242,15,92,203,102,15,86,202,72,184,237,237,102,
401 252,242,15,194,193,6,102,15,84,194,252,242,15,92,200,15,40,193,248,1,195, 401 72,15,110,208,252,242,15,194,193,6,102,15,84,194,252,242,15,92,200,15,40,
402 248,104,255,217,124,36,4,137,68,36,8,102,184,0,12,102,11,68,36,4,102,137, 402 193,248,1,195,248,104,255,217,124,36,4,137,68,36,8,102,184,0,12,102,11,68,
403 68,36,6,217,108,36,6,217,252,252,217,108,36,4,139,68,36,8,195,255,248,147, 403 36,4,102,137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,139,68,36,8,195,
404 72,184,237,237,102,72,15,110,208,72,184,237,237,102,72,15,110,216,15,40,200, 404 255,248,147,72,184,237,237,102,72,15,110,208,72,184,237,237,102,72,15,110,
405 102,15,84,202,102,15,46,217,15,134,244,247,102,15,85,208,15,40,193,252,242, 405 216,15,40,200,102,15,84,202,102,15,46,217,15,134,244,247,102,15,85,208,15,
406 15,88,203,252,242,15,92,203,72,184,237,237,102,72,15,110,216,252,242,15,194, 406 40,193,252,242,15,88,203,252,242,15,92,203,72,184,237,237,102,72,15,110,216,
407 193,1,102,15,84,195,252,242,15,92,200,102,15,86,202,15,40,193,248,1,195,248, 407 252,242,15,194,193,1,102,15,84,195,252,242,15,92,200,102,15,86,202,15,40,
408 148,255,15,40,232,252,242,15,94,193,72,184,237,237,102,72,15,110,208,72,184, 408 193,248,1,195,248,148,255,15,40,232,252,242,15,94,193,72,184,237,237,102,
409 237,237,102,72,15,110,216,15,40,224,102,15,84,226,102,15,46,220,15,134,244, 409 72,15,110,208,72,184,237,237,102,72,15,110,216,15,40,224,102,15,84,226,102,
410 247,102,15,85,208,252,242,15,88,227,252,242,15,92,227,102,15,86,226,72,184, 410 15,46,220,15,134,244,247,102,15,85,208,252,242,15,88,227,252,242,15,92,227,
411 237,237,102,72,15,110,208,252,242,15,194,196,1,102,15,84,194,252,242,15,92, 411 102,15,86,226,72,184,237,237,102,72,15,110,208,252,242,15,194,196,1,102,15,
412 224,15,40,197,252,242,15,89,204,252,242,15,92,193,195,248,1,252,242,15,89, 412 84,194,252,242,15,92,224,15,40,197,252,242,15,89,204,252,242,15,92,193,195,
413 200,15,40,197,252,242,15,92,193,195,255,217,193,216,252,241,217,124,36,4, 413 248,1,252,242,15,89,200,15,40,197,252,242,15,92,193,195,255,217,193,216,252,
414 102,184,0,4,102,11,68,36,4,102,37,252,255,252,247,102,137,68,36,6,217,108, 414 241,217,124,36,4,102,184,0,4,102,11,68,36,4,102,37,252,255,252,247,102,137,
415 36,6,217,252,252,217,108,36,4,222,201,222,252,233,195,255,248,88,217,252, 415 68,36,6,217,108,36,6,217,252,252,217,108,36,4,222,201,222,252,233,195,255,
416 234,222,201,248,149,217,84,36,8,129,124,36,8,0,0,128,127,15,132,244,247,129, 416 248,88,217,252,234,222,201,248,149,217,84,36,8,129,124,36,8,0,0,128,127,15,
417 124,36,8,0,0,128,252,255,15,132,244,248,248,150,217,192,217,252,252,220,252, 417 132,244,247,129,124,36,8,0,0,128,252,255,15,132,244,248,248,150,217,192,217,
418 233,217,201,217,252,240,217,232,222,193,217,252,253,221,217,248,1,195,248, 418 252,252,220,252,233,217,201,217,252,240,217,232,222,193,217,252,253,221,217,
419 2,221,216,217,252,238,195,255,248,107,255,248,151,252,242,15,45,193,252,242, 419 248,1,195,248,2,221,216,217,252,238,195,255,248,107,255,248,151,252,242,15,
420 15,42,208,102,15,46,202,15,133,244,254,15,138,244,255,248,152,131,252,248, 420 45,193,252,242,15,42,208,102,15,46,202,15,133,244,254,15,138,244,255,248,
421 1,15,142,244,252,248,1,169,1,0,0,0,15,133,244,248,252,242,15,89,192,209,232, 421 152,131,252,248,1,15,142,244,252,248,1,169,1,0,0,0,15,133,244,248,252,242,
422 252,233,244,1,248,2,209,232,15,132,244,251,15,40,200,248,3,252,242,15,89, 422 15,89,192,209,232,252,233,244,1,248,2,209,232,15,132,244,251,15,40,200,248,
423 192,209,232,15,132,244,250,15,131,244,3,255,252,242,15,89,200,252,233,244, 423 3,252,242,15,89,192,209,232,15,132,244,250,15,131,244,3,255,252,242,15,89,
424 3,248,4,252,242,15,89,193,248,5,195,248,6,15,132,244,5,15,130,244,253,80, 424 200,252,233,244,3,248,4,252,242,15,89,193,248,5,195,248,6,15,132,244,5,15,
425 72,184,237,237,102,72,15,110,200,252,242,15,94,200,88,15,40,193,252,247,216, 425 130,244,253,80,72,184,237,237,102,72,15,110,200,252,242,15,94,200,88,15,40,
426 131,252,248,1,15,132,244,5,252,233,244,1,248,7,72,184,237,237,102,72,15,110, 426 193,252,247,216,131,252,248,1,15,132,244,5,252,233,244,1,248,7,72,184,237,
427 192,195,248,8,102,72,15,126,200,72,209,224,72,193,192,12,72,61,252,254,15, 427 237,102,72,15,110,192,195,248,8,102,72,15,126,200,72,209,224,72,193,192,12,
428 0,0,15,132,244,248,255,102,72,15,126,192,72,209,224,15,132,244,250,72,193, 428 72,61,252,254,15,0,0,15,132,244,248,255,102,72,15,126,192,72,209,224,15,132,
429 192,12,72,61,252,254,15,0,0,15,132,244,251,252,242,15,17,76,36,16,252,242, 429 244,250,72,193,192,12,72,61,252,254,15,0,0,15,132,244,251,252,242,15,17,76,
430 15,17,68,36,8,221,68,36,16,221,68,36,8,217,252,241,217,192,217,252,252,220, 430 36,16,252,242,15,17,68,36,8,221,68,36,16,221,68,36,8,217,252,241,217,192,
431 252,233,217,201,217,252,240,217,232,222,193,217,252,253,221,217,221,92,36, 431 217,252,252,220,252,233,217,201,217,252,240,217,232,222,193,217,252,253,221,
432 8,252,242,15,16,68,36,8,195,248,9,72,184,237,237,102,72,15,110,208,102,15, 432 217,221,92,36,8,252,242,15,16,68,36,8,195,248,9,72,184,237,237,102,72,15,
433 46,194,15,132,244,247,15,40,193,248,1,195,248,2,72,184,237,237,102,72,15, 433 110,208,102,15,46,194,15,132,244,247,15,40,193,248,1,195,248,2,72,184,237,
434 110,208,102,15,84,194,72,184,237,237,102,72,15,110,208,102,15,46,194,15,132, 434 237,102,72,15,110,208,102,15,84,194,72,184,237,237,102,72,15,110,208,102,
435 244,1,102,15,80,193,15,87,192,136,196,15,146,208,48,224,15,133,244,1,248, 435 15,46,194,15,132,244,1,102,15,80,193,15,87,192,136,196,15,146,208,48,224,
436 3,72,184,237,237,255,102,72,15,110,192,195,248,4,102,15,80,193,133,192,15, 436 15,133,244,1,248,3,72,184,237,237,255,102,72,15,110,192,195,248,4,102,15,
437 133,244,3,15,87,192,195,248,5,102,15,80,193,133,192,15,132,244,3,15,87,192, 437 80,193,133,192,15,133,244,3,15,87,192,195,248,5,102,15,80,193,133,192,15,
438 195,248,153,255,131,252,250,1,15,130,244,82,15,132,244,84,131,252,250,3,15, 438 132,244,3,15,87,192,195,248,153,255,131,252,250,1,15,130,244,82,15,132,244,
439 130,244,104,15,135,244,248,252,242,15,81,192,195,248,2,252,242,15,17,68,36, 439 84,131,252,250,3,15,130,244,104,15,135,244,248,252,242,15,81,192,195,248,
440 8,221,68,36,8,131,252,250,5,15,135,244,248,88,15,132,244,247,232,244,88,80, 440 2,252,242,15,17,68,36,8,221,68,36,8,131,252,250,5,15,135,244,248,88,15,132,
441 252,233,244,253,248,1,232,244,149,255,80,252,233,244,253,248,2,131,252,250, 441 244,247,232,244,88,80,252,233,244,253,248,1,232,244,149,255,80,252,233,244,
442 7,15,132,244,247,15,135,244,248,217,252,237,217,201,217,252,241,252,233,244, 442 253,248,2,131,252,250,7,15,132,244,247,15,135,244,248,217,252,237,217,201,
443 253,248,1,217,232,217,201,217,252,241,252,233,244,253,248,2,131,252,250,9, 443 217,252,241,252,233,244,253,248,1,217,232,217,201,217,252,241,252,233,244,
444 15,132,244,247,15,135,244,248,217,252,236,217,201,217,252,241,252,233,244, 444 253,248,2,131,252,250,9,15,132,244,247,15,135,244,248,217,252,236,217,201,
445 253,248,1,255,217,252,254,252,233,244,253,248,2,131,252,250,11,15,132,244, 445 217,252,241,252,233,244,253,248,1,255,217,252,254,252,233,244,253,248,2,131,
446 247,15,135,244,255,217,252,255,252,233,244,253,248,1,217,252,242,221,216, 446 252,250,11,15,132,244,247,15,135,244,255,217,252,255,252,233,244,253,248,
447 248,7,221,92,36,8,252,242,15,16,68,36,8,195,255,139,84,36,12,221,68,36,4, 447 1,217,252,242,221,216,248,7,221,92,36,8,252,242,15,16,68,36,8,195,255,139,
448 131,252,250,1,15,130,244,82,15,132,244,84,131,252,250,3,15,130,244,104,15, 448 84,36,12,221,68,36,4,131,252,250,1,15,130,244,82,15,132,244,84,131,252,250,
449 135,244,248,217,252,250,195,248,2,131,252,250,5,15,130,244,88,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,
450 149,131,252,250,7,15,132,244,247,15,135,244,248,217,252,237,217,201,217,252, 450 244,88,15,132,244,149,131,252,250,7,15,132,244,247,15,135,244,248,217,252,
451 241,195,248,1,217,232,217,201,217,252,241,195,248,2,131,252,250,9,15,132, 451 237,217,201,217,252,241,195,248,1,217,232,217,201,217,252,241,195,248,2,131,
452 244,247,255,15,135,244,248,217,252,236,217,201,217,252,241,195,248,1,217, 452 252,250,9,15,132,244,247,255,15,135,244,248,217,252,236,217,201,217,252,241,
453 252,254,195,248,2,131,252,250,11,15,132,244,247,15,135,244,255,217,252,255, 453 195,248,1,217,252,254,195,248,2,131,252,250,11,15,132,244,247,15,135,244,
454 195,248,1,217,252,242,221,216,195,255,248,9,204,248,154,255,65,131,252,248, 454 255,217,252,255,195,248,1,217,252,242,221,216,195,255,248,9,204,248,154,255,
455 1,15,132,244,247,15,135,244,248,252,242,15,88,193,195,248,1,252,242,15,92, 455 65,131,252,248,1,15,132,244,247,15,135,244,248,252,242,15,88,193,195,248,
456 193,195,248,2,65,131,252,248,3,15,132,244,247,15,135,244,248,252,242,15,89, 456 1,252,242,15,92,193,195,248,2,65,131,252,248,3,15,132,244,247,15,135,244,
457 193,195,248,1,252,242,15,94,193,195,248,2,65,131,252,248,5,15,130,244,148, 457 248,252,242,15,89,193,195,248,1,252,242,15,94,193,195,248,2,65,131,252,248,
458 15,132,244,107,65,131,252,248,7,15,132,244,247,15,135,244,248,72,184,237, 458 5,15,130,244,148,15,132,244,107,65,131,252,248,7,15,132,244,247,15,135,244,
459 237,255,102,72,15,110,200,15,87,193,195,248,1,72,184,237,237,102,72,15,110, 459 248,72,184,237,237,255,102,72,15,110,200,15,87,193,195,248,1,72,184,237,237,
460 200,15,84,193,195,248,2,65,131,252,248,9,15,135,244,248,252,242,15,17,68, 460 102,72,15,110,200,15,84,193,195,248,2,65,131,252,248,9,15,135,244,248,252,
461 36,8,252,242,15,17,76,36,16,221,68,36,8,221,68,36,16,15,132,244,247,217,252, 461 242,15,17,68,36,8,252,242,15,17,76,36,16,221,68,36,8,221,68,36,16,15,132,
462 243,248,7,221,92,36,8,252,242,15,16,68,36,8,195,248,1,217,201,217,252,253, 462 244,247,217,252,243,248,7,221,92,36,8,252,242,15,16,68,36,8,195,248,1,217,
463 221,217,252,233,244,7,248,2,65,131,252,248,11,15,132,244,247,15,135,244,255, 463 201,217,252,253,221,217,252,233,244,7,248,2,65,131,252,248,11,15,132,244,
464 252,242,15,93,193,195,248,1,252,242,15,95,193,195,248,9,204,255,139,68,36, 464 247,15,135,244,255,252,242,15,93,193,195,248,1,252,242,15,95,193,195,248,
465 20,221,68,36,4,221,68,36,12,131,252,248,1,15,132,244,247,15,135,244,248,222, 465 9,204,255,139,68,36,20,221,68,36,4,221,68,36,12,131,252,248,1,15,132,244,
466 193,195,248,1,222,252,233,195,248,2,131,252,248,3,15,132,244,247,15,135,244, 466 247,15,135,244,248,222,193,195,248,1,222,252,233,195,248,2,131,252,248,3,
467 248,222,201,195,248,1,222,252,249,195,248,2,131,252,248,5,15,130,244,148, 467 15,132,244,247,15,135,244,248,222,201,195,248,1,222,252,249,195,248,2,131,
468 15,132,244,107,131,252,248,7,15,132,244,247,15,135,244,248,255,221,216,217, 468 252,248,5,15,130,244,148,15,132,244,107,131,252,248,7,15,132,244,247,15,135,
469 224,195,248,1,221,216,217,225,195,248,2,131,252,248,9,15,132,244,247,15,135, 469 244,248,255,221,216,217,224,195,248,1,221,216,217,225,195,248,2,131,252,248,
470 244,248,217,252,243,195,248,1,217,201,217,252,253,221,217,195,248,2,131,252, 470 9,15,132,244,247,15,135,244,248,217,252,243,195,248,1,217,201,217,252,253,
471 248,11,15,132,244,247,15,135,244,255,255,219,252,233,219,209,221,217,195, 471 221,217,195,248,2,131,252,248,11,15,132,244,247,15,135,244,255,255,219,252,
472 248,1,219,252,233,218,209,221,217,195,255,221,225,223,224,252,246,196,1,15, 472 233,219,209,221,217,195,248,1,219,252,233,218,209,221,217,195,255,221,225,
473 132,244,248,217,201,248,2,221,216,195,248,1,221,225,223,224,252,246,196,1, 473 223,224,252,246,196,1,15,132,244,248,217,201,248,2,221,216,195,248,1,221,
474 15,133,244,248,217,201,248,2,221,216,195,255,248,155,137,200,86,72,137,214, 474 225,223,224,252,246,196,1,15,133,244,248,217,201,248,2,221,216,195,255,248,
475 83,15,162,137,6,137,94,4,137,78,8,137,86,12,91,94,195,255,129,124,253,202, 475 155,137,200,86,72,137,214,83,15,162,137,6,137,94,4,137,78,8,137,86,12,91,
476 4,239,15,135,244,41,129,124,253,194,4,239,15,135,244,41,255,252,242,15,16, 476 94,195,255,129,124,253,202,4,239,15,135,244,41,129,124,253,194,4,239,15,135,
477 4,194,131,198,4,102,15,46,4,202,255,221,4,202,221,4,194,131,198,4,255,223, 477 244,41,255,252,242,15,16,4,194,131,198,4,102,15,46,4,202,255,221,4,202,221,
478 252,233,221,216,255,218,252,233,223,224,158,255,15,134,244,248,255,15,131, 478 4,194,131,198,4,255,223,252,233,221,216,255,218,252,233,223,224,158,255,15,
479 244,248,255,248,1,15,183,70,252,254,141,180,253,134,233,248,2,139,6,15,182, 479 134,244,248,255,15,131,244,248,255,248,1,15,183,70,252,254,141,180,253,134,
480 204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,139,108,194,4, 480 233,248,2,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,
481 131,198,4,129,252,253,239,15,135,244,251,129,124,253,202,4,239,15,135,244, 481 235,255,139,108,194,4,131,198,4,129,252,253,239,15,135,244,251,129,124,253,
482 251,255,252,242,15,16,4,194,102,15,46,4,202,255,221,4,202,221,4,194,255,15, 482 202,4,239,15,135,244,251,255,252,242,15,16,4,194,102,15,46,4,202,255,221,
483 138,244,248,15,133,244,248,255,15,138,244,248,15,132,244,247,255,248,1,15, 483 4,202,221,4,194,255,15,138,244,248,15,133,244,248,255,15,138,244,248,15,132,
484 183,70,252,254,141,180,253,134,233,248,2,255,248,2,15,183,70,252,254,141, 484 244,247,255,248,1,15,183,70,252,254,141,180,253,134,233,248,2,255,248,2,15,
485 180,253,134,233,248,1,255,248,5,57,108,202,4,15,133,244,2,129,252,253,239, 485 183,70,252,254,141,180,253,134,233,248,1,255,248,5,57,108,202,4,15,133,244,
486 15,131,244,1,139,12,202,139,4,194,57,193,15,132,244,1,129,252,253,239,15, 486 2,129,252,253,239,15,131,244,1,139,12,202,139,4,194,57,193,15,132,244,1,129,
487 135,244,2,139,169,233,133,252,237,15,132,244,2,252,246,133,233,235,15,133, 487 252,253,239,15,135,244,2,139,169,233,133,252,237,15,132,244,2,252,246,133,
488 244,2,255,49,252,237,255,189,1,0,0,0,255,252,233,244,45,255,72,252,247,208, 488 233,235,15,133,244,2,255,49,252,237,255,189,1,0,0,0,255,252,233,244,45,255,
489 131,198,4,129,124,253,202,4,239,15,133,244,248,139,12,202,59,12,135,255,131, 489 72,252,247,208,131,198,4,129,124,253,202,4,239,15,133,244,248,139,12,202,
490 198,4,129,124,253,202,4,239,15,135,244,248,255,252,242,15,16,4,199,102,15, 490 59,12,135,255,131,198,4,129,124,253,202,4,239,15,135,244,248,255,252,242,
491 46,4,202,255,221,4,202,221,4,199,255,72,252,247,208,131,198,4,57,68,202,4, 491 15,16,4,199,102,15,46,4,202,255,221,4,202,221,4,199,255,72,252,247,208,131,
492 255,139,108,194,4,131,198,4,129,252,253,239,255,15,131,244,247,255,15,130, 492 198,4,57,68,202,4,255,139,108,194,4,131,198,4,129,252,253,239,255,15,131,
493 244,247,255,137,108,202,4,139,44,194,137,44,202,255,15,183,70,252,254,141, 493 244,247,255,15,130,244,247,255,137,108,202,4,139,44,194,137,44,202,255,15,
494 180,253,134,233,248,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252, 494 183,70,252,254,141,180,253,134,233,248,1,139,6,15,182,204,15,182,232,131,
495 255,36,252,235,255,139,108,194,4,139,4,194,137,108,202,4,137,4,202,139,6, 495 198,4,193,232,16,252,255,36,252,235,255,139,108,194,4,139,4,194,137,108,202,
496 15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,49,252, 496 4,137,4,202,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,
497 237,129,124,253,194,4,239,129,213,239,137,108,202,4,139,6,15,182,204,15,182, 497 235,255,49,252,237,129,124,253,194,4,239,129,213,239,137,108,202,4,139,6,
498 232,131,198,4,193,232,16,252,255,36,252,235,255,129,124,253,194,4,239,15, 498 15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,129,124,
499 135,244,48,255,252,242,15,16,4,194,72,184,237,237,102,72,15,110,200,15,87, 499 253,194,4,239,15,135,244,48,255,252,242,15,16,4,194,72,184,237,237,102,72,
500 193,252,242,15,17,4,202,255,221,4,194,217,224,221,28,202,255,129,124,253, 500 15,110,200,15,87,193,252,242,15,17,4,202,255,221,4,194,217,224,221,28,202,
501 194,4,239,15,133,244,248,139,4,194,255,15,87,192,252,242,15,42,128,233,248, 501 255,129,124,253,194,4,239,15,133,244,248,139,4,194,255,15,87,192,252,242,
502 1,252,242,15,17,4,202,255,219,128,233,248,1,221,28,202,255,139,6,15,182,204, 502 15,42,128,233,248,1,252,242,15,17,4,202,255,219,128,233,248,1,221,28,202,
503 15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,2,129,124,253,194, 503 255,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,
504 4,239,15,133,244,50,139,12,194,137,213,232,251,1,18,255,252,242,15,42,192, 504 2,129,124,253,194,4,239,15,133,244,50,139,12,194,137,213,232,251,1,18,255,
505 137,252,234,255,15,182,78,252,253,252,233,244,1,255,15,182,252,236,15,182, 505 252,242,15,42,192,137,252,234,255,15,182,78,252,253,252,233,244,1,255,15,
506 192,255,129,124,253,252,234,4,239,15,135,244,46,255,252,242,15,16,4,252,234, 506 182,252,236,15,182,192,255,129,124,253,252,234,4,239,15,135,244,46,255,252,
507 252,242,15,88,4,199,255,221,4,252,234,220,4,199,255,129,124,253,252,234,4, 507 242,15,16,4,252,234,252,242,15,88,4,199,255,221,4,252,234,220,4,199,255,129,
508 239,15,135,244,47,255,252,242,15,16,4,199,252,242,15,88,4,252,234,255,221, 508 124,253,252,234,4,239,15,135,244,47,255,252,242,15,16,4,199,252,242,15,88,
509 4,199,220,4,252,234,255,129,124,253,252,234,4,239,15,135,244,49,129,124,253, 509 4,252,234,255,221,4,199,220,4,252,234,255,129,124,253,252,234,4,239,15,135,
510 194,4,239,15,135,244,49,255,252,242,15,16,4,252,234,252,242,15,88,4,194,255, 510 244,49,129,124,253,194,4,239,15,135,244,49,255,252,242,15,16,4,252,234,252,
511 221,4,252,234,220,4,194,255,252,242,15,16,4,252,234,252,242,15,92,4,199,255, 511 242,15,88,4,194,255,221,4,252,234,220,4,194,255,252,242,15,16,4,252,234,252,
512 221,4,252,234,220,36,199,255,252,242,15,16,4,199,252,242,15,92,4,252,234, 512 242,15,92,4,199,255,221,4,252,234,220,36,199,255,252,242,15,16,4,199,252,
513 255,221,4,199,220,36,252,234,255,252,242,15,16,4,252,234,252,242,15,92,4, 513 242,15,92,4,252,234,255,221,4,199,220,36,252,234,255,252,242,15,16,4,252,
514 194,255,221,4,252,234,220,36,194,255,252,242,15,16,4,252,234,252,242,15,89, 514 234,252,242,15,92,4,194,255,221,4,252,234,220,36,194,255,252,242,15,16,4,
515 4,199,255,221,4,252,234,220,12,199,255,252,242,15,16,4,199,252,242,15,89, 515 252,234,252,242,15,89,4,199,255,221,4,252,234,220,12,199,255,252,242,15,16,
516 4,252,234,255,221,4,199,220,12,252,234,255,252,242,15,16,4,252,234,252,242, 516 4,199,252,242,15,89,4,252,234,255,221,4,199,220,12,252,234,255,252,242,15,
517 15,89,4,194,255,221,4,252,234,220,12,194,255,252,242,15,16,4,252,234,252, 517 16,4,252,234,252,242,15,89,4,194,255,221,4,252,234,220,12,194,255,252,242,
518 242,15,94,4,199,255,221,4,252,234,220,52,199,255,252,242,15,16,4,199,252, 518 15,16,4,252,234,252,242,15,94,4,199,255,221,4,252,234,220,52,199,255,252,
519 242,15,94,4,252,234,255,221,4,199,220,52,252,234,255,252,242,15,16,4,252, 519 242,15,16,4,199,252,242,15,94,4,252,234,255,221,4,199,220,52,252,234,255,
520 234,252,242,15,94,4,194,255,221,4,252,234,220,52,194,255,252,242,15,16,4, 520 252,242,15,16,4,252,234,252,242,15,94,4,194,255,221,4,252,234,220,52,194,
521 252,234,252,242,15,16,12,199,255,221,4,252,234,221,4,199,255,252,242,15,16, 521 255,252,242,15,16,4,252,234,252,242,15,16,12,199,255,221,4,252,234,221,4,
522 4,199,252,242,15,16,12,252,234,255,221,4,199,221,4,252,234,255,252,242,15, 522 199,255,252,242,15,16,4,199,252,242,15,16,12,252,234,255,221,4,199,221,4,
523 16,4,252,234,252,242,15,16,12,194,255,221,4,252,234,221,4,194,255,248,156, 523 252,234,255,252,242,15,16,4,252,234,252,242,15,16,12,194,255,221,4,252,234,
524 232,244,148,255,252,233,244,156,255,232,244,107,255,15,182,252,236,15,182, 524 221,4,194,255,248,156,232,244,148,255,252,233,244,156,255,232,244,107,255,
525 192,139,76,36,96,137,145,233,141,20,194,65,137,192,65,41,232,248,33,137,205, 525 15,182,252,236,15,182,192,139,76,36,96,137,145,233,141,20,194,65,137,192,
526 137,116,36,100,232,251,1,25,139,149,233,133,192,15,133,244,42,15,182,110, 526 65,41,232,248,33,137,205,137,116,36,100,232,251,1,25,139,149,233,133,192,
527 252,255,15,182,78,252,253,139,68,252,234,4,139,44,252,234,137,68,202,4,137, 527 15,133,244,42,15,182,110,252,255,15,182,78,252,253,139,68,252,234,4,139,44,
528 44,202,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235, 528 252,234,137,68,202,4,137,44,202,139,6,15,182,204,15,182,232,131,198,4,193,
529 255,72,252,247,208,139,4,135,199,68,202,4,237,137,4,202,139,6,15,182,204, 529 232,16,252,255,36,252,235,255,72,252,247,208,139,4,135,199,68,202,4,237,137,
530 15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,15,191,192,252,242, 530 4,202,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,
531 15,42,192,252,242,15,17,4,202,255,223,70,252,254,221,28,202,255,252,242,15, 531 255,15,191,192,252,242,15,42,192,252,242,15,17,4,202,255,223,70,252,254,221,
532 16,4,199,252,242,15,17,4,202,255,221,4,199,221,28,202,255,72,252,247,208, 532 28,202,255,252,242,15,16,4,199,252,242,15,17,4,202,255,221,4,199,221,28,202,
533 137,68,202,4,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36, 533 255,72,252,247,208,137,68,202,4,139,6,15,182,204,15,182,232,131,198,4,193,
534 252,235,255,141,76,202,12,141,68,194,4,189,237,137,105,252,248,248,1,137, 534 232,16,252,255,36,252,235,255,141,76,202,12,141,68,194,4,189,237,137,105,
535 41,131,193,8,57,193,15,134,244,1,139,6,15,182,204,15,182,232,131,198,4,193, 535 252,248,248,1,137,41,131,193,8,57,193,15,134,244,1,139,6,15,182,204,15,182,
536 232,16,252,255,36,252,235,255,139,106,252,248,139,172,253,133,233,139,173, 536 232,131,198,4,193,232,16,252,255,36,252,235,255,139,106,252,248,139,172,253,
537 233,139,69,4,139,109,0,137,68,202,4,137,44,202,139,6,15,182,204,15,182,232, 537 133,233,139,173,233,139,69,4,139,109,0,137,68,202,4,137,44,202,139,6,15,182,
538 131,198,4,193,232,16,252,255,36,252,235,255,139,106,252,248,139,172,253,141, 538 204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,139,106,252,248,
539 233,128,189,233,0,139,173,233,139,12,194,139,68,194,4,137,77,0,137,69,4,15, 539 139,172,253,141,233,128,189,233,0,139,173,233,139,12,194,139,68,194,4,137,
540 132,244,247,252,246,133,233,235,15,133,244,248,248,1,139,6,15,182,204,15, 540 77,0,137,69,4,15,132,244,247,252,246,133,233,235,15,133,244,248,248,1,139,
541 182,232,131,198,4,193,232,16,252,255,36,252,235,248,2,129,232,239,129,252, 541 6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,2,129,
542 248,239,15,134,244,1,252,246,129,233,235,15,132,244,1,135,213,141,139,233, 542 232,239,129,252,248,239,15,134,244,1,252,246,129,233,235,15,132,244,1,135,
543 255,232,251,1,26,137,252,234,252,233,244,1,255,72,252,247,208,139,106,252, 543 213,141,139,233,255,232,251,1,26,137,252,234,252,233,244,1,255,72,252,247,
544 248,139,172,253,141,233,139,12,135,139,133,233,137,8,199,64,4,237,252,246, 544 208,139,106,252,248,139,172,253,141,233,139,12,135,139,133,233,137,8,199,
545 133,233,235,15,133,244,248,248,1,139,6,15,182,204,15,182,232,131,198,4,193, 545 64,4,237,252,246,133,233,235,15,133,244,248,248,1,139,6,15,182,204,15,182,
546 232,16,252,255,36,252,235,248,2,252,246,129,233,235,15,132,244,1,128,189, 546 232,131,198,4,193,232,16,252,255,36,252,235,248,2,252,246,129,233,235,15,
547 233,0,15,132,244,1,137,213,137,194,141,139,233,232,251,1,26,137,252,234,252, 547 132,244,1,128,189,233,0,15,132,244,1,137,213,137,194,141,139,233,232,251,
548 233,244,1,255,139,106,252,248,255,252,242,15,16,4,199,255,139,172,253,141, 548 1,26,137,252,234,252,233,244,1,255,139,106,252,248,255,252,242,15,16,4,199,
549 233,139,141,233,255,252,242,15,17,1,255,221,25,255,72,252,247,208,139,106, 549 255,139,172,253,141,233,139,141,233,255,252,242,15,17,1,255,221,25,255,72,
550 252,248,139,172,253,141,233,139,141,233,137,65,4,139,6,15,182,204,15,182, 550 252,247,208,139,106,252,248,139,172,253,141,233,139,141,233,137,65,4,139,
551 232,131,198,4,193,232,16,252,255,36,252,235,255,141,180,253,134,233,139,108, 551 6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,141,180,
552 36,96,131,189,233,0,15,132,244,247,137,149,233,141,20,202,137,252,233,232, 552 253,134,233,139,108,36,96,131,189,233,0,15,132,244,247,137,149,233,141,20,
553 251,1,27,139,149,233,248,1,139,6,15,182,204,15,182,232,131,198,4,193,232, 553 202,137,252,233,232,251,1,27,139,149,233,248,1,139,6,15,182,204,15,182,232,
554 16,252,255,36,252,235,255,72,252,247,208,139,108,36,96,137,149,233,68,139, 554 131,198,4,193,232,16,252,255,36,252,235,255,72,252,247,208,139,108,36,96,
555 66,252,248,139,20,135,137,252,233,137,116,36,100,232,251,1,28,139,149,233, 555 137,149,233,68,139,66,252,248,139,20,135,137,252,233,137,116,36,100,232,251,
556 15,182,78,252,253,137,4,202,199,68,202,4,237,139,6,15,182,204,15,182,232, 556 1,28,139,149,233,15,182,78,252,253,137,4,202,199,68,202,4,237,139,6,15,182,
557 131,198,4,193,232,16,252,255,36,252,235,255,139,76,36,96,137,145,233,248, 557 204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,139,76,36,96,137,
558 1,65,137,192,37,252,255,7,0,0,65,193,232,11,61,252,255,7,0,0,15,132,244,249, 558 145,233,248,1,65,137,192,37,252,255,7,0,0,65,193,232,11,61,252,255,7,0,0,
559 248,2,137,194,139,131,233,137,205,59,131,233,137,116,36,100,15,131,244,251, 559 15,132,244,249,248,2,137,194,139,131,233,137,205,59,131,233,137,116,36,100,
560 232,251,1,29,139,149,233,15,182,78,252,253,137,4,202,199,68,202,4,237,139, 560 15,131,244,251,232,251,1,29,139,149,233,15,182,78,252,253,137,4,202,199,68,
561 6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,3,184, 561 202,4,237,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,
562 1,8,0,0,252,233,244,2,248,5,232,251,1,30,15,183,70,252,254,137,252,233,252, 562 235,248,3,184,1,8,0,0,252,233,244,2,248,5,232,251,1,30,15,183,70,252,254,
563 233,244,1,255,72,252,247,208,139,108,36,96,139,139,233,137,116,36,100,59, 563 137,252,233,252,233,244,1,255,72,252,247,208,139,108,36,96,139,139,233,137,
564 139,233,137,149,233,15,131,244,249,248,2,139,20,135,137,252,233,232,251,1, 564 116,36,100,59,139,233,137,149,233,15,131,244,249,248,2,139,20,135,137,252,
565 31,139,149,233,15,182,78,252,253,137,4,202,199,68,202,4,237,139,6,15,182, 565 233,232,251,1,31,139,149,233,15,182,78,252,253,137,4,202,199,68,202,4,237,
566 204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,3,137,252,233, 566 139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,3,
567 232,251,1,30,15,183,70,252,254,72,252,247,208,252,233,244,2,255,72,252,247, 567 137,252,233,232,251,1,30,15,183,70,252,254,72,252,247,208,252,233,244,2,255,
568 208,139,106,252,248,139,173,233,139,4,135,252,233,244,157,255,72,252,247, 568 72,252,247,208,139,106,252,248,139,173,233,139,4,135,252,233,244,157,255,
569 208,139,106,252,248,139,173,233,139,4,135,252,233,244,158,255,15,182,252, 569 72,252,247,208,139,106,252,248,139,173,233,139,4,135,252,233,244,158,255,
570 236,15,182,192,129,124,253,252,234,4,239,15,133,244,36,139,44,252,234,129, 570 15,182,252,236,15,182,192,129,124,253,252,234,4,239,15,133,244,36,139,44,
571 124,253,194,4,239,15,135,244,251,255,252,242,15,16,4,194,252,242,15,45,192, 571 252,234,129,124,253,194,4,239,15,135,244,251,255,252,242,15,16,4,194,252,
572 252,242,15,42,200,102,15,46,193,255,15,133,244,36,59,133,233,15,131,244,36, 572 242,15,45,192,252,242,15,42,200,102,15,46,193,255,15,133,244,36,59,133,233,
573 193,224,3,3,133,233,129,120,253,4,239,15,132,244,248,248,1,139,40,139,64, 573 15,131,244,36,193,224,3,3,133,233,129,120,253,4,239,15,132,244,248,248,1,
574 4,137,44,202,137,68,202,4,139,6,15,182,204,15,182,232,131,198,4,193,232,16, 574 139,40,139,64,4,137,44,202,137,68,202,4,139,6,15,182,204,15,182,232,131,198,
575 252,255,36,252,235,248,2,131,189,233,0,15,132,244,1,139,141,233,252,246,129, 575 4,193,232,16,252,255,36,252,235,248,2,131,189,233,0,15,132,244,1,139,141,
576 233,235,15,132,244,36,15,182,78,252,253,252,233,244,1,248,5,255,129,124,253, 576 233,252,246,129,233,235,15,132,244,36,15,182,78,252,253,252,233,244,1,248,
577 194,4,239,15,133,244,36,139,4,194,252,233,244,157,255,15,182,252,236,15,182, 577 5,255,129,124,253,194,4,239,15,133,244,36,139,4,194,252,233,244,157,255,15,
578 192,72,252,247,208,139,4,135,129,124,253,252,234,4,239,15,133,244,34,139, 578 182,252,236,15,182,192,72,252,247,208,139,4,135,129,124,253,252,234,4,239,
579 44,252,234,248,157,139,141,233,35,136,233,105,201,239,3,141,233,248,1,129, 579 15,133,244,34,139,44,252,234,248,157,139,141,233,35,136,233,105,201,239,3,
580 185,233,239,15,133,244,250,57,129,233,15,133,244,250,129,121,253,4,239,15, 580 141,233,248,1,129,185,233,239,15,133,244,250,57,129,233,15,133,244,250,129,
581 132,244,251,15,182,70,252,253,139,41,139,73,4,137,44,194,248,2,255,137,76, 581 121,253,4,239,15,132,244,251,15,182,70,252,253,139,41,139,73,4,137,44,194,
582 194,4,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235, 582 248,2,255,137,76,194,4,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,
583 248,3,15,182,70,252,253,185,237,252,233,244,2,248,4,139,137,233,133,201,15, 583 255,36,252,235,248,3,15,182,70,252,253,185,237,252,233,244,2,248,4,139,137,
584 133,244,1,248,5,139,141,233,133,201,15,132,244,3,252,246,129,233,235,15,133, 584 233,133,201,15,133,244,1,248,5,139,141,233,133,201,15,132,244,3,252,246,129,
585 244,3,252,233,244,34,255,15,182,252,236,15,182,192,129,124,253,252,234,4, 585 233,235,15,133,244,3,252,233,244,34,255,15,182,252,236,15,182,192,129,124,
586 239,15,133,244,35,139,44,252,234,59,133,233,15,131,244,35,193,224,3,3,133, 586 253,252,234,4,239,15,133,244,35,139,44,252,234,59,133,233,15,131,244,35,193,
587 233,129,120,253,4,239,15,132,244,248,248,1,139,40,139,64,4,137,44,202,137, 587 224,3,3,133,233,129,120,253,4,239,15,132,244,248,248,1,139,40,139,64,4,137,
588 68,202,4,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252, 588 44,202,137,68,202,4,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,
589 235,248,2,131,189,233,0,15,132,244,1,139,141,233,252,246,129,233,235,15,132, 589 255,36,252,235,248,2,131,189,233,0,15,132,244,1,139,141,233,252,246,129,233,
590 244,35,255,15,182,252,236,15,182,192,129,124,253,252,234,4,239,15,133,244, 590 235,15,132,244,35,255,15,182,252,236,15,182,192,129,124,253,252,234,4,239,
591 39,139,44,252,234,129,124,253,194,4,239,15,135,244,251,255,15,133,244,39, 591 15,133,244,39,139,44,252,234,129,124,253,194,4,239,15,135,244,251,255,15,
592 59,133,233,15,131,244,39,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,
593 249,248,1,252,246,133,233,235,15,133,244,253,248,2,139,108,202,4,139,12,202, 593 15,132,244,249,248,1,252,246,133,233,235,15,133,244,253,248,2,139,108,202,
594 137,104,4,137,8,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255, 594 4,139,12,202,137,104,4,137,8,139,6,15,182,204,15,182,232,131,198,4,193,232,
595 36,252,235,248,3,131,189,233,0,15,132,244,1,139,141,233,255,252,246,129,233, 595 16,252,255,36,252,235,248,3,131,189,233,0,15,132,244,1,139,141,233,255,252,
596 235,15,132,244,39,15,182,78,252,253,252,233,244,1,248,5,129,124,253,194,4, 596 246,129,233,235,15,132,244,39,15,182,78,252,253,252,233,244,1,248,5,129,124,
597 239,15,133,244,39,139,4,194,252,233,244,158,248,7,128,165,233,235,139,139, 597 253,194,4,239,15,133,244,39,139,4,194,252,233,244,158,248,7,128,165,233,235,
598 233,137,171,233,137,141,233,15,182,78,252,253,252,233,244,2,255,15,182,252, 598 139,139,233,137,171,233,137,141,233,15,182,78,252,253,252,233,244,2,255,15,
599 236,15,182,192,72,252,247,208,139,4,135,129,124,253,252,234,4,239,15,133, 599 182,252,236,15,182,192,72,252,247,208,139,4,135,129,124,253,252,234,4,239,
600 244,37,139,44,252,234,248,158,139,141,233,35,136,233,105,201,239,198,133, 600 15,133,244,37,139,44,252,234,248,158,139,141,233,35,136,233,105,201,239,198,
601 233,0,3,141,233,248,1,129,185,233,239,15,133,244,251,57,129,233,15,133,244, 601 133,233,0,3,141,233,248,1,129,185,233,239,15,133,244,251,57,129,233,15,133,
602 251,129,121,253,4,239,15,132,244,250,248,2,255,252,246,133,233,235,15,133, 602 244,251,129,121,253,4,239,15,132,244,250,248,2,255,252,246,133,233,235,15,
603 244,253,248,3,15,182,70,252,253,139,108,194,4,139,4,194,137,105,4,137,1,139, 603 133,244,253,248,3,15,182,70,252,253,139,108,194,4,139,4,194,137,105,4,137,
604 6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,4,131, 604 1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,
605 189,233,0,15,132,244,2,137,76,36,80,139,141,233,252,246,129,233,235,15,132, 605 4,131,189,233,0,15,132,244,2,137,76,36,80,139,141,233,252,246,129,233,235,
606 244,37,139,76,36,80,252,233,244,2,248,5,139,137,233,133,201,15,133,244,1, 606 15,132,244,37,139,76,36,80,252,233,244,2,248,5,139,137,233,133,201,15,133,
607 255,139,141,233,133,201,15,132,244,252,252,246,129,233,235,15,132,244,37, 607 244,1,255,139,141,233,133,201,15,132,244,252,252,246,129,233,235,15,132,244,
608 248,6,137,68,36,80,199,68,36,84,237,137,108,36,32,139,76,36,96,137,145,233, 608 37,248,6,137,68,36,80,199,68,36,84,237,137,108,36,32,139,76,36,96,137,145,
609 76,141,68,36,80,137,252,234,137,205,137,116,36,100,232,251,1,32,139,149,233, 609 233,76,141,68,36,80,137,252,234,137,205,137,116,36,100,232,251,1,32,139,149,
610 139,108,36,32,137,193,252,233,244,2,248,7,128,165,233,235,139,131,233,137, 610 233,139,108,36,32,137,193,252,233,244,2,248,7,128,165,233,235,139,131,233,
611 171,233,137,133,233,252,233,244,3,255,15,182,252,236,15,182,192,129,124,253, 611 137,171,233,137,133,233,252,233,244,3,255,15,182,252,236,15,182,192,129,124,
612 252,234,4,239,15,133,244,38,139,44,252,234,59,133,233,15,131,244,38,193,224, 612 253,252,234,4,239,15,133,244,38,139,44,252,234,59,133,233,15,131,244,38,193,
613 3,3,133,233,129,120,253,4,239,15,132,244,249,248,1,252,246,133,233,235,15, 613 224,3,3,133,233,129,120,253,4,239,15,132,244,249,248,1,252,246,133,233,235,
614 133,244,253,248,2,139,108,202,4,139,12,202,137,104,4,137,8,139,6,15,182,204, 614 15,133,244,253,248,2,139,108,202,4,139,12,202,137,104,4,137,8,139,6,15,182,
615 15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,3,131,189,233,0,15, 615 204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,3,131,189,233,
616 132,244,1,255,139,141,233,252,246,129,233,235,15,132,244,38,15,182,78,252, 616 0,15,132,244,1,255,139,141,233,252,246,129,233,235,15,132,244,38,15,182,78,
617 253,252,233,244,1,248,7,128,165,233,235,139,139,233,137,171,233,137,141,233, 617 252,253,252,233,244,1,248,7,128,165,233,235,139,139,233,137,171,233,137,141,
618 15,182,78,252,253,252,233,244,2,255,137,124,36,80,255,252,242,15,45,60,199, 618 233,15,182,78,252,253,252,233,244,2,255,137,124,36,80,255,252,242,15,45,60,
619 255,248,1,141,12,202,139,105,252,248,252,246,133,233,235,15,133,244,253,248, 619 199,255,248,1,141,12,202,139,105,252,248,252,246,133,233,235,15,133,244,253,
620 2,139,68,36,84,131,232,1,15,132,244,250,1,252,248,59,133,233,15,131,244,251, 620 248,2,139,68,36,84,131,232,1,15,132,244,250,1,252,248,59,133,233,15,131,244,
621 41,252,248,193,231,3,3,189,233,248,3,139,41,137,47,139,105,4,131,193,8,137, 621 251,41,252,248,193,231,3,3,189,233,248,3,139,41,137,47,139,105,4,131,193,
622 111,4,131,199,8,131,232,1,15,133,244,3,248,4,139,124,36,80,139,6,15,182,204, 622 8,137,111,4,131,199,8,131,232,1,15,133,244,3,248,4,139,124,36,80,139,6,15,
623 15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,5,139,76,36,96,137, 623 182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,5,139,76,36,
624 145,233,137,252,234,65,137,192,137,205,137,116,36,100,232,251,1,33,139,149, 624 96,137,145,233,137,252,234,65,137,192,137,205,137,116,36,100,232,251,1,33,
625 233,15,182,78,252,253,252,233,244,1,248,7,255,128,165,233,235,139,131,233, 625 139,149,233,15,182,78,252,253,252,233,244,1,248,7,255,128,165,233,235,139,
626 137,171,233,137,133,233,252,233,244,2,255,3,68,36,84,255,129,124,253,202, 626 131,233,137,171,233,137,133,233,252,233,244,2,255,3,68,36,84,255,129,124,
627 4,239,139,44,202,15,133,244,51,141,84,202,8,137,114,252,252,139,181,233,139, 627 253,202,4,239,139,44,202,15,133,244,51,141,84,202,8,137,114,252,252,139,181,
628 14,15,182,252,233,15,182,205,131,198,4,252,255,36,252,235,255,141,76,202, 628 233,139,14,15,182,252,233,15,182,205,131,198,4,252,255,36,252,235,255,141,
629 8,137,215,139,105,252,248,129,121,253,252,252,239,15,133,244,28,248,52,139, 629 76,202,8,137,215,139,105,252,248,129,121,253,252,252,239,15,133,244,28,248,
630 114,252,252,252,247,198,237,15,133,244,253,248,1,137,106,252,248,137,68,36, 630 52,139,114,252,252,252,247,198,237,15,133,244,253,248,1,137,106,252,248,137,
631 84,131,232,1,15,132,244,249,248,2,139,41,137,47,139,105,4,137,111,4,131,199, 631 68,36,84,131,232,1,15,132,244,249,248,2,139,41,137,47,139,105,4,137,111,4,
632 8,131,193,8,131,232,1,15,133,244,2,139,106,252,248,248,3,139,68,36,84,128, 632 131,199,8,131,193,8,131,232,1,15,133,244,2,139,106,252,248,248,3,139,68,36,
633 189,233,1,15,135,244,251,248,4,139,181,233,139,14,15,182,252,233,15,182,205, 633 84,128,189,233,1,15,135,244,251,248,4,139,181,233,139,14,15,182,252,233,15,
634 131,198,4,252,255,36,252,235,248,5,255,252,247,198,237,15,133,244,4,15,182, 634 182,205,131,198,4,252,255,36,252,235,248,5,255,252,247,198,237,15,133,244,
635 78,252,253,72,252,247,209,141,12,202,139,121,252,248,139,191,233,139,191, 635 4,15,182,78,252,253,72,252,247,209,141,12,202,139,121,252,248,139,191,233,
636 233,252,233,244,4,248,7,15,139,244,1,131,230,252,248,41,252,242,137,215,139, 636 139,191,233,252,233,244,4,248,7,15,139,244,1,131,230,252,248,41,252,242,137,
637 114,252,252,252,233,244,1,255,141,76,202,8,139,105,232,139,65,252,236,137, 637 215,139,114,252,252,252,233,244,1,255,141,76,202,8,139,105,232,139,65,252,
638 41,137,65,4,139,105,252,240,139,65,252,244,137,105,8,137,65,12,139,105,224, 638 236,137,41,137,65,4,139,105,252,240,139,65,252,244,137,105,8,137,65,12,139,
639 139,65,228,137,105,252,248,137,65,252,252,129,252,248,239,184,237,15,133, 639 105,224,139,65,228,137,105,252,248,137,65,252,252,129,252,248,239,184,237,
640 244,28,137,202,137,114,252,252,139,181,233,139,14,15,182,252,233,15,182,205, 640 15,133,244,28,137,202,137,114,252,252,139,181,233,139,14,15,182,252,233,15,
641 131,198,4,252,255,36,252,235,255,15,182,252,236,139,66,252,248,141,12,202, 641 182,205,131,198,4,252,255,36,252,235,255,15,182,252,236,139,66,252,248,141,
642 139,128,233,15,182,128,233,137,124,36,80,141,188,253,194,233,43,122,252,252, 642 12,202,139,128,233,15,182,128,233,137,124,36,80,141,188,253,194,233,43,122,
643 133,252,237,15,132,244,251,141,108,252,233,252,248,57,215,15,131,244,248, 643 252,252,133,252,237,15,132,244,251,141,108,252,233,252,248,57,215,15,131,
644 248,1,139,71,252,248,137,1,139,71,252,252,131,199,8,137,65,4,131,193,8,57, 644 244,248,248,1,139,71,252,248,137,1,139,71,252,252,131,199,8,137,65,4,131,
645 252,233,15,131,244,249,57,215,15,130,244,1,248,2,199,65,4,237,131,193,8,57, 645 193,8,57,252,233,15,131,244,249,57,215,15,130,244,1,248,2,199,65,4,237,131,
646 252,233,15,130,244,2,248,3,139,124,36,80,139,6,15,182,204,15,182,232,131, 646 193,8,57,252,233,15,130,244,2,248,3,139,124,36,80,139,6,15,182,204,15,182,
647 198,4,193,232,16,252,255,36,252,235,248,5,199,68,36,84,1,0,0,0,137,208,41, 647 232,131,198,4,193,232,16,252,255,36,252,235,248,5,199,68,36,84,1,0,0,0,137,
648 252,248,15,134,244,3,255,137,197,193,252,237,3,131,197,1,137,108,36,84,139, 648 208,41,252,248,15,134,244,3,255,137,197,193,252,237,3,131,197,1,137,108,36,
649 108,36,96,1,200,59,133,233,15,135,244,253,248,6,139,71,252,248,137,1,139, 649 84,139,108,36,96,1,200,59,133,233,15,135,244,253,248,6,139,71,252,248,137,
650 71,252,252,131,199,8,137,65,4,131,193,8,57,215,15,130,244,6,252,233,244,3, 650 1,139,71,252,252,131,199,8,137,65,4,131,193,8,57,215,15,130,244,6,252,233,
651 248,7,137,149,233,137,141,233,137,116,36,100,41,215,139,84,36,84,131,252, 651 244,3,248,7,137,149,233,137,141,233,137,116,36,100,41,215,139,84,36,84,131,
652 234,1,137,252,233,232,251,1,0,139,149,233,139,141,233,1,215,252,233,244,6, 652 252,234,1,137,252,233,232,251,1,0,139,149,233,139,141,233,1,215,252,233,244,
653 255,193,225,3,255,248,1,139,114,252,252,137,68,36,84,252,247,198,237,15,133, 653 6,255,193,225,3,255,248,1,139,114,252,252,137,68,36,84,252,247,198,237,15,
654 244,253,255,248,13,137,215,131,232,1,15,132,244,249,248,2,139,44,15,137,111, 654 133,244,253,255,248,13,137,215,131,232,1,15,132,244,249,248,2,139,44,15,137,
655 252,248,139,108,15,4,137,111,252,252,131,199,8,131,232,1,15,133,244,2,248, 655 111,252,248,139,108,15,4,137,111,252,252,131,199,8,131,232,1,15,133,244,2,
656 3,139,68,36,84,15,182,110,252,255,248,5,57,197,15,135,244,252,255,139,108, 656 248,3,139,68,36,84,15,182,110,252,255,248,5,57,197,15,135,244,252,255,139,
657 10,4,137,106,252,252,139,44,10,137,106,252,248,255,248,5,56,70,252,255,15, 657 108,10,4,137,106,252,252,139,44,10,137,106,252,248,255,248,5,56,70,252,255,
658 135,244,252,255,15,182,78,252,253,72,252,247,209,141,20,202,139,122,252,248, 658 15,135,244,252,255,15,182,78,252,253,72,252,247,209,141,20,202,139,122,252,
659 139,191,233,139,191,233,139,6,15,182,204,15,182,232,131,198,4,193,232,16, 659 248,139,191,233,139,191,233,139,6,15,182,204,15,182,232,131,198,4,193,232,
660 252,255,36,252,235,248,6,255,199,71,252,252,237,131,199,8,255,199,68,194, 660 16,252,255,36,252,235,248,6,255,199,71,252,252,237,131,199,8,255,199,68,194,
661 252,244,237,255,131,192,1,252,233,244,5,248,7,15,139,244,14,131,230,252,248, 661 252,244,237,255,131,192,1,252,233,244,5,248,7,15,139,244,14,131,230,252,248,
662 41,252,242,255,1,252,241,255,137,252,245,209,252,237,129,229,239,102,131, 662 41,252,242,255,1,252,241,255,137,252,245,209,252,237,129,229,239,102,131,
663 172,253,43,233,1,15,132,244,140,255,141,12,202,255,129,121,253,4,239,15,135, 663 172,253,43,233,1,15,132,244,140,255,141,12,202,255,129,121,253,4,239,15,135,
@@ -1367,63 +1367,63 @@ static void build_subroutines(BuildCtx *ctx, int cmov, int sse)
1367#endif 1367#endif
1368 dasm_put(Dst, 7251, Dt1(->base), Dt1(->top)); 1368 dasm_put(Dst, 7251, Dt1(->base), Dt1(->top));
1369#if LJ_HASJIT 1369#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), Dt1(->base), 4*8, GG_DISP2J, Dt1(->cframe), CFRAME_RAWMASK, CFRAME_OFS_L, Dt1(->base), CFRAME_OFS_PC); 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#endif 1371#endif
1372 dasm_put(Dst, 7505); 1372 dasm_put(Dst, 7512);
1373#if LJ_HASJIT 1373#if LJ_HASJIT
1374 dasm_put(Dst, 7508, 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); 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, 7650); 1375 dasm_put(Dst, 7657);
1376#endif 1376#endif
1377 dasm_put(Dst, 7676); 1377 dasm_put(Dst, 7683);
1378 if (!sse) { 1378 if (!sse) {
1379 dasm_put(Dst, 7679); 1379 dasm_put(Dst, 7686);
1380 } 1380 }
1381 dasm_put(Dst, 7724, (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)); 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 if (!sse) { 1382 if (!sse) {
1383 dasm_put(Dst, 7810); 1383 dasm_put(Dst, 7817);
1384 } 1384 }
1385 dasm_put(Dst, 7855, (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)); 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 if (!sse) { 1386 if (!sse) {
1387 dasm_put(Dst, 7941); 1387 dasm_put(Dst, 7948);
1388 } 1388 }
1389 dasm_put(Dst, 7980, (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)); 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 if (sse) { 1390 if (sse) {
1391 dasm_put(Dst, 8069, (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)); 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 } else { 1392 } else {
1393 dasm_put(Dst, 8183); 1393 dasm_put(Dst, 8190);
1394 } 1394 }
1395 dasm_put(Dst, 8230); 1395 dasm_put(Dst, 8237);
1396 if (!sse) { 1396 if (!sse) {
1397 } else { 1397 } else {
1398 dasm_put(Dst, 8304); 1398 dasm_put(Dst, 8311);
1399 } 1399 }
1400 dasm_put(Dst, 8307); 1400 dasm_put(Dst, 8314);
1401 dasm_put(Dst, 8392, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32)); 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, 8493, (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)); 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, 8661); 1403 dasm_put(Dst, 8668);
1404 if (sse) { 1404 if (sse) {
1405 dasm_put(Dst, 8702); 1405 dasm_put(Dst, 8709);
1406 dasm_put(Dst, 8772); 1406 dasm_put(Dst, 8779);
1407 dasm_put(Dst, 8845); 1407 dasm_put(Dst, 8852);
1408 } else { 1408 } else {
1409 dasm_put(Dst, 8895); 1409 dasm_put(Dst, 8902);
1410 dasm_put(Dst, 8987); 1410 dasm_put(Dst, 8994);
1411 } 1411 }
1412 dasm_put(Dst, 9033); 1412 dasm_put(Dst, 9040);
1413 if (sse) { 1413 if (sse) {
1414 dasm_put(Dst, 9039, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32)); 1414 dasm_put(Dst, 9046, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32));
1415 dasm_put(Dst, 9128, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32)); 1415 dasm_put(Dst, 9135, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32));
1416 } else { 1416 } else {
1417 dasm_put(Dst, 9252); 1417 dasm_put(Dst, 9259);
1418 dasm_put(Dst, 9335); 1418 dasm_put(Dst, 9342);
1419 if (cmov) { 1419 if (cmov) {
1420 dasm_put(Dst, 9390); 1420 dasm_put(Dst, 9397);
1421 } else { 1421 } else {
1422 dasm_put(Dst, 9409); 1422 dasm_put(Dst, 9416);
1423 } 1423 }
1424 dasm_put(Dst, 9248); 1424 dasm_put(Dst, 9255);
1425 } 1425 }
1426 dasm_put(Dst, 9450); 1426 dasm_put(Dst, 9457);
1427} 1427}
1428 1428
1429/* Generate the code for a single instruction. */ 1429/* Generate the code for a single instruction. */
@@ -1439,595 +1439,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. */ 1439 /* Remember: all ops branch for a true comparison, fall through otherwise. */
1440 1440
1441 case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT: 1441 case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT:
1442 dasm_put(Dst, 9476, LJ_TISNUM, LJ_TISNUM); 1442 dasm_put(Dst, 9483, LJ_TISNUM, LJ_TISNUM);
1443 if (sse) { 1443 if (sse) {
1444 dasm_put(Dst, 9497); 1444 dasm_put(Dst, 9504);
1445 } else { 1445 } else {
1446 dasm_put(Dst, 9512); 1446 dasm_put(Dst, 9519);
1447 if (cmov) { 1447 if (cmov) {
1448 dasm_put(Dst, 9522); 1448 dasm_put(Dst, 9529);
1449 } else { 1449 } else {
1450 dasm_put(Dst, 9528); 1450 dasm_put(Dst, 9535);
1451 } 1451 }
1452 } 1452 }
1453 switch (op) { 1453 switch (op) {
1454 case BC_ISLT: 1454 case BC_ISLT:
1455 dasm_put(Dst, 9535); 1455 dasm_put(Dst, 9542);
1456 break; 1456 break;
1457 case BC_ISGE: 1457 case BC_ISGE:
1458 dasm_put(Dst, 9330); 1458 dasm_put(Dst, 9337);
1459 break; 1459 break;
1460 case BC_ISLE: 1460 case BC_ISLE:
1461 dasm_put(Dst, 5900); 1461 dasm_put(Dst, 5900);
1462 break; 1462 break;
1463 case BC_ISGT: 1463 case BC_ISGT:
1464 dasm_put(Dst, 9540); 1464 dasm_put(Dst, 9547);
1465 break; 1465 break;
1466 default: break; /* Shut up GCC. */ 1466 default: break; /* Shut up GCC. */
1467 } 1467 }
1468 dasm_put(Dst, 9545, -BCBIAS_J*4); 1468 dasm_put(Dst, 9552, -BCBIAS_J*4);
1469 break; 1469 break;
1470 1470
1471 case BC_ISEQV: case BC_ISNEV: 1471 case BC_ISEQV: case BC_ISNEV:
1472 vk = op == BC_ISEQV; 1472 vk = op == BC_ISEQV;
1473 dasm_put(Dst, 9579, LJ_TISNUM, LJ_TISNUM); 1473 dasm_put(Dst, 9586, LJ_TISNUM, LJ_TISNUM);
1474 if (sse) { 1474 if (sse) {
1475 dasm_put(Dst, 9605); 1475 dasm_put(Dst, 9612);
1476 } else { 1476 } else {
1477 dasm_put(Dst, 9617); 1477 dasm_put(Dst, 9624);
1478 if (cmov) { 1478 if (cmov) {
1479 dasm_put(Dst, 9522); 1479 dasm_put(Dst, 9529);
1480 } else { 1480 } else {
1481 dasm_put(Dst, 9528); 1481 dasm_put(Dst, 9535);
1482 } 1482 }
1483 } 1483 }
1484 iseqne_fp: 1484 iseqne_fp:
1485 if (vk) { 1485 if (vk) {
1486 dasm_put(Dst, 9624); 1486 dasm_put(Dst, 9631);
1487 } else { 1487 } else {
1488 dasm_put(Dst, 9633); 1488 dasm_put(Dst, 9640);
1489 } 1489 }
1490 iseqne_end: 1490 iseqne_end:
1491 if (vk) { 1491 if (vk) {
1492 dasm_put(Dst, 9642, -BCBIAS_J*4); 1492 dasm_put(Dst, 9649, -BCBIAS_J*4);
1493 } else { 1493 } else {
1494 dasm_put(Dst, 9657, -BCBIAS_J*4); 1494 dasm_put(Dst, 9664, -BCBIAS_J*4);
1495 } 1495 }
1496 dasm_put(Dst, 9559); 1496 dasm_put(Dst, 9566);
1497 if (op == BC_ISEQV || op == BC_ISNEV) { 1497 if (op == BC_ISEQV || op == BC_ISNEV) {
1498 dasm_put(Dst, 9672, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq); 1498 dasm_put(Dst, 9679, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq);
1499 if (vk) { 1499 if (vk) {
1500 dasm_put(Dst, 9730); 1500 dasm_put(Dst, 9737);
1501 } else { 1501 } else {
1502 dasm_put(Dst, 9734); 1502 dasm_put(Dst, 9741);
1503 } 1503 }
1504 dasm_put(Dst, 9740); 1504 dasm_put(Dst, 9747);
1505 } 1505 }
1506 break; 1506 break;
1507 case BC_ISEQS: case BC_ISNES: 1507 case BC_ISEQS: case BC_ISNES:
1508 vk = op == BC_ISEQS; 1508 vk = op == BC_ISEQS;
1509 dasm_put(Dst, 9745, LJ_TSTR); 1509 dasm_put(Dst, 9752, LJ_TSTR);
1510 iseqne_test: 1510 iseqne_test:
1511 if (vk) { 1511 if (vk) {
1512 dasm_put(Dst, 9628); 1512 dasm_put(Dst, 9635);
1513 } else { 1513 } else {
1514 dasm_put(Dst, 2802); 1514 dasm_put(Dst, 2802);
1515 } 1515 }
1516 goto iseqne_end; 1516 goto iseqne_end;
1517 case BC_ISEQN: case BC_ISNEN: 1517 case BC_ISEQN: case BC_ISNEN:
1518 vk = op == BC_ISEQN; 1518 vk = op == BC_ISEQN;
1519 dasm_put(Dst, 9769, LJ_TISNUM); 1519 dasm_put(Dst, 9776, LJ_TISNUM);
1520 if (sse) { 1520 if (sse) {
1521 dasm_put(Dst, 9783); 1521 dasm_put(Dst, 9790);
1522 } else { 1522 } else {
1523 dasm_put(Dst, 9795); 1523 dasm_put(Dst, 9802);
1524 if (cmov) { 1524 if (cmov) {
1525 dasm_put(Dst, 9522); 1525 dasm_put(Dst, 9529);
1526 } else { 1526 } else {
1527 dasm_put(Dst, 9528); 1527 dasm_put(Dst, 9535);
1528 } 1528 }
1529 } 1529 }
1530 goto iseqne_fp; 1530 goto iseqne_fp;
1531 case BC_ISEQP: case BC_ISNEP: 1531 case BC_ISEQP: case BC_ISNEP:
1532 vk = op == BC_ISEQP; 1532 vk = op == BC_ISEQP;
1533 dasm_put(Dst, 9802); 1533 dasm_put(Dst, 9809);
1534 goto iseqne_test; 1534 goto iseqne_test;
1535 1535
1536 /* -- Unary test and copy ops ------------------------------------------- */ 1536 /* -- Unary test and copy ops ------------------------------------------- */
1537 1537
1538 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF: 1538 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF:
1539 dasm_put(Dst, 9814, LJ_TISTRUECOND); 1539 dasm_put(Dst, 9821, LJ_TISTRUECOND);
1540 if (op == BC_IST || op == BC_ISTC) { 1540 if (op == BC_IST || op == BC_ISTC) {
1541 dasm_put(Dst, 9826); 1541 dasm_put(Dst, 9833);
1542 } else { 1542 } else {
1543 dasm_put(Dst, 9831); 1543 dasm_put(Dst, 9838);
1544 } 1544 }
1545 if (op == BC_ISTC || op == BC_ISFC) { 1545 if (op == BC_ISTC || op == BC_ISFC) {
1546 dasm_put(Dst, 9836); 1546 dasm_put(Dst, 9843);
1547 } 1547 }
1548 dasm_put(Dst, 9847, -BCBIAS_J*4); 1548 dasm_put(Dst, 9854, -BCBIAS_J*4);
1549 break; 1549 break;
1550 1550
1551 /* -- Unary ops --------------------------------------------------------- */ 1551 /* -- Unary ops --------------------------------------------------------- */
1552 1552
1553 case BC_MOV: 1553 case BC_MOV:
1554 dasm_put(Dst, 9879); 1554 dasm_put(Dst, 9886);
1555 break; 1555 break;
1556 case BC_NOT: 1556 case BC_NOT:
1557 dasm_put(Dst, 9913, LJ_TISTRUECOND, LJ_TTRUE); 1557 dasm_put(Dst, 9920, LJ_TISTRUECOND, LJ_TTRUE);
1558 break; 1558 break;
1559 case BC_UNM: 1559 case BC_UNM:
1560 dasm_put(Dst, 9949, LJ_TISNUM); 1560 dasm_put(Dst, 9956, LJ_TISNUM);
1561 if (sse) { 1561 if (sse) {
1562 dasm_put(Dst, 9960, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32)); 1562 dasm_put(Dst, 9967, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32));
1563 } else { 1563 } else {
1564 dasm_put(Dst, 9985); 1564 dasm_put(Dst, 9992);
1565 } 1565 }
1566 dasm_put(Dst, 9559); 1566 dasm_put(Dst, 9566);
1567 break; 1567 break;
1568 case BC_LEN: 1568 case BC_LEN:
1569 dasm_put(Dst, 9994, LJ_TSTR); 1569 dasm_put(Dst, 10001, LJ_TSTR);
1570 if (sse) { 1570 if (sse) {
1571 dasm_put(Dst, 10008, Dt5(->len)); 1571 dasm_put(Dst, 10015, Dt5(->len));
1572 } else { 1572 } else {
1573 dasm_put(Dst, 10026, Dt5(->len)); 1573 dasm_put(Dst, 10033, Dt5(->len));
1574 } 1574 }
1575 dasm_put(Dst, 10035, LJ_TTAB); 1575 dasm_put(Dst, 10042, LJ_TTAB);
1576 if (sse) { 1576 if (sse) {
1577 dasm_put(Dst, 10076); 1577 dasm_put(Dst, 10083);
1578 } else { 1578 } else {
1579 } 1579 }
1580 dasm_put(Dst, 10085); 1580 dasm_put(Dst, 10092);
1581 break; 1581 break;
1582 1582
1583 /* -- Binary ops -------------------------------------------------------- */ 1583 /* -- Binary ops -------------------------------------------------------- */
1584 1584
1585 1585
1586 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV: 1586 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV:
1587 dasm_put(Dst, 10095); 1587 dasm_put(Dst, 10102);
1588 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1588 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1589 switch (vk) { 1589 switch (vk) {
1590 case 0: 1590 case 0:
1591 dasm_put(Dst, 10103, LJ_TISNUM); 1591 dasm_put(Dst, 10110, LJ_TISNUM);
1592 if (sse) { 1592 if (sse) {
1593 dasm_put(Dst, 10115); 1593 dasm_put(Dst, 10122);
1594 } else { 1594 } else {
1595 dasm_put(Dst, 10129); 1595 dasm_put(Dst, 10136);
1596 } 1596 }
1597 break; 1597 break;
1598 case 1: 1598 case 1:
1599 dasm_put(Dst, 10137, LJ_TISNUM); 1599 dasm_put(Dst, 10144, LJ_TISNUM);
1600 if (sse) { 1600 if (sse) {
1601 dasm_put(Dst, 10149); 1601 dasm_put(Dst, 10156);
1602 } else { 1602 } else {
1603 dasm_put(Dst, 10163); 1603 dasm_put(Dst, 10170);
1604 } 1604 }
1605 break; 1605 break;
1606 default: 1606 default:
1607 dasm_put(Dst, 10171, LJ_TISNUM, LJ_TISNUM); 1607 dasm_put(Dst, 10178, LJ_TISNUM, LJ_TISNUM);
1608 if (sse) { 1608 if (sse) {
1609 dasm_put(Dst, 10193); 1609 dasm_put(Dst, 10200);
1610 } else { 1610 } else {
1611 dasm_put(Dst, 10207); 1611 dasm_put(Dst, 10214);
1612 } 1612 }
1613 break; 1613 break;
1614 } 1614 }
1615 if (sse) { 1615 if (sse) {
1616 dasm_put(Dst, 9978); 1616 dasm_put(Dst, 9985);
1617 } else { 1617 } else {
1618 dasm_put(Dst, 9990); 1618 dasm_put(Dst, 9997);
1619 } 1619 }
1620 dasm_put(Dst, 9559); 1620 dasm_put(Dst, 9566);
1621 break; 1621 break;
1622 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV: 1622 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV:
1623 dasm_put(Dst, 10095); 1623 dasm_put(Dst, 10102);
1624 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1624 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1625 switch (vk) { 1625 switch (vk) {
1626 case 0: 1626 case 0:
1627 dasm_put(Dst, 10103, LJ_TISNUM); 1627 dasm_put(Dst, 10110, LJ_TISNUM);
1628 if (sse) { 1628 if (sse) {
1629 dasm_put(Dst, 10215); 1629 dasm_put(Dst, 10222);
1630 } else { 1630 } else {
1631 dasm_put(Dst, 10229); 1631 dasm_put(Dst, 10236);
1632 } 1632 }
1633 break; 1633 break;
1634 case 1: 1634 case 1:
1635 dasm_put(Dst, 10137, LJ_TISNUM); 1635 dasm_put(Dst, 10144, LJ_TISNUM);
1636 if (sse) { 1636 if (sse) {
1637 dasm_put(Dst, 10237); 1637 dasm_put(Dst, 10244);
1638 } else { 1638 } else {
1639 dasm_put(Dst, 10251); 1639 dasm_put(Dst, 10258);
1640 } 1640 }
1641 break; 1641 break;
1642 default: 1642 default:
1643 dasm_put(Dst, 10171, LJ_TISNUM, LJ_TISNUM); 1643 dasm_put(Dst, 10178, LJ_TISNUM, LJ_TISNUM);
1644 if (sse) { 1644 if (sse) {
1645 dasm_put(Dst, 10259); 1645 dasm_put(Dst, 10266);
1646 } else { 1646 } else {
1647 dasm_put(Dst, 10273); 1647 dasm_put(Dst, 10280);
1648 } 1648 }
1649 break; 1649 break;
1650 } 1650 }
1651 if (sse) { 1651 if (sse) {
1652 dasm_put(Dst, 9978); 1652 dasm_put(Dst, 9985);
1653 } else { 1653 } else {
1654 dasm_put(Dst, 9990); 1654 dasm_put(Dst, 9997);
1655 } 1655 }
1656 dasm_put(Dst, 9559); 1656 dasm_put(Dst, 9566);
1657 break; 1657 break;
1658 case BC_MULVN: case BC_MULNV: case BC_MULVV: 1658 case BC_MULVN: case BC_MULNV: case BC_MULVV:
1659 dasm_put(Dst, 10095); 1659 dasm_put(Dst, 10102);
1660 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1660 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1661 switch (vk) { 1661 switch (vk) {
1662 case 0: 1662 case 0:
1663 dasm_put(Dst, 10103, LJ_TISNUM); 1663 dasm_put(Dst, 10110, LJ_TISNUM);
1664 if (sse) { 1664 if (sse) {
1665 dasm_put(Dst, 10281); 1665 dasm_put(Dst, 10288);
1666 } else { 1666 } else {
1667 dasm_put(Dst, 10295); 1667 dasm_put(Dst, 10302);
1668 } 1668 }
1669 break; 1669 break;
1670 case 1: 1670 case 1:
1671 dasm_put(Dst, 10137, LJ_TISNUM); 1671 dasm_put(Dst, 10144, LJ_TISNUM);
1672 if (sse) { 1672 if (sse) {
1673 dasm_put(Dst, 10303); 1673 dasm_put(Dst, 10310);
1674 } else { 1674 } else {
1675 dasm_put(Dst, 10317); 1675 dasm_put(Dst, 10324);
1676 } 1676 }
1677 break; 1677 break;
1678 default: 1678 default:
1679 dasm_put(Dst, 10171, LJ_TISNUM, LJ_TISNUM); 1679 dasm_put(Dst, 10178, LJ_TISNUM, LJ_TISNUM);
1680 if (sse) { 1680 if (sse) {
1681 dasm_put(Dst, 10325); 1681 dasm_put(Dst, 10332);
1682 } else { 1682 } else {
1683 dasm_put(Dst, 10339); 1683 dasm_put(Dst, 10346);
1684 } 1684 }
1685 break; 1685 break;
1686 } 1686 }
1687 if (sse) { 1687 if (sse) {
1688 dasm_put(Dst, 9978); 1688 dasm_put(Dst, 9985);
1689 } else { 1689 } else {
1690 dasm_put(Dst, 9990); 1690 dasm_put(Dst, 9997);
1691 } 1691 }
1692 dasm_put(Dst, 9559); 1692 dasm_put(Dst, 9566);
1693 break; 1693 break;
1694 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV: 1694 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV:
1695 dasm_put(Dst, 10095); 1695 dasm_put(Dst, 10102);
1696 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1696 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1697 switch (vk) { 1697 switch (vk) {
1698 case 0: 1698 case 0:
1699 dasm_put(Dst, 10103, LJ_TISNUM); 1699 dasm_put(Dst, 10110, LJ_TISNUM);
1700 if (sse) { 1700 if (sse) {
1701 dasm_put(Dst, 10347); 1701 dasm_put(Dst, 10354);
1702 } else { 1702 } else {
1703 dasm_put(Dst, 10361); 1703 dasm_put(Dst, 10368);
1704 } 1704 }
1705 break; 1705 break;
1706 case 1: 1706 case 1:
1707 dasm_put(Dst, 10137, LJ_TISNUM); 1707 dasm_put(Dst, 10144, LJ_TISNUM);
1708 if (sse) { 1708 if (sse) {
1709 dasm_put(Dst, 10369); 1709 dasm_put(Dst, 10376);
1710 } else { 1710 } else {
1711 dasm_put(Dst, 10383); 1711 dasm_put(Dst, 10390);
1712 } 1712 }
1713 break; 1713 break;
1714 default: 1714 default:
1715 dasm_put(Dst, 10171, LJ_TISNUM, LJ_TISNUM); 1715 dasm_put(Dst, 10178, LJ_TISNUM, LJ_TISNUM);
1716 if (sse) { 1716 if (sse) {
1717 dasm_put(Dst, 10391); 1717 dasm_put(Dst, 10398);
1718 } else { 1718 } else {
1719 dasm_put(Dst, 10405); 1719 dasm_put(Dst, 10412);
1720 } 1720 }
1721 break; 1721 break;
1722 } 1722 }
1723 if (sse) { 1723 if (sse) {
1724 dasm_put(Dst, 9978); 1724 dasm_put(Dst, 9985);
1725 } else { 1725 } else {
1726 dasm_put(Dst, 9990); 1726 dasm_put(Dst, 9997);
1727 } 1727 }
1728 dasm_put(Dst, 9559); 1728 dasm_put(Dst, 9566);
1729 break; 1729 break;
1730 case BC_MODVN: 1730 case BC_MODVN:
1731 dasm_put(Dst, 10095); 1731 dasm_put(Dst, 10102);
1732 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1732 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1733 switch (vk) { 1733 switch (vk) {
1734 case 0: 1734 case 0:
1735 dasm_put(Dst, 10103, LJ_TISNUM); 1735 dasm_put(Dst, 10110, LJ_TISNUM);
1736 if (sse) { 1736 if (sse) {
1737 dasm_put(Dst, 10413); 1737 dasm_put(Dst, 10420);
1738 } else { 1738 } else {
1739 dasm_put(Dst, 10427); 1739 dasm_put(Dst, 10434);
1740 } 1740 }
1741 break; 1741 break;
1742 case 1: 1742 case 1:
1743 dasm_put(Dst, 10137, LJ_TISNUM); 1743 dasm_put(Dst, 10144, LJ_TISNUM);
1744 if (sse) { 1744 if (sse) {
1745 dasm_put(Dst, 10435); 1745 dasm_put(Dst, 10442);
1746 } else { 1746 } else {
1747 dasm_put(Dst, 10449); 1747 dasm_put(Dst, 10456);
1748 } 1748 }
1749 break; 1749 break;
1750 default: 1750 default:
1751 dasm_put(Dst, 10171, LJ_TISNUM, LJ_TISNUM); 1751 dasm_put(Dst, 10178, LJ_TISNUM, LJ_TISNUM);
1752 if (sse) { 1752 if (sse) {
1753 dasm_put(Dst, 10457); 1753 dasm_put(Dst, 10464);
1754 } else { 1754 } else {
1755 dasm_put(Dst, 10471); 1755 dasm_put(Dst, 10478);
1756 } 1756 }
1757 break; 1757 break;
1758 } 1758 }
1759 dasm_put(Dst, 10479); 1759 dasm_put(Dst, 10486);
1760 if (sse) { 1760 if (sse) {
1761 dasm_put(Dst, 9978); 1761 dasm_put(Dst, 9985);
1762 } else { 1762 } else {
1763 dasm_put(Dst, 9990); 1763 dasm_put(Dst, 9997);
1764 } 1764 }
1765 dasm_put(Dst, 9559); 1765 dasm_put(Dst, 9566);
1766 break; 1766 break;
1767 case BC_MODNV: case BC_MODVV: 1767 case BC_MODNV: case BC_MODVV:
1768 dasm_put(Dst, 10095); 1768 dasm_put(Dst, 10102);
1769 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1769 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1770 switch (vk) { 1770 switch (vk) {
1771 case 0: 1771 case 0:
1772 dasm_put(Dst, 10103, LJ_TISNUM); 1772 dasm_put(Dst, 10110, LJ_TISNUM);
1773 if (sse) { 1773 if (sse) {
1774 dasm_put(Dst, 10413); 1774 dasm_put(Dst, 10420);
1775 } else { 1775 } else {
1776 dasm_put(Dst, 10427); 1776 dasm_put(Dst, 10434);
1777 } 1777 }
1778 break; 1778 break;
1779 case 1: 1779 case 1:
1780 dasm_put(Dst, 10137, LJ_TISNUM); 1780 dasm_put(Dst, 10144, LJ_TISNUM);
1781 if (sse) { 1781 if (sse) {
1782 dasm_put(Dst, 10435); 1782 dasm_put(Dst, 10442);
1783 } else { 1783 } else {
1784 dasm_put(Dst, 10449); 1784 dasm_put(Dst, 10456);
1785 } 1785 }
1786 break; 1786 break;
1787 default: 1787 default:
1788 dasm_put(Dst, 10171, LJ_TISNUM, LJ_TISNUM); 1788 dasm_put(Dst, 10178, LJ_TISNUM, LJ_TISNUM);
1789 if (sse) { 1789 if (sse) {
1790 dasm_put(Dst, 10457); 1790 dasm_put(Dst, 10464);
1791 } else { 1791 } else {
1792 dasm_put(Dst, 10471); 1792 dasm_put(Dst, 10478);
1793 } 1793 }
1794 break; 1794 break;
1795 } 1795 }
1796 dasm_put(Dst, 10485); 1796 dasm_put(Dst, 10492);
1797 break; 1797 break;
1798 case BC_POW: 1798 case BC_POW:
1799 dasm_put(Dst, 10095); 1799 dasm_put(Dst, 10102);
1800 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1800 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1801 switch (vk) { 1801 switch (vk) {
1802 case 0: 1802 case 0:
1803 dasm_put(Dst, 10103, LJ_TISNUM); 1803 dasm_put(Dst, 10110, LJ_TISNUM);
1804 if (sse) { 1804 if (sse) {
1805 dasm_put(Dst, 10413); 1805 dasm_put(Dst, 10420);
1806 } else { 1806 } else {
1807 dasm_put(Dst, 10427); 1807 dasm_put(Dst, 10434);
1808 } 1808 }
1809 break; 1809 break;
1810 case 1: 1810 case 1:
1811 dasm_put(Dst, 10137, LJ_TISNUM); 1811 dasm_put(Dst, 10144, LJ_TISNUM);
1812 if (sse) { 1812 if (sse) {
1813 dasm_put(Dst, 10435); 1813 dasm_put(Dst, 10442);
1814 } else { 1814 } else {
1815 dasm_put(Dst, 10449); 1815 dasm_put(Dst, 10456);
1816 } 1816 }
1817 break; 1817 break;
1818 default: 1818 default:
1819 dasm_put(Dst, 10171, LJ_TISNUM, LJ_TISNUM); 1819 dasm_put(Dst, 10178, LJ_TISNUM, LJ_TISNUM);
1820 if (sse) { 1820 if (sse) {
1821 dasm_put(Dst, 10457); 1821 dasm_put(Dst, 10464);
1822 } else { 1822 } else {
1823 dasm_put(Dst, 10471); 1823 dasm_put(Dst, 10478);
1824 } 1824 }
1825 break; 1825 break;
1826 } 1826 }
1827 dasm_put(Dst, 10490); 1827 dasm_put(Dst, 10497);
1828 if (sse) { 1828 if (sse) {
1829 dasm_put(Dst, 9978); 1829 dasm_put(Dst, 9985);
1830 } else { 1830 } else {
1831 dasm_put(Dst, 9990); 1831 dasm_put(Dst, 9997);
1832 } 1832 }
1833 dasm_put(Dst, 9559); 1833 dasm_put(Dst, 9566);
1834 break; 1834 break;
1835 1835
1836 case BC_CAT: 1836 case BC_CAT:
1837 dasm_put(Dst, 10494, Dt1(->base), Dt1(->base)); 1837 dasm_put(Dst, 10501, Dt1(->base), Dt1(->base));
1838 break; 1838 break;
1839 1839
1840 /* -- Constant ops ------------------------------------------------------ */ 1840 /* -- Constant ops ------------------------------------------------------ */
1841 1841
1842 case BC_KSTR: 1842 case BC_KSTR:
1843 dasm_put(Dst, 10584, LJ_TSTR); 1843 dasm_put(Dst, 10591, LJ_TSTR);
1844 break; 1844 break;
1845 case BC_KSHORT: 1845 case BC_KSHORT:
1846 if (sse) { 1846 if (sse) {
1847 dasm_put(Dst, 10619); 1847 dasm_put(Dst, 10626);
1848 } else { 1848 } else {
1849 dasm_put(Dst, 10634); 1849 dasm_put(Dst, 10641);
1850 } 1850 }
1851 dasm_put(Dst, 9559); 1851 dasm_put(Dst, 9566);
1852 break; 1852 break;
1853 case BC_KNUM: 1853 case BC_KNUM:
1854 if (sse) { 1854 if (sse) {
1855 dasm_put(Dst, 10642); 1855 dasm_put(Dst, 10649);
1856 } else { 1856 } else {
1857 dasm_put(Dst, 10655); 1857 dasm_put(Dst, 10662);
1858 } 1858 }
1859 dasm_put(Dst, 9559); 1859 dasm_put(Dst, 9566);
1860 break; 1860 break;
1861 case BC_KPRI: 1861 case BC_KPRI:
1862 dasm_put(Dst, 10662); 1862 dasm_put(Dst, 10669);
1863 break; 1863 break;
1864 case BC_KNIL: 1864 case BC_KNIL:
1865 dasm_put(Dst, 10690, LJ_TNIL); 1865 dasm_put(Dst, 10697, LJ_TNIL);
1866 break; 1866 break;
1867 1867
1868 /* -- Upvalue and function ops ------------------------------------------ */ 1868 /* -- Upvalue and function ops ------------------------------------------ */
1869 1869
1870 case BC_UGET: 1870 case BC_UGET:
1871 dasm_put(Dst, 10737, offsetof(GCfuncL, uvptr), DtA(->v)); 1871 dasm_put(Dst, 10744, offsetof(GCfuncL, uvptr), DtA(->v));
1872 break; 1872 break;
1873 case BC_USETV: 1873 case BC_USETV:
1874#define TV2MARKOFS \ 1874#define TV2MARKOFS \
1875 ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv)) 1875 ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv))
1876 dasm_put(Dst, 10782, 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); 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, 10873); 1877 dasm_put(Dst, 10880);
1878 break; 1878 break;
1879#undef TV2MARKOFS 1879#undef TV2MARKOFS
1880 case BC_USETS: 1880 case BC_USETS:
1881 dasm_put(Dst, 10885, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G); 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 break; 1882 break;
1883 case BC_USETN: 1883 case BC_USETN:
1884 dasm_put(Dst, 10978); 1884 dasm_put(Dst, 10985);
1885 if (sse) { 1885 if (sse) {
1886 dasm_put(Dst, 10983); 1886 dasm_put(Dst, 10990);
1887 } else { 1887 } else {
1888 dasm_put(Dst, 9798); 1888 dasm_put(Dst, 9805);
1889 } 1889 }
1890 dasm_put(Dst, 10990, offsetof(GCfuncL, uvptr), DtA(->v)); 1890 dasm_put(Dst, 10997, offsetof(GCfuncL, uvptr), DtA(->v));
1891 if (sse) { 1891 if (sse) {
1892 dasm_put(Dst, 10999); 1892 dasm_put(Dst, 11006);
1893 } else { 1893 } else {
1894 dasm_put(Dst, 11005); 1894 dasm_put(Dst, 11012);
1895 } 1895 }
1896 dasm_put(Dst, 9559); 1896 dasm_put(Dst, 9566);
1897 break; 1897 break;
1898 case BC_USETP: 1898 case BC_USETP:
1899 dasm_put(Dst, 11008, offsetof(GCfuncL, uvptr), DtA(->v)); 1899 dasm_put(Dst, 11015, offsetof(GCfuncL, uvptr), DtA(->v));
1900 break; 1900 break;
1901 case BC_UCLO: 1901 case BC_UCLO:
1902 dasm_put(Dst, 11047, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base)); 1902 dasm_put(Dst, 11054, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base));
1903 break; 1903 break;
1904 1904
1905 case BC_FNEW: 1905 case BC_FNEW:
1906 dasm_put(Dst, 11102, Dt1(->base), Dt1(->base), LJ_TFUNC); 1906 dasm_put(Dst, 11109, Dt1(->base), Dt1(->base), LJ_TFUNC);
1907 break; 1907 break;
1908 1908
1909 /* -- Table ops --------------------------------------------------------- */ 1909 /* -- Table ops --------------------------------------------------------- */
1910 1910
1911 case BC_TNEW: 1911 case BC_TNEW:
1912 dasm_put(Dst, 11168, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB); 1912 dasm_put(Dst, 11175, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB);
1913 break; 1913 break;
1914 case BC_TDUP: 1914 case BC_TDUP:
1915 dasm_put(Dst, 11289, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB); 1915 dasm_put(Dst, 11296, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB);
1916 break; 1916 break;
1917 1917
1918 case BC_GGET: 1918 case BC_GGET:
1919 dasm_put(Dst, 11384, Dt7(->env)); 1919 dasm_put(Dst, 11391, Dt7(->env));
1920 break; 1920 break;
1921 case BC_GSET: 1921 case BC_GSET:
1922 dasm_put(Dst, 11403, Dt7(->env)); 1922 dasm_put(Dst, 11410, Dt7(->env));
1923 break; 1923 break;
1924 1924
1925 case BC_TGETV: 1925 case BC_TGETV:
1926 dasm_put(Dst, 11422, LJ_TTAB, LJ_TISNUM); 1926 dasm_put(Dst, 11429, LJ_TTAB, LJ_TISNUM);
1927 if (sse) { 1927 if (sse) {
1928 dasm_put(Dst, 11455); 1928 dasm_put(Dst, 11462);
1929 } else { 1929 } else {
1930 } 1930 }
1931 dasm_put(Dst, 11476, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 1931 dasm_put(Dst, 11483, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
1932 dasm_put(Dst, 11569, LJ_TSTR); 1932 dasm_put(Dst, 11576, LJ_TSTR);
1933 break; 1933 break;
1934 case BC_TGETS: 1934 case BC_TGETS:
1935 dasm_put(Dst, 11587, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); 1935 dasm_put(Dst, 11594, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
1936 dasm_put(Dst, 11672, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 1936 dasm_put(Dst, 11679, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
1937 break; 1937 break;
1938 case BC_TGETB: 1938 case BC_TGETB:
1939 dasm_put(Dst, 11744, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 1939 dasm_put(Dst, 11751, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
1940 dasm_put(Dst, 10085); 1940 dasm_put(Dst, 10092);
1941 break; 1941 break;
1942 1942
1943 case BC_TSETV: 1943 case BC_TSETV:
1944 dasm_put(Dst, 11844, LJ_TTAB, LJ_TISNUM); 1944 dasm_put(Dst, 11851, LJ_TTAB, LJ_TISNUM);
1945 if (sse) { 1945 if (sse) {
1946 dasm_put(Dst, 11455); 1946 dasm_put(Dst, 11462);
1947 } else { 1947 } else {
1948 } 1948 }
1949 dasm_put(Dst, 11877, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable)); 1949 dasm_put(Dst, 11884, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable));
1950 dasm_put(Dst, 11961, Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 1950 dasm_put(Dst, 11968, 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; 1951 break;
1952 case BC_TSETS: 1952 case BC_TSETS:
1953 dasm_put(Dst, 12023, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); 1953 dasm_put(Dst, 12030, 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, 12099, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next)); 1954 dasm_put(Dst, 12106, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next));
1955 dasm_put(Dst, 12192, 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)); 1955 dasm_put(Dst, 12199, 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; 1956 break;
1957 case BC_TSETB: 1957 case BC_TSETB:
1958 dasm_put(Dst, 12283, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable)); 1958 dasm_put(Dst, 12290, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable));
1959 dasm_put(Dst, 12382, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 1959 dasm_put(Dst, 12389, 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; 1960 break;
1961 1961
1962 case BC_TSETM: 1962 case BC_TSETM:
1963 dasm_put(Dst, 12428); 1963 dasm_put(Dst, 12435);
1964 if (sse) { 1964 if (sse) {
1965 dasm_put(Dst, 12433); 1965 dasm_put(Dst, 12440);
1966 } else { 1966 } else {
1967 } 1967 }
1968 dasm_put(Dst, 12440, Dt6(->marked), LJ_GC_BLACK, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base)); 1968 dasm_put(Dst, 12447, Dt6(->marked), LJ_GC_BLACK, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base));
1969 dasm_put(Dst, 12580, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 1969 dasm_put(Dst, 12587, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
1970 break; 1970 break;
1971 1971
1972 /* -- Calls and vararg handling ----------------------------------------- */ 1972 /* -- Calls and vararg handling ----------------------------------------- */
1973 1973
1974 case BC_CALL: case BC_CALLM: 1974 case BC_CALL: case BC_CALLM:
1975 dasm_put(Dst, 10099); 1975 dasm_put(Dst, 10106);
1976 if (op == BC_CALLM) { 1976 if (op == BC_CALLM) {
1977 dasm_put(Dst, 12598); 1977 dasm_put(Dst, 12605);
1978 } 1978 }
1979 dasm_put(Dst, 12603, LJ_TFUNC, Dt7(->pc)); 1979 dasm_put(Dst, 12610, LJ_TFUNC, Dt7(->pc));
1980 break; 1980 break;
1981 1981
1982 case BC_CALLMT: 1982 case BC_CALLMT:
1983 dasm_put(Dst, 12598); 1983 dasm_put(Dst, 12605);
1984 break; 1984 break;
1985 case BC_CALLT: 1985 case BC_CALLT:
1986 dasm_put(Dst, 12645, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc)); 1986 dasm_put(Dst, 12652, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc));
1987 dasm_put(Dst, 12764, FRAME_TYPE, Dt7(->pc), PC2PROTO(k)); 1987 dasm_put(Dst, 12771, FRAME_TYPE, Dt7(->pc), PC2PROTO(k));
1988 break; 1988 break;
1989 1989
1990 case BC_ITERC: 1990 case BC_ITERC:
1991 dasm_put(Dst, 12822, LJ_TFUNC, 2+1, Dt7(->pc)); 1991 dasm_put(Dst, 12829, LJ_TFUNC, 2+1, Dt7(->pc));
1992 break; 1992 break;
1993 1993
1994 case BC_VARG: 1994 case BC_VARG:
1995 dasm_put(Dst, 12903, Dt7(->pc), PC2PROTO(numparams), (8+FRAME_VARG), LJ_TNIL); 1995 dasm_put(Dst, 12910, Dt7(->pc), PC2PROTO(numparams), (8+FRAME_VARG), LJ_TNIL);
1996 dasm_put(Dst, 13048, Dt1(->maxstack), Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top)); 1996 dasm_put(Dst, 13055, Dt1(->maxstack), Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top));
1997 break; 1997 break;
1998 1998
1999 /* -- Returns ----------------------------------------------------------- */ 1999 /* -- Returns ----------------------------------------------------------- */
2000 2000
2001 case BC_RETM: 2001 case BC_RETM:
2002 dasm_put(Dst, 12598); 2002 dasm_put(Dst, 12605);
2003 break; 2003 break;
2004 2004
2005 case BC_RET: case BC_RET0: case BC_RET1: 2005 case BC_RET: case BC_RET0: case BC_RET1:
2006 if (op != BC_RET0) { 2006 if (op != BC_RET0) {
2007 dasm_put(Dst, 13147); 2007 dasm_put(Dst, 13154);
2008 } 2008 }
2009 dasm_put(Dst, 13151, FRAME_TYPE); 2009 dasm_put(Dst, 13158, FRAME_TYPE);
2010 switch (op) { 2010 switch (op) {
2011 case BC_RET: 2011 case BC_RET:
2012 dasm_put(Dst, 13170); 2012 dasm_put(Dst, 13177);
2013 break; 2013 break;
2014 case BC_RET1: 2014 case BC_RET1:
2015 dasm_put(Dst, 13228); 2015 dasm_put(Dst, 13235);
2016 /* fallthrough */ 2016 /* fallthrough */
2017 case BC_RET0: 2017 case BC_RET0:
2018 dasm_put(Dst, 13244); 2018 dasm_put(Dst, 13251);
2019 default: 2019 default:
2020 break; 2020 break;
2021 } 2021 }
2022 dasm_put(Dst, 13255, Dt7(->pc), PC2PROTO(k)); 2022 dasm_put(Dst, 13262, Dt7(->pc), PC2PROTO(k));
2023 if (op == BC_RET) { 2023 if (op == BC_RET) {
2024 dasm_put(Dst, 13299, LJ_TNIL); 2024 dasm_put(Dst, 13306, LJ_TNIL);
2025 } else { 2025 } else {
2026 dasm_put(Dst, 13308, LJ_TNIL); 2026 dasm_put(Dst, 13315, LJ_TNIL);
2027 } 2027 }
2028 dasm_put(Dst, 13315); 2028 dasm_put(Dst, 13322);
2029 if (op != BC_RET0) { 2029 if (op != BC_RET0) {
2030 dasm_put(Dst, 13336); 2030 dasm_put(Dst, 13343);
2031 } 2031 }
2032 dasm_put(Dst, 4570); 2032 dasm_put(Dst, 4570);
2033 break; 2033 break;
@@ -2037,7 +2037,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2037 2037
2038 case BC_FORL: 2038 case BC_FORL:
2039#if LJ_HASJIT 2039#if LJ_HASJIT
2040 dasm_put(Dst, 13340, HOTCOUNT_PCMASK, GG_DISP2HOT); 2040 dasm_put(Dst, 13347, HOTCOUNT_PCMASK, GG_DISP2HOT);
2041#endif 2041#endif
2042 break; 2042 break;
2043 2043
@@ -2049,57 +2049,57 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2049 case BC_FORI: 2049 case BC_FORI:
2050 case BC_IFORL: 2050 case BC_IFORL:
2051 vk = (op == BC_IFORL || op == BC_JFORL); 2051 vk = (op == BC_IFORL || op == BC_JFORL);
2052 dasm_put(Dst, 13361); 2052 dasm_put(Dst, 13368);
2053 if (!vk) { 2053 if (!vk) {
2054 dasm_put(Dst, 13365, LJ_TISNUM, LJ_TISNUM); 2054 dasm_put(Dst, 13372, LJ_TISNUM, LJ_TISNUM);
2055 } 2055 }
2056 dasm_put(Dst, 13384); 2056 dasm_put(Dst, 13391);
2057 if (!vk) { 2057 if (!vk) {
2058 dasm_put(Dst, 13388, LJ_TISNUM); 2058 dasm_put(Dst, 13395, LJ_TISNUM);
2059 } 2059 }
2060 if (sse) { 2060 if (sse) {
2061 dasm_put(Dst, 13397); 2061 dasm_put(Dst, 13404);
2062 if (vk) { 2062 if (vk) {
2063 dasm_put(Dst, 13409); 2063 dasm_put(Dst, 13416);
2064 } else { 2064 } else {
2065 dasm_put(Dst, 13428); 2065 dasm_put(Dst, 13435);
2066 } 2066 }
2067 dasm_put(Dst, 13433); 2067 dasm_put(Dst, 13440);
2068 } else { 2068 } else {
2069 dasm_put(Dst, 13446); 2069 dasm_put(Dst, 13453);
2070 if (vk) { 2070 if (vk) {
2071 dasm_put(Dst, 13452); 2071 dasm_put(Dst, 13459);
2072 } else { 2072 } else {
2073 dasm_put(Dst, 13468); 2073 dasm_put(Dst, 13475);
2074 } 2074 }
2075 dasm_put(Dst, 13476); 2075 dasm_put(Dst, 13483);
2076 if (cmov) { 2076 if (cmov) {
2077 dasm_put(Dst, 9522); 2077 dasm_put(Dst, 9529);
2078 } else { 2078 } else {
2079 dasm_put(Dst, 9528); 2079 dasm_put(Dst, 9535);
2080 } 2080 }
2081 if (!cmov) { 2081 if (!cmov) {
2082 dasm_put(Dst, 13481); 2082 dasm_put(Dst, 13488);
2083 } 2083 }
2084 } 2084 }
2085 if (op == BC_FORI) { 2085 if (op == BC_FORI) {
2086 dasm_put(Dst, 13487, -BCBIAS_J*4); 2086 dasm_put(Dst, 13494, -BCBIAS_J*4);
2087 } else if (op == BC_JFORI) { 2087 } else if (op == BC_JFORI) {
2088 dasm_put(Dst, 13497, -BCBIAS_J*4, BC_JLOOP); 2088 dasm_put(Dst, 13504, -BCBIAS_J*4, BC_JLOOP);
2089 } else if (op == BC_IFORL) { 2089 } else if (op == BC_IFORL) {
2090 dasm_put(Dst, 13511, -BCBIAS_J*4); 2090 dasm_put(Dst, 13518, -BCBIAS_J*4);
2091 } else { 2091 } else {
2092 dasm_put(Dst, 13507, BC_JLOOP); 2092 dasm_put(Dst, 13514, BC_JLOOP);
2093 } 2093 }
2094 dasm_put(Dst, 9557); 2094 dasm_put(Dst, 9564);
2095 if (sse) { 2095 if (sse) {
2096 dasm_put(Dst, 13521); 2096 dasm_put(Dst, 13528);
2097 } 2097 }
2098 break; 2098 break;
2099 2099
2100 case BC_ITERL: 2100 case BC_ITERL:
2101#if LJ_HASJIT 2101#if LJ_HASJIT
2102 dasm_put(Dst, 13340, HOTCOUNT_PCMASK, GG_DISP2HOT); 2102 dasm_put(Dst, 13347, HOTCOUNT_PCMASK, GG_DISP2HOT);
2103#endif 2103#endif
2104 break; 2104 break;
2105 2105
@@ -2108,33 +2108,33 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2108 break; 2108 break;
2109#endif 2109#endif
2110 case BC_IITERL: 2110 case BC_IITERL:
2111 dasm_put(Dst, 13532, LJ_TNIL); 2111 dasm_put(Dst, 13539, LJ_TNIL);
2112 if (op == BC_JITERL) { 2112 if (op == BC_JITERL) {
2113 dasm_put(Dst, 13547, BC_JLOOP); 2113 dasm_put(Dst, 13554, BC_JLOOP);
2114 } else { 2114 } else {
2115 dasm_put(Dst, 13561, -BCBIAS_J*4); 2115 dasm_put(Dst, 13568, -BCBIAS_J*4);
2116 } 2116 }
2117 dasm_put(Dst, 9857); 2117 dasm_put(Dst, 9864);
2118 break; 2118 break;
2119 2119
2120 case BC_LOOP: 2120 case BC_LOOP:
2121#if LJ_HASJIT 2121#if LJ_HASJIT
2122 dasm_put(Dst, 13340, HOTCOUNT_PCMASK, GG_DISP2HOT); 2122 dasm_put(Dst, 13347, HOTCOUNT_PCMASK, GG_DISP2HOT);
2123#endif 2123#endif
2124 break; 2124 break;
2125 2125
2126 case BC_ILOOP: 2126 case BC_ILOOP:
2127 dasm_put(Dst, 9559); 2127 dasm_put(Dst, 9566);
2128 break; 2128 break;
2129 2129
2130 case BC_JLOOP: 2130 case BC_JLOOP:
2131#if LJ_HASJIT 2131#if LJ_HASJIT
2132 dasm_put(Dst, 13577, 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); 2132 dasm_put(Dst, 13584, 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 2133#endif
2134 break; 2134 break;
2135 2135
2136 case BC_JMP: 2136 case BC_JMP:
2137 dasm_put(Dst, 13686, -BCBIAS_J*4); 2137 dasm_put(Dst, 13693, -BCBIAS_J*4);
2138 break; 2138 break;
2139 2139
2140 /* -- Function headers -------------------------------------------------- */ 2140 /* -- Function headers -------------------------------------------------- */
@@ -2148,7 +2148,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2148 2148
2149 case BC_FUNCF: 2149 case BC_FUNCF:
2150#if LJ_HASJIT 2150#if LJ_HASJIT
2151 dasm_put(Dst, 13711, HOTCOUNT_PCMASK, GG_DISP2HOT); 2151 dasm_put(Dst, 13718, HOTCOUNT_PCMASK, GG_DISP2HOT);
2152#endif 2152#endif
2153 case BC_FUNCV: /* NYI: compiled vararg functions. */ 2153 case BC_FUNCV: /* NYI: compiled vararg functions. */
2154 break; 2154 break;
@@ -2158,47 +2158,47 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2158 break; 2158 break;
2159#endif 2159#endif
2160 case BC_IFUNCF: 2160 case BC_IFUNCF:
2161 dasm_put(Dst, 13732, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams)); 2161 dasm_put(Dst, 13739, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams));
2162 if (op == BC_JFUNCF) { 2162 if (op == BC_JFUNCF) {
2163 dasm_put(Dst, 13762, BC_JLOOP); 2163 dasm_put(Dst, 13769, BC_JLOOP);
2164 } else { 2164 } else {
2165 dasm_put(Dst, 9559); 2165 dasm_put(Dst, 9566);
2166 } 2166 }
2167 dasm_put(Dst, 13771, LJ_TNIL); 2167 dasm_put(Dst, 13778, LJ_TNIL);
2168 break; 2168 break;
2169 2169
2170 case BC_JFUNCV: 2170 case BC_JFUNCV:
2171#if !LJ_HASJIT 2171#if !LJ_HASJIT
2172 break; 2172 break;
2173#endif 2173#endif
2174 dasm_put(Dst, 9250); 2174 dasm_put(Dst, 9257);
2175 break; /* NYI: compiled vararg functions. */ 2175 break; /* NYI: compiled vararg functions. */
2176 2176
2177 case BC_IFUNCV: 2177 case BC_IFUNCV:
2178 dasm_put(Dst, 13793, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL); 2178 dasm_put(Dst, 13800, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL);
2179 if (op == BC_JFUNCV) { 2179 if (op == BC_JFUNCV) {
2180 dasm_put(Dst, 13762, BC_JLOOP); 2180 dasm_put(Dst, 13769, BC_JLOOP);
2181 } else { 2181 } else {
2182 dasm_put(Dst, 13884, -4+PC2PROTO(k)); 2182 dasm_put(Dst, 13891, -4+PC2PROTO(k));
2183 } 2183 }
2184 dasm_put(Dst, 13907, LJ_TNIL); 2184 dasm_put(Dst, 13914, LJ_TNIL);
2185 break; 2185 break;
2186 2186
2187 case BC_FUNCC: 2187 case BC_FUNCC:
2188 case BC_FUNCCW: 2188 case BC_FUNCCW:
2189 dasm_put(Dst, 13929, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top)); 2189 dasm_put(Dst, 13936, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top));
2190 if (op == BC_FUNCC) { 2190 if (op == BC_FUNCC) {
2191 dasm_put(Dst, 13959); 2191 dasm_put(Dst, 13966);
2192 } else { 2192 } else {
2193 dasm_put(Dst, 13963); 2193 dasm_put(Dst, 13970);
2194 } 2194 }
2195 dasm_put(Dst, 13971, DISPATCH_GL(vmstate), ~LJ_VMST_C); 2195 dasm_put(Dst, 13978, DISPATCH_GL(vmstate), ~LJ_VMST_C);
2196 if (op == BC_FUNCC) { 2196 if (op == BC_FUNCC) {
2197 dasm_put(Dst, 13980); 2197 dasm_put(Dst, 13987);
2198 } else { 2198 } else {
2199 dasm_put(Dst, 13984, DISPATCH_GL(wrapf)); 2199 dasm_put(Dst, 13991, DISPATCH_GL(wrapf));
2200 } 2200 }
2201 dasm_put(Dst, 13989, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top)); 2201 dasm_put(Dst, 13996, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top));
2202 break; 2202 break;
2203 2203
2204 /* ---------------------------------------------------------------------- */ 2204 /* ---------------------------------------------------------------------- */
@@ -2226,7 +2226,7 @@ static int build_backend(BuildCtx *ctx)
2226 2226
2227 build_subroutines(ctx, cmov, sse); 2227 build_subroutines(ctx, cmov, sse);
2228 2228
2229 dasm_put(Dst, 14014); 2229 dasm_put(Dst, 14021);
2230 for (op = 0; op < BC__MAX; op++) 2230 for (op = 0; op < BC__MAX; op++)
2231 build_ins(ctx, (BCOp)op, op, cmov, sse); 2231 build_ins(ctx, (BCOp)op, op, cmov, sse);
2232 2232
diff --git a/src/buildvm_x86.dasc b/src/buildvm_x86.dasc
index 579e39da..0fcfc1a9 100644
--- a/src/buildvm_x86.dasc
+++ b/src/buildvm_x86.dasc
@@ -2613,6 +2613,7 @@ static void build_subroutines(BuildCtx *ctx, int cmov, int sse)
2613 | mov L:RB, [DISPATCH+DISPATCH_GL(jit_L)] 2613 | mov L:RB, [DISPATCH+DISPATCH_GL(jit_L)]
2614 | mov BASE, [DISPATCH+DISPATCH_GL(jit_base)] 2614 | mov BASE, [DISPATCH+DISPATCH_GL(jit_base)]
2615 | mov aword [DISPATCH+DISPATCH_J(L)], L:RBa 2615 | mov aword [DISPATCH+DISPATCH_J(L)], L:RBa
2616 | mov dword [DISPATCH+DISPATCH_GL(jit_L)], 0
2616 | mov L:RB->base, BASE 2617 | mov L:RB->base, BASE
2617 |.if X64WIN 2618 |.if X64WIN
2618 | lea CARG2, [rsp+4*8] 2619 | lea CARG2, [rsp+4*8]
diff --git a/src/buildvm_x86.h b/src/buildvm_x86.h
index c36e2aa5..d1a08ef8 100644
--- a/src/buildvm_x86.h
+++ b/src/buildvm_x86.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[15217] = { 15static const unsigned char build_actionlist[15224] = {
16 254,1,248,10,252,247,198,237,15,132,244,11,131,230,252,248,41,252,242,141, 16 254,1,248,10,252,247,198,237,15,132,244,11,131,230,252,248,41,252,242,141,
17 76,49,252,248,139,114,252,252,199,68,10,4,237,248,12,131,192,1,137,68,36, 17 76,49,252,248,139,114,252,252,199,68,10,4,237,248,12,131,192,1,137,68,36,
18 20,252,247,198,237,15,132,244,13,248,14,252,247,198,237,15,132,244,10,199, 18 20,252,247,198,237,15,132,244,13,248,14,252,247,198,237,15,132,244,10,199,
@@ -416,336 +416,337 @@ static const unsigned char build_actionlist[15217] = {
416 233,137,139,233,129,252,236,239,252,242,15,17,125,216,252,242,15,17,117,208, 416 233,137,139,233,129,252,236,239,252,242,15,17,125,216,252,242,15,17,117,208,
417 252,242,15,17,109,200,252,242,15,17,101,192,252,242,15,17,93,184,252,242, 417 252,242,15,17,109,200,252,242,15,17,101,192,252,242,15,17,93,184,252,242,
418 15,17,85,176,252,242,15,17,77,168,252,242,15,17,69,160,139,171,233,139,147, 418 15,17,85,176,252,242,15,17,77,168,252,242,15,17,69,160,139,171,233,139,147,
419 233,137,171,233,137,149,233,141,84,36,16,141,139,233,232,251,1,23,139,141, 419 233,137,171,233,199,131,233,0,0,0,0,137,149,233,141,84,36,16,141,139,233,
420 233,129,225,239,137,204,137,169,233,139,149,233,139,177,233,255,248,144,255, 420 232,251,1,23,139,141,233,129,225,239,137,204,137,169,233,139,149,233,139,
421 133,192,15,136,244,249,137,68,36,20,139,122,252,248,139,191,233,139,191,233, 421 177,233,255,248,144,255,133,192,15,136,244,249,137,68,36,20,139,122,252,248,
422 199,131,233,0,0,0,0,199,131,233,237,139,6,15,182,204,15,182,232,131,198,4, 422 139,191,233,139,191,233,199,131,233,0,0,0,0,199,131,233,237,139,6,15,182,
423 193,232,16,129,252,253,239,15,130,244,248,139,68,36,20,248,2,252,255,36,171, 423 204,15,182,232,131,198,4,193,232,16,129,252,253,239,15,130,244,248,139,68,
424 248,3,252,247,216,137,252,233,137,194,232,251,1,24,255,248,82,255,217,124, 424 36,20,248,2,252,255,36,171,248,3,252,247,216,137,252,233,137,194,232,251,
425 36,4,137,68,36,8,102,184,0,4,102,11,68,36,4,102,37,252,255,252,247,102,137, 425 1,24,255,248,82,255,217,124,36,4,137,68,36,8,102,184,0,4,102,11,68,36,4,102,
426 68,36,6,217,108,36,6,217,252,252,217,108,36,4,139,68,36,8,195,255,248,145, 426 37,252,255,252,247,102,137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,
427 102,15,252,239,210,102,15,118,210,102,15,115,210,1,184,0,0,48,67,102,15,110, 427 139,68,36,8,195,255,248,145,102,15,252,239,210,102,15,118,210,102,15,115,
428 216,102,15,112,219,81,15,40,200,102,15,84,202,102,15,46,217,15,134,244,247, 428 210,1,184,0,0,48,67,102,15,110,216,102,15,112,219,81,15,40,200,102,15,84,
429 102,15,85,208,252,242,15,88,203,252,242,15,92,203,102,15,86,202,184,0,0,252, 429 202,102,15,46,217,15,134,244,247,102,15,85,208,252,242,15,88,203,252,242,
430 240,63,102,15,110,208,102,15,112,210,81,252,242,15,194,193,1,102,15,84,194, 430 15,92,203,102,15,86,202,184,0,0,252,240,63,102,15,110,208,102,15,112,210,
431 252,242,15,92,200,15,40,193,248,1,195,248,84,255,217,124,36,4,137,68,36,8, 431 81,252,242,15,194,193,1,102,15,84,194,252,242,15,92,200,15,40,193,248,1,195,
432 102,184,0,8,102,11,68,36,4,102,37,252,255,252,251,102,137,68,36,6,217,108, 432 248,84,255,217,124,36,4,137,68,36,8,102,184,0,8,102,11,68,36,4,102,37,252,
433 36,6,217,252,252,217,108,36,4,139,68,36,8,195,255,248,146,102,15,252,239, 433 255,252,251,102,137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,139,68,
434 210,102,15,118,210,102,15,115,210,1,184,0,0,48,67,102,15,110,216,102,15,112, 434 36,8,195,255,248,146,102,15,252,239,210,102,15,118,210,102,15,115,210,1,184,
435 219,81,15,40,200,102,15,84,202,102,15,46,217,15,134,244,247,102,15,85,208, 435 0,0,48,67,102,15,110,216,102,15,112,219,81,15,40,200,102,15,84,202,102,15,
436 252,242,15,88,203,252,242,15,92,203,102,15,86,202,184,0,0,252,240,191,102, 436 46,217,15,134,244,247,102,15,85,208,252,242,15,88,203,252,242,15,92,203,102,
437 15,110,208,102,15,112,210,81,252,242,15,194,193,6,102,15,84,194,252,242,15, 437 15,86,202,184,0,0,252,240,191,102,15,110,208,102,15,112,210,81,252,242,15,
438 92,200,15,40,193,248,1,195,248,104,255,217,124,36,4,137,68,36,8,102,184,0, 438 194,193,6,102,15,84,194,252,242,15,92,200,15,40,193,248,1,195,248,104,255,
439 12,102,11,68,36,4,102,137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,139, 439 217,124,36,4,137,68,36,8,102,184,0,12,102,11,68,36,4,102,137,68,36,6,217,
440 68,36,8,195,255,248,147,102,15,252,239,210,102,15,118,210,102,15,115,210, 440 108,36,6,217,252,252,217,108,36,4,139,68,36,8,195,255,248,147,102,15,252,
441 1,184,0,0,48,67,102,15,110,216,102,15,112,219,81,15,40,200,102,15,84,202, 441 239,210,102,15,118,210,102,15,115,210,1,184,0,0,48,67,102,15,110,216,102,
442 102,15,46,217,15,134,244,247,102,15,85,208,15,40,193,252,242,15,88,203,252, 442 15,112,219,81,15,40,200,102,15,84,202,102,15,46,217,15,134,244,247,102,15,
443 242,15,92,203,184,0,0,252,240,63,102,15,110,216,102,15,112,219,81,252,242, 443 85,208,15,40,193,252,242,15,88,203,252,242,15,92,203,184,0,0,252,240,63,102,
444 15,194,193,1,102,15,84,195,252,242,15,92,200,102,15,86,202,15,40,193,248, 444 15,110,216,102,15,112,219,81,252,242,15,194,193,1,102,15,84,195,252,242,15,
445 1,195,248,148,255,15,40,232,252,242,15,94,193,102,15,252,239,210,102,15,118, 445 92,200,102,15,86,202,15,40,193,248,1,195,248,148,255,15,40,232,252,242,15,
446 210,102,15,115,210,1,184,0,0,48,67,102,15,110,216,102,15,112,219,81,15,40, 446 94,193,102,15,252,239,210,102,15,118,210,102,15,115,210,1,184,0,0,48,67,102,
447 224,102,15,84,226,102,15,46,220,15,134,244,247,102,15,85,208,252,242,15,88, 447 15,110,216,102,15,112,219,81,15,40,224,102,15,84,226,102,15,46,220,15,134,
448 227,252,242,15,92,227,102,15,86,226,184,0,0,252,240,63,102,15,110,208,102, 448 244,247,102,15,85,208,252,242,15,88,227,252,242,15,92,227,102,15,86,226,184,
449 15,112,210,81,252,242,15,194,196,1,102,15,84,194,252,242,15,92,224,15,40, 449 0,0,252,240,63,102,15,110,208,102,15,112,210,81,252,242,15,194,196,1,102,
450 197,252,242,15,89,204,252,242,15,92,193,195,248,1,252,242,15,89,200,15,40, 450 15,84,194,252,242,15,92,224,15,40,197,252,242,15,89,204,252,242,15,92,193,
451 197,252,242,15,92,193,195,255,217,193,216,252,241,217,124,36,4,102,184,0, 451 195,248,1,252,242,15,89,200,15,40,197,252,242,15,92,193,195,255,217,193,216,
452 4,102,11,68,36,4,102,37,252,255,252,247,102,137,68,36,6,217,108,36,6,217, 452 252,241,217,124,36,4,102,184,0,4,102,11,68,36,4,102,37,252,255,252,247,102,
453 252,252,217,108,36,4,222,201,222,252,233,195,255,248,88,217,252,234,222,201, 453 137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,222,201,222,252,233,195,
454 248,149,217,84,36,4,129,124,36,4,0,0,128,127,15,132,244,247,129,124,36,4, 454 255,248,88,217,252,234,222,201,248,149,217,84,36,4,129,124,36,4,0,0,128,127,
455 0,0,128,252,255,15,132,244,248,248,150,217,192,217,252,252,220,252,233,217, 455 15,132,244,247,129,124,36,4,0,0,128,252,255,15,132,244,248,248,150,217,192,
456 201,217,252,240,217,232,222,193,217,252,253,221,217,248,1,195,248,2,221,216, 456 217,252,252,220,252,233,217,201,217,252,240,217,232,222,193,217,252,253,221,
457 217,252,238,195,255,248,107,219,84,36,4,219,68,36,4,255,223,252,233,255,221, 457 217,248,1,195,248,2,221,216,217,252,238,195,255,248,107,219,84,36,4,219,68,
458 252,233,223,224,158,255,15,133,244,254,15,138,244,255,221,216,139,68,36,4, 458 36,4,255,223,252,233,255,221,252,233,223,224,158,255,15,133,244,254,15,138,
459 131,252,248,1,15,142,244,252,248,1,169,1,0,0,0,15,133,244,248,216,200,209, 459 244,255,221,216,139,68,36,4,131,252,248,1,15,142,244,252,248,1,169,1,0,0,
460 232,252,233,244,1,248,2,209,232,15,132,244,251,217,192,248,3,216,200,209, 460 0,15,133,244,248,216,200,209,232,252,233,244,1,248,2,209,232,15,132,244,251,
461 232,15,132,244,250,15,131,244,3,220,201,252,233,244,3,248,4,255,222,201,248, 461 217,192,248,3,216,200,209,232,15,132,244,250,15,131,244,3,220,201,252,233,
462 5,195,248,6,15,132,244,5,15,130,244,253,217,232,222,252,241,252,247,216,131, 462 244,3,248,4,255,222,201,248,5,195,248,6,15,132,244,5,15,130,244,253,217,232,
463 252,248,1,15,132,244,5,252,233,244,1,248,7,221,216,217,232,195,248,8,217, 463 222,252,241,252,247,216,131,252,248,1,15,132,244,5,252,233,244,1,248,7,221,
464 84,36,4,217,201,217,84,36,8,139,68,36,4,209,224,61,0,0,0,252,255,15,132,244, 464 216,217,232,195,248,8,217,84,36,4,217,201,217,84,36,8,139,68,36,4,209,224,
465 248,139,68,36,8,209,224,15,132,244,250,61,0,0,0,252,255,15,132,244,250,217, 465 61,0,0,0,252,255,15,132,244,248,139,68,36,8,209,224,15,132,244,250,61,0,0,
466 252,241,252,233,244,150,248,9,255,217,232,255,223,252,234,255,221,252,234, 466 0,252,255,15,132,244,250,217,252,241,252,233,244,150,248,9,255,217,232,255,
467 223,224,158,255,15,132,244,247,217,201,248,1,221,216,195,248,2,217,225,217, 467 223,252,234,255,221,252,234,223,224,158,255,15,132,244,247,217,201,248,1,
468 232,255,15,132,244,249,221,216,217,225,217,252,238,184,0,0,0,0,15,146,208, 468 221,216,195,248,2,217,225,217,232,255,15,132,244,249,221,216,217,225,217,
469 209,200,51,68,36,4,15,137,244,249,217,201,248,3,221,217,217,225,195,248,4, 469 252,238,184,0,0,0,0,15,146,208,209,200,51,68,36,4,15,137,244,249,217,201,
470 131,124,36,4,0,15,141,244,3,221,216,221,216,133,192,15,132,244,251,217,252, 470 248,3,221,217,217,225,195,248,4,131,124,36,4,0,15,141,244,3,221,216,221,216,
471 238,195,248,5,199,68,36,4,0,0,128,127,217,68,36,4,195,255,248,107,255,248, 471 133,192,15,132,244,251,217,252,238,195,248,5,199,68,36,4,0,0,128,127,217,
472 151,252,242,15,45,193,252,242,15,42,208,102,15,46,202,15,133,244,254,15,138, 472 68,36,4,195,255,248,107,255,248,151,252,242,15,45,193,252,242,15,42,208,102,
473 244,255,248,152,131,252,248,1,15,142,244,252,248,1,169,1,0,0,0,15,133,244, 473 15,46,202,15,133,244,254,15,138,244,255,248,152,131,252,248,1,15,142,244,
474 248,252,242,15,89,192,209,232,252,233,244,1,248,2,209,232,15,132,244,251, 474 252,248,1,169,1,0,0,0,15,133,244,248,252,242,15,89,192,209,232,252,233,244,
475 15,40,200,248,3,252,242,15,89,192,209,232,15,132,244,250,15,131,244,3,255, 475 1,248,2,209,232,15,132,244,251,15,40,200,248,3,252,242,15,89,192,209,232,
476 252,242,15,89,200,252,233,244,3,248,4,252,242,15,89,193,248,5,195,248,6,15, 476 15,132,244,250,15,131,244,3,255,252,242,15,89,200,252,233,244,3,248,4,252,
477 132,244,5,15,130,244,253,80,184,0,0,252,240,63,102,15,110,200,102,15,112, 477 242,15,89,193,248,5,195,248,6,15,132,244,5,15,130,244,253,80,184,0,0,252,
478 201,81,252,242,15,94,200,88,15,40,193,252,247,216,131,252,248,1,15,132,244, 478 240,63,102,15,110,200,102,15,112,201,81,252,242,15,94,200,88,15,40,193,252,
479 5,252,233,244,1,248,7,184,0,0,252,240,63,102,15,110,192,102,15,112,192,81, 479 247,216,131,252,248,1,15,132,244,5,252,233,244,1,248,7,184,0,0,252,240,63,
480 195,248,8,252,242,15,17,76,36,12,252,242,15,17,68,36,4,131,124,36,12,0,15, 480 102,15,110,192,102,15,112,192,81,195,248,8,252,242,15,17,76,36,12,252,242,
481 133,244,247,139,68,36,16,209,224,61,0,0,224,252,255,15,132,244,248,248,1, 481 15,17,68,36,4,131,124,36,12,0,15,133,244,247,139,68,36,16,209,224,61,0,0,
482 255,131,124,36,4,0,15,133,244,247,139,68,36,8,209,224,15,132,244,250,61,0, 482 224,252,255,15,132,244,248,248,1,255,131,124,36,4,0,15,133,244,247,139,68,
483 0,224,252,255,15,132,244,251,248,1,221,68,36,12,221,68,36,4,217,252,241,217, 483 36,8,209,224,15,132,244,250,61,0,0,224,252,255,15,132,244,251,248,1,221,68,
484 192,217,252,252,220,252,233,217,201,217,252,240,217,232,222,193,217,252,253, 484 36,12,221,68,36,4,217,252,241,217,192,217,252,252,220,252,233,217,201,217,
485 221,217,221,92,36,4,252,242,15,16,68,36,4,195,248,9,184,0,0,252,240,63,102, 485 252,240,217,232,222,193,217,252,253,221,217,221,92,36,4,252,242,15,16,68,
486 15,110,208,102,15,112,210,81,102,15,46,194,15,132,244,247,15,40,193,248,1, 486 36,4,195,248,9,184,0,0,252,240,63,102,15,110,208,102,15,112,210,81,102,15,
487 195,248,2,102,15,252,239,210,102,15,118,210,102,15,115,210,1,102,15,84,194, 487 46,194,15,132,244,247,15,40,193,248,1,195,248,2,102,15,252,239,210,102,15,
488 184,0,0,252,240,63,102,15,110,208,102,15,112,210,81,102,15,46,194,15,132, 488 118,210,102,15,115,210,1,102,15,84,194,184,0,0,252,240,63,102,15,110,208,
489 244,1,102,15,80,193,15,87,192,136,196,15,146,208,48,224,15,133,244,1,248, 489 102,15,112,210,81,102,15,46,194,15,132,244,1,102,15,80,193,15,87,192,136,
490 3,184,0,0,252,240,127,102,15,110,192,102,15,112,192,81,195,248,4,102,15,80, 490 196,15,146,208,48,224,15,133,244,1,248,3,184,0,0,252,240,127,102,15,110,192,
491 193,133,192,15,133,244,3,255,15,87,192,195,248,5,102,15,80,193,133,192,15, 491 102,15,112,192,81,195,248,4,102,15,80,193,133,192,15,133,244,3,255,15,87,
492 132,244,3,15,87,192,195,248,153,255,139,68,36,12,252,242,15,16,68,36,4,131, 492 192,195,248,5,102,15,80,193,133,192,15,132,244,3,15,87,192,195,248,153,255,
493 252,248,1,15,132,244,247,15,135,244,248,232,244,82,252,233,244,253,248,1, 493 139,68,36,12,252,242,15,16,68,36,4,131,252,248,1,15,132,244,247,15,135,244,
494 232,244,84,252,233,244,253,248,2,131,252,248,3,15,132,244,247,15,135,244, 494 248,232,244,82,252,233,244,253,248,1,232,244,84,252,233,244,253,248,2,131,
495 248,232,244,104,255,252,233,244,253,248,1,252,242,15,81,192,248,7,252,242, 495 252,248,3,15,132,244,247,15,135,244,248,232,244,104,255,252,233,244,253,248,
496 15,17,68,36,4,221,68,36,4,195,248,2,221,68,36,4,131,252,248,5,15,130,244, 496 1,252,242,15,81,192,248,7,252,242,15,17,68,36,4,221,68,36,4,195,248,2,221,
497 88,15,132,244,149,248,2,131,252,248,7,15,132,244,247,15,135,244,248,217,252, 497 68,36,4,131,252,248,5,15,130,244,88,15,132,244,149,248,2,131,252,248,7,15,
498 237,217,201,217,252,241,195,248,1,217,232,217,201,217,252,241,195,248,2,131, 498 132,244,247,15,135,244,248,217,252,237,217,201,217,252,241,195,248,1,217,
499 252,248,9,15,132,244,247,15,135,244,248,255,217,252,236,217,201,217,252,241, 499 232,217,201,217,252,241,195,248,2,131,252,248,9,15,132,244,247,15,135,244,
500 195,248,1,217,252,254,195,248,2,131,252,248,11,15,132,244,247,15,135,244, 500 248,255,217,252,236,217,201,217,252,241,195,248,1,217,252,254,195,248,2,131,
501 255,217,252,255,195,248,1,217,252,242,221,216,195,255,139,68,36,12,221,68, 501 252,248,11,15,132,244,247,15,135,244,255,217,252,255,195,248,1,217,252,242,
502 36,4,131,252,248,1,15,130,244,82,15,132,244,84,131,252,248,3,15,130,244,104, 502 221,216,195,255,139,68,36,12,221,68,36,4,131,252,248,1,15,130,244,82,15,132,
503 15,135,244,248,217,252,250,195,248,2,131,252,248,5,15,130,244,88,15,132,244, 503 244,84,131,252,248,3,15,130,244,104,15,135,244,248,217,252,250,195,248,2,
504 149,131,252,248,7,15,132,244,247,15,135,244,248,217,252,237,217,201,217,252, 504 131,252,248,5,15,130,244,88,15,132,244,149,131,252,248,7,15,132,244,247,15,
505 241,195,248,1,217,232,217,201,217,252,241,195,248,2,131,252,248,9,15,132, 505 135,244,248,217,252,237,217,201,217,252,241,195,248,1,217,232,217,201,217,
506 244,247,255,15,135,244,248,217,252,236,217,201,217,252,241,195,248,1,217, 506 252,241,195,248,2,131,252,248,9,15,132,244,247,255,15,135,244,248,217,252,
507 252,254,195,248,2,131,252,248,11,15,132,244,247,15,135,244,255,217,252,255, 507 236,217,201,217,252,241,195,248,1,217,252,254,195,248,2,131,252,248,11,15,
508 195,248,1,217,252,242,221,216,195,255,248,9,204,248,154,255,139,68,36,20, 508 132,244,247,15,135,244,255,217,252,255,195,248,1,217,252,242,221,216,195,
509 252,242,15,16,68,36,4,252,242,15,16,76,36,12,131,252,248,1,15,132,244,247, 509 255,248,9,204,248,154,255,139,68,36,20,252,242,15,16,68,36,4,252,242,15,16,
510 15,135,244,248,252,242,15,88,193,248,7,252,242,15,17,68,36,4,221,68,36,4, 510 76,36,12,131,252,248,1,15,132,244,247,15,135,244,248,252,242,15,88,193,248,
511 195,248,1,252,242,15,92,193,252,233,244,7,248,2,131,252,248,3,15,132,244, 511 7,252,242,15,17,68,36,4,221,68,36,4,195,248,1,252,242,15,92,193,252,233,244,
512 247,15,135,244,248,252,242,15,89,193,252,233,244,7,248,1,252,242,15,94,193, 512 7,248,2,131,252,248,3,15,132,244,247,15,135,244,248,252,242,15,89,193,252,
513 252,233,244,7,248,2,131,252,248,5,15,132,244,247,255,15,135,244,248,232,244, 513 233,244,7,248,1,252,242,15,94,193,252,233,244,7,248,2,131,252,248,5,15,132,
514 148,252,233,244,7,248,1,90,232,244,107,82,252,233,244,7,248,2,131,252,248, 514 244,247,255,15,135,244,248,232,244,148,252,233,244,7,248,1,90,232,244,107,
515 7,15,132,244,247,15,135,244,248,184,0,0,0,128,102,15,110,200,102,15,112,201, 515 82,252,233,244,7,248,2,131,252,248,7,15,132,244,247,15,135,244,248,184,0,
516 81,15,87,193,252,233,244,7,248,1,102,15,252,239,201,102,15,118,201,102,15, 516 0,0,128,102,15,110,200,102,15,112,201,81,15,87,193,252,233,244,7,248,1,102,
517 115,209,1,15,84,193,252,233,244,7,248,2,255,131,252,248,9,15,135,244,248, 517 15,252,239,201,102,15,118,201,102,15,115,209,1,15,84,193,252,233,244,7,248,
518 221,68,36,4,221,68,36,12,15,132,244,247,217,252,243,195,248,1,217,201,217, 518 2,255,131,252,248,9,15,135,244,248,221,68,36,4,221,68,36,12,15,132,244,247,
519 252,253,221,217,195,248,2,131,252,248,11,15,132,244,247,15,135,244,255,252, 519 217,252,243,195,248,1,217,201,217,252,253,221,217,195,248,2,131,252,248,11,
520 242,15,93,193,252,233,244,7,248,1,252,242,15,95,193,252,233,244,7,248,9,204, 520 15,132,244,247,15,135,244,255,252,242,15,93,193,252,233,244,7,248,1,252,242,
521 255,139,68,36,20,221,68,36,4,221,68,36,12,131,252,248,1,15,132,244,247,15, 521 15,95,193,252,233,244,7,248,9,204,255,139,68,36,20,221,68,36,4,221,68,36,
522 135,244,248,222,193,195,248,1,222,252,233,195,248,2,131,252,248,3,15,132, 522 12,131,252,248,1,15,132,244,247,15,135,244,248,222,193,195,248,1,222,252,
523 244,247,15,135,244,248,222,201,195,248,1,222,252,249,195,248,2,131,252,248, 523 233,195,248,2,131,252,248,3,15,132,244,247,15,135,244,248,222,201,195,248,
524 5,15,130,244,148,15,132,244,107,131,252,248,7,15,132,244,247,15,135,244,248, 524 1,222,252,249,195,248,2,131,252,248,5,15,130,244,148,15,132,244,107,131,252,
525 255,221,216,217,224,195,248,1,221,216,217,225,195,248,2,131,252,248,9,15, 525 248,7,15,132,244,247,15,135,244,248,255,221,216,217,224,195,248,1,221,216,
526 132,244,247,15,135,244,248,217,252,243,195,248,1,217,201,217,252,253,221, 526 217,225,195,248,2,131,252,248,9,15,132,244,247,15,135,244,248,217,252,243,
527 217,195,248,2,131,252,248,11,15,132,244,247,15,135,244,255,255,219,252,233, 527 195,248,1,217,201,217,252,253,221,217,195,248,2,131,252,248,11,15,132,244,
528 219,209,221,217,195,248,1,219,252,233,218,209,221,217,195,255,221,225,223, 528 247,15,135,244,255,255,219,252,233,219,209,221,217,195,248,1,219,252,233,
529 224,252,246,196,1,15,132,244,248,217,201,248,2,221,216,195,248,1,221,225, 529 218,209,221,217,195,255,221,225,223,224,252,246,196,1,15,132,244,248,217,
530 223,224,252,246,196,1,15,133,244,248,217,201,248,2,221,216,195,255,248,155, 530 201,248,2,221,216,195,248,1,221,225,223,224,252,246,196,1,15,133,244,248,
531 156,90,137,209,129,252,242,0,0,32,0,82,157,156,90,49,192,57,209,15,132,244, 531 217,201,248,2,221,216,195,255,248,155,156,90,137,209,129,252,242,0,0,32,0,
532 247,139,68,36,4,87,83,15,162,139,124,36,16,137,7,137,95,4,137,79,8,137,87, 532 82,157,156,90,49,192,57,209,15,132,244,247,139,68,36,4,87,83,15,162,139,124,
533 12,91,95,248,1,195,255,249,255,129,124,253,202,4,239,15,135,244,41,129,124, 533 36,16,137,7,137,95,4,137,79,8,137,87,12,91,95,248,1,195,255,249,255,129,124,
534 253,194,4,239,15,135,244,41,255,252,242,15,16,4,194,131,198,4,102,15,46,4, 534 253,202,4,239,15,135,244,41,129,124,253,194,4,239,15,135,244,41,255,252,242,
535 202,255,221,4,202,221,4,194,131,198,4,255,223,252,233,221,216,255,218,252, 535 15,16,4,194,131,198,4,102,15,46,4,202,255,221,4,202,221,4,194,131,198,4,255,
536 233,223,224,158,255,15,134,244,248,255,15,131,244,248,255,248,1,15,183,70, 536 223,252,233,221,216,255,218,252,233,223,224,158,255,15,134,244,248,255,15,
537 252,254,141,180,253,134,233,248,2,139,6,15,182,204,15,182,232,131,198,4,193, 537 131,244,248,255,248,1,15,183,70,252,254,141,180,253,134,233,248,2,139,6,15,
538 232,16,252,255,36,171,255,139,108,194,4,131,198,4,129,252,253,239,15,135, 538 182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,139,108,194,4,
539 244,251,129,124,253,202,4,239,15,135,244,251,255,252,242,15,16,4,194,102, 539 131,198,4,129,252,253,239,15,135,244,251,129,124,253,202,4,239,15,135,244,
540 15,46,4,202,255,221,4,202,221,4,194,255,15,138,244,248,15,133,244,248,255, 540 251,255,252,242,15,16,4,194,102,15,46,4,202,255,221,4,202,221,4,194,255,15,
541 15,138,244,248,15,132,244,247,255,248,1,15,183,70,252,254,141,180,253,134, 541 138,244,248,15,133,244,248,255,15,138,244,248,15,132,244,247,255,248,1,15,
542 233,248,2,255,248,2,15,183,70,252,254,141,180,253,134,233,248,1,255,248,5, 542 183,70,252,254,141,180,253,134,233,248,2,255,248,2,15,183,70,252,254,141,
543 57,108,202,4,15,133,244,2,129,252,253,239,15,131,244,1,139,12,202,139,4,194, 543 180,253,134,233,248,1,255,248,5,57,108,202,4,15,133,244,2,129,252,253,239,
544 57,193,15,132,244,1,129,252,253,239,15,135,244,2,139,169,233,133,252,237, 544 15,131,244,1,139,12,202,139,4,194,57,193,15,132,244,1,129,252,253,239,15,
545 15,132,244,2,252,246,133,233,235,15,133,244,2,255,49,252,237,255,189,1,0, 545 135,244,2,139,169,233,133,252,237,15,132,244,2,252,246,133,233,235,15,133,
546 0,0,255,252,233,244,45,255,252,247,208,131,198,4,129,124,253,202,4,239,15, 546 244,2,255,49,252,237,255,189,1,0,0,0,255,252,233,244,45,255,252,247,208,131,
547 133,244,248,139,12,202,59,12,135,255,131,198,4,129,124,253,202,4,239,15,135, 547 198,4,129,124,253,202,4,239,15,133,244,248,139,12,202,59,12,135,255,131,198,
548 244,248,255,252,242,15,16,4,199,102,15,46,4,202,255,221,4,202,221,4,199,255, 548 4,129,124,253,202,4,239,15,135,244,248,255,252,242,15,16,4,199,102,15,46,
549 252,247,208,131,198,4,57,68,202,4,255,139,108,194,4,131,198,4,129,252,253, 549 4,202,255,221,4,202,221,4,199,255,252,247,208,131,198,4,57,68,202,4,255,139,
550 239,255,15,131,244,247,255,15,130,244,247,255,137,108,202,4,139,44,194,137, 550 108,194,4,131,198,4,129,252,253,239,255,15,131,244,247,255,15,130,244,247,
551 44,202,255,15,183,70,252,254,141,180,253,134,233,248,1,139,6,15,182,204,15, 551 255,137,108,202,4,139,44,194,137,44,202,255,15,183,70,252,254,141,180,253,
552 182,232,131,198,4,193,232,16,252,255,36,171,255,139,108,194,4,139,4,194,137, 552 134,233,248,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,
553 108,202,4,137,4,202,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252, 553 171,255,139,108,194,4,139,4,194,137,108,202,4,137,4,202,139,6,15,182,204,
554 255,36,171,255,49,252,237,129,124,253,194,4,239,129,213,239,137,108,202,4, 554 15,182,232,131,198,4,193,232,16,252,255,36,171,255,49,252,237,129,124,253,
555 139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,129,124, 555 194,4,239,129,213,239,137,108,202,4,139,6,15,182,204,15,182,232,131,198,4,
556 253,194,4,239,15,135,244,48,255,252,242,15,16,4,194,184,0,0,0,128,102,15, 556 193,232,16,252,255,36,171,255,129,124,253,194,4,239,15,135,244,48,255,252,
557 110,200,102,15,112,201,81,15,87,193,252,242,15,17,4,202,255,221,4,194,217, 557 242,15,16,4,194,184,0,0,0,128,102,15,110,200,102,15,112,201,81,15,87,193,
558 224,221,28,202,255,129,124,253,194,4,239,15,133,244,248,139,4,194,255,15, 558 252,242,15,17,4,202,255,221,4,194,217,224,221,28,202,255,129,124,253,194,
559 87,192,252,242,15,42,128,233,248,1,252,242,15,17,4,202,255,219,128,233,248, 559 4,239,15,133,244,248,139,4,194,255,15,87,192,252,242,15,42,128,233,248,1,
560 1,221,28,202,255,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255, 560 252,242,15,17,4,202,255,219,128,233,248,1,221,28,202,255,139,6,15,182,204,
561 36,171,248,2,129,124,253,194,4,239,15,133,244,50,139,12,194,137,213,232,251, 561 15,182,232,131,198,4,193,232,16,252,255,36,171,248,2,129,124,253,194,4,239,
562 1,18,255,252,242,15,42,192,137,252,234,255,137,4,36,137,252,234,219,4,36, 562 15,133,244,50,139,12,194,137,213,232,251,1,18,255,252,242,15,42,192,137,252,
563 255,15,182,78,252,253,252,233,244,1,255,15,182,252,236,15,182,192,255,129, 563 234,255,137,4,36,137,252,234,219,4,36,255,15,182,78,252,253,252,233,244,1,
564 124,253,252,234,4,239,15,135,244,46,255,252,242,15,16,4,252,234,252,242,15, 564 255,15,182,252,236,15,182,192,255,129,124,253,252,234,4,239,15,135,244,46,
565 88,4,199,255,221,4,252,234,220,4,199,255,129,124,253,252,234,4,239,15,135, 565 255,252,242,15,16,4,252,234,252,242,15,88,4,199,255,221,4,252,234,220,4,199,
566 244,47,255,252,242,15,16,4,199,252,242,15,88,4,252,234,255,221,4,199,220, 566 255,129,124,253,252,234,4,239,15,135,244,47,255,252,242,15,16,4,199,252,242,
567 4,252,234,255,129,124,253,252,234,4,239,15,135,244,49,129,124,253,194,4,239, 567 15,88,4,252,234,255,221,4,199,220,4,252,234,255,129,124,253,252,234,4,239,
568 15,135,244,49,255,252,242,15,16,4,252,234,252,242,15,88,4,194,255,221,4,252, 568 15,135,244,49,129,124,253,194,4,239,15,135,244,49,255,252,242,15,16,4,252,
569 234,220,4,194,255,252,242,15,16,4,252,234,252,242,15,92,4,199,255,221,4,252, 569 234,252,242,15,88,4,194,255,221,4,252,234,220,4,194,255,252,242,15,16,4,252,
570 234,220,36,199,255,252,242,15,16,4,199,252,242,15,92,4,252,234,255,221,4, 570 234,252,242,15,92,4,199,255,221,4,252,234,220,36,199,255,252,242,15,16,4,
571 199,220,36,252,234,255,252,242,15,16,4,252,234,252,242,15,92,4,194,255,221, 571 199,252,242,15,92,4,252,234,255,221,4,199,220,36,252,234,255,252,242,15,16,
572 4,252,234,220,36,194,255,252,242,15,16,4,252,234,252,242,15,89,4,199,255, 572 4,252,234,252,242,15,92,4,194,255,221,4,252,234,220,36,194,255,252,242,15,
573 221,4,252,234,220,12,199,255,252,242,15,16,4,199,252,242,15,89,4,252,234, 573 16,4,252,234,252,242,15,89,4,199,255,221,4,252,234,220,12,199,255,252,242,
574 255,221,4,199,220,12,252,234,255,252,242,15,16,4,252,234,252,242,15,89,4, 574 15,16,4,199,252,242,15,89,4,252,234,255,221,4,199,220,12,252,234,255,252,
575 194,255,221,4,252,234,220,12,194,255,252,242,15,16,4,252,234,252,242,15,94, 575 242,15,16,4,252,234,252,242,15,89,4,194,255,221,4,252,234,220,12,194,255,
576 4,199,255,221,4,252,234,220,52,199,255,252,242,15,16,4,199,252,242,15,94, 576 252,242,15,16,4,252,234,252,242,15,94,4,199,255,221,4,252,234,220,52,199,
577 4,252,234,255,221,4,199,220,52,252,234,255,252,242,15,16,4,252,234,252,242, 577 255,252,242,15,16,4,199,252,242,15,94,4,252,234,255,221,4,199,220,52,252,
578 15,94,4,194,255,221,4,252,234,220,52,194,255,252,242,15,16,4,252,234,252, 578 234,255,252,242,15,16,4,252,234,252,242,15,94,4,194,255,221,4,252,234,220,
579 242,15,16,12,199,255,221,4,252,234,221,4,199,255,252,242,15,16,4,199,252, 579 52,194,255,252,242,15,16,4,252,234,252,242,15,16,12,199,255,221,4,252,234,
580 242,15,16,12,252,234,255,221,4,199,221,4,252,234,255,252,242,15,16,4,252, 580 221,4,199,255,252,242,15,16,4,199,252,242,15,16,12,252,234,255,221,4,199,
581 234,252,242,15,16,12,194,255,221,4,252,234,221,4,194,255,248,156,232,244, 581 221,4,252,234,255,252,242,15,16,4,252,234,252,242,15,16,12,194,255,221,4,
582 148,255,252,233,244,156,255,232,244,107,255,15,182,252,236,15,182,192,141, 582 252,234,221,4,194,255,248,156,232,244,148,255,252,233,244,156,255,232,244,
583 12,194,41,232,137,76,36,4,137,68,36,8,248,33,139,108,36,48,137,44,36,137, 583 107,255,15,182,252,236,15,182,192,141,12,194,41,232,137,76,36,4,137,68,36,
584 149,233,137,116,36,24,232,251,1,25,139,149,233,133,192,15,133,244,42,15,182, 584 8,248,33,139,108,36,48,137,44,36,137,149,233,137,116,36,24,232,251,1,25,139,
585 110,252,255,15,182,78,252,253,139,68,252,234,4,139,44,252,234,137,68,202, 585 149,233,133,192,15,133,244,42,15,182,110,252,255,15,182,78,252,253,139,68,
586 4,137,44,202,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36, 586 252,234,4,139,44,252,234,137,68,202,4,137,44,202,139,6,15,182,204,15,182,
587 171,255,252,247,208,139,4,135,199,68,202,4,237,137,4,202,139,6,15,182,204, 587 232,131,198,4,193,232,16,252,255,36,171,255,252,247,208,139,4,135,199,68,
588 15,182,232,131,198,4,193,232,16,252,255,36,171,255,15,191,192,252,242,15, 588 202,4,237,137,4,202,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,
589 42,192,252,242,15,17,4,202,255,223,70,252,254,221,28,202,255,252,242,15,16, 589 255,36,171,255,15,191,192,252,242,15,42,192,252,242,15,17,4,202,255,223,70,
590 4,199,252,242,15,17,4,202,255,221,4,199,221,28,202,255,252,247,208,137,68, 590 252,254,221,28,202,255,252,242,15,16,4,199,252,242,15,17,4,202,255,221,4,
591 202,4,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255, 591 199,221,28,202,255,252,247,208,137,68,202,4,139,6,15,182,204,15,182,232,131,
592 141,76,202,12,141,68,194,4,189,237,137,105,252,248,248,1,137,41,131,193,8, 592 198,4,193,232,16,252,255,36,171,255,141,76,202,12,141,68,194,4,189,237,137,
593 57,193,15,134,244,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252, 593 105,252,248,248,1,137,41,131,193,8,57,193,15,134,244,1,139,6,15,182,204,15,
594 255,36,171,255,139,106,252,248,139,172,253,133,233,139,173,233,139,69,4,139, 594 182,232,131,198,4,193,232,16,252,255,36,171,255,139,106,252,248,139,172,253,
595 109,0,137,68,202,4,137,44,202,139,6,15,182,204,15,182,232,131,198,4,193,232, 595 133,233,139,173,233,139,69,4,139,109,0,137,68,202,4,137,44,202,139,6,15,182,
596 16,252,255,36,171,255,139,106,252,248,139,172,253,141,233,128,189,233,0,139, 596 204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,139,106,252,248,139,
597 173,233,139,12,194,139,68,194,4,137,77,0,137,69,4,15,132,244,247,252,246, 597 172,253,141,233,128,189,233,0,139,173,233,139,12,194,139,68,194,4,137,77,
598 133,233,235,15,133,244,248,248,1,139,6,15,182,204,15,182,232,131,198,4,193, 598 0,137,69,4,15,132,244,247,252,246,133,233,235,15,133,244,248,248,1,139,6,
599 232,16,252,255,36,171,248,2,129,232,239,129,252,248,239,15,134,244,1,252, 599 15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,2,129,232,239,
600 246,129,233,235,15,132,244,1,135,213,141,139,233,255,232,251,1,26,137,252, 600 129,252,248,239,15,134,244,1,252,246,129,233,235,15,132,244,1,135,213,141,
601 234,252,233,244,1,255,252,247,208,139,106,252,248,139,172,253,141,233,139, 601 139,233,255,232,251,1,26,137,252,234,252,233,244,1,255,252,247,208,139,106,
602 12,135,139,133,233,137,8,199,64,4,237,252,246,133,233,235,15,133,244,248, 602 252,248,139,172,253,141,233,139,12,135,139,133,233,137,8,199,64,4,237,252,
603 248,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248, 603 246,133,233,235,15,133,244,248,248,1,139,6,15,182,204,15,182,232,131,198,
604 2,252,246,129,233,235,15,132,244,1,128,189,233,0,15,132,244,1,137,213,137, 604 4,193,232,16,252,255,36,171,248,2,252,246,129,233,235,15,132,244,1,128,189,
605 194,141,139,233,232,251,1,26,137,252,234,252,233,244,1,255,139,106,252,248, 605 233,0,15,132,244,1,137,213,137,194,141,139,233,232,251,1,26,137,252,234,252,
606 255,252,242,15,16,4,199,255,139,172,253,141,233,139,141,233,255,252,242,15, 606 233,244,1,255,139,106,252,248,255,252,242,15,16,4,199,255,139,172,253,141,
607 17,1,255,221,25,255,252,247,208,139,106,252,248,139,172,253,141,233,139,141, 607 233,139,141,233,255,252,242,15,17,1,255,221,25,255,252,247,208,139,106,252,
608 233,137,65,4,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36, 608 248,139,172,253,141,233,139,141,233,137,65,4,139,6,15,182,204,15,182,232,
609 171,255,141,180,253,134,233,139,108,36,48,131,189,233,0,15,132,244,247,137, 609 131,198,4,193,232,16,252,255,36,171,255,141,180,253,134,233,139,108,36,48,
610 149,233,141,20,202,137,252,233,232,251,1,27,139,149,233,248,1,139,6,15,182, 610 131,189,233,0,15,132,244,247,137,149,233,141,20,202,137,252,233,232,251,1,
611 204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,252,247,208,139,74, 611 27,139,149,233,248,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,
612 252,248,139,4,135,139,108,36,48,137,76,36,8,137,68,36,4,137,44,36,137,149, 612 255,36,171,255,252,247,208,139,74,252,248,139,4,135,139,108,36,48,137,76,
613 233,137,116,36,24,232,251,1,28,139,149,233,15,182,78,252,253,137,4,202,199, 613 36,8,137,68,36,4,137,44,36,137,149,233,137,116,36,24,232,251,1,28,139,149,
614 68,202,4,237,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,
615 171,255,137,197,37,252,255,7,0,0,193,252,237,11,61,252,255,7,0,0,15,132,244,
616 249,248,2,137,108,36,8,139,108,36,48,137,68,36,4,137,116,36,24,139,131,233,
617 137,44,36,59,131,233,137,149,233,15,131,244,251,248,1,232,251,1,29,139,149,
618 233,15,182,78,252,253,137,4,202,199,68,202,4,237,139,6,15,182,204,15,182, 614 233,15,182,78,252,253,137,4,202,199,68,202,4,237,139,6,15,182,204,15,182,
619 232,131,198,4,193,232,16,252,255,36,171,248,3,184,1,8,0,0,252,233,244,2,248, 615 232,131,198,4,193,232,16,252,255,36,171,255,137,197,37,252,255,7,0,0,193,
620 5,137,252,233,232,251,1,30,252,233,244,1,255,252,247,208,139,108,36,48,139, 616 252,237,11,61,252,255,7,0,0,15,132,244,249,248,2,137,108,36,8,139,108,36,
621 139,233,137,116,36,24,59,139,233,137,149,233,15,131,244,249,248,2,139,20, 617 48,137,68,36,4,137,116,36,24,139,131,233,137,44,36,59,131,233,137,149,233,
622 135,137,252,233,232,251,1,31,139,149,233,15,182,78,252,253,137,4,202,199, 618 15,131,244,251,248,1,232,251,1,29,139,149,233,15,182,78,252,253,137,4,202,
623 68,202,4,237,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36, 619 199,68,202,4,237,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,
624 171,248,3,137,252,233,232,251,1,30,15,183,70,252,254,252,247,208,252,233, 620 36,171,248,3,184,1,8,0,0,252,233,244,2,248,5,137,252,233,232,251,1,30,252,
625 244,2,255,252,247,208,139,106,252,248,139,173,233,139,4,135,252,233,244,157, 621 233,244,1,255,252,247,208,139,108,36,48,139,139,233,137,116,36,24,59,139,
626 255,252,247,208,139,106,252,248,139,173,233,139,4,135,252,233,244,158,255, 622 233,137,149,233,15,131,244,249,248,2,139,20,135,137,252,233,232,251,1,31,
627 15,182,252,236,15,182,192,129,124,253,252,234,4,239,15,133,244,36,139,44, 623 139,149,233,15,182,78,252,253,137,4,202,199,68,202,4,237,139,6,15,182,204,
628 252,234,129,124,253,194,4,239,15,135,244,251,255,252,242,15,16,4,194,252, 624 15,182,232,131,198,4,193,232,16,252,255,36,171,248,3,137,252,233,232,251,
629 242,15,45,192,252,242,15,42,200,102,15,46,193,255,221,4,194,219,20,36,219, 625 1,30,15,183,70,252,254,252,247,208,252,233,244,2,255,252,247,208,139,106,
630 4,36,255,15,133,244,36,59,133,233,15,131,244,36,193,224,3,3,133,233,129,120, 626 252,248,139,173,233,139,4,135,252,233,244,157,255,252,247,208,139,106,252,
631 253,4,239,15,132,244,248,248,1,139,40,139,64,4,137,44,202,137,68,202,4,139, 627 248,139,173,233,139,4,135,252,233,244,158,255,15,182,252,236,15,182,192,129,
632 6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,2,131,189, 628 124,253,252,234,4,239,15,133,244,36,139,44,252,234,129,124,253,194,4,239,
633 233,0,15,132,244,1,139,141,233,252,246,129,233,235,15,132,244,36,15,182,78, 629 15,135,244,251,255,252,242,15,16,4,194,252,242,15,45,192,252,242,15,42,200,
634 252,253,252,233,244,1,248,5,255,129,124,253,194,4,239,15,133,244,36,139,4, 630 102,15,46,193,255,221,4,194,219,20,36,219,4,36,255,15,133,244,36,59,133,233,
635 194,252,233,244,157,255,15,182,252,236,15,182,192,252,247,208,139,4,135,129, 631 15,131,244,36,193,224,3,3,133,233,129,120,253,4,239,15,132,244,248,248,1,
636 124,253,252,234,4,239,15,133,244,34,139,44,252,234,248,157,139,141,233,35, 632 139,40,139,64,4,137,44,202,137,68,202,4,139,6,15,182,204,15,182,232,131,198,
637 136,233,105,201,239,3,141,233,248,1,129,185,233,239,15,133,244,250,57,129, 633 4,193,232,16,252,255,36,171,248,2,131,189,233,0,15,132,244,1,139,141,233,
638 233,15,133,244,250,129,121,253,4,239,15,132,244,251,15,182,70,252,253,139, 634 252,246,129,233,235,15,132,244,36,15,182,78,252,253,252,233,244,1,248,5,255,
639 41,139,73,4,137,44,194,248,2,255,137,76,194,4,139,6,15,182,204,15,182,232, 635 129,124,253,194,4,239,15,133,244,36,139,4,194,252,233,244,157,255,15,182,
640 131,198,4,193,232,16,252,255,36,171,248,3,15,182,70,252,253,185,237,252,233, 636 252,236,15,182,192,252,247,208,139,4,135,129,124,253,252,234,4,239,15,133,
641 244,2,248,4,139,137,233,133,201,15,133,244,1,248,5,139,141,233,133,201,15, 637 244,34,139,44,252,234,248,157,139,141,233,35,136,233,105,201,239,3,141,233,
642 132,244,3,252,246,129,233,235,15,133,244,3,252,233,244,34,255,15,182,252, 638 248,1,129,185,233,239,15,133,244,250,57,129,233,15,133,244,250,129,121,253,
643 236,15,182,192,129,124,253,252,234,4,239,15,133,244,35,139,44,252,234,59, 639 4,239,15,132,244,251,15,182,70,252,253,139,41,139,73,4,137,44,194,248,2,255,
644 133,233,15,131,244,35,193,224,3,3,133,233,129,120,253,4,239,15,132,244,248, 640 137,76,194,4,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,
645 248,1,139,40,139,64,4,137,44,202,137,68,202,4,139,6,15,182,204,15,182,232, 641 171,248,3,15,182,70,252,253,185,237,252,233,244,2,248,4,139,137,233,133,201,
646 131,198,4,193,232,16,252,255,36,171,248,2,131,189,233,0,15,132,244,1,139, 642 15,133,244,1,248,5,139,141,233,133,201,15,132,244,3,252,246,129,233,235,15,
647 141,233,252,246,129,233,235,15,132,244,35,255,15,182,252,236,15,182,192,129, 643 133,244,3,252,233,244,34,255,15,182,252,236,15,182,192,129,124,253,252,234,
648 124,253,252,234,4,239,15,133,244,39,139,44,252,234,129,124,253,194,4,239, 644 4,239,15,133,244,35,139,44,252,234,59,133,233,15,131,244,35,193,224,3,3,133,
649 15,135,244,251,255,15,133,244,39,59,133,233,15,131,244,39,193,224,3,3,133, 645 233,129,120,253,4,239,15,132,244,248,248,1,139,40,139,64,4,137,44,202,137,
646 68,202,4,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,
647 248,2,131,189,233,0,15,132,244,1,139,141,233,252,246,129,233,235,15,132,244,
648 35,255,15,182,252,236,15,182,192,129,124,253,252,234,4,239,15,133,244,39,
649 139,44,252,234,129,124,253,194,4,239,15,135,244,251,255,15,133,244,39,59,
650 133,233,15,131,244,39,193,224,3,3,133,233,129,120,253,4,239,15,132,244,249,
651 248,1,252,246,133,233,235,15,133,244,253,248,2,139,108,202,4,139,12,202,137,
652 104,4,137,8,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,
653 248,3,131,189,233,0,15,132,244,1,139,141,233,255,252,246,129,233,235,15,132,
654 244,39,15,182,78,252,253,252,233,244,1,248,5,129,124,253,194,4,239,15,133,
655 244,39,139,4,194,252,233,244,158,248,7,128,165,233,235,139,139,233,137,171,
656 233,137,141,233,15,182,78,252,253,252,233,244,2,255,15,182,252,236,15,182,
657 192,252,247,208,139,4,135,129,124,253,252,234,4,239,15,133,244,37,139,44,
658 252,234,248,158,139,141,233,35,136,233,105,201,239,198,133,233,0,3,141,233,
659 248,1,129,185,233,239,15,133,244,251,57,129,233,15,133,244,251,129,121,253,
660 4,239,15,132,244,250,248,2,255,252,246,133,233,235,15,133,244,253,248,3,15,
661 182,70,252,253,139,108,194,4,139,4,194,137,105,4,137,1,139,6,15,182,204,15,
662 182,232,131,198,4,193,232,16,252,255,36,171,248,4,131,189,233,0,15,132,244,
663 2,137,76,36,16,139,141,233,252,246,129,233,235,15,132,244,37,139,76,36,16,
664 252,233,244,2,248,5,139,137,233,133,201,15,133,244,1,255,139,141,233,133,
665 201,15,132,244,252,252,246,129,233,235,15,132,244,37,248,6,137,68,36,16,199,
666 68,36,20,237,137,108,36,12,141,68,36,16,137,108,36,4,139,108,36,48,137,68,
667 36,8,137,44,36,137,149,233,137,116,36,24,232,251,1,32,139,149,233,139,108,
668 36,12,137,193,252,233,244,2,248,7,128,165,233,235,139,131,233,137,171,233,
669 137,133,233,252,233,244,3,255,15,182,252,236,15,182,192,129,124,253,252,234,
670 4,239,15,133,244,38,139,44,252,234,59,133,233,15,131,244,38,193,224,3,3,133,
650 233,129,120,253,4,239,15,132,244,249,248,1,252,246,133,233,235,15,133,244, 671 233,129,120,253,4,239,15,132,244,249,248,1,252,246,133,233,235,15,133,244,
651 253,248,2,139,108,202,4,139,12,202,137,104,4,137,8,139,6,15,182,204,15,182, 672 253,248,2,139,108,202,4,139,12,202,137,104,4,137,8,139,6,15,182,204,15,182,
652 232,131,198,4,193,232,16,252,255,36,171,248,3,131,189,233,0,15,132,244,1, 673 232,131,198,4,193,232,16,252,255,36,171,248,3,131,189,233,0,15,132,244,1,
653 139,141,233,255,252,246,129,233,235,15,132,244,39,15,182,78,252,253,252,233, 674 255,139,141,233,252,246,129,233,235,15,132,244,38,15,182,78,252,253,252,233,
654 244,1,248,5,129,124,253,194,4,239,15,133,244,39,139,4,194,252,233,244,158, 675 244,1,248,7,128,165,233,235,139,139,233,137,171,233,137,141,233,15,182,78,
655 248,7,128,165,233,235,139,139,233,137,171,233,137,141,233,15,182,78,252,253, 676 252,253,252,233,244,2,255,137,124,36,16,255,252,242,15,45,60,199,255,221,
656 252,233,244,2,255,15,182,252,236,15,182,192,252,247,208,139,4,135,129,124, 677 4,199,219,92,36,12,139,124,36,12,255,248,1,141,12,202,139,105,252,248,252,
657 253,252,234,4,239,15,133,244,37,139,44,252,234,248,158,139,141,233,35,136, 678 246,133,233,235,15,133,244,253,248,2,139,68,36,20,131,232,1,15,132,244,250,
658 233,105,201,239,198,133,233,0,3,141,233,248,1,129,185,233,239,15,133,244, 679 1,252,248,59,133,233,15,131,244,251,41,252,248,193,231,3,3,189,233,248,3,
659 251,57,129,233,15,133,244,251,129,121,253,4,239,15,132,244,250,248,2,255, 680 139,41,137,47,139,105,4,131,193,8,137,111,4,131,199,8,131,232,1,15,133,244,
660 252,246,133,233,235,15,133,244,253,248,3,15,182,70,252,253,139,108,194,4, 681 3,248,4,139,124,36,16,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,
661 139,4,194,137,105,4,137,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16, 682 255,36,171,248,5,137,108,36,4,139,108,36,48,137,149,233,137,68,36,8,137,44,
662 252,255,36,171,248,4,131,189,233,0,15,132,244,2,137,76,36,16,139,141,233, 683 36,137,116,36,24,232,251,1,33,139,149,233,15,182,78,252,253,252,233,244,1,
663 252,246,129,233,235,15,132,244,37,139,76,36,16,252,233,244,2,248,5,139,137, 684 248,7,255,128,165,233,235,139,131,233,137,171,233,137,133,233,252,233,244,
664 233,133,201,15,133,244,1,255,139,141,233,133,201,15,132,244,252,252,246,129, 685 2,255,3,68,36,20,255,129,124,253,202,4,239,139,44,202,15,133,244,51,141,84,
665 233,235,15,132,244,37,248,6,137,68,36,16,199,68,36,20,237,137,108,36,12,141, 686 202,8,137,114,252,252,139,181,233,139,14,15,182,252,233,15,182,205,131,198,
666 68,36,16,137,108,36,4,139,108,36,48,137,68,36,8,137,44,36,137,149,233,137, 687 4,252,255,36,171,255,141,76,202,8,137,215,139,105,252,248,129,121,253,252,
667 116,36,24,232,251,1,32,139,149,233,139,108,36,12,137,193,252,233,244,2,248, 688 252,239,15,133,244,28,248,52,139,114,252,252,252,247,198,237,15,133,244,253,
668 7,128,165,233,235,139,131,233,137,171,233,137,133,233,252,233,244,3,255,15, 689 248,1,137,106,252,248,137,68,36,20,131,232,1,15,132,244,249,248,2,139,41,
669 182,252,236,15,182,192,129,124,253,252,234,4,239,15,133,244,38,139,44,252, 690 137,47,139,105,4,137,111,4,131,199,8,131,193,8,131,232,1,15,133,244,2,139,
670 234,59,133,233,15,131,244,38,193,224,3,3,133,233,129,120,253,4,239,15,132, 691 106,252,248,248,3,139,68,36,20,128,189,233,1,15,135,244,251,248,4,139,181,
671 244,249,248,1,252,246,133,233,235,15,133,244,253,248,2,139,108,202,4,139, 692 233,139,14,15,182,252,233,15,182,205,131,198,4,252,255,36,171,248,5,255,252,
672 12,202,137,104,4,137,8,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252, 693 247,198,237,15,133,244,4,15,182,78,252,253,252,247,209,141,12,202,139,121,
673 255,36,171,248,3,131,189,233,0,15,132,244,1,255,139,141,233,252,246,129,233, 694 252,248,139,191,233,139,191,233,252,233,244,4,248,7,15,139,244,1,131,230,
674 235,15,132,244,38,15,182,78,252,253,252,233,244,1,248,7,128,165,233,235,139, 695 252,248,41,252,242,137,215,139,114,252,252,252,233,244,1,255,141,76,202,8,
675 139,233,137,171,233,137,141,233,15,182,78,252,253,252,233,244,2,255,137,124, 696 139,105,232,139,65,252,236,137,41,137,65,4,139,105,252,240,139,65,252,244,
676 36,16,255,252,242,15,45,60,199,255,221,4,199,219,92,36,12,139,124,36,12,255, 697 137,105,8,137,65,12,139,105,224,139,65,228,137,105,252,248,137,65,252,252,
677 248,1,141,12,202,139,105,252,248,252,246,133,233,235,15,133,244,253,248,2, 698 129,252,248,239,184,237,15,133,244,28,137,202,137,114,252,252,139,181,233,
678 139,68,36,20,131,232,1,15,132,244,250,1,252,248,59,133,233,15,131,244,251, 699 139,14,15,182,252,233,15,182,205,131,198,4,252,255,36,171,255,15,182,252,
679 41,252,248,193,231,3,3,189,233,248,3,139,41,137,47,139,105,4,131,193,8,137, 700 236,139,66,252,248,141,12,202,139,128,233,15,182,128,233,137,124,36,16,141,
680 111,4,131,199,8,131,232,1,15,133,244,3,248,4,139,124,36,16,139,6,15,182,204, 701 188,253,194,233,43,122,252,252,133,252,237,15,132,244,251,141,108,252,233,
681 15,182,232,131,198,4,193,232,16,252,255,36,171,248,5,137,108,36,4,139,108, 702 252,248,57,215,15,131,244,248,248,1,139,71,252,248,137,1,139,71,252,252,131,
682 36,48,137,149,233,137,68,36,8,137,44,36,137,116,36,24,232,251,1,33,139,149, 703 199,8,137,65,4,131,193,8,57,252,233,15,131,244,249,57,215,15,130,244,1,248,
683 233,15,182,78,252,253,252,233,244,1,248,7,255,128,165,233,235,139,131,233, 704 2,199,65,4,237,131,193,8,57,252,233,15,130,244,2,248,3,139,124,36,16,139,
684 137,171,233,137,133,233,252,233,244,2,255,3,68,36,20,255,129,124,253,202, 705 6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,5,199,68,
685 4,239,139,44,202,15,133,244,51,141,84,202,8,137,114,252,252,139,181,233,139, 706 36,20,1,0,0,0,137,208,41,252,248,15,134,244,3,255,137,197,193,252,237,3,131,
686 14,15,182,252,233,15,182,205,131,198,4,252,255,36,171,255,141,76,202,8,137, 707 197,1,137,108,36,20,139,108,36,48,1,200,59,133,233,15,135,244,253,248,6,139,
687 215,139,105,252,248,129,121,253,252,252,239,15,133,244,28,248,52,139,114, 708 71,252,248,137,1,139,71,252,252,131,199,8,137,65,4,131,193,8,57,215,15,130,
688 252,252,252,247,198,237,15,133,244,253,248,1,137,106,252,248,137,68,36,20, 709 244,6,252,233,244,3,248,7,137,149,233,137,141,233,137,116,36,24,41,215,139,
689 131,232,1,15,132,244,249,248,2,139,41,137,47,139,105,4,137,111,4,131,199, 710 84,36,20,131,252,234,1,137,252,233,232,251,1,0,139,149,233,139,141,233,1,
690 8,131,193,8,131,232,1,15,133,244,2,139,106,252,248,248,3,139,68,36,20,128, 711 215,252,233,244,6,255,193,225,3,255,248,1,139,114,252,252,137,68,36,20,252,
691 189,233,1,15,135,244,251,248,4,139,181,233,139,14,15,182,252,233,15,182,205, 712 247,198,237,15,133,244,253,255,248,13,137,215,131,232,1,15,132,244,249,248,
692 131,198,4,252,255,36,171,248,5,255,252,247,198,237,15,133,244,4,15,182,78, 713 2,139,44,15,137,111,252,248,139,108,15,4,137,111,252,252,131,199,8,131,232,
693 252,253,252,247,209,141,12,202,139,121,252,248,139,191,233,139,191,233,252, 714 1,15,133,244,2,248,3,139,68,36,20,15,182,110,252,255,248,5,57,197,15,135,
694 233,244,4,248,7,15,139,244,1,131,230,252,248,41,252,242,137,215,139,114,252, 715 244,252,255,139,108,10,4,137,106,252,252,139,44,10,137,106,252,248,255,248,
695 252,252,233,244,1,255,141,76,202,8,139,105,232,139,65,252,236,137,41,137, 716 5,56,70,252,255,15,135,244,252,255,15,182,78,252,253,252,247,209,141,20,202,
696 65,4,139,105,252,240,139,65,252,244,137,105,8,137,65,12,139,105,224,139,65, 717 139,122,252,248,139,191,233,139,191,233,139,6,15,182,204,15,182,232,131,198,
697 228,137,105,252,248,137,65,252,252,129,252,248,239,184,237,15,133,244,28, 718 4,193,232,16,252,255,36,171,248,6,255,199,71,252,252,237,131,199,8,255,199,
698 137,202,137,114,252,252,139,181,233,139,14,15,182,252,233,15,182,205,131, 719 68,194,252,244,237,255,131,192,1,252,233,244,5,248,7,15,139,244,14,131,230,
699 198,4,252,255,36,171,255,15,182,252,236,139,66,252,248,141,12,202,139,128, 720 252,248,41,252,242,255,1,252,241,255,137,252,245,209,252,237,129,229,239,
700 233,15,182,128,233,137,124,36,16,141,188,253,194,233,43,122,252,252,133,252, 721 102,131,172,253,43,233,1,15,132,244,140,255,141,12,202,255,129,121,253,4,
701 237,15,132,244,251,141,108,252,233,252,248,57,215,15,131,244,248,248,1,139, 722 239,15,135,244,53,129,121,253,12,239,15,135,244,53,255,139,105,20,255,129,
702 71,252,248,137,1,139,71,252,252,131,199,8,137,65,4,131,193,8,57,252,233,15, 723 252,253,239,15,135,244,53,255,252,242,15,16,1,252,242,15,16,73,8,255,252,
703 131,244,249,57,215,15,130,244,1,248,2,199,65,4,237,131,193,8,57,252,233,15, 724 242,15,88,65,16,252,242,15,17,1,133,252,237,15,136,244,249,255,15,140,244,
704 130,244,2,248,3,139,124,36,16,139,6,15,182,204,15,182,232,131,198,4,193,232, 725 249,255,102,15,46,200,248,1,252,242,15,17,65,24,255,221,65,8,221,1,255,220,
705 16,252,255,36,171,248,5,199,68,36,20,1,0,0,0,137,208,41,252,248,15,134,244, 726 65,16,221,17,221,81,24,133,252,237,15,136,244,247,255,221,81,24,15,140,244,
706 3,255,137,197,193,252,237,3,131,197,1,137,108,36,20,139,108,36,48,1,200,59, 727 247,255,217,201,248,1,255,15,183,70,252,254,255,15,131,244,248,141,180,253,
707 133,233,15,135,244,253,248,6,139,71,252,248,137,1,139,71,252,252,131,199, 728 134,233,255,141,180,253,134,233,15,183,70,252,254,15,131,245,255,15,130,244,
708 8,137,65,4,131,193,8,57,215,15,130,244,6,252,233,244,3,248,7,137,149,233, 729 248,141,180,253,134,233,255,248,3,102,15,46,193,252,233,244,1,255,141,12,
709 137,141,233,137,116,36,24,41,215,139,84,36,20,131,252,234,1,137,252,233,232, 730 202,139,105,4,129,252,253,239,15,132,244,247,255,137,105,252,252,139,41,137,
710 251,1,0,139,149,233,139,141,233,1,215,252,233,244,6,255,193,225,3,255,248, 731 105,252,248,252,233,245,255,141,180,253,134,233,139,1,137,105,252,252,137,
711 1,139,114,252,252,137,68,36,20,252,247,198,237,15,133,244,253,255,248,13, 732 65,252,248,255,139,139,233,139,4,129,139,128,233,139,108,36,48,137,147,233,
712 137,215,131,232,1,15,132,244,249,248,2,139,44,15,137,111,252,248,139,108, 733 137,171,233,252,255,224,255,141,180,253,134,233,139,6,15,182,204,15,182,232,
713 15,4,137,111,252,252,131,199,8,131,232,1,15,133,244,2,248,3,139,68,36,20, 734 131,198,4,193,232,16,252,255,36,171,255,137,252,245,209,252,237,129,229,239,
714 15,182,110,252,255,248,5,57,197,15,135,244,252,255,139,108,10,4,137,106,252, 735 102,131,172,253,43,233,1,15,132,244,142,255,139,190,233,139,108,36,48,141,
715 252,139,44,10,137,106,252,248,255,248,5,56,70,252,255,15,135,244,252,255, 736 12,202,59,141,233,15,135,244,23,15,182,142,233,57,200,15,134,244,249,248,
716 15,182,78,252,253,252,247,209,141,20,202,139,122,252,248,139,191,233,139, 737 2,255,15,183,70,252,254,252,233,245,255,248,3,199,68,194,252,252,237,131,
717 191,233,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248, 738 192,1,57,200,15,134,244,3,252,233,244,2,255,141,44,197,237,141,4,194,139,
718 6,255,199,71,252,252,237,131,199,8,255,199,68,194,252,244,237,255,131,192, 739 122,252,248,137,104,252,252,137,120,252,248,139,108,36,48,141,12,200,59,141,
719 1,252,233,244,5,248,7,15,139,244,14,131,230,252,248,41,252,242,255,1,252, 740 233,15,135,244,22,137,209,137,194,15,182,174,233,133,252,237,15,132,244,248,
720 241,255,137,252,245,209,252,237,129,229,239,102,131,172,253,43,233,1,15,132, 741 248,1,131,193,8,57,209,15,131,244,249,139,121,252,248,137,56,139,121,252,
721 244,140,255,141,12,202,255,129,121,253,4,239,15,135,244,53,129,121,253,12, 742 252,137,120,4,131,192,8,199,65,252,252,237,131,252,237,1,15,133,244,1,248,
722 239,15,135,244,53,255,139,105,20,255,129,252,253,239,15,135,244,53,255,252, 743 2,255,139,190,233,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,
723 242,15,16,1,252,242,15,16,73,8,255,252,242,15,88,65,16,252,242,15,17,1,133, 744 36,171,255,248,3,199,64,4,237,131,192,8,131,252,237,1,15,133,244,3,252,233,
724 252,237,15,136,244,249,255,15,140,244,249,255,102,15,46,200,248,1,252,242, 745 244,2,255,139,106,252,248,139,189,233,139,108,36,48,141,68,194,252,248,137,
725 15,17,65,24,255,221,65,8,221,1,255,220,65,16,221,17,221,81,24,133,252,237, 746 149,233,141,136,233,59,141,233,137,133,233,255,137,44,36,255,137,124,36,4,
726 15,136,244,247,255,221,81,24,15,140,244,247,255,217,201,248,1,255,15,183, 747 137,44,36,255,15,135,244,21,199,131,233,237,255,252,255,215,255,252,255,147,
727 70,252,254,255,15,131,244,248,141,180,253,134,233,255,141,180,253,134,233, 748 233,255,199,131,233,237,139,149,233,141,12,194,252,247,217,3,141,233,139,
728 15,183,70,252,254,15,131,245,255,15,130,244,248,141,180,253,134,233,255,248, 749 114,252,252,252,233,244,12,255,254,0
729 3,102,15,46,193,252,233,244,1,255,141,12,202,139,105,4,129,252,253,239,15,
730 132,244,247,255,137,105,252,252,139,41,137,105,252,248,252,233,245,255,141,
731 180,253,134,233,139,1,137,105,252,252,137,65,252,248,255,139,139,233,139,
732 4,129,139,128,233,139,108,36,48,137,147,233,137,171,233,252,255,224,255,141,
733 180,253,134,233,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,
734 36,171,255,137,252,245,209,252,237,129,229,239,102,131,172,253,43,233,1,15,
735 132,244,142,255,139,190,233,139,108,36,48,141,12,202,59,141,233,15,135,244,
736 23,15,182,142,233,57,200,15,134,244,249,248,2,255,15,183,70,252,254,252,233,
737 245,255,248,3,199,68,194,252,252,237,131,192,1,57,200,15,134,244,3,252,233,
738 244,2,255,141,44,197,237,141,4,194,139,122,252,248,137,104,252,252,137,120,
739 252,248,139,108,36,48,141,12,200,59,141,233,15,135,244,22,137,209,137,194,
740 15,182,174,233,133,252,237,15,132,244,248,248,1,131,193,8,57,209,15,131,244,
741 249,139,121,252,248,137,56,139,121,252,252,137,120,4,131,192,8,199,65,252,
742 252,237,131,252,237,1,15,133,244,1,248,2,255,139,190,233,139,6,15,182,204,
743 15,182,232,131,198,4,193,232,16,252,255,36,171,255,248,3,199,64,4,237,131,
744 192,8,131,252,237,1,15,133,244,3,252,233,244,2,255,139,106,252,248,139,189,
745 233,139,108,36,48,141,68,194,252,248,137,149,233,141,136,233,59,141,233,137,
746 133,233,255,137,44,36,255,137,124,36,4,137,44,36,255,15,135,244,21,199,131,
747 233,237,255,252,255,215,255,252,255,147,233,255,199,131,233,237,139,149,233,
748 141,12,194,252,247,217,3,141,233,139,114,252,252,252,233,244,12,255,254,0
749}; 750};
750 751
751enum { 752enum {
@@ -1455,91 +1456,91 @@ static void build_subroutines(BuildCtx *ctx, int cmov, int sse)
1455#endif 1456#endif
1456 dasm_put(Dst, 8218, Dt1(->base), Dt1(->top)); 1457 dasm_put(Dst, 8218, Dt1(->base), Dt1(->top));
1457#if LJ_HASJIT 1458#if LJ_HASJIT
1458 dasm_put(Dst, 8247, DISPATCH_GL(vmstate), DISPATCH_GL(vmstate), ~LJ_VMST_EXIT, DISPATCH_J(exitno), DISPATCH_J(parent), 8*8+16, DISPATCH_GL(jit_L), DISPATCH_GL(jit_base), DISPATCH_J(L), Dt1(->base), GG_DISP2J, Dt1(->cframe), CFRAME_RAWMASK, CFRAME_OFS_L, Dt1(->base), CFRAME_OFS_PC); 1459 dasm_put(Dst, 8247, DISPATCH_GL(vmstate), DISPATCH_GL(vmstate), ~LJ_VMST_EXIT, DISPATCH_J(exitno), DISPATCH_J(parent), 8*8+16, DISPATCH_GL(jit_L), DISPATCH_GL(jit_base), DISPATCH_J(L), DISPATCH_GL(jit_L), Dt1(->base), GG_DISP2J, Dt1(->cframe), CFRAME_RAWMASK, CFRAME_OFS_L, Dt1(->base), CFRAME_OFS_PC);
1459#endif 1460#endif
1460 dasm_put(Dst, 8383); 1461 dasm_put(Dst, 8390);
1461#if LJ_HASJIT 1462#if LJ_HASJIT
1462 dasm_put(Dst, 8386, Dt7(->pc), PC2PROTO(k), DISPATCH_GL(jit_L), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, BC_FUNCF); 1463 dasm_put(Dst, 8393, Dt7(->pc), PC2PROTO(k), DISPATCH_GL(jit_L), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, BC_FUNCF);
1463#endif 1464#endif
1464 dasm_put(Dst, 8464); 1465 dasm_put(Dst, 8471);
1465 if (!sse) { 1466 if (!sse) {
1466 dasm_put(Dst, 8467); 1467 dasm_put(Dst, 8474);
1467 } 1468 }
1468 dasm_put(Dst, 8512); 1469 dasm_put(Dst, 8519);
1469 if (!sse) { 1470 if (!sse) {
1470 dasm_put(Dst, 8614); 1471 dasm_put(Dst, 8621);
1471 } 1472 }
1472 dasm_put(Dst, 8659); 1473 dasm_put(Dst, 8666);
1473 if (!sse) { 1474 if (!sse) {
1474 dasm_put(Dst, 8761); 1475 dasm_put(Dst, 8768);
1475 } 1476 }
1476 dasm_put(Dst, 8800); 1477 dasm_put(Dst, 8807);
1477 if (sse) { 1478 if (sse) {
1478 dasm_put(Dst, 8905); 1479 dasm_put(Dst, 8912);
1479 } else { 1480 } else {
1480 dasm_put(Dst, 9035); 1481 dasm_put(Dst, 9042);
1481 } 1482 }
1482 dasm_put(Dst, 9082); 1483 dasm_put(Dst, 9089);
1483 if (!sse) { 1484 if (!sse) {
1484 dasm_put(Dst, 9156); 1485 dasm_put(Dst, 9163);
1485 if (cmov) { 1486 if (cmov) {
1486 dasm_put(Dst, 9167); 1487 dasm_put(Dst, 9174);
1487 } else { 1488 } else {
1488 dasm_put(Dst, 9171);
1489 }
1490 dasm_put(Dst, 9178); 1489 dasm_put(Dst, 9178);
1491 dasm_put(Dst, 9252); 1490 }
1492 dasm_put(Dst, 9352); 1491 dasm_put(Dst, 9185);
1492 dasm_put(Dst, 9259);
1493 dasm_put(Dst, 9359);
1493 if (cmov) { 1494 if (cmov) {
1494 dasm_put(Dst, 9355); 1495 dasm_put(Dst, 9362);
1495 } else { 1496 } else {
1496 dasm_put(Dst, 9359);
1497 }
1498 dasm_put(Dst, 9366); 1497 dasm_put(Dst, 9366);
1498 }
1499 dasm_put(Dst, 9373);
1499 if (cmov) { 1500 if (cmov) {
1500 dasm_put(Dst, 9167); 1501 dasm_put(Dst, 9174);
1501 } else { 1502 } else {
1502 dasm_put(Dst, 9171); 1503 dasm_put(Dst, 9178);
1503 } 1504 }
1504 dasm_put(Dst, 9384); 1505 dasm_put(Dst, 9391);
1505 } else { 1506 } else {
1506 dasm_put(Dst, 9463); 1507 dasm_put(Dst, 9470);
1507 } 1508 }
1508 dasm_put(Dst, 9466); 1509 dasm_put(Dst, 9473);
1509 dasm_put(Dst, 9551); 1510 dasm_put(Dst, 9558);
1510 dasm_put(Dst, 9682); 1511 dasm_put(Dst, 9689);
1511 dasm_put(Dst, 9881); 1512 dasm_put(Dst, 9888);
1512 if (sse) { 1513 if (sse) {
1513 dasm_put(Dst, 9904); 1514 dasm_put(Dst, 9911);
1514 dasm_put(Dst, 9961); 1515 dasm_put(Dst, 9968);
1515 dasm_put(Dst, 10052); 1516 dasm_put(Dst, 10059);
1516 } else { 1517 } else {
1517 dasm_put(Dst, 10094); 1518 dasm_put(Dst, 10101);
1518 dasm_put(Dst, 10186); 1519 dasm_put(Dst, 10193);
1519 } 1520 }
1520 dasm_put(Dst, 10232); 1521 dasm_put(Dst, 10239);
1521 if (sse) { 1522 if (sse) {
1522 dasm_put(Dst, 10238); 1523 dasm_put(Dst, 10245);
1523 dasm_put(Dst, 10343); 1524 dasm_put(Dst, 10350);
1524 dasm_put(Dst, 10426); 1525 dasm_put(Dst, 10433);
1525 } else { 1526 } else {
1526 dasm_put(Dst, 10498); 1527 dasm_put(Dst, 10505);
1527 dasm_put(Dst, 10581); 1528 dasm_put(Dst, 10588);
1528 if (cmov) { 1529 if (cmov) {
1529 dasm_put(Dst, 10636); 1530 dasm_put(Dst, 10643);
1530 } else { 1531 } else {
1531 dasm_put(Dst, 10655); 1532 dasm_put(Dst, 10662);
1532 } 1533 }
1533 dasm_put(Dst, 10494); 1534 dasm_put(Dst, 10501);
1534 } 1535 }
1535 dasm_put(Dst, 10696); 1536 dasm_put(Dst, 10703);
1536} 1537}
1537 1538
1538/* Generate the code for a single instruction. */ 1539/* Generate the code for a single instruction. */
1539static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse) 1540static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
1540{ 1541{
1541 int vk = 0; 1542 int vk = 0;
1542 dasm_put(Dst, 10750, defop); 1543 dasm_put(Dst, 10757, defop);
1543 1544
1544 switch (op) { 1545 switch (op) {
1545 1546
@@ -1548,611 +1549,611 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
1548 /* Remember: all ops branch for a true comparison, fall through otherwise. */ 1549 /* Remember: all ops branch for a true comparison, fall through otherwise. */
1549 1550
1550 case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT: 1551 case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT:
1551 dasm_put(Dst, 10752, LJ_TISNUM, LJ_TISNUM); 1552 dasm_put(Dst, 10759, LJ_TISNUM, LJ_TISNUM);
1552 if (sse) { 1553 if (sse) {
1553 dasm_put(Dst, 10773); 1554 dasm_put(Dst, 10780);
1554 } else { 1555 } else {
1555 dasm_put(Dst, 10788); 1556 dasm_put(Dst, 10795);
1556 if (cmov) { 1557 if (cmov) {
1557 dasm_put(Dst, 10798); 1558 dasm_put(Dst, 10805);
1558 } else { 1559 } else {
1559 dasm_put(Dst, 10804); 1560 dasm_put(Dst, 10811);
1560 } 1561 }
1561 } 1562 }
1562 switch (op) { 1563 switch (op) {
1563 case BC_ISLT: 1564 case BC_ISLT:
1564 dasm_put(Dst, 10811); 1565 dasm_put(Dst, 10818);
1565 break; 1566 break;
1566 case BC_ISGE: 1567 case BC_ISGE:
1567 dasm_put(Dst, 10047); 1568 dasm_put(Dst, 10054);
1568 break; 1569 break;
1569 case BC_ISLE: 1570 case BC_ISLE:
1570 dasm_put(Dst, 6181); 1571 dasm_put(Dst, 6181);
1571 break; 1572 break;
1572 case BC_ISGT: 1573 case BC_ISGT:
1573 dasm_put(Dst, 10816); 1574 dasm_put(Dst, 10823);
1574 break; 1575 break;
1575 default: break; /* Shut up GCC. */ 1576 default: break; /* Shut up GCC. */
1576 } 1577 }
1577 dasm_put(Dst, 10821, -BCBIAS_J*4); 1578 dasm_put(Dst, 10828, -BCBIAS_J*4);
1578 break; 1579 break;
1579 1580
1580 case BC_ISEQV: case BC_ISNEV: 1581 case BC_ISEQV: case BC_ISNEV:
1581 vk = op == BC_ISEQV; 1582 vk = op == BC_ISEQV;
1582 dasm_put(Dst, 10854, LJ_TISNUM, LJ_TISNUM); 1583 dasm_put(Dst, 10861, LJ_TISNUM, LJ_TISNUM);
1583 if (sse) { 1584 if (sse) {
1584 dasm_put(Dst, 10880); 1585 dasm_put(Dst, 10887);
1585 } else { 1586 } else {
1586 dasm_put(Dst, 10892); 1587 dasm_put(Dst, 10899);
1587 if (cmov) { 1588 if (cmov) {
1588 dasm_put(Dst, 10798); 1589 dasm_put(Dst, 10805);
1589 } else { 1590 } else {
1590 dasm_put(Dst, 10804); 1591 dasm_put(Dst, 10811);
1591 } 1592 }
1592 } 1593 }
1593 iseqne_fp: 1594 iseqne_fp:
1594 if (vk) { 1595 if (vk) {
1595 dasm_put(Dst, 10899); 1596 dasm_put(Dst, 10906);
1596 } else { 1597 } else {
1597 dasm_put(Dst, 10908); 1598 dasm_put(Dst, 10915);
1598 } 1599 }
1599 iseqne_end: 1600 iseqne_end:
1600 if (vk) { 1601 if (vk) {
1601 dasm_put(Dst, 10917, -BCBIAS_J*4); 1602 dasm_put(Dst, 10924, -BCBIAS_J*4);
1602 } else { 1603 } else {
1603 dasm_put(Dst, 10932, -BCBIAS_J*4); 1604 dasm_put(Dst, 10939, -BCBIAS_J*4);
1604 } 1605 }
1605 dasm_put(Dst, 10835); 1606 dasm_put(Dst, 10842);
1606 if (op == BC_ISEQV || op == BC_ISNEV) { 1607 if (op == BC_ISEQV || op == BC_ISNEV) {
1607 dasm_put(Dst, 10947, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq); 1608 dasm_put(Dst, 10954, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq);
1608 if (vk) { 1609 if (vk) {
1609 dasm_put(Dst, 11005); 1610 dasm_put(Dst, 11012);
1610 } else { 1611 } else {
1611 dasm_put(Dst, 11009); 1612 dasm_put(Dst, 11016);
1612 } 1613 }
1613 dasm_put(Dst, 11015); 1614 dasm_put(Dst, 11022);
1614 } 1615 }
1615 break; 1616 break;
1616 case BC_ISEQS: case BC_ISNES: 1617 case BC_ISEQS: case BC_ISNES:
1617 vk = op == BC_ISEQS; 1618 vk = op == BC_ISEQS;
1618 dasm_put(Dst, 11020, LJ_TSTR); 1619 dasm_put(Dst, 11027, LJ_TSTR);
1619 iseqne_test: 1620 iseqne_test:
1620 if (vk) { 1621 if (vk) {
1621 dasm_put(Dst, 10903); 1622 dasm_put(Dst, 10910);
1622 } else { 1623 } else {
1623 dasm_put(Dst, 2811); 1624 dasm_put(Dst, 2811);
1624 } 1625 }
1625 goto iseqne_end; 1626 goto iseqne_end;
1626 case BC_ISEQN: case BC_ISNEN: 1627 case BC_ISEQN: case BC_ISNEN:
1627 vk = op == BC_ISEQN; 1628 vk = op == BC_ISEQN;
1628 dasm_put(Dst, 11043, LJ_TISNUM); 1629 dasm_put(Dst, 11050, LJ_TISNUM);
1629 if (sse) { 1630 if (sse) {
1630 dasm_put(Dst, 11057); 1631 dasm_put(Dst, 11064);
1631 } else { 1632 } else {
1632 dasm_put(Dst, 11069); 1633 dasm_put(Dst, 11076);
1633 if (cmov) { 1634 if (cmov) {
1634 dasm_put(Dst, 10798); 1635 dasm_put(Dst, 10805);
1635 } else { 1636 } else {
1636 dasm_put(Dst, 10804); 1637 dasm_put(Dst, 10811);
1637 } 1638 }
1638 } 1639 }
1639 goto iseqne_fp; 1640 goto iseqne_fp;
1640 case BC_ISEQP: case BC_ISNEP: 1641 case BC_ISEQP: case BC_ISNEP:
1641 vk = op == BC_ISEQP; 1642 vk = op == BC_ISEQP;
1642 dasm_put(Dst, 11076); 1643 dasm_put(Dst, 11083);
1643 goto iseqne_test; 1644 goto iseqne_test;
1644 1645
1645 /* -- Unary test and copy ops ------------------------------------------- */ 1646 /* -- Unary test and copy ops ------------------------------------------- */
1646 1647
1647 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF: 1648 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF:
1648 dasm_put(Dst, 11087, LJ_TISTRUECOND); 1649 dasm_put(Dst, 11094, LJ_TISTRUECOND);
1649 if (op == BC_IST || op == BC_ISTC) { 1650 if (op == BC_IST || op == BC_ISTC) {
1650 dasm_put(Dst, 11099); 1651 dasm_put(Dst, 11106);
1651 } else { 1652 } else {
1652 dasm_put(Dst, 11104); 1653 dasm_put(Dst, 11111);
1653 } 1654 }
1654 if (op == BC_ISTC || op == BC_ISFC) { 1655 if (op == BC_ISTC || op == BC_ISFC) {
1655 dasm_put(Dst, 11109); 1656 dasm_put(Dst, 11116);
1656 } 1657 }
1657 dasm_put(Dst, 11120, -BCBIAS_J*4); 1658 dasm_put(Dst, 11127, -BCBIAS_J*4);
1658 break; 1659 break;
1659 1660
1660 /* -- Unary ops --------------------------------------------------------- */ 1661 /* -- Unary ops --------------------------------------------------------- */
1661 1662
1662 case BC_MOV: 1663 case BC_MOV:
1663 dasm_put(Dst, 11151); 1664 dasm_put(Dst, 11158);
1664 break; 1665 break;
1665 case BC_NOT: 1666 case BC_NOT:
1666 dasm_put(Dst, 11184, LJ_TISTRUECOND, LJ_TTRUE); 1667 dasm_put(Dst, 11191, LJ_TISTRUECOND, LJ_TTRUE);
1667 break; 1668 break;
1668 case BC_UNM: 1669 case BC_UNM:
1669 dasm_put(Dst, 11219, LJ_TISNUM); 1670 dasm_put(Dst, 11226, LJ_TISNUM);
1670 if (sse) { 1671 if (sse) {
1671 dasm_put(Dst, 11230); 1672 dasm_put(Dst, 11237);
1672 } else { 1673 } else {
1673 dasm_put(Dst, 11260); 1674 dasm_put(Dst, 11267);
1674 } 1675 }
1675 dasm_put(Dst, 10835); 1676 dasm_put(Dst, 10842);
1676 break; 1677 break;
1677 case BC_LEN: 1678 case BC_LEN:
1678 dasm_put(Dst, 11269, LJ_TSTR); 1679 dasm_put(Dst, 11276, LJ_TSTR);
1679 if (sse) { 1680 if (sse) {
1680 dasm_put(Dst, 11283, Dt5(->len)); 1681 dasm_put(Dst, 11290, Dt5(->len));
1681 } else { 1682 } else {
1682 dasm_put(Dst, 11301, Dt5(->len)); 1683 dasm_put(Dst, 11308, Dt5(->len));
1683 } 1684 }
1684 dasm_put(Dst, 11310, LJ_TTAB); 1685 dasm_put(Dst, 11317, LJ_TTAB);
1685 if (sse) { 1686 if (sse) {
1686 dasm_put(Dst, 11350); 1687 dasm_put(Dst, 11357);
1687 } else { 1688 } else {
1688 dasm_put(Dst, 11359); 1689 dasm_put(Dst, 11366);
1689 } 1690 }
1690 dasm_put(Dst, 11369); 1691 dasm_put(Dst, 11376);
1691 break; 1692 break;
1692 1693
1693 /* -- Binary ops -------------------------------------------------------- */ 1694 /* -- Binary ops -------------------------------------------------------- */
1694 1695
1695 1696
1696 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV: 1697 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV:
1697 dasm_put(Dst, 11379); 1698 dasm_put(Dst, 11386);
1698 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1699 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1699 switch (vk) { 1700 switch (vk) {
1700 case 0: 1701 case 0:
1701 dasm_put(Dst, 11387, LJ_TISNUM); 1702 dasm_put(Dst, 11394, LJ_TISNUM);
1702 if (sse) { 1703 if (sse) {
1703 dasm_put(Dst, 11399); 1704 dasm_put(Dst, 11406);
1704 } else { 1705 } else {
1705 dasm_put(Dst, 11413); 1706 dasm_put(Dst, 11420);
1706 } 1707 }
1707 break; 1708 break;
1708 case 1: 1709 case 1:
1709 dasm_put(Dst, 11421, LJ_TISNUM); 1710 dasm_put(Dst, 11428, LJ_TISNUM);
1710 if (sse) { 1711 if (sse) {
1711 dasm_put(Dst, 11433); 1712 dasm_put(Dst, 11440);
1712 } else { 1713 } else {
1713 dasm_put(Dst, 11447); 1714 dasm_put(Dst, 11454);
1714 } 1715 }
1715 break; 1716 break;
1716 default: 1717 default:
1717 dasm_put(Dst, 11455, LJ_TISNUM, LJ_TISNUM); 1718 dasm_put(Dst, 11462, LJ_TISNUM, LJ_TISNUM);
1718 if (sse) { 1719 if (sse) {
1719 dasm_put(Dst, 11477); 1720 dasm_put(Dst, 11484);
1720 } else { 1721 } else {
1721 dasm_put(Dst, 11491); 1722 dasm_put(Dst, 11498);
1722 } 1723 }
1723 break; 1724 break;
1724 } 1725 }
1725 if (sse) { 1726 if (sse) {
1726 dasm_put(Dst, 11253); 1727 dasm_put(Dst, 11260);
1727 } else { 1728 } else {
1728 dasm_put(Dst, 11265); 1729 dasm_put(Dst, 11272);
1729 } 1730 }
1730 dasm_put(Dst, 10835); 1731 dasm_put(Dst, 10842);
1731 break; 1732 break;
1732 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV: 1733 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV:
1733 dasm_put(Dst, 11379); 1734 dasm_put(Dst, 11386);
1734 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1735 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1735 switch (vk) { 1736 switch (vk) {
1736 case 0: 1737 case 0:
1737 dasm_put(Dst, 11387, LJ_TISNUM); 1738 dasm_put(Dst, 11394, LJ_TISNUM);
1738 if (sse) { 1739 if (sse) {
1739 dasm_put(Dst, 11499); 1740 dasm_put(Dst, 11506);
1740 } else { 1741 } else {
1741 dasm_put(Dst, 11513); 1742 dasm_put(Dst, 11520);
1742 } 1743 }
1743 break; 1744 break;
1744 case 1: 1745 case 1:
1745 dasm_put(Dst, 11421, LJ_TISNUM); 1746 dasm_put(Dst, 11428, LJ_TISNUM);
1746 if (sse) { 1747 if (sse) {
1747 dasm_put(Dst, 11521); 1748 dasm_put(Dst, 11528);
1748 } else { 1749 } else {
1749 dasm_put(Dst, 11535); 1750 dasm_put(Dst, 11542);
1750 } 1751 }
1751 break; 1752 break;
1752 default: 1753 default:
1753 dasm_put(Dst, 11455, LJ_TISNUM, LJ_TISNUM); 1754 dasm_put(Dst, 11462, LJ_TISNUM, LJ_TISNUM);
1754 if (sse) { 1755 if (sse) {
1755 dasm_put(Dst, 11543); 1756 dasm_put(Dst, 11550);
1756 } else { 1757 } else {
1757 dasm_put(Dst, 11557); 1758 dasm_put(Dst, 11564);
1758 } 1759 }
1759 break; 1760 break;
1760 } 1761 }
1761 if (sse) { 1762 if (sse) {
1762 dasm_put(Dst, 11253); 1763 dasm_put(Dst, 11260);
1763 } else { 1764 } else {
1764 dasm_put(Dst, 11265); 1765 dasm_put(Dst, 11272);
1765 } 1766 }
1766 dasm_put(Dst, 10835); 1767 dasm_put(Dst, 10842);
1767 break; 1768 break;
1768 case BC_MULVN: case BC_MULNV: case BC_MULVV: 1769 case BC_MULVN: case BC_MULNV: case BC_MULVV:
1769 dasm_put(Dst, 11379); 1770 dasm_put(Dst, 11386);
1770 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1771 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1771 switch (vk) { 1772 switch (vk) {
1772 case 0: 1773 case 0:
1773 dasm_put(Dst, 11387, LJ_TISNUM); 1774 dasm_put(Dst, 11394, LJ_TISNUM);
1774 if (sse) { 1775 if (sse) {
1775 dasm_put(Dst, 11565); 1776 dasm_put(Dst, 11572);
1776 } else { 1777 } else {
1777 dasm_put(Dst, 11579); 1778 dasm_put(Dst, 11586);
1778 } 1779 }
1779 break; 1780 break;
1780 case 1: 1781 case 1:
1781 dasm_put(Dst, 11421, LJ_TISNUM); 1782 dasm_put(Dst, 11428, LJ_TISNUM);
1782 if (sse) { 1783 if (sse) {
1783 dasm_put(Dst, 11587); 1784 dasm_put(Dst, 11594);
1784 } else { 1785 } else {
1785 dasm_put(Dst, 11601); 1786 dasm_put(Dst, 11608);
1786 } 1787 }
1787 break; 1788 break;
1788 default: 1789 default:
1789 dasm_put(Dst, 11455, LJ_TISNUM, LJ_TISNUM); 1790 dasm_put(Dst, 11462, LJ_TISNUM, LJ_TISNUM);
1790 if (sse) { 1791 if (sse) {
1791 dasm_put(Dst, 11609); 1792 dasm_put(Dst, 11616);
1792 } else { 1793 } else {
1793 dasm_put(Dst, 11623); 1794 dasm_put(Dst, 11630);
1794 } 1795 }
1795 break; 1796 break;
1796 } 1797 }
1797 if (sse) { 1798 if (sse) {
1798 dasm_put(Dst, 11253); 1799 dasm_put(Dst, 11260);
1799 } else { 1800 } else {
1800 dasm_put(Dst, 11265); 1801 dasm_put(Dst, 11272);
1801 } 1802 }
1802 dasm_put(Dst, 10835); 1803 dasm_put(Dst, 10842);
1803 break; 1804 break;
1804 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV: 1805 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV:
1805 dasm_put(Dst, 11379); 1806 dasm_put(Dst, 11386);
1806 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1807 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1807 switch (vk) { 1808 switch (vk) {
1808 case 0: 1809 case 0:
1809 dasm_put(Dst, 11387, LJ_TISNUM); 1810 dasm_put(Dst, 11394, LJ_TISNUM);
1810 if (sse) { 1811 if (sse) {
1811 dasm_put(Dst, 11631); 1812 dasm_put(Dst, 11638);
1812 } else { 1813 } else {
1813 dasm_put(Dst, 11645); 1814 dasm_put(Dst, 11652);
1814 } 1815 }
1815 break; 1816 break;
1816 case 1: 1817 case 1:
1817 dasm_put(Dst, 11421, LJ_TISNUM); 1818 dasm_put(Dst, 11428, LJ_TISNUM);
1818 if (sse) { 1819 if (sse) {
1819 dasm_put(Dst, 11653); 1820 dasm_put(Dst, 11660);
1820 } else { 1821 } else {
1821 dasm_put(Dst, 11667); 1822 dasm_put(Dst, 11674);
1822 } 1823 }
1823 break; 1824 break;
1824 default: 1825 default:
1825 dasm_put(Dst, 11455, LJ_TISNUM, LJ_TISNUM); 1826 dasm_put(Dst, 11462, LJ_TISNUM, LJ_TISNUM);
1826 if (sse) { 1827 if (sse) {
1827 dasm_put(Dst, 11675); 1828 dasm_put(Dst, 11682);
1828 } else { 1829 } else {
1829 dasm_put(Dst, 11689); 1830 dasm_put(Dst, 11696);
1830 } 1831 }
1831 break; 1832 break;
1832 } 1833 }
1833 if (sse) { 1834 if (sse) {
1834 dasm_put(Dst, 11253); 1835 dasm_put(Dst, 11260);
1835 } else { 1836 } else {
1836 dasm_put(Dst, 11265); 1837 dasm_put(Dst, 11272);
1837 } 1838 }
1838 dasm_put(Dst, 10835); 1839 dasm_put(Dst, 10842);
1839 break; 1840 break;
1840 case BC_MODVN: 1841 case BC_MODVN:
1841 dasm_put(Dst, 11379); 1842 dasm_put(Dst, 11386);
1842 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1843 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1843 switch (vk) { 1844 switch (vk) {
1844 case 0: 1845 case 0:
1845 dasm_put(Dst, 11387, LJ_TISNUM); 1846 dasm_put(Dst, 11394, LJ_TISNUM);
1846 if (sse) { 1847 if (sse) {
1847 dasm_put(Dst, 11697); 1848 dasm_put(Dst, 11704);
1848 } else { 1849 } else {
1849 dasm_put(Dst, 11711); 1850 dasm_put(Dst, 11718);
1850 } 1851 }
1851 break; 1852 break;
1852 case 1: 1853 case 1:
1853 dasm_put(Dst, 11421, LJ_TISNUM); 1854 dasm_put(Dst, 11428, LJ_TISNUM);
1854 if (sse) { 1855 if (sse) {
1855 dasm_put(Dst, 11719); 1856 dasm_put(Dst, 11726);
1856 } else { 1857 } else {
1857 dasm_put(Dst, 11733); 1858 dasm_put(Dst, 11740);
1858 } 1859 }
1859 break; 1860 break;
1860 default: 1861 default:
1861 dasm_put(Dst, 11455, LJ_TISNUM, LJ_TISNUM); 1862 dasm_put(Dst, 11462, LJ_TISNUM, LJ_TISNUM);
1862 if (sse) { 1863 if (sse) {
1863 dasm_put(Dst, 11741); 1864 dasm_put(Dst, 11748);
1864 } else { 1865 } else {
1865 dasm_put(Dst, 11755); 1866 dasm_put(Dst, 11762);
1866 } 1867 }
1867 break; 1868 break;
1868 } 1869 }
1869 dasm_put(Dst, 11763); 1870 dasm_put(Dst, 11770);
1870 if (sse) { 1871 if (sse) {
1871 dasm_put(Dst, 11253); 1872 dasm_put(Dst, 11260);
1872 } else { 1873 } else {
1873 dasm_put(Dst, 11265); 1874 dasm_put(Dst, 11272);
1874 } 1875 }
1875 dasm_put(Dst, 10835); 1876 dasm_put(Dst, 10842);
1876 break; 1877 break;
1877 case BC_MODNV: case BC_MODVV: 1878 case BC_MODNV: case BC_MODVV:
1878 dasm_put(Dst, 11379); 1879 dasm_put(Dst, 11386);
1879 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1880 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1880 switch (vk) { 1881 switch (vk) {
1881 case 0: 1882 case 0:
1882 dasm_put(Dst, 11387, LJ_TISNUM); 1883 dasm_put(Dst, 11394, LJ_TISNUM);
1883 if (sse) { 1884 if (sse) {
1884 dasm_put(Dst, 11697); 1885 dasm_put(Dst, 11704);
1885 } else { 1886 } else {
1886 dasm_put(Dst, 11711); 1887 dasm_put(Dst, 11718);
1887 } 1888 }
1888 break; 1889 break;
1889 case 1: 1890 case 1:
1890 dasm_put(Dst, 11421, LJ_TISNUM); 1891 dasm_put(Dst, 11428, LJ_TISNUM);
1891 if (sse) { 1892 if (sse) {
1892 dasm_put(Dst, 11719); 1893 dasm_put(Dst, 11726);
1893 } else { 1894 } else {
1894 dasm_put(Dst, 11733); 1895 dasm_put(Dst, 11740);
1895 } 1896 }
1896 break; 1897 break;
1897 default: 1898 default:
1898 dasm_put(Dst, 11455, LJ_TISNUM, LJ_TISNUM); 1899 dasm_put(Dst, 11462, LJ_TISNUM, LJ_TISNUM);
1899 if (sse) { 1900 if (sse) {
1900 dasm_put(Dst, 11741); 1901 dasm_put(Dst, 11748);
1901 } else { 1902 } else {
1902 dasm_put(Dst, 11755); 1903 dasm_put(Dst, 11762);
1903 } 1904 }
1904 break; 1905 break;
1905 } 1906 }
1906 dasm_put(Dst, 11769); 1907 dasm_put(Dst, 11776);
1907 break; 1908 break;
1908 case BC_POW: 1909 case BC_POW:
1909 dasm_put(Dst, 11379); 1910 dasm_put(Dst, 11386);
1910 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1911 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1911 switch (vk) { 1912 switch (vk) {
1912 case 0: 1913 case 0:
1913 dasm_put(Dst, 11387, LJ_TISNUM); 1914 dasm_put(Dst, 11394, LJ_TISNUM);
1914 if (sse) { 1915 if (sse) {
1915 dasm_put(Dst, 11697); 1916 dasm_put(Dst, 11704);
1916 } else { 1917 } else {
1917 dasm_put(Dst, 11711); 1918 dasm_put(Dst, 11718);
1918 } 1919 }
1919 break; 1920 break;
1920 case 1: 1921 case 1:
1921 dasm_put(Dst, 11421, LJ_TISNUM); 1922 dasm_put(Dst, 11428, LJ_TISNUM);
1922 if (sse) { 1923 if (sse) {
1923 dasm_put(Dst, 11719); 1924 dasm_put(Dst, 11726);
1924 } else { 1925 } else {
1925 dasm_put(Dst, 11733); 1926 dasm_put(Dst, 11740);
1926 } 1927 }
1927 break; 1928 break;
1928 default: 1929 default:
1929 dasm_put(Dst, 11455, LJ_TISNUM, LJ_TISNUM); 1930 dasm_put(Dst, 11462, LJ_TISNUM, LJ_TISNUM);
1930 if (sse) { 1931 if (sse) {
1931 dasm_put(Dst, 11741); 1932 dasm_put(Dst, 11748);
1932 } else { 1933 } else {
1933 dasm_put(Dst, 11755); 1934 dasm_put(Dst, 11762);
1934 } 1935 }
1935 break; 1936 break;
1936 } 1937 }
1937 dasm_put(Dst, 11774); 1938 dasm_put(Dst, 11781);
1938 if (sse) { 1939 if (sse) {
1939 dasm_put(Dst, 11253); 1940 dasm_put(Dst, 11260);
1940 } else { 1941 } else {
1941 dasm_put(Dst, 11265); 1942 dasm_put(Dst, 11272);
1942 } 1943 }
1943 dasm_put(Dst, 10835); 1944 dasm_put(Dst, 10842);
1944 break; 1945 break;
1945 1946
1946 case BC_CAT: 1947 case BC_CAT:
1947 dasm_put(Dst, 11778, Dt1(->base), Dt1(->base)); 1948 dasm_put(Dst, 11785, Dt1(->base), Dt1(->base));
1948 break; 1949 break;
1949 1950
1950 /* -- Constant ops ------------------------------------------------------ */ 1951 /* -- Constant ops ------------------------------------------------------ */
1951 1952
1952 case BC_KSTR: 1953 case BC_KSTR:
1953 dasm_put(Dst, 11872, LJ_TSTR); 1954 dasm_put(Dst, 11879, LJ_TSTR);
1954 break; 1955 break;
1955 case BC_KSHORT: 1956 case BC_KSHORT:
1956 if (sse) { 1957 if (sse) {
1957 dasm_put(Dst, 11905); 1958 dasm_put(Dst, 11912);
1958 } else { 1959 } else {
1959 dasm_put(Dst, 11920); 1960 dasm_put(Dst, 11927);
1960 } 1961 }
1961 dasm_put(Dst, 10835); 1962 dasm_put(Dst, 10842);
1962 break; 1963 break;
1963 case BC_KNUM: 1964 case BC_KNUM:
1964 if (sse) { 1965 if (sse) {
1965 dasm_put(Dst, 11928); 1966 dasm_put(Dst, 11935);
1966 } else { 1967 } else {
1967 dasm_put(Dst, 11941); 1968 dasm_put(Dst, 11948);
1968 } 1969 }
1969 dasm_put(Dst, 10835); 1970 dasm_put(Dst, 10842);
1970 break; 1971 break;
1971 case BC_KPRI: 1972 case BC_KPRI:
1972 dasm_put(Dst, 11948); 1973 dasm_put(Dst, 11955);
1973 break; 1974 break;
1974 case BC_KNIL: 1975 case BC_KNIL:
1975 dasm_put(Dst, 11974, LJ_TNIL); 1976 dasm_put(Dst, 11981, LJ_TNIL);
1976 break; 1977 break;
1977 1978
1978 /* -- Upvalue and function ops ------------------------------------------ */ 1979 /* -- Upvalue and function ops ------------------------------------------ */
1979 1980
1980 case BC_UGET: 1981 case BC_UGET:
1981 dasm_put(Dst, 12020, offsetof(GCfuncL, uvptr), DtA(->v)); 1982 dasm_put(Dst, 12027, offsetof(GCfuncL, uvptr), DtA(->v));
1982 break; 1983 break;
1983 case BC_USETV: 1984 case BC_USETV:
1984#define TV2MARKOFS \ 1985#define TV2MARKOFS \
1985 ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv)) 1986 ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv))
1986 dasm_put(Dst, 12064, 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); 1987 dasm_put(Dst, 12071, 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);
1987 dasm_put(Dst, 12154); 1988 dasm_put(Dst, 12161);
1988 break; 1989 break;
1989#undef TV2MARKOFS 1990#undef TV2MARKOFS
1990 case BC_USETS: 1991 case BC_USETS:
1991 dasm_put(Dst, 12166, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G); 1992 dasm_put(Dst, 12173, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G);
1992 break; 1993 break;
1993 case BC_USETN: 1994 case BC_USETN:
1994 dasm_put(Dst, 12257); 1995 dasm_put(Dst, 12264);
1995 if (sse) { 1996 if (sse) {
1996 dasm_put(Dst, 12262); 1997 dasm_put(Dst, 12269);
1997 } else { 1998 } else {
1998 dasm_put(Dst, 11072); 1999 dasm_put(Dst, 11079);
1999 } 2000 }
2000 dasm_put(Dst, 12269, offsetof(GCfuncL, uvptr), DtA(->v)); 2001 dasm_put(Dst, 12276, offsetof(GCfuncL, uvptr), DtA(->v));
2001 if (sse) { 2002 if (sse) {
2002 dasm_put(Dst, 12278); 2003 dasm_put(Dst, 12285);
2003 } else { 2004 } else {
2004 dasm_put(Dst, 12284); 2005 dasm_put(Dst, 12291);
2005 } 2006 }
2006 dasm_put(Dst, 10835); 2007 dasm_put(Dst, 10842);
2007 break; 2008 break;
2008 case BC_USETP: 2009 case BC_USETP:
2009 dasm_put(Dst, 12287, offsetof(GCfuncL, uvptr), DtA(->v)); 2010 dasm_put(Dst, 12294, offsetof(GCfuncL, uvptr), DtA(->v));
2010 break; 2011 break;
2011 case BC_UCLO: 2012 case BC_UCLO:
2012 dasm_put(Dst, 12324, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base)); 2013 dasm_put(Dst, 12331, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base));
2013 break; 2014 break;
2014 2015
2015 case BC_FNEW: 2016 case BC_FNEW:
2016 dasm_put(Dst, 12378, Dt1(->base), Dt1(->base), LJ_TFUNC); 2017 dasm_put(Dst, 12385, Dt1(->base), Dt1(->base), LJ_TFUNC);
2017 break; 2018 break;
2018 2019
2019 /* -- Table ops --------------------------------------------------------- */ 2020 /* -- Table ops --------------------------------------------------------- */
2020 2021
2021 case BC_TNEW: 2022 case BC_TNEW:
2022 dasm_put(Dst, 12449, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB); 2023 dasm_put(Dst, 12456, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB);
2023 break; 2024 break;
2024 case BC_TDUP: 2025 case BC_TDUP:
2025 dasm_put(Dst, 12570, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB); 2026 dasm_put(Dst, 12577, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB);
2026 break; 2027 break;
2027 2028
2028 case BC_GGET: 2029 case BC_GGET:
2029 dasm_put(Dst, 12662, Dt7(->env)); 2030 dasm_put(Dst, 12669, Dt7(->env));
2030 break; 2031 break;
2031 case BC_GSET: 2032 case BC_GSET:
2032 dasm_put(Dst, 12680, Dt7(->env)); 2033 dasm_put(Dst, 12687, Dt7(->env));
2033 break; 2034 break;
2034 2035
2035 case BC_TGETV: 2036 case BC_TGETV:
2036 dasm_put(Dst, 12698, LJ_TTAB, LJ_TISNUM); 2037 dasm_put(Dst, 12705, LJ_TTAB, LJ_TISNUM);
2037 if (sse) { 2038 if (sse) {
2038 dasm_put(Dst, 12731); 2039 dasm_put(Dst, 12738);
2039 } else { 2040 } else {
2040 dasm_put(Dst, 12752); 2041 dasm_put(Dst, 12759);
2041 if (cmov) { 2042 if (cmov) {
2042 dasm_put(Dst, 10798); 2043 dasm_put(Dst, 10805);
2043 } else { 2044 } else {
2044 dasm_put(Dst, 10804); 2045 dasm_put(Dst, 10811);
2045 } 2046 }
2046 dasm_put(Dst, 2524); 2047 dasm_put(Dst, 2524);
2047 } 2048 }
2048 dasm_put(Dst, 12762, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 2049 dasm_put(Dst, 12769, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
2049 dasm_put(Dst, 12854, LJ_TSTR); 2050 dasm_put(Dst, 12861, LJ_TSTR);
2050 break; 2051 break;
2051 case BC_TGETS: 2052 case BC_TGETS:
2052 dasm_put(Dst, 12872, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); 2053 dasm_put(Dst, 12879, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
2053 dasm_put(Dst, 12956, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 2054 dasm_put(Dst, 12963, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
2054 break; 2055 break;
2055 case BC_TGETB: 2056 case BC_TGETB:
2056 dasm_put(Dst, 13027, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 2057 dasm_put(Dst, 13034, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
2057 dasm_put(Dst, 11369); 2058 dasm_put(Dst, 11376);
2058 break; 2059 break;
2059 2060
2060 case BC_TSETV: 2061 case BC_TSETV:
2061 dasm_put(Dst, 13126, LJ_TTAB, LJ_TISNUM); 2062 dasm_put(Dst, 13133, LJ_TTAB, LJ_TISNUM);
2062 if (sse) { 2063 if (sse) {
2063 dasm_put(Dst, 12731); 2064 dasm_put(Dst, 12738);
2064 } else { 2065 } else {
2065 dasm_put(Dst, 12752); 2066 dasm_put(Dst, 12759);
2066 if (cmov) { 2067 if (cmov) {
2067 dasm_put(Dst, 10798); 2068 dasm_put(Dst, 10805);
2068 } else { 2069 } else {
2069 dasm_put(Dst, 10804); 2070 dasm_put(Dst, 10811);
2070 } 2071 }
2071 dasm_put(Dst, 2524); 2072 dasm_put(Dst, 2524);
2072 } 2073 }
2073 dasm_put(Dst, 13159, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable)); 2074 dasm_put(Dst, 13166, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable));
2074 dasm_put(Dst, 13242, Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 2075 dasm_put(Dst, 13249, Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
2075 break; 2076 break;
2076 case BC_TSETS: 2077 case BC_TSETS:
2077 dasm_put(Dst, 13304, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); 2078 dasm_put(Dst, 13311, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
2078 dasm_put(Dst, 13379, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next)); 2079 dasm_put(Dst, 13386, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next));
2079 dasm_put(Dst, 13471, 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)); 2080 dasm_put(Dst, 13478, 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));
2080 break; 2081 break;
2081 case BC_TSETB: 2082 case BC_TSETB:
2082 dasm_put(Dst, 13567, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable)); 2083 dasm_put(Dst, 13574, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable));
2083 dasm_put(Dst, 13665, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 2084 dasm_put(Dst, 13672, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
2084 break; 2085 break;
2085 2086
2086 case BC_TSETM: 2087 case BC_TSETM:
2087 dasm_put(Dst, 13711); 2088 dasm_put(Dst, 13718);
2088 if (sse) { 2089 if (sse) {
2089 dasm_put(Dst, 13716);
2090 } else {
2091 dasm_put(Dst, 13723); 2090 dasm_put(Dst, 13723);
2091 } else {
2092 dasm_put(Dst, 13730);
2092 } 2093 }
2093 dasm_put(Dst, 13735, Dt6(->marked), LJ_GC_BLACK, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base)); 2094 dasm_put(Dst, 13742, Dt6(->marked), LJ_GC_BLACK, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base));
2094 dasm_put(Dst, 13877, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 2095 dasm_put(Dst, 13884, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
2095 break; 2096 break;
2096 2097
2097 /* -- Calls and vararg handling ----------------------------------------- */ 2098 /* -- Calls and vararg handling ----------------------------------------- */
2098 2099
2099 case BC_CALL: case BC_CALLM: 2100 case BC_CALL: case BC_CALLM:
2100 dasm_put(Dst, 11383); 2101 dasm_put(Dst, 11390);
2101 if (op == BC_CALLM) { 2102 if (op == BC_CALLM) {
2102 dasm_put(Dst, 13895); 2103 dasm_put(Dst, 13902);
2103 } 2104 }
2104 dasm_put(Dst, 13900, LJ_TFUNC, Dt7(->pc)); 2105 dasm_put(Dst, 13907, LJ_TFUNC, Dt7(->pc));
2105 break; 2106 break;
2106 2107
2107 case BC_CALLMT: 2108 case BC_CALLMT:
2108 dasm_put(Dst, 13895); 2109 dasm_put(Dst, 13902);
2109 break; 2110 break;
2110 case BC_CALLT: 2111 case BC_CALLT:
2111 dasm_put(Dst, 13941, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc)); 2112 dasm_put(Dst, 13948, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc));
2112 dasm_put(Dst, 14059, FRAME_TYPE, Dt7(->pc), PC2PROTO(k)); 2113 dasm_put(Dst, 14066, FRAME_TYPE, Dt7(->pc), PC2PROTO(k));
2113 break; 2114 break;
2114 2115
2115 case BC_ITERC: 2116 case BC_ITERC:
2116 dasm_put(Dst, 14116, LJ_TFUNC, 2+1, Dt7(->pc)); 2117 dasm_put(Dst, 14123, LJ_TFUNC, 2+1, Dt7(->pc));
2117 break; 2118 break;
2118 2119
2119 case BC_VARG: 2120 case BC_VARG:
2120 dasm_put(Dst, 14196, Dt7(->pc), PC2PROTO(numparams), (8+FRAME_VARG), LJ_TNIL); 2121 dasm_put(Dst, 14203, Dt7(->pc), PC2PROTO(numparams), (8+FRAME_VARG), LJ_TNIL);
2121 dasm_put(Dst, 14340, Dt1(->maxstack), Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top)); 2122 dasm_put(Dst, 14347, Dt1(->maxstack), Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top));
2122 break; 2123 break;
2123 2124
2124 /* -- Returns ----------------------------------------------------------- */ 2125 /* -- Returns ----------------------------------------------------------- */
2125 2126
2126 case BC_RETM: 2127 case BC_RETM:
2127 dasm_put(Dst, 13895); 2128 dasm_put(Dst, 13902);
2128 break; 2129 break;
2129 2130
2130 case BC_RET: case BC_RET0: case BC_RET1: 2131 case BC_RET: case BC_RET0: case BC_RET1:
2131 if (op != BC_RET0) { 2132 if (op != BC_RET0) {
2132 dasm_put(Dst, 14439); 2133 dasm_put(Dst, 14446);
2133 } 2134 }
2134 dasm_put(Dst, 14443, FRAME_TYPE); 2135 dasm_put(Dst, 14450, FRAME_TYPE);
2135 switch (op) { 2136 switch (op) {
2136 case BC_RET: 2137 case BC_RET:
2137 dasm_put(Dst, 14462); 2138 dasm_put(Dst, 14469);
2138 break; 2139 break;
2139 case BC_RET1: 2140 case BC_RET1:
2140 dasm_put(Dst, 14520); 2141 dasm_put(Dst, 14527);
2141 /* fallthrough */ 2142 /* fallthrough */
2142 case BC_RET0: 2143 case BC_RET0:
2143 dasm_put(Dst, 14536); 2144 dasm_put(Dst, 14543);
2144 default: 2145 default:
2145 break; 2146 break;
2146 } 2147 }
2147 dasm_put(Dst, 14547, Dt7(->pc), PC2PROTO(k)); 2148 dasm_put(Dst, 14554, Dt7(->pc), PC2PROTO(k));
2148 if (op == BC_RET) { 2149 if (op == BC_RET) {
2149 dasm_put(Dst, 14589, LJ_TNIL); 2150 dasm_put(Dst, 14596, LJ_TNIL);
2150 } else { 2151 } else {
2151 dasm_put(Dst, 14598, LJ_TNIL); 2152 dasm_put(Dst, 14605, LJ_TNIL);
2152 } 2153 }
2153 dasm_put(Dst, 14605); 2154 dasm_put(Dst, 14612);
2154 if (op != BC_RET0) { 2155 if (op != BC_RET0) {
2155 dasm_put(Dst, 14626); 2156 dasm_put(Dst, 14633);
2156 } 2157 }
2157 dasm_put(Dst, 4680); 2158 dasm_put(Dst, 4680);
2158 break; 2159 break;
@@ -2162,7 +2163,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2162 2163
2163 case BC_FORL: 2164 case BC_FORL:
2164#if LJ_HASJIT 2165#if LJ_HASJIT
2165 dasm_put(Dst, 14630, HOTCOUNT_PCMASK, GG_DISP2HOT); 2166 dasm_put(Dst, 14637, HOTCOUNT_PCMASK, GG_DISP2HOT);
2166#endif 2167#endif
2167 break; 2168 break;
2168 2169
@@ -2174,57 +2175,57 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2174 case BC_FORI: 2175 case BC_FORI:
2175 case BC_IFORL: 2176 case BC_IFORL:
2176 vk = (op == BC_IFORL || op == BC_JFORL); 2177 vk = (op == BC_IFORL || op == BC_JFORL);
2177 dasm_put(Dst, 14651); 2178 dasm_put(Dst, 14658);
2178 if (!vk) { 2179 if (!vk) {
2179 dasm_put(Dst, 14655, LJ_TISNUM, LJ_TISNUM); 2180 dasm_put(Dst, 14662, LJ_TISNUM, LJ_TISNUM);
2180 } 2181 }
2181 dasm_put(Dst, 14674); 2182 dasm_put(Dst, 14681);
2182 if (!vk) { 2183 if (!vk) {
2183 dasm_put(Dst, 14678, LJ_TISNUM); 2184 dasm_put(Dst, 14685, LJ_TISNUM);
2184 } 2185 }
2185 if (sse) { 2186 if (sse) {
2186 dasm_put(Dst, 14687); 2187 dasm_put(Dst, 14694);
2187 if (vk) { 2188 if (vk) {
2188 dasm_put(Dst, 14699); 2189 dasm_put(Dst, 14706);
2189 } else { 2190 } else {
2190 dasm_put(Dst, 14718); 2191 dasm_put(Dst, 14725);
2191 } 2192 }
2192 dasm_put(Dst, 14723); 2193 dasm_put(Dst, 14730);
2193 } else { 2194 } else {
2194 dasm_put(Dst, 14736); 2195 dasm_put(Dst, 14743);
2195 if (vk) { 2196 if (vk) {
2196 dasm_put(Dst, 14742); 2197 dasm_put(Dst, 14749);
2197 } else { 2198 } else {
2198 dasm_put(Dst, 14758); 2199 dasm_put(Dst, 14765);
2199 } 2200 }
2200 dasm_put(Dst, 14766); 2201 dasm_put(Dst, 14773);
2201 if (cmov) { 2202 if (cmov) {
2202 dasm_put(Dst, 10798); 2203 dasm_put(Dst, 10805);
2203 } else { 2204 } else {
2204 dasm_put(Dst, 10804); 2205 dasm_put(Dst, 10811);
2205 } 2206 }
2206 if (!cmov) { 2207 if (!cmov) {
2207 dasm_put(Dst, 14771); 2208 dasm_put(Dst, 14778);
2208 } 2209 }
2209 } 2210 }
2210 if (op == BC_FORI) { 2211 if (op == BC_FORI) {
2211 dasm_put(Dst, 14777, -BCBIAS_J*4); 2212 dasm_put(Dst, 14784, -BCBIAS_J*4);
2212 } else if (op == BC_JFORI) { 2213 } else if (op == BC_JFORI) {
2213 dasm_put(Dst, 14787, -BCBIAS_J*4, BC_JLOOP); 2214 dasm_put(Dst, 14794, -BCBIAS_J*4, BC_JLOOP);
2214 } else if (op == BC_IFORL) { 2215 } else if (op == BC_IFORL) {
2215 dasm_put(Dst, 14801, -BCBIAS_J*4); 2216 dasm_put(Dst, 14808, -BCBIAS_J*4);
2216 } else { 2217 } else {
2217 dasm_put(Dst, 14797, BC_JLOOP); 2218 dasm_put(Dst, 14804, BC_JLOOP);
2218 } 2219 }
2219 dasm_put(Dst, 10833); 2220 dasm_put(Dst, 10840);
2220 if (sse) { 2221 if (sse) {
2221 dasm_put(Dst, 14811); 2222 dasm_put(Dst, 14818);
2222 } 2223 }
2223 break; 2224 break;
2224 2225
2225 case BC_ITERL: 2226 case BC_ITERL:
2226#if LJ_HASJIT 2227#if LJ_HASJIT
2227 dasm_put(Dst, 14630, HOTCOUNT_PCMASK, GG_DISP2HOT); 2228 dasm_put(Dst, 14637, HOTCOUNT_PCMASK, GG_DISP2HOT);
2228#endif 2229#endif
2229 break; 2230 break;
2230 2231
@@ -2233,33 +2234,33 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2233 break; 2234 break;
2234#endif 2235#endif
2235 case BC_IITERL: 2236 case BC_IITERL:
2236 dasm_put(Dst, 14822, LJ_TNIL); 2237 dasm_put(Dst, 14829, LJ_TNIL);
2237 if (op == BC_JITERL) { 2238 if (op == BC_JITERL) {
2238 dasm_put(Dst, 14837, BC_JLOOP); 2239 dasm_put(Dst, 14844, BC_JLOOP);
2239 } else { 2240 } else {
2240 dasm_put(Dst, 14851, -BCBIAS_J*4); 2241 dasm_put(Dst, 14858, -BCBIAS_J*4);
2241 } 2242 }
2242 dasm_put(Dst, 11130); 2243 dasm_put(Dst, 11137);
2243 break; 2244 break;
2244 2245
2245 case BC_LOOP: 2246 case BC_LOOP:
2246#if LJ_HASJIT 2247#if LJ_HASJIT
2247 dasm_put(Dst, 14630, HOTCOUNT_PCMASK, GG_DISP2HOT); 2248 dasm_put(Dst, 14637, HOTCOUNT_PCMASK, GG_DISP2HOT);
2248#endif 2249#endif
2249 break; 2250 break;
2250 2251
2251 case BC_ILOOP: 2252 case BC_ILOOP:
2252 dasm_put(Dst, 10835); 2253 dasm_put(Dst, 10842);
2253 break; 2254 break;
2254 2255
2255 case BC_JLOOP: 2256 case BC_JLOOP:
2256#if LJ_HASJIT 2257#if LJ_HASJIT
2257 dasm_put(Dst, 14867, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L)); 2258 dasm_put(Dst, 14874, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L));
2258#endif 2259#endif
2259 break; 2260 break;
2260 2261
2261 case BC_JMP: 2262 case BC_JMP:
2262 dasm_put(Dst, 14890, -BCBIAS_J*4); 2263 dasm_put(Dst, 14897, -BCBIAS_J*4);
2263 break; 2264 break;
2264 2265
2265 /* -- Function headers -------------------------------------------------- */ 2266 /* -- Function headers -------------------------------------------------- */
@@ -2273,7 +2274,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2273 2274
2274 case BC_FUNCF: 2275 case BC_FUNCF:
2275#if LJ_HASJIT 2276#if LJ_HASJIT
2276 dasm_put(Dst, 14914, HOTCOUNT_PCMASK, GG_DISP2HOT); 2277 dasm_put(Dst, 14921, HOTCOUNT_PCMASK, GG_DISP2HOT);
2277#endif 2278#endif
2278 case BC_FUNCV: /* NYI: compiled vararg functions. */ 2279 case BC_FUNCV: /* NYI: compiled vararg functions. */
2279 break; 2280 break;
@@ -2283,47 +2284,47 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2283 break; 2284 break;
2284#endif 2285#endif
2285 case BC_IFUNCF: 2286 case BC_IFUNCF:
2286 dasm_put(Dst, 14935, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams)); 2287 dasm_put(Dst, 14942, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams));
2287 if (op == BC_JFUNCF) { 2288 if (op == BC_JFUNCF) {
2288 dasm_put(Dst, 14965, BC_JLOOP); 2289 dasm_put(Dst, 14972, BC_JLOOP);
2289 } else { 2290 } else {
2290 dasm_put(Dst, 10835); 2291 dasm_put(Dst, 10842);
2291 } 2292 }
2292 dasm_put(Dst, 14974, LJ_TNIL); 2293 dasm_put(Dst, 14981, LJ_TNIL);
2293 break; 2294 break;
2294 2295
2295 case BC_JFUNCV: 2296 case BC_JFUNCV:
2296#if !LJ_HASJIT 2297#if !LJ_HASJIT
2297 break; 2298 break;
2298#endif 2299#endif
2299 dasm_put(Dst, 10496); 2300 dasm_put(Dst, 10503);
2300 break; /* NYI: compiled vararg functions. */ 2301 break; /* NYI: compiled vararg functions. */
2301 2302
2302 case BC_IFUNCV: 2303 case BC_IFUNCV:
2303 dasm_put(Dst, 14996, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL); 2304 dasm_put(Dst, 15003, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL);
2304 if (op == BC_JFUNCV) { 2305 if (op == BC_JFUNCV) {
2305 dasm_put(Dst, 14965, BC_JLOOP); 2306 dasm_put(Dst, 14972, BC_JLOOP);
2306 } else { 2307 } else {
2307 dasm_put(Dst, 15087, -4+PC2PROTO(k)); 2308 dasm_put(Dst, 15094, -4+PC2PROTO(k));
2308 } 2309 }
2309 dasm_put(Dst, 15109, LJ_TNIL); 2310 dasm_put(Dst, 15116, LJ_TNIL);
2310 break; 2311 break;
2311 2312
2312 case BC_FUNCC: 2313 case BC_FUNCC:
2313 case BC_FUNCCW: 2314 case BC_FUNCCW:
2314 dasm_put(Dst, 15131, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top)); 2315 dasm_put(Dst, 15138, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top));
2315 if (op == BC_FUNCC) { 2316 if (op == BC_FUNCC) {
2316 dasm_put(Dst, 15160); 2317 dasm_put(Dst, 15167);
2317 } else { 2318 } else {
2318 dasm_put(Dst, 15164); 2319 dasm_put(Dst, 15171);
2319 } 2320 }
2320 dasm_put(Dst, 15172, DISPATCH_GL(vmstate), ~LJ_VMST_C); 2321 dasm_put(Dst, 15179, DISPATCH_GL(vmstate), ~LJ_VMST_C);
2321 if (op == BC_FUNCC) { 2322 if (op == BC_FUNCC) {
2322 dasm_put(Dst, 15181); 2323 dasm_put(Dst, 15188);
2323 } else { 2324 } else {
2324 dasm_put(Dst, 15185, DISPATCH_GL(wrapf)); 2325 dasm_put(Dst, 15192, DISPATCH_GL(wrapf));
2325 } 2326 }
2326 dasm_put(Dst, 15190, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top)); 2327 dasm_put(Dst, 15197, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top));
2327 break; 2328 break;
2328 2329
2329 /* ---------------------------------------------------------------------- */ 2330 /* ---------------------------------------------------------------------- */
@@ -2351,7 +2352,7 @@ static int build_backend(BuildCtx *ctx)
2351 2352
2352 build_subroutines(ctx, cmov, sse); 2353 build_subroutines(ctx, cmov, sse);
2353 2354
2354 dasm_put(Dst, 15215); 2355 dasm_put(Dst, 15222);
2355 for (op = 0; op < BC__MAX; op++) 2356 for (op = 0; op < BC__MAX; op++)
2356 build_ins(ctx, (BCOp)op, op, cmov, sse); 2357 build_ins(ctx, (BCOp)op, op, cmov, sse);
2357 2358
diff --git a/src/lj_asm.c b/src/lj_asm.c
index 75a0cd53..73416768 100644
--- a/src/lj_asm.c
+++ b/src/lj_asm.c
@@ -2752,67 +2752,32 @@ static void asm_stack_restore(ASMState *as, SnapShot *snap)
2752 2752
2753/* -- GC handling --------------------------------------------------------- */ 2753/* -- GC handling --------------------------------------------------------- */
2754 2754
2755/* Sync all live GC values to Lua stack slots. */
2756static void asm_gc_sync(ASMState *as, SnapShot *snap, Reg base)
2757{
2758 /* Some care must be taken when allocating registers here, since this is
2759 ** not part of the fast path. All scratch registers are evicted in the
2760 ** fast path, so it's easiest to force allocation from scratch registers
2761 ** only. This avoids register allocation state unification.
2762 */
2763 RegSet allow = rset_exclude(RSET_SCRATCH & RSET_GPR, base);
2764 SnapEntry *map = &as->T->snapmap[snap->mapofs];
2765 MSize n, nent = snap->nent;
2766 for (n = 0; n < nent; n++) {
2767 SnapEntry sn = map[n];
2768 IRRef ref = snap_ref(sn);
2769 /* NYI: sync the frame, bump base, set topslot, clear new slots. */
2770 if ((sn & (SNAP_CONT|SNAP_FRAME)))
2771 lj_trace_err(as->J, LJ_TRERR_NYIGCF);
2772 if (!irref_isk(ref)) {
2773 IRIns *ir = IR(ref);
2774 if (irt_isgcv(ir->t)) {
2775 int32_t ofs = 8*(int32_t)(snap_slot(sn)-1);
2776 Reg src = ra_alloc1(as, ref, allow);
2777 emit_movtomro(as, src, base, ofs);
2778 emit_movmroi(as, base, ofs+4, irt_toitype(ir->t));
2779 checkmclim(as);
2780 }
2781 }
2782 }
2783}
2784
2785/* Check GC threshold and do one or more GC steps. */ 2755/* Check GC threshold and do one or more GC steps. */
2786static void asm_gc_check(ASMState *as, SnapShot *snap) 2756static void asm_gc_check(ASMState *as)
2787{ 2757{
2788 const CCallInfo *ci = &lj_ir_callinfo[IRCALL_lj_gc_step_jit]; 2758 const CCallInfo *ci = &lj_ir_callinfo[IRCALL_lj_gc_step_jit];
2789 IRRef args[2]; 2759 IRRef args[2];
2790 MCLabel l_end; 2760 MCLabel l_end;
2791 Reg base, lstate, tmp; 2761 Reg base, lstate, tmp;
2792 RegSet drop = RSET_SCRATCH; 2762 ra_evictset(as, RSET_SCRATCH);
2793 if (ra_hasreg(IR(REF_BASE)->r)) /* Stack may be reallocated by the GC. */
2794 drop |= RID2RSET(IR(REF_BASE)->r); /* Need to evict BASE, too. */
2795 ra_evictset(as, drop);
2796 l_end = emit_label(as); 2763 l_end = emit_label(as);
2764 /* Exit trace if in GCSatomic or GCSfinalize. Avoids syncing GC objects. */
2765 asm_guardcc(as, CC_NE); /* Assumes asm_snap_prep() already done. */
2766 emit_rr(as, XO_TEST, RID_RET, RID_RET);
2797 args[0] = ASMREF_L; 2767 args[0] = ASMREF_L;
2798 args[1] = ASMREF_TMP1; 2768 args[1] = ASMREF_TMP1;
2799 asm_gencall(as, ci, args); 2769 asm_gencall(as, ci, args);
2800 tmp = ra_releasetmp(as, ASMREF_TMP1); 2770 tmp = ra_releasetmp(as, ASMREF_TMP1);
2801 emit_loadi(as, tmp, (int32_t)as->gcsteps); 2771 emit_loadi(as, tmp, (int32_t)as->gcsteps);
2802 /* We don't know spadj yet, so get the C frame from L->cframe. */
2803 emit_movmroi(as, tmp, CFRAME_OFS_PC,
2804 (int32_t)as->T->snapmap[snap->mapofs+snap->nent]);
2805 emit_gri(as, XG_ARITHi(XOg_AND), tmp|REX_64, CFRAME_RAWMASK);
2806 lstate = IR(ASMREF_L)->r;
2807 emit_rmro(as, XO_MOV, tmp|REX_64, lstate, offsetof(lua_State, cframe));
2808 /* It's ok if lstate is already in a non-scratch reg. But all allocations 2772 /* It's ok if lstate is already in a non-scratch reg. But all allocations
2809 ** in the non-fast path must use a scratch reg. See comment above. 2773 ** in the non-fast path must use a scratch reg (avoids unification).
2810 */ 2774 */
2775 lstate = IR(ASMREF_L)->r;
2811 base = ra_alloc1(as, REF_BASE, rset_exclude(RSET_SCRATCH & RSET_GPR, lstate)); 2776 base = ra_alloc1(as, REF_BASE, rset_exclude(RSET_SCRATCH & RSET_GPR, lstate));
2812 emit_movtomro(as, base|REX_64, lstate, offsetof(lua_State, base)); 2777 emit_movtomro(as, base|REX_64, lstate, offsetof(lua_State, base));
2813 asm_gc_sync(as, snap, base);
2814 /* BASE/L get restored anyway, better do it inside the slow path. */ 2778 /* BASE/L get restored anyway, better do it inside the slow path. */
2815 if (as->parent || as->curins == as->loopref) ra_restore(as, REF_BASE); 2779 if (rset_test(RSET_SCRATCH, base) && (as->parent || as->snapno != 0))
2780 ra_restore(as, REF_BASE);
2816 if (rset_test(RSET_SCRATCH, lstate) && ra_hasreg(IR(ASMREF_L)->r)) 2781 if (rset_test(RSET_SCRATCH, lstate) && ra_hasreg(IR(ASMREF_L)->r))
2817 ra_restore(as, ASMREF_L); 2782 ra_restore(as, ASMREF_L);
2818 /* Jump around GC step if GC total < GC threshold. */ 2783 /* Jump around GC step if GC total < GC threshold. */
@@ -3034,7 +2999,7 @@ static void asm_loop(ASMState *as)
3034 /* LOOP is a guard, so the snapno is up to date. */ 2999 /* LOOP is a guard, so the snapno is up to date. */
3035 as->loopsnapno = as->snapno; 3000 as->loopsnapno = as->snapno;
3036 if (as->gcsteps) 3001 if (as->gcsteps)
3037 asm_gc_check(as, &as->T->snap[as->loopsnapno]); 3002 asm_gc_check(as);
3038 /* LOOP marks the transition from the variant to the invariant part. */ 3003 /* LOOP marks the transition from the variant to the invariant part. */
3039 as->testmcp = as->invmcp = NULL; 3004 as->testmcp = as->invmcp = NULL;
3040 as->sectref = 0; 3005 as->sectref = 0;
@@ -3126,7 +3091,7 @@ static void asm_head_side(ASMState *as)
3126 allow = asm_head_side_base(as, pbase, allow); 3091 allow = asm_head_side_base(as, pbase, allow);
3127 3092
3128 /* Scan all parent SLOADs and collect register dependencies. */ 3093 /* Scan all parent SLOADs and collect register dependencies. */
3129 for (i = as->curins; i > REF_BASE; i--) { 3094 for (i = as->stopins; i > REF_BASE; i--) {
3130 IRIns *ir = IR(i); 3095 IRIns *ir = IR(i);
3131 RegSP rs; 3096 RegSP rs;
3132 lua_assert(ir->o == IR_SLOAD && (ir->op2 & IRSLOAD_PARENT)); 3097 lua_assert(ir->o == IR_SLOAD && (ir->op2 & IRSLOAD_PARENT));
@@ -3161,7 +3126,7 @@ static void asm_head_side(ASMState *as)
3161 3126
3162 /* Reload spilled target registers. */ 3127 /* Reload spilled target registers. */
3163 if (pass2) { 3128 if (pass2) {
3164 for (i = as->curins; i > REF_BASE; i--) { 3129 for (i = as->stopins; i > REF_BASE; i--) {
3165 IRIns *ir = IR(i); 3130 IRIns *ir = IR(i);
3166 if (irt_ismarked(ir->t)) { 3131 if (irt_ismarked(ir->t)) {
3167 RegSet mask; 3132 RegSet mask;
@@ -3686,8 +3651,11 @@ void lj_asm_trace(jit_State *J, Trace *T)
3686 3651
3687 RA_DBG_REF(); 3652 RA_DBG_REF();
3688 checkmclim(as); 3653 checkmclim(as);
3689 if (as->gcsteps) 3654 if (as->gcsteps) {
3690 asm_gc_check(as, &as->T->snap[0]); 3655 as->curins = as->T->snap[0].ref;
3656 asm_snap_prep(as); /* The GC check is a guard. */
3657 asm_gc_check(as);
3658 }
3691 ra_evictk(as); 3659 ra_evictk(as);
3692 if (as->parent) 3660 if (as->parent)
3693 asm_head_side(as); 3661 asm_head_side(as);
diff --git a/src/lj_gc.c b/src/lj_gc.c
index d38238dd..18c07533 100644
--- a/src/lj_gc.c
+++ b/src/lj_gc.c
@@ -442,6 +442,7 @@ static void gc_finalize(lua_State *L)
442 GCobj *o = gcnext(gcref(g->gc.mmudata)); 442 GCobj *o = gcnext(gcref(g->gc.mmudata));
443 GCudata *ud = gco2ud(o); 443 GCudata *ud = gco2ud(o);
444 cTValue *mo; 444 cTValue *mo;
445 lua_assert(gcref(g->jit_L) == NULL); /* Must not be called on trace. */
445 /* Unchain from list of userdata to be finalized. */ 446 /* Unchain from list of userdata to be finalized. */
446 if (o == gcref(g->gc.mmudata)) 447 if (o == gcref(g->gc.mmudata))
447 setgcrefnull(g->gc.mmudata); 448 setgcrefnull(g->gc.mmudata);
@@ -457,16 +458,8 @@ static void gc_finalize(lua_State *L)
457 /* Save and restore lots of state around the __gc callback. */ 458 /* Save and restore lots of state around the __gc callback. */
458 uint8_t oldh = hook_save(g); 459 uint8_t oldh = hook_save(g);
459 MSize oldt = g->gc.threshold; 460 MSize oldt = g->gc.threshold;
460 GCobj *oldjl = gcref(g->jit_L);
461 MSize oldjs = 0;
462 ptrdiff_t oldjb = 0;
463 int errcode; 461 int errcode;
464 TValue *top; 462 TValue *top;
465 if (oldjl) {
466 oldjs = gco2th(oldjl)->stacksize;
467 oldjb = savestack(gco2th(oldjl), mref(g->jit_base, TValue ));
468 setgcrefnull(g->jit_L);
469 }
470 lj_trace_abort(g); 463 lj_trace_abort(g);
471 top = L->top; 464 top = L->top;
472 L->top = top+2; 465 L->top = top+2;
@@ -477,12 +470,6 @@ static void gc_finalize(lua_State *L)
477 errcode = lj_vm_pcall(L, top+1, 1+0, -1); /* Stack: |mo|ud| -> | */ 470 errcode = lj_vm_pcall(L, top+1, 1+0, -1); /* Stack: |mo|ud| -> | */
478 hook_restore(g, oldh); 471 hook_restore(g, oldh);
479 g->gc.threshold = oldt; /* Restore GC threshold. */ 472 g->gc.threshold = oldt; /* Restore GC threshold. */
480 if (oldjl) {
481 if (gco2th(oldjl)->stacksize < oldjs)
482 lj_state_growstack(gco2th(oldjl), oldjs - gco2th(oldjl)->stacksize);
483 setgcref(g->jit_L, oldjl);
484 setmref(g->jit_base, restorestack(gco2th(oldjl), oldjb));
485 }
486 if (errcode) 473 if (errcode)
487 lj_err_throw(L, errcode); /* Propagate errors. */ 474 lj_err_throw(L, errcode); /* Propagate errors. */
488 } 475 }
@@ -514,7 +501,6 @@ static void atomic(global_State *g, lua_State *L)
514{ 501{
515 size_t udsize; 502 size_t udsize;
516 503
517 g->gc.state = GCSatomic;
518 gc_mark_uv(g); /* Need to remark open upvalues (the thread may be dead). */ 504 gc_mark_uv(g); /* Need to remark open upvalues (the thread may be dead). */
519 gc_propagate_gray(g); /* Propagate any left-overs. */ 505 gc_propagate_gray(g); /* Propagate any left-overs. */
520 506
@@ -539,9 +525,7 @@ static void atomic(global_State *g, lua_State *L)
539 525
540 /* Prepare for sweep phase. */ 526 /* Prepare for sweep phase. */
541 g->gc.currentwhite = cast_byte(otherwhite(g)); /* Flip current white. */ 527 g->gc.currentwhite = cast_byte(otherwhite(g)); /* Flip current white. */
542 g->gc.sweepstr = 0;
543 setmref(g->gc.sweep, &g->gc.root); 528 setmref(g->gc.sweep, &g->gc.root);
544 g->gc.state = GCSsweepstring;
545 g->gc.estimate = g->gc.total - (MSize)udsize; /* Initial estimate. */ 529 g->gc.estimate = g->gc.total - (MSize)udsize; /* Initial estimate. */
546} 530}
547 531
@@ -556,7 +540,14 @@ static size_t gc_onestep(lua_State *L)
556 case GCSpropagate: 540 case GCSpropagate:
557 if (gcref(g->gc.gray) != NULL) 541 if (gcref(g->gc.gray) != NULL)
558 return propagatemark(g); /* Propagate one gray object. */ 542 return propagatemark(g); /* Propagate one gray object. */
559 atomic(g, L); /* End of mark phase. */ 543 g->gc.state = GCSatomic; /* End of mark phase. */
544 return 0;
545 case GCSatomic:
546 if (gcref(g->jit_L)) /* Don't run atomic phase on trace. */
547 return LJ_MAX_MEM;
548 atomic(g, L);
549 g->gc.state = GCSsweepstring; /* Start of sweep phase. */
550 g->gc.sweepstr = 0;
560 return 0; 551 return 0;
561 case GCSsweepstring: { 552 case GCSsweepstring: {
562 MSize old = g->gc.total; 553 MSize old = g->gc.total;
@@ -572,7 +563,12 @@ static size_t gc_onestep(lua_State *L)
572 setmref(g->gc.sweep, gc_sweep(g, mref(g->gc.sweep, GCRef), GCSWEEPMAX)); 563 setmref(g->gc.sweep, gc_sweep(g, mref(g->gc.sweep, GCRef), GCSWEEPMAX));
573 if (gcref(*mref(g->gc.sweep, GCRef)) == NULL) { 564 if (gcref(*mref(g->gc.sweep, GCRef)) == NULL) {
574 gc_shrink(g, L); 565 gc_shrink(g, L);
575 g->gc.state = GCSfinalize; /* End of sweep phase. */ 566 if (gcref(g->gc.mmudata)) { /* Need any finalizations? */
567 g->gc.state = GCSfinalize;
568 } else { /* Otherwise skip this phase to help the JIT. */
569 g->gc.state = GCSpause; /* End of GC cycle. */
570 g->gc.debt = 0;
571 }
576 } 572 }
577 lua_assert(old >= g->gc.total); 573 lua_assert(old >= g->gc.total);
578 g->gc.estimate -= old - g->gc.total; 574 g->gc.estimate -= old - g->gc.total;
@@ -580,6 +576,8 @@ static size_t gc_onestep(lua_State *L)
580 } 576 }
581 case GCSfinalize: 577 case GCSfinalize:
582 if (gcref(g->gc.mmudata) != NULL) { 578 if (gcref(g->gc.mmudata) != NULL) {
579 if (gcref(g->jit_L)) /* Don't call finalizers on trace. */
580 return LJ_MAX_MEM;
583 gc_finalize(L); /* Finalize one userdata object. */ 581 gc_finalize(L); /* Finalize one userdata object. */
584 if (g->gc.estimate > GCFINALIZECOST) 582 if (g->gc.estimate > GCFINALIZECOST)
585 g->gc.estimate -= GCFINALIZECOST; 583 g->gc.estimate -= GCFINALIZECOST;
@@ -633,11 +631,13 @@ void LJ_FASTCALL lj_gc_step_fixtop(lua_State *L)
633 631
634#if LJ_HASJIT 632#if LJ_HASJIT
635/* Perform multiple GC steps. Called from JIT-compiled code. */ 633/* Perform multiple GC steps. Called from JIT-compiled code. */
636void LJ_FASTCALL lj_gc_step_jit(lua_State *L, MSize steps) 634int LJ_FASTCALL lj_gc_step_jit(lua_State *L, MSize steps)
637{ 635{
638 L->top = curr_topL(L); 636 L->top = curr_topL(L);
639 while (steps-- > 0 && lj_gc_step(L) == 0) 637 while (steps-- > 0 && lj_gc_step(L) == 0)
640 ; 638 ;
639 /* Return 1 to force a trace exit. */
640 return (G(L)->gc.state == GCSatomic || G(L)->gc.state == GCSfinalize);
641} 641}
642#endif 642#endif
643 643
@@ -647,23 +647,20 @@ void lj_gc_fullgc(lua_State *L)
647 global_State *g = G(L); 647 global_State *g = G(L);
648 int32_t ostate = g->vmstate; 648 int32_t ostate = g->vmstate;
649 setvmstate(g, GC); 649 setvmstate(g, GC);
650 if (g->gc.state <= GCSpropagate) { /* Caught somewhere in the middle. */ 650 if (g->gc.state <= GCSatomic) { /* Caught somewhere in the middle. */
651 g->gc.sweepstr = 0;
652 setmref(g->gc.sweep, &g->gc.root); /* Sweep everything (preserving it). */ 651 setmref(g->gc.sweep, &g->gc.root); /* Sweep everything (preserving it). */
653 setgcrefnull(g->gc.gray); /* Reset lists from partial propagation. */ 652 setgcrefnull(g->gc.gray); /* Reset lists from partial propagation. */
654 setgcrefnull(g->gc.grayagain); 653 setgcrefnull(g->gc.grayagain);
655 setgcrefnull(g->gc.weak); 654 setgcrefnull(g->gc.weak);
656 g->gc.state = GCSsweepstring; /* Fast forward to the sweep phase. */ 655 g->gc.state = GCSsweepstring; /* Fast forward to the sweep phase. */
656 g->gc.sweepstr = 0;
657 } 657 }
658 lua_assert(g->gc.state != GCSpause && g->gc.state != GCSpropagate); 658 while (g->gc.state == GCSsweepstring || g->gc.state == GCSsweep)
659 while (g->gc.state != GCSfinalize) { /* Finish sweep. */ 659 gc_onestep(L); /* Finish sweep. */
660 lua_assert(g->gc.state == GCSsweepstring || g->gc.state == GCSsweep); 660 lua_assert(g->gc.state == GCSfinalize || g->gc.state == GCSpause);
661 gc_onestep(L);
662 }
663 /* Now perform a full GC. */ 661 /* Now perform a full GC. */
664 gc_mark_start(g); 662 g->gc.state = GCSpause;
665 while (g->gc.state != GCSpause) 663 do { gc_onestep(L); } while (g->gc.state != GCSpause);
666 gc_onestep(L);
667 g->gc.threshold = (g->gc.estimate/100) * g->gc.pause; 664 g->gc.threshold = (g->gc.estimate/100) * g->gc.pause;
668 g->vmstate = ostate; 665 g->vmstate = ostate;
669} 666}
diff --git a/src/lj_gc.h b/src/lj_gc.h
index 228835ac..4832eca8 100644
--- a/src/lj_gc.h
+++ b/src/lj_gc.h
@@ -47,7 +47,7 @@ LJ_FUNC void lj_gc_freeall(global_State *g);
47LJ_FUNCA int LJ_FASTCALL lj_gc_step(lua_State *L); 47LJ_FUNCA int LJ_FASTCALL lj_gc_step(lua_State *L);
48LJ_FUNCA void LJ_FASTCALL lj_gc_step_fixtop(lua_State *L); 48LJ_FUNCA void LJ_FASTCALL lj_gc_step_fixtop(lua_State *L);
49#if LJ_HASJIT 49#if LJ_HASJIT
50LJ_FUNC void LJ_FASTCALL lj_gc_step_jit(lua_State *L, MSize steps); 50LJ_FUNC int LJ_FASTCALL lj_gc_step_jit(lua_State *L, MSize steps);
51#endif 51#endif
52LJ_FUNC void lj_gc_fullgc(lua_State *L); 52LJ_FUNC void lj_gc_fullgc(lua_State *L);
53 53
diff --git a/src/lj_parse.c b/src/lj_parse.c
index 3bef225a..31a70d38 100644
--- a/src/lj_parse.c
+++ b/src/lj_parse.c
@@ -1228,7 +1228,7 @@ static void fs_init(LexState *ls, FuncState *fs)
1228 fs->flags = 0; 1228 fs->flags = 0;
1229 fs->framesize = 2; /* Minimum frame size. */ 1229 fs->framesize = 2; /* Minimum frame size. */
1230 fs->kt = lj_tab_new(L, 0, 0); 1230 fs->kt = lj_tab_new(L, 0, 0);
1231 /* Anchor table of constants and prototype (to avoid being collected). */ 1231 /* Anchor table of constants in stack to avoid being collected. */
1232 settabV(L, L->top, fs->kt); 1232 settabV(L, L->top, fs->kt);
1233 incr_top(L); 1233 incr_top(L);
1234} 1234}
diff --git a/src/lj_record.c b/src/lj_record.c
index e89d9c26..206eedca 100644
--- a/src/lj_record.c
+++ b/src/lj_record.c
@@ -1885,13 +1885,22 @@ static TRef rec_tnew(jit_State *J, uint32_t ah)
1885 1885
1886/* -- Record bytecode ops ------------------------------------------------- */ 1886/* -- Record bytecode ops ------------------------------------------------- */
1887 1887
1888/* Optimize state after comparison. */ 1888/* Prepare for comparison. */
1889static void optstate_comp(jit_State *J, int cond) 1889static void rec_comp_prep(jit_State *J)
1890{
1891 /* Prevent merging with snapshot #0 (GC exit) since we fixup the PC. */
1892 if (J->cur.nsnap == 1 && J->cur.snap[0].ref == J->cur.nins)
1893 emitir_raw(IRT(IR_NOP, IRT_NIL), 0, 0);
1894 lj_snap_add(J);
1895}
1896
1897/* Fixup comparison. */
1898static void rec_comp_fixup(jit_State *J, int cond)
1890{ 1899{
1891 BCIns jmpins = J->pc[1]; 1900 BCIns jmpins = J->pc[1];
1892 const BCIns *npc = J->pc + 2 + (cond ? bc_j(jmpins) : 0); 1901 const BCIns *npc = J->pc + 2 + (cond ? bc_j(jmpins) : 0);
1893 SnapShot *snap = &J->cur.snap[J->cur.nsnap-1]; 1902 SnapShot *snap = &J->cur.snap[J->cur.nsnap-1];
1894 /* Avoid re-recording the comparison in side traces. */ 1903 /* Set PC to opposite target to avoid re-recording the comp. in side trace. */
1895 J->cur.snapmap[snap->mapofs + snap->nent] = SNAP_MKPC(npc); 1904 J->cur.snapmap[snap->mapofs + snap->nent] = SNAP_MKPC(npc);
1896 J->needsnap = 1; 1905 J->needsnap = 1;
1897 /* Shrink last snapshot if possible. */ 1906 /* Shrink last snapshot if possible. */
@@ -1987,7 +1996,7 @@ void lj_record_ins(jit_State *J)
1987 break; /* Interpreter will throw for two different types. */ 1996 break; /* Interpreter will throw for two different types. */
1988 } 1997 }
1989 } 1998 }
1990 lj_snap_add(J); 1999 rec_comp_prep(J);
1991 irop = (int)op - (int)BC_ISLT + (int)IR_LT; 2000 irop = (int)op - (int)BC_ISLT + (int)IR_LT;
1992 if (ta == IRT_NUM) { 2001 if (ta == IRT_NUM) {
1993 if ((irop & 1)) irop ^= 4; /* ISGE/ISGT are unordered. */ 2002 if ((irop & 1)) irop ^= 4; /* ISGE/ISGT are unordered. */
@@ -2004,7 +2013,7 @@ void lj_record_ins(jit_State *J)
2004 break; 2013 break;
2005 } 2014 }
2006 emitir(IRTG(irop, ta), ra, rc); 2015 emitir(IRTG(irop, ta), ra, rc);
2007 optstate_comp(J, ((int)op ^ irop) & 1); 2016 rec_comp_fixup(J, ((int)op ^ irop) & 1);
2008 } 2017 }
2009 break; 2018 break;
2010 2019
@@ -2015,14 +2024,14 @@ void lj_record_ins(jit_State *J)
2015 /* Emit nothing for two non-table, non-udata consts. */ 2024 /* Emit nothing for two non-table, non-udata consts. */
2016 if (!(tref_isk2(ra, rc) && !(tref_istab(ra) || tref_isudata(ra)))) { 2025 if (!(tref_isk2(ra, rc) && !(tref_istab(ra) || tref_isudata(ra)))) {
2017 int diff; 2026 int diff;
2018 lj_snap_add(J); 2027 rec_comp_prep(J);
2019 diff = rec_objcmp(J, ra, rc, rav, rcv); 2028 diff = rec_objcmp(J, ra, rc, rav, rcv);
2020 if (diff == 1 && (tref_istab(ra) || tref_isudata(ra))) { 2029 if (diff == 1 && (tref_istab(ra) || tref_isudata(ra))) {
2021 /* Only check __eq if different, but the same type (table or udata). */ 2030 /* Only check __eq if different, but the same type (table or udata). */
2022 rec_mm_equal(J, &ix, (int)op); 2031 rec_mm_equal(J, &ix, (int)op);
2023 break; 2032 break;
2024 } 2033 }
2025 optstate_comp(J, ((int)op & 1) == !diff); 2034 rec_comp_fixup(J, ((int)op & 1) == !diff);
2026 } 2035 }
2027 break; 2036 break;
2028 2037
diff --git a/src/lj_trace.c b/src/lj_trace.c
index cbd7ca6e..5571293e 100644
--- a/src/lj_trace.c
+++ b/src/lj_trace.c
@@ -692,8 +692,12 @@ int LJ_FASTCALL lj_trace_exit(jit_State *J, void *exptr)
692 ); 692 );
693 693
694 pc = exd.pc; 694 pc = exd.pc;
695 trace_hotside(J, pc);
696 cf = cframe_raw(L->cframe); 695 cf = cframe_raw(L->cframe);
696 setcframe_pc(cf, pc);
697 if (G(L)->gc.state == GCSatomic || G(L)->gc.state == GCSfinalize)
698 lj_gc_step(L); /* Exited because of GC: drive GC forward. */
699 else
700 trace_hotside(J, pc);
697 if (bc_op(*pc) == BC_JLOOP) { 701 if (bc_op(*pc) == BC_JLOOP) {
698 BCIns *retpc = &J->trace[bc_d(*pc)]->startins; 702 BCIns *retpc = &J->trace[bc_d(*pc)]->startins;
699 if (bc_isret(bc_op(*retpc))) { 703 if (bc_isret(bc_op(*retpc))) {
@@ -703,10 +707,10 @@ int LJ_FASTCALL lj_trace_exit(jit_State *J, void *exptr)
703 *J->patchpc = *retpc; 707 *J->patchpc = *retpc;
704 } else { 708 } else {
705 pc = retpc; 709 pc = retpc;
710 setcframe_pc(cf, pc);
706 } 711 }
707 } 712 }
708 } 713 }
709 setcframe_pc(cf, pc);
710 /* Return MULTRES or 0. */ 714 /* Return MULTRES or 0. */
711 switch (bc_op(*pc)) { 715 switch (bc_op(*pc)) {
712 case BC_CALLM: case BC_CALLMT: 716 case BC_CALLM: case BC_CALLMT:
diff --git a/src/lj_traceerr.h b/src/lj_traceerr.h
index 7b0dd813..1b0df055 100644
--- a/src/lj_traceerr.h
+++ b/src/lj_traceerr.h
@@ -49,7 +49,6 @@ TREDEF(BADRA, "inconsistent register allocation")
49TREDEF(NYIIR, "NYI: cannot assemble IR instruction %d") 49TREDEF(NYIIR, "NYI: cannot assemble IR instruction %d")
50TREDEF(NYIPHI, "NYI: PHI shuffling too complex") 50TREDEF(NYIPHI, "NYI: PHI shuffling too complex")
51TREDEF(NYICOAL, "NYI: register coalescing too complex") 51TREDEF(NYICOAL, "NYI: register coalescing too complex")
52TREDEF(NYIGCF, "NYI: gcstep sync with frames")
53 52
54#undef TREDEF 53#undef TREDEF
55 54