summaryrefslogtreecommitdiff
path: root/src/buildvm_x64.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/buildvm_x64.h')
-rw-r--r--src/buildvm_x64.h1012
1 files changed, 513 insertions, 499 deletions
diff --git a/src/buildvm_x64.h b/src/buildvm_x64.h
index 73cbbb6d..b6756867 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[14278] = { 15static const unsigned char build_actionlist[14436] = {
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,129,252,243,239,252,247,195,237,15,133, 18 252,247,195,237,15,132,244,13,248,14,129,252,243,239,252,247,195,237,15,133,
@@ -469,241 +469,248 @@ static const unsigned char build_actionlist[14278] = {
469 252,233,218,209,221,217,195,255,221,225,223,224,252,246,196,1,15,132,244, 469 252,233,218,209,221,217,195,255,221,225,223,224,252,246,196,1,15,132,244,
470 248,217,201,248,2,221,216,195,248,1,221,225,223,224,252,246,196,1,15,133, 470 248,217,201,248,2,221,216,195,248,1,221,225,223,224,252,246,196,1,15,133,
471 244,248,217,201,248,2,221,216,195,255,248,155,137,252,248,83,15,162,137,6, 471 244,248,217,201,248,2,221,216,195,255,248,155,137,252,248,83,15,162,137,6,
472 137,94,4,137,78,8,137,86,12,91,195,255,129,124,253,202,4,239,15,135,244,41, 472 137,94,4,137,78,8,137,86,12,91,195,248,156,255,85,72,137,229,83,72,137,252,
473 129,124,253,194,4,239,15,135,244,41,255,252,242,15,16,4,194,131,195,4,102, 473 251,139,131,233,72,41,196,15,182,139,233,131,252,233,1,15,136,244,248,248,
474 15,46,4,202,255,221,4,202,221,4,194,131,195,4,255,223,252,233,221,216,255, 474 1,72,139,132,253,203,233,72,137,132,253,204,233,131,252,233,1,15,137,244,
475 218,252,233,223,224,158,255,15,134,244,248,255,15,131,244,248,255,248,1,15, 475 1,248,2,15,182,131,233,72,139,187,233,72,139,179,233,72,139,147,233,72,139,
476 183,67,252,254,141,156,253,131,233,248,2,139,3,15,182,204,15,182,232,131, 476 139,233,76,139,131,233,76,139,139,233,133,192,15,132,244,251,15,40,131,233,
477 195,4,193,232,16,65,252,255,36,252,238,255,139,108,194,4,131,195,4,129,252, 477 255,15,40,139,233,15,40,147,233,15,40,155,233,131,252,248,4,15,134,244,251,
478 253,239,15,135,244,251,129,124,253,202,4,239,15,135,244,251,255,252,242,15, 478 15,40,163,233,15,40,171,233,15,40,179,233,15,40,187,233,248,5,252,255,147,
479 16,4,194,102,15,46,4,202,255,221,4,202,221,4,194,255,15,138,244,248,15,133, 479 233,72,137,131,233,15,41,131,233,72,137,147,233,15,41,139,233,72,139,93,252,
480 244,248,255,15,138,244,248,15,132,244,247,255,248,1,15,183,67,252,254,141, 480 248,201,195,255,129,124,253,202,4,239,15,135,244,41,129,124,253,194,4,239,
481 156,253,131,233,248,2,255,248,2,15,183,67,252,254,141,156,253,131,233,248, 481 15,135,244,41,255,252,242,15,16,4,194,131,195,4,102,15,46,4,202,255,221,4,
482 1,255,248,5,57,108,202,4,15,133,244,2,129,252,253,239,15,131,244,1,139,12, 482 202,221,4,194,131,195,4,255,223,252,233,221,216,255,218,252,233,223,224,158,
483 202,139,4,194,57,193,15,132,244,1,129,252,253,239,15,135,244,2,139,169,233, 483 255,15,134,244,248,255,15,131,244,248,255,248,1,15,183,67,252,254,141,156,
484 133,252,237,15,132,244,2,252,246,133,233,235,15,133,244,2,255,49,252,237, 484 253,131,233,248,2,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,
485 255,189,1,0,0,0,255,252,233,244,45,255,72,252,247,208,131,195,4,129,124,253, 485 255,36,252,238,255,139,108,194,4,131,195,4,129,252,253,239,15,135,244,251,
486 202,4,239,15,133,244,248,139,12,202,65,59,12,135,255,131,195,4,129,124,253, 486 129,124,253,202,4,239,15,135,244,251,255,252,242,15,16,4,194,102,15,46,4,
487 202,4,239,15,135,244,248,255,252,242,65,15,16,4,199,102,15,46,4,202,255,221, 487 202,255,221,4,202,221,4,194,255,15,138,244,248,15,133,244,248,255,15,138,
488 4,202,65,221,4,199,255,72,252,247,208,131,195,4,57,68,202,4,255,139,108,194, 488 244,248,15,132,244,247,255,248,1,15,183,67,252,254,141,156,253,131,233,248,
489 4,131,195,4,129,252,253,239,255,15,131,244,247,255,15,130,244,247,255,137, 489 2,255,248,2,15,183,67,252,254,141,156,253,131,233,248,1,255,248,5,57,108,
490 108,202,4,139,44,194,137,44,202,255,15,183,67,252,254,141,156,253,131,233, 490 202,4,15,133,244,2,129,252,253,239,15,131,244,1,139,12,202,139,4,194,57,193,
491 248,1,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252, 491 15,132,244,1,129,252,253,239,15,135,244,2,139,169,233,133,252,237,15,132,
492 238,255,72,139,44,194,72,137,44,202,139,3,15,182,204,15,182,232,131,195,4, 492 244,2,252,246,133,233,235,15,133,244,2,255,49,252,237,255,189,1,0,0,0,255,
493 193,232,16,65,252,255,36,252,238,255,49,252,237,129,124,253,194,4,239,129, 493 252,233,244,45,255,72,252,247,208,131,195,4,129,124,253,202,4,239,15,133,
494 213,239,137,108,202,4,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65, 494 244,248,139,12,202,65,59,12,135,255,131,195,4,129,124,253,202,4,239,15,135,
495 252,255,36,252,238,255,129,124,253,194,4,239,15,135,244,48,255,252,242,15, 495 244,248,255,252,242,65,15,16,4,199,102,15,46,4,202,255,221,4,202,65,221,4,
496 16,4,194,72,184,237,237,102,72,15,110,200,15,87,193,252,242,15,17,4,202,255, 496 199,255,72,252,247,208,131,195,4,57,68,202,4,255,139,108,194,4,131,195,4,
497 221,4,194,217,224,221,28,202,255,129,124,253,194,4,239,15,133,244,248,139, 497 129,252,253,239,255,15,131,244,247,255,15,130,244,247,255,137,108,202,4,139,
498 4,194,255,15,87,192,252,242,15,42,128,233,248,1,252,242,15,17,4,202,255,219, 498 44,194,137,44,202,255,15,183,67,252,254,141,156,253,131,233,248,1,139,3,15,
499 128,233,248,1,221,28,202,255,139,3,15,182,204,15,182,232,131,195,4,193,232, 499 182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,255,72,139,
500 16,65,252,255,36,252,238,248,2,129,124,253,194,4,239,15,133,244,50,139,60, 500 44,194,72,137,44,202,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,
501 194,137,213,232,251,1,18,255,252,242,15,42,192,137,252,234,255,15,182,75, 501 252,255,36,252,238,255,49,252,237,129,124,253,194,4,239,129,213,239,137,108,
502 252,253,252,233,244,1,255,15,182,252,236,15,182,192,255,129,124,253,252,234, 502 202,4,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,
503 4,239,15,135,244,46,255,252,242,15,16,4,252,234,252,242,65,15,88,4,199,255, 503 238,255,129,124,253,194,4,239,15,135,244,48,255,252,242,15,16,4,194,72,184,
504 221,4,252,234,65,220,4,199,255,129,124,253,252,234,4,239,15,135,244,47,255, 504 237,237,102,72,15,110,200,15,87,193,252,242,15,17,4,202,255,221,4,194,217,
505 252,242,65,15,16,4,199,252,242,15,88,4,252,234,255,65,221,4,199,220,4,252, 505 224,221,28,202,255,129,124,253,194,4,239,15,133,244,248,139,4,194,255,15,
506 234,255,129,124,253,252,234,4,239,15,135,244,49,129,124,253,194,4,239,15, 506 87,192,252,242,15,42,128,233,248,1,252,242,15,17,4,202,255,219,128,233,248,
507 135,244,49,255,252,242,15,16,4,252,234,252,242,15,88,4,194,255,221,4,252, 507 1,221,28,202,255,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,
508 234,220,4,194,255,252,242,15,16,4,252,234,252,242,65,15,92,4,199,255,221, 508 255,36,252,238,248,2,129,124,253,194,4,239,15,133,244,50,139,60,194,137,213,
509 4,252,234,65,220,36,199,255,252,242,65,15,16,4,199,252,242,15,92,4,252,234, 509 232,251,1,18,255,252,242,15,42,192,137,252,234,255,15,182,75,252,253,252,
510 255,65,221,4,199,220,36,252,234,255,252,242,15,16,4,252,234,252,242,15,92, 510 233,244,1,255,15,182,252,236,15,182,192,255,129,124,253,252,234,4,239,15,
511 4,194,255,221,4,252,234,220,36,194,255,252,242,15,16,4,252,234,252,242,65, 511 135,244,46,255,252,242,15,16,4,252,234,252,242,65,15,88,4,199,255,221,4,252,
512 15,89,4,199,255,221,4,252,234,65,220,12,199,255,252,242,65,15,16,4,199,252, 512 234,65,220,4,199,255,129,124,253,252,234,4,239,15,135,244,47,255,252,242,
513 242,15,89,4,252,234,255,65,221,4,199,220,12,252,234,255,252,242,15,16,4,252, 513 65,15,16,4,199,252,242,15,88,4,252,234,255,65,221,4,199,220,4,252,234,255,
514 234,252,242,15,89,4,194,255,221,4,252,234,220,12,194,255,252,242,15,16,4, 514 129,124,253,252,234,4,239,15,135,244,49,129,124,253,194,4,239,15,135,244,
515 252,234,252,242,65,15,94,4,199,255,221,4,252,234,65,220,52,199,255,252,242, 515 49,255,252,242,15,16,4,252,234,252,242,15,88,4,194,255,221,4,252,234,220,
516 65,15,16,4,199,252,242,15,94,4,252,234,255,65,221,4,199,220,52,252,234,255, 516 4,194,255,252,242,15,16,4,252,234,252,242,65,15,92,4,199,255,221,4,252,234,
517 252,242,15,16,4,252,234,252,242,15,94,4,194,255,221,4,252,234,220,52,194, 517 65,220,36,199,255,252,242,65,15,16,4,199,252,242,15,92,4,252,234,255,65,221,
518 255,252,242,15,16,4,252,234,252,242,65,15,16,12,199,255,221,4,252,234,65, 518 4,199,220,36,252,234,255,252,242,15,16,4,252,234,252,242,15,92,4,194,255,
519 221,4,199,255,252,242,65,15,16,4,199,252,242,15,16,12,252,234,255,65,221, 519 221,4,252,234,220,36,194,255,252,242,15,16,4,252,234,252,242,65,15,89,4,199,
520 4,199,221,4,252,234,255,252,242,15,16,4,252,234,252,242,15,16,12,194,255, 520 255,221,4,252,234,65,220,12,199,255,252,242,65,15,16,4,199,252,242,15,89,
521 221,4,252,234,221,4,194,255,248,156,232,244,148,255,252,233,244,156,255,232, 521 4,252,234,255,65,221,4,199,220,12,252,234,255,252,242,15,16,4,252,234,252,
522 244,107,255,15,182,252,236,15,182,192,139,124,36,24,137,151,233,141,52,194, 522 242,15,89,4,194,255,221,4,252,234,220,12,194,255,252,242,15,16,4,252,234,
523 137,194,41,252,234,248,33,137,252,253,137,92,36,28,232,251,1,25,139,149,233, 523 252,242,65,15,94,4,199,255,221,4,252,234,65,220,52,199,255,252,242,65,15,
524 133,192,15,133,244,42,15,182,107,252,255,15,182,75,252,253,72,139,4,252,234, 524 16,4,199,252,242,15,94,4,252,234,255,65,221,4,199,220,52,252,234,255,252,
525 72,137,4,202,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255, 525 242,15,16,4,252,234,252,242,15,94,4,194,255,221,4,252,234,220,52,194,255,
526 36,252,238,255,72,252,247,208,65,139,4,135,199,68,202,4,237,137,4,202,139, 526 252,242,15,16,4,252,234,252,242,65,15,16,12,199,255,221,4,252,234,65,221,
527 3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,255,15, 527 4,199,255,252,242,65,15,16,4,199,252,242,15,16,12,252,234,255,65,221,4,199,
528 191,192,252,242,15,42,192,252,242,15,17,4,202,255,223,67,252,254,221,28,202, 528 221,4,252,234,255,252,242,15,16,4,252,234,252,242,15,16,12,194,255,221,4,
529 255,252,242,65,15,16,4,199,252,242,15,17,4,202,255,65,221,4,199,221,28,202, 529 252,234,221,4,194,255,248,157,232,244,148,255,252,233,244,157,255,232,244,
530 255,72,252,247,208,137,68,202,4,139,3,15,182,204,15,182,232,131,195,4,193, 530 107,255,15,182,252,236,15,182,192,139,124,36,24,137,151,233,141,52,194,137,
531 232,16,65,252,255,36,252,238,255,141,76,202,12,141,68,194,4,189,237,137,105, 531 194,41,252,234,248,33,137,252,253,137,92,36,28,232,251,1,25,139,149,233,133,
532 252,248,248,1,137,41,131,193,8,57,193,15,134,244,1,139,3,15,182,204,15,182, 532 192,15,133,244,42,15,182,107,252,255,15,182,75,252,253,72,139,4,252,234,72,
533 232,131,195,4,193,232,16,65,252,255,36,252,238,255,139,106,252,248,139,172, 533 137,4,202,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,
534 253,133,233,139,173,233,72,139,69,0,72,137,4,202,139,3,15,182,204,15,182, 534 252,238,255,72,252,247,208,65,139,4,135,199,68,202,4,237,137,4,202,139,3,
535 232,131,195,4,193,232,16,65,252,255,36,252,238,255,139,106,252,248,139,172, 535 15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,255,15,191,
536 253,141,233,128,189,233,0,139,173,233,139,12,194,139,68,194,4,137,77,0,137, 536 192,252,242,15,42,192,252,242,15,17,4,202,255,223,67,252,254,221,28,202,255,
537 69,4,15,132,244,247,252,246,133,233,235,15,133,244,248,248,1,139,3,15,182, 537 252,242,65,15,16,4,199,252,242,15,17,4,202,255,65,221,4,199,221,28,202,255,
538 204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,2,129,232,239, 538 72,252,247,208,137,68,202,4,139,3,15,182,204,15,182,232,131,195,4,193,232,
539 129,252,248,239,15,134,244,1,252,246,129,233,235,15,132,244,1,137,252,238, 539 16,65,252,255,36,252,238,255,141,76,202,12,141,68,194,4,189,237,137,105,252,
540 137,213,65,141,190,233,255,232,251,1,26,137,252,234,252,233,244,1,255,72, 540 248,248,1,137,41,131,193,8,57,193,15,134,244,1,139,3,15,182,204,15,182,232,
541 252,247,208,139,106,252,248,139,172,253,141,233,65,139,12,135,139,133,233, 541 131,195,4,193,232,16,65,252,255,36,252,238,255,139,106,252,248,139,172,253,
542 137,8,199,64,4,237,252,246,133,233,235,15,133,244,248,248,1,139,3,15,182, 542 133,233,139,173,233,72,139,69,0,72,137,4,202,139,3,15,182,204,15,182,232,
543 204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,2,252,246,129, 543 131,195,4,193,232,16,65,252,255,36,252,238,255,139,106,252,248,139,172,253,
544 233,235,15,132,244,1,128,189,233,0,15,132,244,1,137,213,137,198,65,141,190, 544 141,233,128,189,233,0,139,173,233,139,12,194,139,68,194,4,137,77,0,137,69,
545 233,232,251,1,26,137,252,234,252,233,244,1,255,139,106,252,248,255,252,242, 545 4,15,132,244,247,252,246,133,233,235,15,133,244,248,248,1,139,3,15,182,204,
546 65,15,16,4,199,255,139,172,253,141,233,139,141,233,255,252,242,15,17,1,255, 546 15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,2,129,232,239,129,
547 221,25,255,72,252,247,208,139,106,252,248,139,172,253,141,233,139,141,233, 547 252,248,239,15,134,244,1,252,246,129,233,235,15,132,244,1,137,252,238,137,
548 137,65,4,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252, 548 213,65,141,190,233,255,232,251,1,26,137,252,234,252,233,244,1,255,72,252,
549 238,255,141,156,253,131,233,139,108,36,24,131,189,233,0,15,132,244,247,137, 549 247,208,139,106,252,248,139,172,253,141,233,65,139,12,135,139,133,233,137,
550 149,233,141,52,202,137,252,239,232,251,1,27,139,149,233,248,1,139,3,15,182, 550 8,199,64,4,237,252,246,133,233,235,15,133,244,248,248,1,139,3,15,182,204,
551 204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,255,72,252,247, 551 15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,2,252,246,129,233,
552 208,139,108,36,24,137,149,233,139,82,252,248,65,139,52,135,137,252,239,137, 552 235,15,132,244,1,128,189,233,0,15,132,244,1,137,213,137,198,65,141,190,233,
553 92,36,28,232,251,1,28,139,149,233,15,182,75,252,253,137,4,202,199,68,202, 553 232,251,1,26,137,252,234,252,233,244,1,255,139,106,252,248,255,252,242,65,
554 4,237,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252, 554 15,16,4,199,255,139,172,253,141,233,139,141,233,255,252,242,15,17,1,255,221,
555 238,255,139,108,36,24,137,149,233,65,139,142,233,65,59,142,233,137,92,36, 555 25,255,72,252,247,208,139,106,252,248,139,172,253,141,233,139,141,233,137,
556 28,15,131,244,251,248,1,137,194,37,252,255,7,0,0,193,252,234,11,61,252,255, 556 65,4,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,
557 7,0,0,15,132,244,249,248,2,137,252,239,137,198,232,251,1,29,139,149,233,15, 557 255,141,156,253,131,233,139,108,36,24,131,189,233,0,15,132,244,247,137,149,
558 182,75,252,253,137,4,202,199,68,202,4,237,139,3,15,182,204,15,182,232,131, 558 233,141,52,202,137,252,239,232,251,1,27,139,149,233,248,1,139,3,15,182,204,
559 195,4,193,232,16,65,252,255,36,252,238,248,3,184,1,8,0,0,252,233,244,2,248, 559 15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,255,72,252,247,208,
560 5,137,252,239,232,251,1,30,15,183,67,252,254,252,233,244,1,255,72,252,247, 560 139,108,36,24,137,149,233,139,82,252,248,65,139,52,135,137,252,239,137,92,
561 208,139,108,36,24,65,139,142,233,137,92,36,28,65,59,142,233,137,149,233,15, 561 36,28,232,251,1,28,139,149,233,15,182,75,252,253,137,4,202,199,68,202,4,237,
562 131,244,249,248,2,65,139,52,135,137,252,239,232,251,1,31,139,149,233,15,182, 562 139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,255,
563 75,252,253,137,4,202,199,68,202,4,237,139,3,15,182,204,15,182,232,131,195, 563 139,108,36,24,137,149,233,65,139,142,233,65,59,142,233,137,92,36,28,15,131,
564 4,193,232,16,65,252,255,36,252,238,248,3,137,252,239,232,251,1,30,15,183, 564 244,251,248,1,137,194,37,252,255,7,0,0,193,252,234,11,61,252,255,7,0,0,15,
565 67,252,254,72,252,247,208,252,233,244,2,255,72,252,247,208,139,106,252,248, 565 132,244,249,248,2,137,252,239,137,198,232,251,1,29,139,149,233,15,182,75,
566 139,173,233,65,139,4,135,252,233,244,157,255,72,252,247,208,139,106,252,248, 566 252,253,137,4,202,199,68,202,4,237,139,3,15,182,204,15,182,232,131,195,4,
567 139,173,233,65,139,4,135,252,233,244,158,255,15,182,252,236,15,182,192,129, 567 193,232,16,65,252,255,36,252,238,248,3,184,1,8,0,0,252,233,244,2,248,5,137,
568 124,253,252,234,4,239,15,133,244,36,139,44,252,234,129,124,253,194,4,239, 568 252,239,232,251,1,30,15,183,67,252,254,252,233,244,1,255,72,252,247,208,139,
569 15,135,244,251,255,252,242,15,16,4,194,252,242,15,45,192,252,242,15,42,200, 569 108,36,24,65,139,142,233,137,92,36,28,65,59,142,233,137,149,233,15,131,244,
570 102,15,46,193,255,15,133,244,36,59,133,233,15,131,244,36,193,224,3,3,133, 570 249,248,2,65,139,52,135,137,252,239,232,251,1,31,139,149,233,15,182,75,252,
571 233,129,120,253,4,239,15,132,244,248,72,139,40,72,137,44,202,248,1,139,3, 571 253,137,4,202,199,68,202,4,237,139,3,15,182,204,15,182,232,131,195,4,193,
572 15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,2,131, 572 232,16,65,252,255,36,252,238,248,3,137,252,239,232,251,1,30,15,183,67,252,
573 189,233,0,15,132,244,249,139,141,233,252,246,129,233,235,15,132,244,36,15, 573 254,72,252,247,208,252,233,244,2,255,72,252,247,208,139,106,252,248,139,173,
574 182,75,252,253,248,3,255,199,68,202,4,237,252,233,244,1,248,5,129,124,253, 574 233,65,139,4,135,252,233,244,158,255,72,252,247,208,139,106,252,248,139,173,
575 194,4,239,15,133,244,36,139,4,194,252,233,244,157,255,15,182,252,236,15,182, 575 233,65,139,4,135,252,233,244,159,255,15,182,252,236,15,182,192,129,124,253,
576 192,72,252,247,208,65,139,4,135,129,124,253,252,234,4,239,15,133,244,34,139, 576 252,234,4,239,15,133,244,36,139,44,252,234,129,124,253,194,4,239,15,135,244,
577 44,252,234,248,157,139,141,233,35,136,233,105,201,239,3,141,233,248,1,129, 577 251,255,252,242,15,16,4,194,252,242,15,45,192,252,242,15,42,200,102,15,46,
578 185,233,239,15,133,244,250,57,129,233,15,133,244,250,129,121,253,4,239,15, 578 193,255,15,133,244,36,59,133,233,15,131,244,36,193,224,3,3,133,233,129,120,
579 132,244,251,15,182,67,252,253,72,139,41,72,137,44,194,248,2,255,139,3,15, 579 253,4,239,15,132,244,248,72,139,40,72,137,44,202,248,1,139,3,15,182,204,15,
580 182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,3,15,182, 580 182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,2,131,189,233,0,15,
581 67,252,253,199,68,194,4,237,252,233,244,2,248,4,139,137,233,133,201,15,133, 581 132,244,249,139,141,233,252,246,129,233,235,15,132,244,36,15,182,75,252,253,
582 244,1,248,5,139,141,233,133,201,15,132,244,3,252,246,129,233,235,15,133,244, 582 248,3,255,199,68,202,4,237,252,233,244,1,248,5,129,124,253,194,4,239,15,133,
583 3,252,233,244,34,255,15,182,252,236,15,182,192,129,124,253,252,234,4,239, 583 244,36,139,4,194,252,233,244,158,255,15,182,252,236,15,182,192,72,252,247,
584 15,133,244,35,139,44,252,234,59,133,233,15,131,244,35,193,224,3,3,133,233, 584 208,65,139,4,135,129,124,253,252,234,4,239,15,133,244,34,139,44,252,234,248,
585 129,120,253,4,239,15,132,244,248,72,139,40,72,137,44,202,248,1,139,3,15,182, 585 158,139,141,233,35,136,233,105,201,239,3,141,233,248,1,129,185,233,239,15,
586 204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,2,131,189,233, 586 133,244,250,57,129,233,15,133,244,250,129,121,253,4,239,15,132,244,251,15,
587 0,15,132,244,249,139,141,233,252,246,129,233,235,15,132,244,35,255,15,182, 587 182,67,252,253,72,139,41,72,137,44,194,248,2,255,139,3,15,182,204,15,182,
588 75,252,253,248,3,199,68,202,4,237,252,233,244,1,255,15,182,252,236,15,182, 588 232,131,195,4,193,232,16,65,252,255,36,252,238,248,3,15,182,67,252,253,199,
589 192,129,124,253,252,234,4,239,15,133,244,39,139,44,252,234,129,124,253,194, 589 68,194,4,237,252,233,244,2,248,4,139,137,233,133,201,15,133,244,1,248,5,139,
590 4,239,15,135,244,251,255,15,133,244,39,59,133,233,15,131,244,39,193,224,3, 590 141,233,133,201,15,132,244,3,252,246,129,233,235,15,133,244,3,252,233,244,
591 3,133,233,129,120,253,4,239,15,132,244,249,248,1,252,246,133,233,235,15,133, 591 34,255,15,182,252,236,15,182,192,129,124,253,252,234,4,239,15,133,244,35,
592 244,253,248,2,72,139,44,202,72,137,40,139,3,15,182,204,15,182,232,131,195, 592 139,44,252,234,59,133,233,15,131,244,35,193,224,3,3,133,233,129,120,253,4,
593 4,193,232,16,65,252,255,36,252,238,248,3,131,189,233,0,15,132,244,1,139,141, 593 239,15,132,244,248,72,139,40,72,137,44,202,248,1,139,3,15,182,204,15,182,
594 233,255,252,246,129,233,235,15,132,244,39,15,182,75,252,253,252,233,244,1, 594 232,131,195,4,193,232,16,65,252,255,36,252,238,248,2,131,189,233,0,15,132,
595 248,5,129,124,253,194,4,239,15,133,244,39,139,4,194,252,233,244,158,248,7, 595 244,249,139,141,233,252,246,129,233,235,15,132,244,35,255,15,182,75,252,253,
596 128,165,233,235,65,139,142,233,65,137,174,233,137,141,233,15,182,75,252,253, 596 248,3,199,68,202,4,237,252,233,244,1,255,15,182,252,236,15,182,192,129,124,
597 252,233,244,2,255,15,182,252,236,15,182,192,72,252,247,208,65,139,4,135,129, 597 253,252,234,4,239,15,133,244,39,139,44,252,234,129,124,253,194,4,239,15,135,
598 124,253,252,234,4,239,15,133,244,37,139,44,252,234,248,158,139,141,233,35, 598 244,251,255,15,133,244,39,59,133,233,15,131,244,39,193,224,3,3,133,233,129,
599 136,233,105,201,239,198,133,233,0,3,141,233,248,1,129,185,233,239,15,133, 599 120,253,4,239,15,132,244,249,248,1,252,246,133,233,235,15,133,244,253,248,
600 244,251,57,129,233,15,133,244,251,129,121,253,4,239,15,132,244,250,248,2, 600 2,72,139,44,202,72,137,40,139,3,15,182,204,15,182,232,131,195,4,193,232,16,
601 255,252,246,133,233,235,15,133,244,253,248,3,15,182,67,252,253,72,139,44, 601 65,252,255,36,252,238,248,3,131,189,233,0,15,132,244,1,139,141,233,255,252,
602 194,72,137,41,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255, 602 246,129,233,235,15,132,244,39,15,182,75,252,253,252,233,244,1,248,5,129,124,
603 36,252,238,248,4,131,189,233,0,15,132,244,2,137,12,36,139,141,233,252,246, 603 253,194,4,239,15,133,244,39,139,4,194,252,233,244,159,248,7,128,165,233,235,
604 129,233,235,15,132,244,37,139,12,36,252,233,244,2,248,5,139,137,233,133,201, 604 65,139,142,233,65,137,174,233,137,141,233,15,182,75,252,253,252,233,244,2,
605 15,133,244,1,255,139,141,233,133,201,15,132,244,252,252,246,129,233,235,15, 605 255,15,182,252,236,15,182,192,72,252,247,208,65,139,4,135,129,124,253,252,
606 132,244,37,248,6,137,4,36,199,68,36,4,237,137,108,36,8,139,124,36,24,137, 606 234,4,239,15,133,244,37,139,44,252,234,248,159,139,141,233,35,136,233,105,
607 151,233,72,141,20,36,137,252,238,137,252,253,137,92,36,28,232,251,1,32,139, 607 201,239,198,133,233,0,3,141,233,248,1,129,185,233,239,15,133,244,251,57,129,
608 149,233,139,108,36,8,137,193,252,233,244,2,248,7,128,165,233,235,65,139,134, 608 233,15,133,244,251,129,121,253,4,239,15,132,244,250,248,2,255,252,246,133,
609 233,65,137,174,233,137,133,233,252,233,244,3,255,15,182,252,236,15,182,192, 609 233,235,15,133,244,253,248,3,15,182,67,252,253,72,139,44,194,72,137,41,139,
610 129,124,253,252,234,4,239,15,133,244,38,139,44,252,234,59,133,233,15,131,
611 244,38,193,224,3,3,133,233,129,120,253,4,239,15,132,244,249,248,1,252,246,
612 133,233,235,15,133,244,253,248,2,72,139,12,202,72,137,8,139,3,15,182,204,
613 15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,3,131,189,233,0,
614 15,132,244,1,255,139,141,233,252,246,129,233,235,15,132,244,38,15,182,75,
615 252,253,252,233,244,1,248,7,128,165,233,235,65,139,142,233,65,137,174,233,
616 137,141,233,15,182,75,252,253,252,233,244,2,255,68,137,60,36,69,139,60,199,
617 248,1,141,12,202,139,105,252,248,252,246,133,233,235,15,133,244,253,248,2,
618 139,68,36,4,131,232,1,15,132,244,250,68,1,252,248,59,133,233,15,135,244,251,
619 68,41,252,248,65,193,231,3,68,3,189,233,248,3,72,139,41,131,193,8,73,137,
620 47,65,131,199,8,131,232,1,15,133,244,3,248,4,68,139,60,36,139,3,15,182,204,
621 15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,5,139,124,36,24,
622 137,151,233,137,252,238,137,194,137,252,253,137,92,36,28,232,251,1,33,139,
623 149,233,15,182,75,252,253,252,233,244,1,248,7,255,128,165,233,235,65,139,
624 134,233,65,137,174,233,137,133,233,252,233,244,2,255,3,68,36,4,255,129,124,
625 253,202,4,239,139,44,202,15,133,244,51,141,84,202,8,137,90,252,252,139,157,
626 233,139,11,15,182,252,233,15,182,205,131,195,4,65,252,255,36,252,238,255,
627 141,76,202,8,65,137,215,139,105,252,248,129,121,253,252,252,239,15,133,244,
628 28,248,52,139,90,252,252,252,247,195,237,15,133,244,253,248,1,137,106,252,
629 248,137,68,36,4,131,232,1,15,132,244,249,248,2,72,139,41,131,193,8,73,137,
630 47,65,131,199,8,131,232,1,15,133,244,2,139,106,252,248,248,3,139,68,36,4,
631 128,189,233,1,15,135,244,251,248,4,139,157,233,139,11,15,182,252,233,15,182,
632 205,131,195,4,65,252,255,36,252,238,248,5,255,252,247,195,237,15,133,244,
633 4,15,182,75,252,253,72,252,247,209,141,12,202,68,139,121,252,248,69,139,191,
634 233,69,139,191,233,252,233,244,4,248,7,129,252,235,239,252,247,195,237,15,
635 133,244,254,41,218,65,137,215,139,90,252,252,252,233,244,1,248,8,129,195,
636 239,252,233,244,1,255,141,76,202,8,72,139,105,232,72,139,65,252,240,72,137,
637 41,72,137,65,8,139,105,224,139,65,228,137,105,252,248,137,65,252,252,129,
638 252,248,239,184,237,15,133,244,28,137,202,137,90,252,252,139,157,233,139,
639 11,15,182,252,233,15,182,205,131,195,4,65,252,255,36,252,238,255,68,137,60,
640 36,68,137,116,36,4,139,108,202,252,240,139,68,202,252,248,68,139,181,233,
641 131,195,4,68,139,189,233,248,1,68,57,252,240,15,131,244,251,65,129,124,253,
642 199,4,239,15,132,244,250,255,252,242,15,42,192,255,219,68,202,252,248,255,
643 73,139,44,199,72,137,108,202,8,131,192,1,255,137,68,202,252,248,248,2,15,
644 183,67,252,254,141,156,253,131,233,248,3,68,139,116,36,4,68,139,60,36,139,
645 3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,4, 610 3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,4,
646 131,192,1,255,137,68,202,252,248,255,252,233,244,1,248,5,68,41,252,240,248, 611 131,189,233,0,15,132,244,2,137,12,36,139,141,233,252,246,129,233,235,15,132,
647 6,59,133,233,15,135,244,3,68,105,252,248,239,68,3,189,233,65,129,191,233, 612 244,37,139,12,36,252,233,244,2,248,5,139,137,233,133,201,15,133,244,1,255,
648 239,15,132,244,253,70,141,116,48,1,73,139,175,233,73,139,135,233,72,137,44, 613 139,141,233,133,201,15,132,244,252,252,246,129,233,235,15,132,244,37,248,
649 202,72,137,68,202,8,68,137,116,202,252,248,252,233,244,2,248,7,131,192,1, 614 6,137,4,36,199,68,36,4,237,137,108,36,8,139,124,36,24,137,151,233,72,141,
650 252,233,244,6,255,129,124,253,202,252,236,239,15,133,244,251,139,108,202, 615 20,36,137,252,238,137,252,253,137,92,36,28,232,251,1,32,139,149,233,139,108,
651 232,129,124,253,202,252,244,239,15,133,244,251,129,124,253,202,252,252,239, 616 36,8,137,193,252,233,244,2,248,7,128,165,233,235,65,139,134,233,65,137,174,
652 15,133,244,251,128,189,233,235,15,133,244,251,141,156,253,131,233,199,68, 617 233,137,133,233,252,233,244,3,255,15,182,252,236,15,182,192,129,124,253,252,
653 202,252,248,0,0,0,0,248,1,139,3,15,182,204,15,182,232,131,195,4,193,232,16, 618 234,4,239,15,133,244,38,139,44,252,234,59,133,233,15,131,244,38,193,224,3,
654 65,252,255,36,252,238,248,5,198,67,252,252,235,141,156,253,131,233,198,3, 619 3,133,233,129,120,253,4,239,15,132,244,249,248,1,252,246,133,233,235,15,133,
655 235,252,233,244,1,255,15,182,252,236,15,182,192,68,137,60,36,68,141,188,253, 620 244,253,248,2,72,139,12,202,72,137,8,139,3,15,182,204,15,182,232,131,195,
656 194,233,141,12,202,68,43,122,252,252,133,252,237,15,132,244,251,141,108,252, 621 4,193,232,16,65,252,255,36,252,238,248,3,131,189,233,0,15,132,244,1,255,139,
657 233,252,248,65,57,215,15,131,244,248,248,1,73,139,71,252,248,65,131,199,8, 622 141,233,252,246,129,233,235,15,132,244,38,15,182,75,252,253,252,233,244,1,
658 72,137,1,131,193,8,57,252,233,15,131,244,249,65,57,215,15,130,244,1,248,2, 623 248,7,128,165,233,235,65,139,142,233,65,137,174,233,137,141,233,15,182,75,
659 199,65,4,237,131,193,8,57,252,233,15,130,244,2,248,3,68,139,60,36,139,3,15, 624 252,253,252,233,244,2,255,68,137,60,36,69,139,60,199,248,1,141,12,202,139,
660 182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,5,199,68, 625 105,252,248,252,246,133,233,235,15,133,244,253,248,2,139,68,36,4,131,232,
661 36,4,1,0,0,0,137,208,68,41,252,248,15,134,244,3,137,197,193,252,237,3,131, 626 1,15,132,244,250,68,1,252,248,59,133,233,15,135,244,251,68,41,252,248,65,
662 197,1,137,108,36,4,139,108,36,24,1,200,59,133,233,15,135,244,253,248,6,255, 627 193,231,3,68,3,189,233,248,3,72,139,41,131,193,8,73,137,47,65,131,199,8,131,
663 73,139,71,252,248,65,131,199,8,72,137,1,131,193,8,65,57,215,15,130,244,6, 628 232,1,15,133,244,3,248,4,68,139,60,36,139,3,15,182,204,15,182,232,131,195,
664 252,233,244,3,248,7,137,149,233,137,141,233,137,92,36,28,65,41,215,139,116, 629 4,193,232,16,65,252,255,36,252,238,248,5,139,124,36,24,137,151,233,137,252,
665 36,4,131,252,238,1,137,252,239,232,251,1,0,139,149,233,139,141,233,65,1,215, 630 238,137,194,137,252,253,137,92,36,28,232,251,1,33,139,149,233,15,182,75,252,
666 252,233,244,6,255,193,225,3,255,248,1,139,90,252,252,137,68,36,4,252,247, 631 253,252,233,244,1,248,7,255,128,165,233,235,65,139,134,233,65,137,174,233,
667 195,237,15,133,244,253,255,248,13,65,137,215,131,232,1,15,132,244,249,248, 632 137,133,233,252,233,244,2,255,3,68,36,4,255,129,124,253,202,4,239,139,44,
668 2,73,139,44,15,73,137,111,252,248,65,131,199,8,131,232,1,15,133,244,2,248, 633 202,15,133,244,51,141,84,202,8,137,90,252,252,139,157,233,139,11,15,182,252,
669 3,139,68,36,4,15,182,107,252,255,248,5,57,197,15,135,244,252,255,72,139,44, 634 233,15,182,205,131,195,4,65,252,255,36,252,238,255,141,76,202,8,65,137,215,
670 10,72,137,106,252,248,255,248,5,56,67,252,255,15,135,244,252,255,15,182,75, 635 139,105,252,248,129,121,253,252,252,239,15,133,244,28,248,52,139,90,252,252,
671 252,253,72,252,247,209,141,20,202,68,139,122,252,248,69,139,191,233,69,139, 636 252,247,195,237,15,133,244,253,248,1,137,106,252,248,137,68,36,4,131,232,
672 191,233,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252, 637 1,15,132,244,249,248,2,72,139,41,131,193,8,73,137,47,65,131,199,8,131,232,
673 238,248,6,255,65,199,71,252,252,237,65,131,199,8,255,199,68,194,252,244,237, 638 1,15,133,244,2,139,106,252,248,248,3,139,68,36,4,128,189,233,1,15,135,244,
674 255,131,192,1,252,233,244,5,248,7,141,171,233,252,247,197,237,15,133,244, 639 251,248,4,139,157,233,139,11,15,182,252,233,15,182,205,131,195,4,65,252,255,
675 14,41,252,234,255,1,252,233,255,137,221,209,252,237,129,229,239,102,65,131, 640 36,252,238,248,5,255,252,247,195,237,15,133,244,4,15,182,75,252,253,72,252,
676 172,253,46,233,1,15,132,244,140,255,141,12,202,255,129,121,253,4,239,15,135, 641 247,209,141,12,202,68,139,121,252,248,69,139,191,233,69,139,191,233,252,233,
677 244,53,129,121,253,12,239,15,135,244,53,255,139,105,20,255,129,252,253,239, 642 244,4,248,7,129,252,235,239,252,247,195,237,15,133,244,254,41,218,65,137,
678 15,135,244,53,255,252,242,15,16,1,252,242,15,16,73,8,255,252,242,15,88,65, 643 215,139,90,252,252,252,233,244,1,248,8,129,195,239,252,233,244,1,255,141,
679 16,252,242,15,17,1,133,252,237,15,136,244,249,255,15,140,244,249,255,102, 644 76,202,8,72,139,105,232,72,139,65,252,240,72,137,41,72,137,65,8,139,105,224,
680 15,46,200,248,1,252,242,15,17,65,24,255,221,65,8,221,1,255,220,65,16,221, 645 139,65,228,137,105,252,248,137,65,252,252,129,252,248,239,184,237,15,133,
681 17,221,81,24,133,252,237,15,136,244,247,255,221,81,24,15,140,244,247,255, 646 244,28,137,202,137,90,252,252,139,157,233,139,11,15,182,252,233,15,182,205,
682 217,201,248,1,255,15,183,67,252,254,255,15,131,244,248,141,156,253,131,233, 647 131,195,4,65,252,255,36,252,238,255,68,137,60,36,68,137,116,36,4,139,108,
683 255,141,156,253,131,233,15,183,67,252,254,15,131,245,255,15,130,244,248,141, 648 202,252,240,139,68,202,252,248,68,139,181,233,131,195,4,68,139,189,233,248,
684 156,253,131,233,255,248,3,102,15,46,193,252,233,244,1,255,141,12,202,139, 649 1,68,57,252,240,15,131,244,251,65,129,124,253,199,4,239,15,132,244,250,255,
685 105,4,129,252,253,239,15,132,244,247,255,137,105,252,252,139,41,137,105,252, 650 252,242,15,42,192,255,219,68,202,252,248,255,73,139,44,199,72,137,108,202,
686 248,252,233,245,255,141,156,253,131,233,139,1,137,105,252,252,137,65,252, 651 8,131,192,1,255,137,68,202,252,248,248,2,15,183,67,252,254,141,156,253,131,
687 248,255,65,139,142,233,139,4,129,72,139,128,233,139,108,36,24,65,137,150, 652 233,248,3,68,139,116,36,4,68,139,60,36,139,3,15,182,204,15,182,232,131,195,
688 233,65,137,174,233,76,137,36,36,76,137,108,36,8,72,131,252,236,16,252,255, 653 4,193,232,16,65,252,255,36,252,238,248,4,131,192,1,255,137,68,202,252,248,
689 224,255,141,156,253,131,233,139,3,15,182,204,15,182,232,131,195,4,193,232, 654 255,252,233,244,1,248,5,68,41,252,240,248,6,59,133,233,15,135,244,3,68,105,
690 16,65,252,255,36,252,238,255,137,221,209,252,237,129,229,239,102,65,131,172, 655 252,248,239,68,3,189,233,65,129,191,233,239,15,132,244,253,70,141,116,48,
691 253,46,233,1,15,132,244,142,255,68,139,187,233,139,108,36,24,141,12,202,59, 656 1,73,139,175,233,73,139,135,233,72,137,44,202,72,137,68,202,8,68,137,116,
692 141,233,15,135,244,23,15,182,139,233,57,200,15,134,244,249,248,2,255,15,183, 657 202,252,248,252,233,244,2,248,7,131,192,1,252,233,244,6,255,129,124,253,202,
693 67,252,254,252,233,245,255,248,3,199,68,194,252,252,237,131,192,1,57,200, 658 252,236,239,15,133,244,251,139,108,202,232,129,124,253,202,252,244,239,15,
694 15,134,244,3,252,233,244,2,255,141,44,197,237,141,4,194,68,139,122,252,248, 659 133,244,251,129,124,253,202,252,252,239,15,133,244,251,128,189,233,235,15,
695 137,104,252,252,68,137,120,252,248,139,108,36,24,141,12,200,59,141,233,15, 660 133,244,251,141,156,253,131,233,199,68,202,252,248,0,0,0,0,248,1,139,3,15,
696 135,244,22,137,209,137,194,15,182,171,233,133,252,237,15,132,244,248,248, 661 182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,5,198,67,
697 1,131,193,8,57,209,15,131,244,249,68,139,121,252,248,68,137,56,68,139,121, 662 252,252,235,141,156,253,131,233,198,3,235,252,233,244,1,255,15,182,252,236,
698 252,252,68,137,120,4,131,192,8,199,65,252,252,237,131,252,237,1,15,133,244, 663 15,182,192,68,137,60,36,68,141,188,253,194,233,141,12,202,68,43,122,252,252,
699 1,248,2,255,68,139,187,233,139,3,15,182,204,15,182,232,131,195,4,193,232, 664 133,252,237,15,132,244,251,141,108,252,233,252,248,65,57,215,15,131,244,248,
700 16,65,252,255,36,252,238,255,248,3,199,64,4,237,131,192,8,131,252,237,1,15, 665 248,1,73,139,71,252,248,65,131,199,8,72,137,1,131,193,8,57,252,233,15,131,
701 133,244,3,252,233,244,2,255,139,106,252,248,76,139,189,233,139,108,36,24, 666 244,249,65,57,215,15,130,244,1,248,2,199,65,4,237,131,193,8,57,252,233,15,
702 141,68,194,252,248,137,149,233,141,136,233,59,141,233,137,133,233,255,137, 667 130,244,2,248,3,68,139,60,36,139,3,15,182,204,15,182,232,131,195,4,193,232,
703 252,239,255,76,137,252,254,137,252,239,255,15,135,244,21,65,199,134,233,237, 668 16,65,252,255,36,252,238,248,5,199,68,36,4,1,0,0,0,137,208,68,41,252,248,
704 255,65,252,255,215,255,65,252,255,150,233,255,65,199,134,233,237,139,149, 669 15,134,244,3,137,197,193,252,237,3,131,197,1,137,108,36,4,139,108,36,24,1,
705 233,141,12,194,252,247,217,3,141,233,139,90,252,252,252,233,244,12,255,254, 670 200,59,133,233,15,135,244,253,248,6,255,73,139,71,252,248,65,131,199,8,72,
706 0 671 137,1,131,193,8,65,57,215,15,130,244,6,252,233,244,3,248,7,137,149,233,137,
672 141,233,137,92,36,28,65,41,215,139,116,36,4,131,252,238,1,137,252,239,232,
673 251,1,0,139,149,233,139,141,233,65,1,215,252,233,244,6,255,193,225,3,255,
674 248,1,139,90,252,252,137,68,36,4,252,247,195,237,15,133,244,253,255,248,13,
675 65,137,215,131,232,1,15,132,244,249,248,2,73,139,44,15,73,137,111,252,248,
676 65,131,199,8,131,232,1,15,133,244,2,248,3,139,68,36,4,15,182,107,252,255,
677 248,5,57,197,15,135,244,252,255,72,139,44,10,72,137,106,252,248,255,248,5,
678 56,67,252,255,15,135,244,252,255,15,182,75,252,253,72,252,247,209,141,20,
679 202,68,139,122,252,248,69,139,191,233,69,139,191,233,139,3,15,182,204,15,
680 182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,6,255,65,199,71,252,
681 252,237,65,131,199,8,255,199,68,194,252,244,237,255,131,192,1,252,233,244,
682 5,248,7,141,171,233,252,247,197,237,15,133,244,14,41,252,234,255,1,252,233,
683 255,137,221,209,252,237,129,229,239,102,65,131,172,253,46,233,1,15,132,244,
684 140,255,141,12,202,255,129,121,253,4,239,15,135,244,53,129,121,253,12,239,
685 15,135,244,53,255,139,105,20,255,129,252,253,239,15,135,244,53,255,252,242,
686 15,16,1,252,242,15,16,73,8,255,252,242,15,88,65,16,252,242,15,17,1,133,252,
687 237,15,136,244,249,255,15,140,244,249,255,102,15,46,200,248,1,252,242,15,
688 17,65,24,255,221,65,8,221,1,255,220,65,16,221,17,221,81,24,133,252,237,15,
689 136,244,247,255,221,81,24,15,140,244,247,255,217,201,248,1,255,15,183,67,
690 252,254,255,15,131,244,248,141,156,253,131,233,255,141,156,253,131,233,15,
691 183,67,252,254,15,131,245,255,15,130,244,248,141,156,253,131,233,255,248,
692 3,102,15,46,193,252,233,244,1,255,141,12,202,139,105,4,129,252,253,239,15,
693 132,244,247,255,137,105,252,252,139,41,137,105,252,248,252,233,245,255,141,
694 156,253,131,233,139,1,137,105,252,252,137,65,252,248,255,65,139,142,233,139,
695 4,129,72,139,128,233,139,108,36,24,65,137,150,233,65,137,174,233,76,137,36,
696 36,76,137,108,36,8,72,131,252,236,16,252,255,224,255,141,156,253,131,233,
697 139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,255,
698 137,221,209,252,237,129,229,239,102,65,131,172,253,46,233,1,15,132,244,142,
699 255,68,139,187,233,139,108,36,24,141,12,202,59,141,233,15,135,244,23,15,182,
700 139,233,57,200,15,134,244,249,248,2,255,15,183,67,252,254,252,233,245,255,
701 248,3,199,68,194,252,252,237,131,192,1,57,200,15,134,244,3,252,233,244,2,
702 255,141,44,197,237,141,4,194,68,139,122,252,248,137,104,252,252,68,137,120,
703 252,248,139,108,36,24,141,12,200,59,141,233,15,135,244,22,137,209,137,194,
704 15,182,171,233,133,252,237,15,132,244,248,248,1,131,193,8,57,209,15,131,244,
705 249,68,139,121,252,248,68,137,56,68,139,121,252,252,68,137,120,4,131,192,
706 8,199,65,252,252,237,131,252,237,1,15,133,244,1,248,2,255,68,139,187,233,
707 139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,255,
708 248,3,199,64,4,237,131,192,8,131,252,237,1,15,133,244,3,252,233,244,2,255,
709 139,106,252,248,76,139,189,233,139,108,36,24,141,68,194,252,248,137,149,233,
710 141,136,233,59,141,233,137,133,233,255,137,252,239,255,76,137,252,254,137,
711 252,239,255,15,135,244,21,65,199,134,233,237,255,65,252,255,215,255,65,252,
712 255,150,233,255,65,199,134,233,237,139,149,233,141,12,194,252,247,217,3,141,
713 233,139,90,252,252,252,233,244,12,255,254,0
707}; 714};
708 715
709enum { 716enum {
@@ -853,6 +860,7 @@ enum {
853 GLOB_vm_foldfpm, 860 GLOB_vm_foldfpm,
854 GLOB_vm_foldarith, 861 GLOB_vm_foldarith,
855 GLOB_vm_cpuid, 862 GLOB_vm_cpuid,
863 GLOB_vm_ffi_call,
856 GLOB_BC_MODVN_Z, 864 GLOB_BC_MODVN_Z,
857 GLOB_BC_TGETS_Z, 865 GLOB_BC_TGETS_Z,
858 GLOB_BC_TSETS_Z, 866 GLOB_BC_TSETS_Z,
@@ -1005,6 +1013,7 @@ static const char *const globnames[] = {
1005 "vm_foldfpm", 1013 "vm_foldfpm",
1006 "vm_foldarith", 1014 "vm_foldarith",
1007 "vm_cpuid", 1015 "vm_cpuid",
1016 "vm_ffi_call@4",
1008 "BC_MODVN_Z", 1017 "BC_MODVN_Z",
1009 "BC_TGETS_Z", 1018 "BC_TGETS_Z",
1010 "BC_TSETS_Z", 1019 "BC_TSETS_Z",
@@ -1444,6 +1453,11 @@ static void build_subroutines(BuildCtx *ctx, int cmov, int sse)
1444 dasm_put(Dst, 8989); 1453 dasm_put(Dst, 8989);
1445 } 1454 }
1446 dasm_put(Dst, 9407); 1455 dasm_put(Dst, 9407);
1456#if LJ_HASFFI
1457#define DtE(_V) (int)(ptrdiff_t)&(((CCallState *)0)_V)
1458 dasm_put(Dst, 9431, DtE(->spadj), DtE(->nsp), offsetof(CCallState, stack), CCALL_SPS_EXTRA*8, DtE(->nfpr), DtE(->gpr[0]), DtE(->gpr[1]), DtE(->gpr[2]), DtE(->gpr[3]), DtE(->gpr[4]), DtE(->gpr[5]), DtE(->fpr[0]));
1459 dasm_put(Dst, 9521, DtE(->fpr[1]), DtE(->fpr[2]), DtE(->fpr[3]), DtE(->fpr[4]), DtE(->fpr[5]), DtE(->fpr[6]), DtE(->fpr[7]), DtE(->func), DtE(->gpr[0]), DtE(->fpr[0]), DtE(->gpr[1]), DtE(->fpr[1]));
1460#endif
1447} 1461}
1448 1462
1449/* Generate the code for a single instruction. */ 1463/* Generate the code for a single instruction. */
@@ -1459,20 +1473,20 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
1459 /* Remember: all ops branch for a true comparison, fall through otherwise. */ 1473 /* Remember: all ops branch for a true comparison, fall through otherwise. */
1460 1474
1461 case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT: 1475 case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT:
1462 dasm_put(Dst, 9429, LJ_TISNUM, LJ_TISNUM); 1476 dasm_put(Dst, 9587, LJ_TISNUM, LJ_TISNUM);
1463 if (sse) { 1477 if (sse) {
1464 dasm_put(Dst, 9450); 1478 dasm_put(Dst, 9608);
1465 } else { 1479 } else {
1466 dasm_put(Dst, 9465); 1480 dasm_put(Dst, 9623);
1467 if (cmov) { 1481 if (cmov) {
1468 dasm_put(Dst, 9475); 1482 dasm_put(Dst, 9633);
1469 } else { 1483 } else {
1470 dasm_put(Dst, 9481); 1484 dasm_put(Dst, 9639);
1471 } 1485 }
1472 } 1486 }
1473 switch (op) { 1487 switch (op) {
1474 case BC_ISLT: 1488 case BC_ISLT:
1475 dasm_put(Dst, 9488); 1489 dasm_put(Dst, 9646);
1476 break; 1490 break;
1477 case BC_ISGE: 1491 case BC_ISGE:
1478 dasm_put(Dst, 9287); 1492 dasm_put(Dst, 9287);
@@ -1481,599 +1495,599 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
1481 dasm_put(Dst, 5894); 1495 dasm_put(Dst, 5894);
1482 break; 1496 break;
1483 case BC_ISGT: 1497 case BC_ISGT:
1484 dasm_put(Dst, 9493); 1498 dasm_put(Dst, 9651);
1485 break; 1499 break;
1486 default: break; /* Shut up GCC. */ 1500 default: break; /* Shut up GCC. */
1487 } 1501 }
1488 dasm_put(Dst, 9498, -BCBIAS_J*4); 1502 dasm_put(Dst, 9656, -BCBIAS_J*4);
1489 break; 1503 break;
1490 1504
1491 case BC_ISEQV: case BC_ISNEV: 1505 case BC_ISEQV: case BC_ISNEV:
1492 vk = op == BC_ISEQV; 1506 vk = op == BC_ISEQV;
1493 dasm_put(Dst, 9533, LJ_TISNUM, LJ_TISNUM); 1507 dasm_put(Dst, 9691, LJ_TISNUM, LJ_TISNUM);
1494 if (sse) { 1508 if (sse) {
1495 dasm_put(Dst, 9559); 1509 dasm_put(Dst, 9717);
1496 } else { 1510 } else {
1497 dasm_put(Dst, 9571); 1511 dasm_put(Dst, 9729);
1498 if (cmov) { 1512 if (cmov) {
1499 dasm_put(Dst, 9475); 1513 dasm_put(Dst, 9633);
1500 } else { 1514 } else {
1501 dasm_put(Dst, 9481); 1515 dasm_put(Dst, 9639);
1502 } 1516 }
1503 } 1517 }
1504 iseqne_fp: 1518 iseqne_fp:
1505 if (vk) { 1519 if (vk) {
1506 dasm_put(Dst, 9578); 1520 dasm_put(Dst, 9736);
1507 } else { 1521 } else {
1508 dasm_put(Dst, 9587); 1522 dasm_put(Dst, 9745);
1509 } 1523 }
1510 iseqne_end: 1524 iseqne_end:
1511 if (vk) { 1525 if (vk) {
1512 dasm_put(Dst, 9596, -BCBIAS_J*4); 1526 dasm_put(Dst, 9754, -BCBIAS_J*4);
1513 } else { 1527 } else {
1514 dasm_put(Dst, 9611, -BCBIAS_J*4); 1528 dasm_put(Dst, 9769, -BCBIAS_J*4);
1515 } 1529 }
1516 dasm_put(Dst, 9512); 1530 dasm_put(Dst, 9670);
1517 if (op == BC_ISEQV || op == BC_ISNEV) { 1531 if (op == BC_ISEQV || op == BC_ISNEV) {
1518 dasm_put(Dst, 9626, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq); 1532 dasm_put(Dst, 9784, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq);
1519 if (vk) { 1533 if (vk) {
1520 dasm_put(Dst, 9684); 1534 dasm_put(Dst, 9842);
1521 } else { 1535 } else {
1522 dasm_put(Dst, 9688); 1536 dasm_put(Dst, 9846);
1523 } 1537 }
1524 dasm_put(Dst, 9694); 1538 dasm_put(Dst, 9852);
1525 } 1539 }
1526 break; 1540 break;
1527 case BC_ISEQS: case BC_ISNES: 1541 case BC_ISEQS: case BC_ISNES:
1528 vk = op == BC_ISEQS; 1542 vk = op == BC_ISEQS;
1529 dasm_put(Dst, 9699, LJ_TSTR); 1543 dasm_put(Dst, 9857, LJ_TSTR);
1530 iseqne_test: 1544 iseqne_test:
1531 if (vk) { 1545 if (vk) {
1532 dasm_put(Dst, 9582); 1546 dasm_put(Dst, 9740);
1533 } else { 1547 } else {
1534 dasm_put(Dst, 2803); 1548 dasm_put(Dst, 2803);
1535 } 1549 }
1536 goto iseqne_end; 1550 goto iseqne_end;
1537 case BC_ISEQN: case BC_ISNEN: 1551 case BC_ISEQN: case BC_ISNEN:
1538 vk = op == BC_ISEQN; 1552 vk = op == BC_ISEQN;
1539 dasm_put(Dst, 9724, LJ_TISNUM); 1553 dasm_put(Dst, 9882, LJ_TISNUM);
1540 if (sse) { 1554 if (sse) {
1541 dasm_put(Dst, 9738); 1555 dasm_put(Dst, 9896);
1542 } else { 1556 } else {
1543 dasm_put(Dst, 9751); 1557 dasm_put(Dst, 9909);
1544 if (cmov) { 1558 if (cmov) {
1545 dasm_put(Dst, 9475); 1559 dasm_put(Dst, 9633);
1546 } else { 1560 } else {
1547 dasm_put(Dst, 9481); 1561 dasm_put(Dst, 9639);
1548 } 1562 }
1549 } 1563 }
1550 goto iseqne_fp; 1564 goto iseqne_fp;
1551 case BC_ISEQP: case BC_ISNEP: 1565 case BC_ISEQP: case BC_ISNEP:
1552 vk = op == BC_ISEQP; 1566 vk = op == BC_ISEQP;
1553 dasm_put(Dst, 9759); 1567 dasm_put(Dst, 9917);
1554 goto iseqne_test; 1568 goto iseqne_test;
1555 1569
1556 /* -- Unary test and copy ops ------------------------------------------- */ 1570 /* -- Unary test and copy ops ------------------------------------------- */
1557 1571
1558 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF: 1572 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF:
1559 dasm_put(Dst, 9771, LJ_TISTRUECOND); 1573 dasm_put(Dst, 9929, LJ_TISTRUECOND);
1560 if (op == BC_IST || op == BC_ISTC) { 1574 if (op == BC_IST || op == BC_ISTC) {
1561 dasm_put(Dst, 9783); 1575 dasm_put(Dst, 9941);
1562 } else { 1576 } else {
1563 dasm_put(Dst, 9788); 1577 dasm_put(Dst, 9946);
1564 } 1578 }
1565 if (op == BC_ISTC || op == BC_ISFC) { 1579 if (op == BC_ISTC || op == BC_ISFC) {
1566 dasm_put(Dst, 9793); 1580 dasm_put(Dst, 9951);
1567 } 1581 }
1568 dasm_put(Dst, 9804, -BCBIAS_J*4); 1582 dasm_put(Dst, 9962, -BCBIAS_J*4);
1569 break; 1583 break;
1570 1584
1571 /* -- Unary ops --------------------------------------------------------- */ 1585 /* -- Unary ops --------------------------------------------------------- */
1572 1586
1573 case BC_MOV: 1587 case BC_MOV:
1574 dasm_put(Dst, 9837); 1588 dasm_put(Dst, 9995);
1575 break; 1589 break;
1576 case BC_NOT: 1590 case BC_NOT:
1577 dasm_put(Dst, 9866, LJ_TISTRUECOND, LJ_TTRUE); 1591 dasm_put(Dst, 10024, LJ_TISTRUECOND, LJ_TTRUE);
1578 break; 1592 break;
1579 case BC_UNM: 1593 case BC_UNM:
1580 dasm_put(Dst, 9903, LJ_TISNUM); 1594 dasm_put(Dst, 10061, LJ_TISNUM);
1581 if (sse) { 1595 if (sse) {
1582 dasm_put(Dst, 9914, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32)); 1596 dasm_put(Dst, 10072, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32));
1583 } else { 1597 } else {
1584 dasm_put(Dst, 9939); 1598 dasm_put(Dst, 10097);
1585 } 1599 }
1586 dasm_put(Dst, 9512); 1600 dasm_put(Dst, 9670);
1587 break; 1601 break;
1588 case BC_LEN: 1602 case BC_LEN:
1589 dasm_put(Dst, 9948, LJ_TSTR); 1603 dasm_put(Dst, 10106, LJ_TSTR);
1590 if (sse) { 1604 if (sse) {
1591 dasm_put(Dst, 9962, Dt5(->len)); 1605 dasm_put(Dst, 10120, Dt5(->len));
1592 } else { 1606 } else {
1593 dasm_put(Dst, 9980, Dt5(->len)); 1607 dasm_put(Dst, 10138, Dt5(->len));
1594 } 1608 }
1595 dasm_put(Dst, 9989, LJ_TTAB); 1609 dasm_put(Dst, 10147, LJ_TTAB);
1596 if (sse) { 1610 if (sse) {
1597 dasm_put(Dst, 10031); 1611 dasm_put(Dst, 10189);
1598 } else { 1612 } else {
1599 } 1613 }
1600 dasm_put(Dst, 10040); 1614 dasm_put(Dst, 10198);
1601 break; 1615 break;
1602 1616
1603 /* -- Binary ops -------------------------------------------------------- */ 1617 /* -- Binary ops -------------------------------------------------------- */
1604 1618
1605 1619
1606 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV: 1620 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV:
1607 dasm_put(Dst, 10050); 1621 dasm_put(Dst, 10208);
1608 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1622 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1609 switch (vk) { 1623 switch (vk) {
1610 case 0: 1624 case 0:
1611 dasm_put(Dst, 10058, LJ_TISNUM); 1625 dasm_put(Dst, 10216, LJ_TISNUM);
1612 if (sse) { 1626 if (sse) {
1613 dasm_put(Dst, 10070); 1627 dasm_put(Dst, 10228);
1614 } else { 1628 } else {
1615 dasm_put(Dst, 10085); 1629 dasm_put(Dst, 10243);
1616 } 1630 }
1617 break; 1631 break;
1618 case 1: 1632 case 1:
1619 dasm_put(Dst, 10094, LJ_TISNUM); 1633 dasm_put(Dst, 10252, LJ_TISNUM);
1620 if (sse) { 1634 if (sse) {
1621 dasm_put(Dst, 10106); 1635 dasm_put(Dst, 10264);
1622 } else { 1636 } else {
1623 dasm_put(Dst, 10121); 1637 dasm_put(Dst, 10279);
1624 } 1638 }
1625 break; 1639 break;
1626 default: 1640 default:
1627 dasm_put(Dst, 10130, LJ_TISNUM, LJ_TISNUM); 1641 dasm_put(Dst, 10288, LJ_TISNUM, LJ_TISNUM);
1628 if (sse) { 1642 if (sse) {
1629 dasm_put(Dst, 10152); 1643 dasm_put(Dst, 10310);
1630 } else { 1644 } else {
1631 dasm_put(Dst, 10166); 1645 dasm_put(Dst, 10324);
1632 } 1646 }
1633 break; 1647 break;
1634 } 1648 }
1635 if (sse) { 1649 if (sse) {
1636 dasm_put(Dst, 9932); 1650 dasm_put(Dst, 10090);
1637 } else { 1651 } else {
1638 dasm_put(Dst, 9944); 1652 dasm_put(Dst, 10102);
1639 } 1653 }
1640 dasm_put(Dst, 9512); 1654 dasm_put(Dst, 9670);
1641 break; 1655 break;
1642 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV: 1656 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV:
1643 dasm_put(Dst, 10050); 1657 dasm_put(Dst, 10208);
1644 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1658 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1645 switch (vk) { 1659 switch (vk) {
1646 case 0: 1660 case 0:
1647 dasm_put(Dst, 10058, LJ_TISNUM); 1661 dasm_put(Dst, 10216, LJ_TISNUM);
1648 if (sse) { 1662 if (sse) {
1649 dasm_put(Dst, 10174); 1663 dasm_put(Dst, 10332);
1650 } else { 1664 } else {
1651 dasm_put(Dst, 10189); 1665 dasm_put(Dst, 10347);
1652 } 1666 }
1653 break; 1667 break;
1654 case 1: 1668 case 1:
1655 dasm_put(Dst, 10094, LJ_TISNUM); 1669 dasm_put(Dst, 10252, LJ_TISNUM);
1656 if (sse) { 1670 if (sse) {
1657 dasm_put(Dst, 10198); 1671 dasm_put(Dst, 10356);
1658 } else { 1672 } else {
1659 dasm_put(Dst, 10213); 1673 dasm_put(Dst, 10371);
1660 } 1674 }
1661 break; 1675 break;
1662 default: 1676 default:
1663 dasm_put(Dst, 10130, LJ_TISNUM, LJ_TISNUM); 1677 dasm_put(Dst, 10288, LJ_TISNUM, LJ_TISNUM);
1664 if (sse) { 1678 if (sse) {
1665 dasm_put(Dst, 10222); 1679 dasm_put(Dst, 10380);
1666 } else { 1680 } else {
1667 dasm_put(Dst, 10236); 1681 dasm_put(Dst, 10394);
1668 } 1682 }
1669 break; 1683 break;
1670 } 1684 }
1671 if (sse) { 1685 if (sse) {
1672 dasm_put(Dst, 9932); 1686 dasm_put(Dst, 10090);
1673 } else { 1687 } else {
1674 dasm_put(Dst, 9944); 1688 dasm_put(Dst, 10102);
1675 } 1689 }
1676 dasm_put(Dst, 9512); 1690 dasm_put(Dst, 9670);
1677 break; 1691 break;
1678 case BC_MULVN: case BC_MULNV: case BC_MULVV: 1692 case BC_MULVN: case BC_MULNV: case BC_MULVV:
1679 dasm_put(Dst, 10050); 1693 dasm_put(Dst, 10208);
1680 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1694 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1681 switch (vk) { 1695 switch (vk) {
1682 case 0: 1696 case 0:
1683 dasm_put(Dst, 10058, LJ_TISNUM); 1697 dasm_put(Dst, 10216, LJ_TISNUM);
1684 if (sse) { 1698 if (sse) {
1685 dasm_put(Dst, 10244); 1699 dasm_put(Dst, 10402);
1686 } else { 1700 } else {
1687 dasm_put(Dst, 10259); 1701 dasm_put(Dst, 10417);
1688 } 1702 }
1689 break; 1703 break;
1690 case 1: 1704 case 1:
1691 dasm_put(Dst, 10094, LJ_TISNUM); 1705 dasm_put(Dst, 10252, LJ_TISNUM);
1692 if (sse) { 1706 if (sse) {
1693 dasm_put(Dst, 10268); 1707 dasm_put(Dst, 10426);
1694 } else { 1708 } else {
1695 dasm_put(Dst, 10283); 1709 dasm_put(Dst, 10441);
1696 } 1710 }
1697 break; 1711 break;
1698 default: 1712 default:
1699 dasm_put(Dst, 10130, LJ_TISNUM, LJ_TISNUM); 1713 dasm_put(Dst, 10288, LJ_TISNUM, LJ_TISNUM);
1700 if (sse) { 1714 if (sse) {
1701 dasm_put(Dst, 10292); 1715 dasm_put(Dst, 10450);
1702 } else { 1716 } else {
1703 dasm_put(Dst, 10306); 1717 dasm_put(Dst, 10464);
1704 } 1718 }
1705 break; 1719 break;
1706 } 1720 }
1707 if (sse) { 1721 if (sse) {
1708 dasm_put(Dst, 9932); 1722 dasm_put(Dst, 10090);
1709 } else { 1723 } else {
1710 dasm_put(Dst, 9944); 1724 dasm_put(Dst, 10102);
1711 } 1725 }
1712 dasm_put(Dst, 9512); 1726 dasm_put(Dst, 9670);
1713 break; 1727 break;
1714 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV: 1728 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV:
1715 dasm_put(Dst, 10050); 1729 dasm_put(Dst, 10208);
1716 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1730 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1717 switch (vk) { 1731 switch (vk) {
1718 case 0: 1732 case 0:
1719 dasm_put(Dst, 10058, LJ_TISNUM); 1733 dasm_put(Dst, 10216, LJ_TISNUM);
1720 if (sse) { 1734 if (sse) {
1721 dasm_put(Dst, 10314); 1735 dasm_put(Dst, 10472);
1722 } else { 1736 } else {
1723 dasm_put(Dst, 10329); 1737 dasm_put(Dst, 10487);
1724 } 1738 }
1725 break; 1739 break;
1726 case 1: 1740 case 1:
1727 dasm_put(Dst, 10094, LJ_TISNUM); 1741 dasm_put(Dst, 10252, LJ_TISNUM);
1728 if (sse) { 1742 if (sse) {
1729 dasm_put(Dst, 10338); 1743 dasm_put(Dst, 10496);
1730 } else { 1744 } else {
1731 dasm_put(Dst, 10353); 1745 dasm_put(Dst, 10511);
1732 } 1746 }
1733 break; 1747 break;
1734 default: 1748 default:
1735 dasm_put(Dst, 10130, LJ_TISNUM, LJ_TISNUM); 1749 dasm_put(Dst, 10288, LJ_TISNUM, LJ_TISNUM);
1736 if (sse) { 1750 if (sse) {
1737 dasm_put(Dst, 10362); 1751 dasm_put(Dst, 10520);
1738 } else { 1752 } else {
1739 dasm_put(Dst, 10376); 1753 dasm_put(Dst, 10534);
1740 } 1754 }
1741 break; 1755 break;
1742 } 1756 }
1743 if (sse) { 1757 if (sse) {
1744 dasm_put(Dst, 9932); 1758 dasm_put(Dst, 10090);
1745 } else { 1759 } else {
1746 dasm_put(Dst, 9944); 1760 dasm_put(Dst, 10102);
1747 } 1761 }
1748 dasm_put(Dst, 9512); 1762 dasm_put(Dst, 9670);
1749 break; 1763 break;
1750 case BC_MODVN: 1764 case BC_MODVN:
1751 dasm_put(Dst, 10050); 1765 dasm_put(Dst, 10208);
1752 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1766 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1753 switch (vk) { 1767 switch (vk) {
1754 case 0: 1768 case 0:
1755 dasm_put(Dst, 10058, LJ_TISNUM); 1769 dasm_put(Dst, 10216, LJ_TISNUM);
1756 if (sse) { 1770 if (sse) {
1757 dasm_put(Dst, 10384); 1771 dasm_put(Dst, 10542);
1758 } else { 1772 } else {
1759 dasm_put(Dst, 10399); 1773 dasm_put(Dst, 10557);
1760 } 1774 }
1761 break; 1775 break;
1762 case 1: 1776 case 1:
1763 dasm_put(Dst, 10094, LJ_TISNUM); 1777 dasm_put(Dst, 10252, LJ_TISNUM);
1764 if (sse) { 1778 if (sse) {
1765 dasm_put(Dst, 10408); 1779 dasm_put(Dst, 10566);
1766 } else { 1780 } else {
1767 dasm_put(Dst, 10423); 1781 dasm_put(Dst, 10581);
1768 } 1782 }
1769 break; 1783 break;
1770 default: 1784 default:
1771 dasm_put(Dst, 10130, LJ_TISNUM, LJ_TISNUM); 1785 dasm_put(Dst, 10288, LJ_TISNUM, LJ_TISNUM);
1772 if (sse) { 1786 if (sse) {
1773 dasm_put(Dst, 10432); 1787 dasm_put(Dst, 10590);
1774 } else { 1788 } else {
1775 dasm_put(Dst, 10446); 1789 dasm_put(Dst, 10604);
1776 } 1790 }
1777 break; 1791 break;
1778 } 1792 }
1779 dasm_put(Dst, 10454); 1793 dasm_put(Dst, 10612);
1780 if (sse) { 1794 if (sse) {
1781 dasm_put(Dst, 9932); 1795 dasm_put(Dst, 10090);
1782 } else { 1796 } else {
1783 dasm_put(Dst, 9944); 1797 dasm_put(Dst, 10102);
1784 } 1798 }
1785 dasm_put(Dst, 9512); 1799 dasm_put(Dst, 9670);
1786 break; 1800 break;
1787 case BC_MODNV: case BC_MODVV: 1801 case BC_MODNV: case BC_MODVV:
1788 dasm_put(Dst, 10050); 1802 dasm_put(Dst, 10208);
1789 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1803 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1790 switch (vk) { 1804 switch (vk) {
1791 case 0: 1805 case 0:
1792 dasm_put(Dst, 10058, LJ_TISNUM); 1806 dasm_put(Dst, 10216, LJ_TISNUM);
1793 if (sse) { 1807 if (sse) {
1794 dasm_put(Dst, 10384); 1808 dasm_put(Dst, 10542);
1795 } else { 1809 } else {
1796 dasm_put(Dst, 10399); 1810 dasm_put(Dst, 10557);
1797 } 1811 }
1798 break; 1812 break;
1799 case 1: 1813 case 1:
1800 dasm_put(Dst, 10094, LJ_TISNUM); 1814 dasm_put(Dst, 10252, LJ_TISNUM);
1801 if (sse) { 1815 if (sse) {
1802 dasm_put(Dst, 10408); 1816 dasm_put(Dst, 10566);
1803 } else { 1817 } else {
1804 dasm_put(Dst, 10423); 1818 dasm_put(Dst, 10581);
1805 } 1819 }
1806 break; 1820 break;
1807 default: 1821 default:
1808 dasm_put(Dst, 10130, LJ_TISNUM, LJ_TISNUM); 1822 dasm_put(Dst, 10288, LJ_TISNUM, LJ_TISNUM);
1809 if (sse) { 1823 if (sse) {
1810 dasm_put(Dst, 10432); 1824 dasm_put(Dst, 10590);
1811 } else { 1825 } else {
1812 dasm_put(Dst, 10446); 1826 dasm_put(Dst, 10604);
1813 } 1827 }
1814 break; 1828 break;
1815 } 1829 }
1816 dasm_put(Dst, 10460); 1830 dasm_put(Dst, 10618);
1817 break; 1831 break;
1818 case BC_POW: 1832 case BC_POW:
1819 dasm_put(Dst, 10050); 1833 dasm_put(Dst, 10208);
1820 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1834 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1821 switch (vk) { 1835 switch (vk) {
1822 case 0: 1836 case 0:
1823 dasm_put(Dst, 10058, LJ_TISNUM); 1837 dasm_put(Dst, 10216, LJ_TISNUM);
1824 if (sse) { 1838 if (sse) {
1825 dasm_put(Dst, 10384); 1839 dasm_put(Dst, 10542);
1826 } else { 1840 } else {
1827 dasm_put(Dst, 10399); 1841 dasm_put(Dst, 10557);
1828 } 1842 }
1829 break; 1843 break;
1830 case 1: 1844 case 1:
1831 dasm_put(Dst, 10094, LJ_TISNUM); 1845 dasm_put(Dst, 10252, LJ_TISNUM);
1832 if (sse) { 1846 if (sse) {
1833 dasm_put(Dst, 10408); 1847 dasm_put(Dst, 10566);
1834 } else { 1848 } else {
1835 dasm_put(Dst, 10423); 1849 dasm_put(Dst, 10581);
1836 } 1850 }
1837 break; 1851 break;
1838 default: 1852 default:
1839 dasm_put(Dst, 10130, LJ_TISNUM, LJ_TISNUM); 1853 dasm_put(Dst, 10288, LJ_TISNUM, LJ_TISNUM);
1840 if (sse) { 1854 if (sse) {
1841 dasm_put(Dst, 10432); 1855 dasm_put(Dst, 10590);
1842 } else { 1856 } else {
1843 dasm_put(Dst, 10446); 1857 dasm_put(Dst, 10604);
1844 } 1858 }
1845 break; 1859 break;
1846 } 1860 }
1847 dasm_put(Dst, 10465); 1861 dasm_put(Dst, 10623);
1848 if (sse) { 1862 if (sse) {
1849 dasm_put(Dst, 9932); 1863 dasm_put(Dst, 10090);
1850 } else { 1864 } else {
1851 dasm_put(Dst, 9944); 1865 dasm_put(Dst, 10102);
1852 } 1866 }
1853 dasm_put(Dst, 9512); 1867 dasm_put(Dst, 9670);
1854 break; 1868 break;
1855 1869
1856 case BC_CAT: 1870 case BC_CAT:
1857 dasm_put(Dst, 10469, Dt1(->base), Dt1(->base)); 1871 dasm_put(Dst, 10627, Dt1(->base), Dt1(->base));
1858 break; 1872 break;
1859 1873
1860 /* -- Constant ops ------------------------------------------------------ */ 1874 /* -- Constant ops ------------------------------------------------------ */
1861 1875
1862 case BC_KSTR: 1876 case BC_KSTR:
1863 dasm_put(Dst, 10553, LJ_TSTR); 1877 dasm_put(Dst, 10711, LJ_TSTR);
1864 break; 1878 break;
1865 case BC_KCDATA: 1879 case BC_KCDATA:
1866#if LJ_HASFFI 1880#if LJ_HASFFI
1867 dasm_put(Dst, 10553, LJ_TCDATA); 1881 dasm_put(Dst, 10711, LJ_TCDATA);
1868#endif 1882#endif
1869 break; 1883 break;
1870 case BC_KSHORT: 1884 case BC_KSHORT:
1871 if (sse) { 1885 if (sse) {
1872 dasm_put(Dst, 10590); 1886 dasm_put(Dst, 10748);
1873 } else { 1887 } else {
1874 dasm_put(Dst, 10605); 1888 dasm_put(Dst, 10763);
1875 } 1889 }
1876 dasm_put(Dst, 9512); 1890 dasm_put(Dst, 9670);
1877 break; 1891 break;
1878 case BC_KNUM: 1892 case BC_KNUM:
1879 if (sse) { 1893 if (sse) {
1880 dasm_put(Dst, 10613); 1894 dasm_put(Dst, 10771);
1881 } else { 1895 } else {
1882 dasm_put(Dst, 10627); 1896 dasm_put(Dst, 10785);
1883 } 1897 }
1884 dasm_put(Dst, 9512); 1898 dasm_put(Dst, 9670);
1885 break; 1899 break;
1886 case BC_KPRI: 1900 case BC_KPRI:
1887 dasm_put(Dst, 10635); 1901 dasm_put(Dst, 10793);
1888 break; 1902 break;
1889 case BC_KNIL: 1903 case BC_KNIL:
1890 dasm_put(Dst, 10664, LJ_TNIL); 1904 dasm_put(Dst, 10822, LJ_TNIL);
1891 break; 1905 break;
1892 1906
1893 /* -- Upvalue and function ops ------------------------------------------ */ 1907 /* -- Upvalue and function ops ------------------------------------------ */
1894 1908
1895 case BC_UGET: 1909 case BC_UGET:
1896 dasm_put(Dst, 10712, offsetof(GCfuncL, uvptr), DtA(->v)); 1910 dasm_put(Dst, 10870, offsetof(GCfuncL, uvptr), DtA(->v));
1897 break; 1911 break;
1898 case BC_USETV: 1912 case BC_USETV:
1899#define TV2MARKOFS \ 1913#define TV2MARKOFS \
1900 ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv)) 1914 ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv))
1901 dasm_put(Dst, 10753, 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); 1915 dasm_put(Dst, 10911, 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);
1902 dasm_put(Dst, 10849); 1916 dasm_put(Dst, 11007);
1903 break; 1917 break;
1904#undef TV2MARKOFS 1918#undef TV2MARKOFS
1905 case BC_USETS: 1919 case BC_USETS:
1906 dasm_put(Dst, 10861, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G); 1920 dasm_put(Dst, 11019, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G);
1907 break; 1921 break;
1908 case BC_USETN: 1922 case BC_USETN:
1909 dasm_put(Dst, 10957); 1923 dasm_put(Dst, 11115);
1910 if (sse) { 1924 if (sse) {
1911 dasm_put(Dst, 10962); 1925 dasm_put(Dst, 11120);
1912 } else { 1926 } else {
1913 dasm_put(Dst, 9754); 1927 dasm_put(Dst, 9912);
1914 } 1928 }
1915 dasm_put(Dst, 10970, offsetof(GCfuncL, uvptr), DtA(->v)); 1929 dasm_put(Dst, 11128, offsetof(GCfuncL, uvptr), DtA(->v));
1916 if (sse) { 1930 if (sse) {
1917 dasm_put(Dst, 10979); 1931 dasm_put(Dst, 11137);
1918 } else { 1932 } else {
1919 dasm_put(Dst, 10985); 1933 dasm_put(Dst, 11143);
1920 } 1934 }
1921 dasm_put(Dst, 9512); 1935 dasm_put(Dst, 9670);
1922 break; 1936 break;
1923 case BC_USETP: 1937 case BC_USETP:
1924 dasm_put(Dst, 10988, offsetof(GCfuncL, uvptr), DtA(->v)); 1938 dasm_put(Dst, 11146, offsetof(GCfuncL, uvptr), DtA(->v));
1925 break; 1939 break;
1926 case BC_UCLO: 1940 case BC_UCLO:
1927 dasm_put(Dst, 11028, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base)); 1941 dasm_put(Dst, 11186, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base));
1928 break; 1942 break;
1929 1943
1930 case BC_FNEW: 1944 case BC_FNEW:
1931 dasm_put(Dst, 11084, Dt1(->base), Dt1(->base), LJ_TFUNC); 1945 dasm_put(Dst, 11242, Dt1(->base), Dt1(->base), LJ_TFUNC);
1932 break; 1946 break;
1933 1947
1934 /* -- Table ops --------------------------------------------------------- */ 1948 /* -- Table ops --------------------------------------------------------- */
1935 1949
1936 case BC_TNEW: 1950 case BC_TNEW:
1937 dasm_put(Dst, 11151, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB); 1951 dasm_put(Dst, 11309, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB);
1938 break; 1952 break;
1939 case BC_TDUP: 1953 case BC_TDUP:
1940 dasm_put(Dst, 11275, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB); 1954 dasm_put(Dst, 11433, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB);
1941 break; 1955 break;
1942 1956
1943 case BC_GGET: 1957 case BC_GGET:
1944 dasm_put(Dst, 11374, Dt7(->env)); 1958 dasm_put(Dst, 11532, Dt7(->env));
1945 break; 1959 break;
1946 case BC_GSET: 1960 case BC_GSET:
1947 dasm_put(Dst, 11394, Dt7(->env)); 1961 dasm_put(Dst, 11552, Dt7(->env));
1948 break; 1962 break;
1949 1963
1950 case BC_TGETV: 1964 case BC_TGETV:
1951 dasm_put(Dst, 11414, LJ_TTAB, LJ_TISNUM); 1965 dasm_put(Dst, 11572, LJ_TTAB, LJ_TISNUM);
1952 if (sse) { 1966 if (sse) {
1953 dasm_put(Dst, 11447); 1967 dasm_put(Dst, 11605);
1954 } else { 1968 } else {
1955 } 1969 }
1956 dasm_put(Dst, 11468, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 1970 dasm_put(Dst, 11626, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
1957 dasm_put(Dst, 11553, LJ_TNIL, LJ_TSTR); 1971 dasm_put(Dst, 11711, LJ_TNIL, LJ_TSTR);
1958 break; 1972 break;
1959 case BC_TGETS: 1973 case BC_TGETS:
1960 dasm_put(Dst, 11582, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); 1974 dasm_put(Dst, 11740, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
1961 dasm_put(Dst, 11667, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 1975 dasm_put(Dst, 11825, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
1962 break; 1976 break;
1963 case BC_TGETB: 1977 case BC_TGETB:
1964 dasm_put(Dst, 11739, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 1978 dasm_put(Dst, 11897, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
1965 dasm_put(Dst, 11835, LJ_TNIL); 1979 dasm_put(Dst, 11993, LJ_TNIL);
1966 break; 1980 break;
1967 1981
1968 case BC_TSETV: 1982 case BC_TSETV:
1969 dasm_put(Dst, 11852, LJ_TTAB, LJ_TISNUM); 1983 dasm_put(Dst, 12010, LJ_TTAB, LJ_TISNUM);
1970 if (sse) { 1984 if (sse) {
1971 dasm_put(Dst, 11447); 1985 dasm_put(Dst, 11605);
1972 } else { 1986 } else {
1973 } 1987 }
1974 dasm_put(Dst, 11885, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable)); 1988 dasm_put(Dst, 12043, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable));
1975 dasm_put(Dst, 11965, Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 1989 dasm_put(Dst, 12123, Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
1976 break; 1990 break;
1977 case BC_TSETS: 1991 case BC_TSETS:
1978 dasm_put(Dst, 12029, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); 1992 dasm_put(Dst, 12187, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
1979 dasm_put(Dst, 12106, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next)); 1993 dasm_put(Dst, 12264, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next));
1980 dasm_put(Dst, 12193, 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)); 1994 dasm_put(Dst, 12351, 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));
1981 break; 1995 break;
1982 case BC_TSETB: 1996 case BC_TSETB:
1983 dasm_put(Dst, 12285, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable)); 1997 dasm_put(Dst, 12443, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable));
1984 dasm_put(Dst, 12380, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 1998 dasm_put(Dst, 12538, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
1985 break; 1999 break;
1986 2000
1987 case BC_TSETM: 2001 case BC_TSETM:
1988 dasm_put(Dst, 12428, Dt6(->marked), LJ_GC_BLACK, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base)); 2002 dasm_put(Dst, 12586, Dt6(->marked), LJ_GC_BLACK, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base));
1989 dasm_put(Dst, 12578, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 2003 dasm_put(Dst, 12736, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
1990 break; 2004 break;
1991 2005
1992 /* -- Calls and vararg handling ----------------------------------------- */ 2006 /* -- Calls and vararg handling ----------------------------------------- */
1993 2007
1994 case BC_CALL: case BC_CALLM: 2008 case BC_CALL: case BC_CALLM:
1995 dasm_put(Dst, 10054); 2009 dasm_put(Dst, 10212);
1996 if (op == BC_CALLM) { 2010 if (op == BC_CALLM) {
1997 dasm_put(Dst, 12598); 2011 dasm_put(Dst, 12756);
1998 } 2012 }
1999 dasm_put(Dst, 12603, LJ_TFUNC, Dt7(->pc)); 2013 dasm_put(Dst, 12761, LJ_TFUNC, Dt7(->pc));
2000 break; 2014 break;
2001 2015
2002 case BC_CALLMT: 2016 case BC_CALLMT:
2003 dasm_put(Dst, 12598); 2017 dasm_put(Dst, 12756);
2004 break; 2018 break;
2005 case BC_CALLT: 2019 case BC_CALLT:
2006 dasm_put(Dst, 12646, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc)); 2020 dasm_put(Dst, 12804, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc));
2007 dasm_put(Dst, 12764, FRAME_TYPE, Dt7(->pc), PC2PROTO(k), FRAME_VARG, FRAME_TYPEP, FRAME_VARG); 2021 dasm_put(Dst, 12922, FRAME_TYPE, Dt7(->pc), PC2PROTO(k), FRAME_VARG, FRAME_TYPEP, FRAME_VARG);
2008 break; 2022 break;
2009 2023
2010 case BC_ITERC: 2024 case BC_ITERC:
2011 dasm_put(Dst, 12838, LJ_TFUNC, 2+1, Dt7(->pc)); 2025 dasm_put(Dst, 12996, LJ_TFUNC, 2+1, Dt7(->pc));
2012 break; 2026 break;
2013 2027
2014 case BC_ITERN: 2028 case BC_ITERN:
2015#if LJ_HASJIT 2029#if LJ_HASJIT
2016#endif 2030#endif
2017 dasm_put(Dst, 12910, Dt6(->asize), Dt6(->array), LJ_TNIL); 2031 dasm_put(Dst, 13068, Dt6(->asize), Dt6(->array), LJ_TNIL);
2018 if (sse) { 2032 if (sse) {
2019 dasm_put(Dst, 12962); 2033 dasm_put(Dst, 13120);
2020 } else { 2034 } else {
2021 dasm_put(Dst, 12968); 2035 dasm_put(Dst, 13126);
2022 } 2036 }
2023 dasm_put(Dst, 12974); 2037 dasm_put(Dst, 13132);
2024 if (sse) { 2038 if (sse) {
2025 dasm_put(Dst, 9932); 2039 dasm_put(Dst, 10090);
2026 } else { 2040 } else {
2027 dasm_put(Dst, 9944); 2041 dasm_put(Dst, 10102);
2028 } 2042 }
2029 dasm_put(Dst, 12987, -BCBIAS_J*4); 2043 dasm_put(Dst, 13145, -BCBIAS_J*4);
2030 if (!sse) { 2044 if (!sse) {
2031 dasm_put(Dst, 13041); 2045 dasm_put(Dst, 13199);
2032 } 2046 }
2033 dasm_put(Dst, 13047, Dt6(->hmask), sizeof(Node), Dt6(->node), DtB(->val.it), LJ_TNIL, DtB(->key), DtB(->val)); 2047 dasm_put(Dst, 13205, Dt6(->hmask), sizeof(Node), Dt6(->node), DtB(->val.it), LJ_TNIL, DtB(->key), DtB(->val));
2034 break; 2048 break;
2035 2049
2036 case BC_ISNEXT: 2050 case BC_ISNEXT:
2037 dasm_put(Dst, 13126, LJ_TFUNC, LJ_TTAB, LJ_TNIL, Dt8(->ffid), FF_next_N, -BCBIAS_J*4, BC_JMP, -BCBIAS_J*4, BC_ITERC); 2051 dasm_put(Dst, 13284, LJ_TFUNC, LJ_TTAB, LJ_TNIL, Dt8(->ffid), FF_next_N, -BCBIAS_J*4, BC_JMP, -BCBIAS_J*4, BC_ITERC);
2038 break; 2052 break;
2039 2053
2040 case BC_VARG: 2054 case BC_VARG:
2041 dasm_put(Dst, 13227, (8+FRAME_VARG), LJ_TNIL, Dt1(->maxstack)); 2055 dasm_put(Dst, 13385, (8+FRAME_VARG), LJ_TNIL, Dt1(->maxstack));
2042 dasm_put(Dst, 13394, Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top)); 2056 dasm_put(Dst, 13552, Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top));
2043 break; 2057 break;
2044 2058
2045 /* -- Returns ----------------------------------------------------------- */ 2059 /* -- Returns ----------------------------------------------------------- */
2046 2060
2047 case BC_RETM: 2061 case BC_RETM:
2048 dasm_put(Dst, 12598); 2062 dasm_put(Dst, 12756);
2049 break; 2063 break;
2050 2064
2051 case BC_RET: case BC_RET0: case BC_RET1: 2065 case BC_RET: case BC_RET0: case BC_RET1:
2052 if (op != BC_RET0) { 2066 if (op != BC_RET0) {
2053 dasm_put(Dst, 13464); 2067 dasm_put(Dst, 13622);
2054 } 2068 }
2055 dasm_put(Dst, 13468, FRAME_TYPE); 2069 dasm_put(Dst, 13626, FRAME_TYPE);
2056 switch (op) { 2070 switch (op) {
2057 case BC_RET: 2071 case BC_RET:
2058 dasm_put(Dst, 13487); 2072 dasm_put(Dst, 13645);
2059 break; 2073 break;
2060 case BC_RET1: 2074 case BC_RET1:
2061 dasm_put(Dst, 13541); 2075 dasm_put(Dst, 13699);
2062 /* fallthrough */ 2076 /* fallthrough */
2063 case BC_RET0: 2077 case BC_RET0:
2064 dasm_put(Dst, 13551); 2078 dasm_put(Dst, 13709);
2065 default: 2079 default:
2066 break; 2080 break;
2067 } 2081 }
2068 dasm_put(Dst, 13562, Dt7(->pc), PC2PROTO(k)); 2082 dasm_put(Dst, 13720, Dt7(->pc), PC2PROTO(k));
2069 if (op == BC_RET) { 2083 if (op == BC_RET) {
2070 dasm_put(Dst, 13610, LJ_TNIL); 2084 dasm_put(Dst, 13768, LJ_TNIL);
2071 } else { 2085 } else {
2072 dasm_put(Dst, 13621, LJ_TNIL); 2086 dasm_put(Dst, 13779, LJ_TNIL);
2073 } 2087 }
2074 dasm_put(Dst, 13628, -FRAME_VARG, FRAME_TYPEP); 2088 dasm_put(Dst, 13786, -FRAME_VARG, FRAME_TYPEP);
2075 if (op != BC_RET0) { 2089 if (op != BC_RET0) {
2076 dasm_put(Dst, 13652); 2090 dasm_put(Dst, 13810);
2077 } 2091 }
2078 dasm_put(Dst, 4546); 2092 dasm_put(Dst, 4546);
2079 break; 2093 break;
@@ -2083,7 +2097,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2083 2097
2084 case BC_FORL: 2098 case BC_FORL:
2085#if LJ_HASJIT 2099#if LJ_HASJIT
2086 dasm_put(Dst, 13656, HOTCOUNT_PCMASK, GG_DISP2HOT); 2100 dasm_put(Dst, 13814, HOTCOUNT_PCMASK, GG_DISP2HOT);
2087#endif 2101#endif
2088 break; 2102 break;
2089 2103
@@ -2095,57 +2109,57 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2095 case BC_FORI: 2109 case BC_FORI:
2096 case BC_IFORL: 2110 case BC_IFORL:
2097 vk = (op == BC_IFORL || op == BC_JFORL); 2111 vk = (op == BC_IFORL || op == BC_JFORL);
2098 dasm_put(Dst, 13677); 2112 dasm_put(Dst, 13835);
2099 if (!vk) { 2113 if (!vk) {
2100 dasm_put(Dst, 13681, LJ_TISNUM, LJ_TISNUM); 2114 dasm_put(Dst, 13839, LJ_TISNUM, LJ_TISNUM);
2101 } 2115 }
2102 dasm_put(Dst, 13700); 2116 dasm_put(Dst, 13858);
2103 if (!vk) { 2117 if (!vk) {
2104 dasm_put(Dst, 13704, LJ_TISNUM); 2118 dasm_put(Dst, 13862, LJ_TISNUM);
2105 } 2119 }
2106 if (sse) { 2120 if (sse) {
2107 dasm_put(Dst, 13713); 2121 dasm_put(Dst, 13871);
2108 if (vk) { 2122 if (vk) {
2109 dasm_put(Dst, 13725); 2123 dasm_put(Dst, 13883);
2110 } else { 2124 } else {
2111 dasm_put(Dst, 13744); 2125 dasm_put(Dst, 13902);
2112 } 2126 }
2113 dasm_put(Dst, 13749); 2127 dasm_put(Dst, 13907);
2114 } else { 2128 } else {
2115 dasm_put(Dst, 13762); 2129 dasm_put(Dst, 13920);
2116 if (vk) { 2130 if (vk) {
2117 dasm_put(Dst, 13768); 2131 dasm_put(Dst, 13926);
2118 } else { 2132 } else {
2119 dasm_put(Dst, 13784); 2133 dasm_put(Dst, 13942);
2120 } 2134 }
2121 dasm_put(Dst, 13792); 2135 dasm_put(Dst, 13950);
2122 if (cmov) { 2136 if (cmov) {
2123 dasm_put(Dst, 9475); 2137 dasm_put(Dst, 9633);
2124 } else { 2138 } else {
2125 dasm_put(Dst, 9481); 2139 dasm_put(Dst, 9639);
2126 } 2140 }
2127 if (!cmov) { 2141 if (!cmov) {
2128 dasm_put(Dst, 13797); 2142 dasm_put(Dst, 13955);
2129 } 2143 }
2130 } 2144 }
2131 if (op == BC_FORI) { 2145 if (op == BC_FORI) {
2132 dasm_put(Dst, 13803, -BCBIAS_J*4); 2146 dasm_put(Dst, 13961, -BCBIAS_J*4);
2133 } else if (op == BC_JFORI) { 2147 } else if (op == BC_JFORI) {
2134 dasm_put(Dst, 13813, -BCBIAS_J*4, BC_JLOOP); 2148 dasm_put(Dst, 13971, -BCBIAS_J*4, BC_JLOOP);
2135 } else if (op == BC_IFORL) { 2149 } else if (op == BC_IFORL) {
2136 dasm_put(Dst, 13827, -BCBIAS_J*4); 2150 dasm_put(Dst, 13985, -BCBIAS_J*4);
2137 } else { 2151 } else {
2138 dasm_put(Dst, 13823, BC_JLOOP); 2152 dasm_put(Dst, 13981, BC_JLOOP);
2139 } 2153 }
2140 dasm_put(Dst, 9510); 2154 dasm_put(Dst, 9668);
2141 if (sse) { 2155 if (sse) {
2142 dasm_put(Dst, 13837); 2156 dasm_put(Dst, 13995);
2143 } 2157 }
2144 break; 2158 break;
2145 2159
2146 case BC_ITERL: 2160 case BC_ITERL:
2147#if LJ_HASJIT 2161#if LJ_HASJIT
2148 dasm_put(Dst, 13656, HOTCOUNT_PCMASK, GG_DISP2HOT); 2162 dasm_put(Dst, 13814, HOTCOUNT_PCMASK, GG_DISP2HOT);
2149#endif 2163#endif
2150 break; 2164 break;
2151 2165
@@ -2154,33 +2168,33 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2154 break; 2168 break;
2155#endif 2169#endif
2156 case BC_IITERL: 2170 case BC_IITERL:
2157 dasm_put(Dst, 13848, LJ_TNIL); 2171 dasm_put(Dst, 14006, LJ_TNIL);
2158 if (op == BC_JITERL) { 2172 if (op == BC_JITERL) {
2159 dasm_put(Dst, 13863, BC_JLOOP); 2173 dasm_put(Dst, 14021, BC_JLOOP);
2160 } else { 2174 } else {
2161 dasm_put(Dst, 13877, -BCBIAS_J*4); 2175 dasm_put(Dst, 14035, -BCBIAS_J*4);
2162 } 2176 }
2163 dasm_put(Dst, 9814); 2177 dasm_put(Dst, 9972);
2164 break; 2178 break;
2165 2179
2166 case BC_LOOP: 2180 case BC_LOOP:
2167#if LJ_HASJIT 2181#if LJ_HASJIT
2168 dasm_put(Dst, 13656, HOTCOUNT_PCMASK, GG_DISP2HOT); 2182 dasm_put(Dst, 13814, HOTCOUNT_PCMASK, GG_DISP2HOT);
2169#endif 2183#endif
2170 break; 2184 break;
2171 2185
2172 case BC_ILOOP: 2186 case BC_ILOOP:
2173 dasm_put(Dst, 9512); 2187 dasm_put(Dst, 9670);
2174 break; 2188 break;
2175 2189
2176 case BC_JLOOP: 2190 case BC_JLOOP:
2177#if LJ_HASJIT 2191#if LJ_HASJIT
2178 dasm_put(Dst, 13893, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L)); 2192 dasm_put(Dst, 14051, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L));
2179#endif 2193#endif
2180 break; 2194 break;
2181 2195
2182 case BC_JMP: 2196 case BC_JMP:
2183 dasm_put(Dst, 13934, -BCBIAS_J*4); 2197 dasm_put(Dst, 14092, -BCBIAS_J*4);
2184 break; 2198 break;
2185 2199
2186 /* -- Function headers -------------------------------------------------- */ 2200 /* -- Function headers -------------------------------------------------- */
@@ -2194,7 +2208,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2194 2208
2195 case BC_FUNCF: 2209 case BC_FUNCF:
2196#if LJ_HASJIT 2210#if LJ_HASJIT
2197 dasm_put(Dst, 13960, HOTCOUNT_PCMASK, GG_DISP2HOT); 2211 dasm_put(Dst, 14118, HOTCOUNT_PCMASK, GG_DISP2HOT);
2198#endif 2212#endif
2199 case BC_FUNCV: /* NYI: compiled vararg functions. */ 2213 case BC_FUNCV: /* NYI: compiled vararg functions. */
2200 break; 2214 break;
@@ -2204,13 +2218,13 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2204 break; 2218 break;
2205#endif 2219#endif
2206 case BC_IFUNCF: 2220 case BC_IFUNCF:
2207 dasm_put(Dst, 13981, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams)); 2221 dasm_put(Dst, 14139, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams));
2208 if (op == BC_JFUNCF) { 2222 if (op == BC_JFUNCF) {
2209 dasm_put(Dst, 14012, BC_JLOOP); 2223 dasm_put(Dst, 14170, BC_JLOOP);
2210 } else { 2224 } else {
2211 dasm_put(Dst, 9512); 2225 dasm_put(Dst, 9670);
2212 } 2226 }
2213 dasm_put(Dst, 14021, LJ_TNIL); 2227 dasm_put(Dst, 14179, LJ_TNIL);
2214 break; 2228 break;
2215 2229
2216 case BC_JFUNCV: 2230 case BC_JFUNCV:
@@ -2221,30 +2235,30 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2221 break; /* NYI: compiled vararg functions. */ 2235 break; /* NYI: compiled vararg functions. */
2222 2236
2223 case BC_IFUNCV: 2237 case BC_IFUNCV:
2224 dasm_put(Dst, 14043, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL); 2238 dasm_put(Dst, 14201, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL);
2225 if (op == BC_JFUNCV) { 2239 if (op == BC_JFUNCV) {
2226 dasm_put(Dst, 14012, BC_JLOOP); 2240 dasm_put(Dst, 14170, BC_JLOOP);
2227 } else { 2241 } else {
2228 dasm_put(Dst, 14140, -4+PC2PROTO(k)); 2242 dasm_put(Dst, 14298, -4+PC2PROTO(k));
2229 } 2243 }
2230 dasm_put(Dst, 14165, LJ_TNIL); 2244 dasm_put(Dst, 14323, LJ_TNIL);
2231 break; 2245 break;
2232 2246
2233 case BC_FUNCC: 2247 case BC_FUNCC:
2234 case BC_FUNCCW: 2248 case BC_FUNCCW:
2235 dasm_put(Dst, 14187, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top)); 2249 dasm_put(Dst, 14345, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top));
2236 if (op == BC_FUNCC) { 2250 if (op == BC_FUNCC) {
2237 dasm_put(Dst, 14217); 2251 dasm_put(Dst, 14375);
2238 } else { 2252 } else {
2239 dasm_put(Dst, 14221); 2253 dasm_put(Dst, 14379);
2240 } 2254 }
2241 dasm_put(Dst, 14229, DISPATCH_GL(vmstate), ~LJ_VMST_C); 2255 dasm_put(Dst, 14387, DISPATCH_GL(vmstate), ~LJ_VMST_C);
2242 if (op == BC_FUNCC) { 2256 if (op == BC_FUNCC) {
2243 dasm_put(Dst, 14239); 2257 dasm_put(Dst, 14397);
2244 } else { 2258 } else {
2245 dasm_put(Dst, 14244, DISPATCH_GL(wrapf)); 2259 dasm_put(Dst, 14402, DISPATCH_GL(wrapf));
2246 } 2260 }
2247 dasm_put(Dst, 14250, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top)); 2261 dasm_put(Dst, 14408, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top));
2248 break; 2262 break;
2249 2263
2250 /* ---------------------------------------------------------------------- */ 2264 /* ---------------------------------------------------------------------- */
@@ -2272,7 +2286,7 @@ static int build_backend(BuildCtx *ctx)
2272 2286
2273 build_subroutines(ctx, cmov, sse); 2287 build_subroutines(ctx, cmov, sse);
2274 2288
2275 dasm_put(Dst, 14276); 2289 dasm_put(Dst, 14434);
2276 for (op = 0; op < BC__MAX; op++) 2290 for (op = 0; op < BC__MAX; op++)
2277 build_ins(ctx, (BCOp)op, op, cmov, sse); 2291 build_ins(ctx, (BCOp)op, op, cmov, sse);
2278 2292