summaryrefslogtreecommitdiff
path: root/src/buildvm_x64win.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/buildvm_x64win.h')
-rw-r--r--src/buildvm_x64win.h1007
1 files changed, 510 insertions, 497 deletions
diff --git a/src/buildvm_x64win.h b/src/buildvm_x64win.h
index 94dbe50f..84b94f1a 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[14223] = { 15static const unsigned char build_actionlist[14340] = {
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,129,252,246,239,252,247,198,237, 18 36,84,252,247,198,237,15,132,244,13,248,14,129,252,246,239,252,247,198,237,
@@ -471,239 +471,245 @@ static const unsigned char build_actionlist[14223] = {
471 221,217,195,255,221,225,223,224,252,246,196,1,15,132,244,248,217,201,248, 471 221,217,195,255,221,225,223,224,252,246,196,1,15,132,244,248,217,201,248,
472 2,221,216,195,248,1,221,225,223,224,252,246,196,1,15,133,244,248,217,201, 472 2,221,216,195,248,1,221,225,223,224,252,246,196,1,15,133,244,248,217,201,
473 248,2,221,216,195,255,248,155,137,200,86,72,137,214,83,15,162,137,6,137,94, 473 248,2,221,216,195,255,248,155,137,200,86,72,137,214,83,15,162,137,6,137,94,
474 4,137,78,8,137,86,12,91,94,195,255,129,124,253,202,4,239,15,135,244,41,129, 474 4,137,78,8,137,86,12,91,94,195,248,156,255,85,72,137,229,83,72,137,203,139,
475 124,253,194,4,239,15,135,244,41,255,252,242,15,16,4,194,131,198,4,102,15, 475 131,233,72,41,196,15,182,139,233,131,252,233,1,15,136,244,248,248,1,72,139,
476 46,4,202,255,221,4,202,221,4,194,131,198,4,255,223,252,233,221,216,255,218, 476 132,253,203,233,72,137,132,253,204,233,131,252,233,1,15,137,244,1,248,2,15,
477 252,233,223,224,158,255,15,134,244,248,255,15,131,244,248,255,248,1,15,183, 477 182,131,233,72,139,139,233,72,139,147,233,76,139,131,233,76,139,139,233,133,
478 70,252,254,141,180,253,134,233,248,2,139,6,15,182,204,15,182,232,131,198, 478 192,15,132,244,251,15,40,131,233,15,40,139,233,15,40,147,233,255,15,40,155,
479 4,193,232,16,252,255,36,252,235,255,139,108,194,4,131,198,4,129,252,253,239, 479 233,248,5,252,255,147,233,72,137,131,233,15,41,131,233,72,139,93,252,248,
480 15,135,244,251,129,124,253,202,4,239,15,135,244,251,255,252,242,15,16,4,194, 480 201,195,255,129,124,253,202,4,239,15,135,244,41,129,124,253,194,4,239,15,
481 102,15,46,4,202,255,221,4,202,221,4,194,255,15,138,244,248,15,133,244,248, 481 135,244,41,255,252,242,15,16,4,194,131,198,4,102,15,46,4,202,255,221,4,202,
482 255,15,138,244,248,15,132,244,247,255,248,1,15,183,70,252,254,141,180,253, 482 221,4,194,131,198,4,255,223,252,233,221,216,255,218,252,233,223,224,158,255,
483 134,233,248,2,255,248,2,15,183,70,252,254,141,180,253,134,233,248,1,255,248, 483 15,134,244,248,255,15,131,244,248,255,248,1,15,183,70,252,254,141,180,253,
484 5,57,108,202,4,15,133,244,2,129,252,253,239,15,131,244,1,139,12,202,139,4, 484 134,233,248,2,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,
485 194,57,193,15,132,244,1,129,252,253,239,15,135,244,2,139,169,233,133,252, 485 252,235,255,139,108,194,4,131,198,4,129,252,253,239,15,135,244,251,129,124,
486 237,15,132,244,2,252,246,133,233,235,15,133,244,2,255,49,252,237,255,189, 486 253,202,4,239,15,135,244,251,255,252,242,15,16,4,194,102,15,46,4,202,255,
487 1,0,0,0,255,252,233,244,45,255,72,252,247,208,131,198,4,129,124,253,202,4, 487 221,4,202,221,4,194,255,15,138,244,248,15,133,244,248,255,15,138,244,248,
488 239,15,133,244,248,139,12,202,59,12,135,255,131,198,4,129,124,253,202,4,239, 488 15,132,244,247,255,248,1,15,183,70,252,254,141,180,253,134,233,248,2,255,
489 15,135,244,248,255,252,242,15,16,4,199,102,15,46,4,202,255,221,4,202,221, 489 248,2,15,183,70,252,254,141,180,253,134,233,248,1,255,248,5,57,108,202,4,
490 4,199,255,72,252,247,208,131,198,4,57,68,202,4,255,139,108,194,4,131,198, 490 15,133,244,2,129,252,253,239,15,131,244,1,139,12,202,139,4,194,57,193,15,
491 4,129,252,253,239,255,15,131,244,247,255,15,130,244,247,255,137,108,202,4, 491 132,244,1,129,252,253,239,15,135,244,2,139,169,233,133,252,237,15,132,244,
492 139,44,194,137,44,202,255,15,183,70,252,254,141,180,253,134,233,248,1,139, 492 2,252,246,133,233,235,15,133,244,2,255,49,252,237,255,189,1,0,0,0,255,252,
493 6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,72,139, 493 233,244,45,255,72,252,247,208,131,198,4,129,124,253,202,4,239,15,133,244,
494 44,194,72,137,44,202,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252, 494 248,139,12,202,59,12,135,255,131,198,4,129,124,253,202,4,239,15,135,244,248,
495 255,36,252,235,255,49,252,237,129,124,253,194,4,239,129,213,239,137,108,202, 495 255,252,242,15,16,4,199,102,15,46,4,202,255,221,4,202,221,4,199,255,72,252,
496 4,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,255, 496 247,208,131,198,4,57,68,202,4,255,139,108,194,4,131,198,4,129,252,253,239,
497 129,124,253,194,4,239,15,135,244,48,255,252,242,15,16,4,194,72,184,237,237, 497 255,15,131,244,247,255,15,130,244,247,255,137,108,202,4,139,44,194,137,44,
498 102,72,15,110,200,15,87,193,252,242,15,17,4,202,255,221,4,194,217,224,221, 498 202,255,15,183,70,252,254,141,180,253,134,233,248,1,139,6,15,182,204,15,182,
499 28,202,255,129,124,253,194,4,239,15,133,244,248,139,4,194,255,15,87,192,252, 499 232,131,198,4,193,232,16,252,255,36,252,235,255,72,139,44,194,72,137,44,202,
500 242,15,42,128,233,248,1,252,242,15,17,4,202,255,219,128,233,248,1,221,28, 500 139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,49,
501 202,255,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235, 501 252,237,129,124,253,194,4,239,129,213,239,137,108,202,4,139,6,15,182,204,
502 248,2,129,124,253,194,4,239,15,133,244,50,139,12,194,137,213,232,251,1,18, 502 15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,129,124,253,194,4,
503 255,252,242,15,42,192,137,252,234,255,15,182,78,252,253,252,233,244,1,255, 503 239,15,135,244,48,255,252,242,15,16,4,194,72,184,237,237,102,72,15,110,200,
504 15,182,252,236,15,182,192,255,129,124,253,252,234,4,239,15,135,244,46,255, 504 15,87,193,252,242,15,17,4,202,255,221,4,194,217,224,221,28,202,255,129,124,
505 252,242,15,16,4,252,234,252,242,15,88,4,199,255,221,4,252,234,220,4,199,255, 505 253,194,4,239,15,133,244,248,139,4,194,255,15,87,192,252,242,15,42,128,233,
506 129,124,253,252,234,4,239,15,135,244,47,255,252,242,15,16,4,199,252,242,15, 506 248,1,252,242,15,17,4,202,255,219,128,233,248,1,221,28,202,255,139,6,15,182,
507 88,4,252,234,255,221,4,199,220,4,252,234,255,129,124,253,252,234,4,239,15, 507 204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,2,129,124,253,
508 135,244,49,129,124,253,194,4,239,15,135,244,49,255,252,242,15,16,4,252,234, 508 194,4,239,15,133,244,50,139,12,194,137,213,232,251,1,18,255,252,242,15,42,
509 252,242,15,88,4,194,255,221,4,252,234,220,4,194,255,252,242,15,16,4,252,234, 509 192,137,252,234,255,15,182,78,252,253,252,233,244,1,255,15,182,252,236,15,
510 252,242,15,92,4,199,255,221,4,252,234,220,36,199,255,252,242,15,16,4,199, 510 182,192,255,129,124,253,252,234,4,239,15,135,244,46,255,252,242,15,16,4,252,
511 252,242,15,92,4,252,234,255,221,4,199,220,36,252,234,255,252,242,15,16,4, 511 234,252,242,15,88,4,199,255,221,4,252,234,220,4,199,255,129,124,253,252,234,
512 252,234,252,242,15,92,4,194,255,221,4,252,234,220,36,194,255,252,242,15,16, 512 4,239,15,135,244,47,255,252,242,15,16,4,199,252,242,15,88,4,252,234,255,221,
513 4,252,234,252,242,15,89,4,199,255,221,4,252,234,220,12,199,255,252,242,15, 513 4,199,220,4,252,234,255,129,124,253,252,234,4,239,15,135,244,49,129,124,253,
514 16,4,199,252,242,15,89,4,252,234,255,221,4,199,220,12,252,234,255,252,242, 514 194,4,239,15,135,244,49,255,252,242,15,16,4,252,234,252,242,15,88,4,194,255,
515 15,16,4,252,234,252,242,15,89,4,194,255,221,4,252,234,220,12,194,255,252, 515 221,4,252,234,220,4,194,255,252,242,15,16,4,252,234,252,242,15,92,4,199,255,
516 242,15,16,4,252,234,252,242,15,94,4,199,255,221,4,252,234,220,52,199,255, 516 221,4,252,234,220,36,199,255,252,242,15,16,4,199,252,242,15,92,4,252,234,
517 252,242,15,16,4,199,252,242,15,94,4,252,234,255,221,4,199,220,52,252,234, 517 255,221,4,199,220,36,252,234,255,252,242,15,16,4,252,234,252,242,15,92,4,
518 255,252,242,15,16,4,252,234,252,242,15,94,4,194,255,221,4,252,234,220,52, 518 194,255,221,4,252,234,220,36,194,255,252,242,15,16,4,252,234,252,242,15,89,
519 194,255,252,242,15,16,4,252,234,252,242,15,16,12,199,255,221,4,252,234,221, 519 4,199,255,221,4,252,234,220,12,199,255,252,242,15,16,4,199,252,242,15,89,
520 4,199,255,252,242,15,16,4,199,252,242,15,16,12,252,234,255,221,4,199,221, 520 4,252,234,255,221,4,199,220,12,252,234,255,252,242,15,16,4,252,234,252,242,
521 4,252,234,255,252,242,15,16,4,252,234,252,242,15,16,12,194,255,221,4,252, 521 15,89,4,194,255,221,4,252,234,220,12,194,255,252,242,15,16,4,252,234,252,
522 234,221,4,194,255,248,156,232,244,148,255,252,233,244,156,255,232,244,107, 522 242,15,94,4,199,255,221,4,252,234,220,52,199,255,252,242,15,16,4,199,252,
523 255,15,182,252,236,15,182,192,139,76,36,96,137,145,233,141,20,194,65,137, 523 242,15,94,4,252,234,255,221,4,199,220,52,252,234,255,252,242,15,16,4,252,
524 192,65,41,232,248,33,137,205,137,116,36,100,232,251,1,25,139,149,233,133, 524 234,252,242,15,94,4,194,255,221,4,252,234,220,52,194,255,252,242,15,16,4,
525 192,15,133,244,42,15,182,110,252,255,15,182,78,252,253,72,139,4,252,234,72, 525 252,234,252,242,15,16,12,199,255,221,4,252,234,221,4,199,255,252,242,15,16,
526 137,4,202,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252, 526 4,199,252,242,15,16,12,252,234,255,221,4,199,221,4,252,234,255,252,242,15,
527 235,255,72,252,247,208,139,4,135,199,68,202,4,237,137,4,202,139,6,15,182, 527 16,4,252,234,252,242,15,16,12,194,255,221,4,252,234,221,4,194,255,248,157,
528 204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,15,191,192,252, 528 232,244,148,255,252,233,244,157,255,232,244,107,255,15,182,252,236,15,182,
529 242,15,42,192,252,242,15,17,4,202,255,223,70,252,254,221,28,202,255,252,242, 529 192,139,76,36,96,137,145,233,141,20,194,65,137,192,65,41,232,248,33,137,205,
530 15,16,4,199,252,242,15,17,4,202,255,221,4,199,221,28,202,255,72,252,247,208, 530 137,116,36,100,232,251,1,25,139,149,233,133,192,15,133,244,42,15,182,110,
531 137,68,202,4,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36, 531 252,255,15,182,78,252,253,72,139,4,252,234,72,137,4,202,139,6,15,182,204,
532 252,235,255,141,76,202,12,141,68,194,4,189,237,137,105,252,248,248,1,137, 532 15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,72,252,247,208,139,
533 41,131,193,8,57,193,15,134,244,1,139,6,15,182,204,15,182,232,131,198,4,193, 533 4,135,199,68,202,4,237,137,4,202,139,6,15,182,204,15,182,232,131,198,4,193,
534 232,16,252,255,36,252,235,255,139,106,252,248,139,172,253,133,233,139,173, 534 232,16,252,255,36,252,235,255,15,191,192,252,242,15,42,192,252,242,15,17,
535 233,72,139,69,0,72,137,4,202,139,6,15,182,204,15,182,232,131,198,4,193,232, 535 4,202,255,223,70,252,254,221,28,202,255,252,242,15,16,4,199,252,242,15,17,
536 16,252,255,36,252,235,255,139,106,252,248,139,172,253,141,233,128,189,233, 536 4,202,255,221,4,199,221,28,202,255,72,252,247,208,137,68,202,4,139,6,15,182,
537 0,139,173,233,139,12,194,139,68,194,4,137,77,0,137,69,4,15,132,244,247,252, 537 204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,141,76,202,12,
538 246,133,233,235,15,133,244,248,248,1,139,6,15,182,204,15,182,232,131,198, 538 141,68,194,4,189,237,137,105,252,248,248,1,137,41,131,193,8,57,193,15,134,
539 4,193,232,16,252,255,36,252,235,248,2,129,232,239,129,252,248,239,15,134, 539 244,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,
540 244,1,252,246,129,233,235,15,132,244,1,135,213,141,139,233,255,232,251,1, 540 255,139,106,252,248,139,172,253,133,233,139,173,233,72,139,69,0,72,137,4,
541 26,137,252,234,252,233,244,1,255,72,252,247,208,139,106,252,248,139,172,253, 541 202,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,
542 141,233,139,12,135,139,133,233,137,8,199,64,4,237,252,246,133,233,235,15, 542 139,106,252,248,139,172,253,141,233,128,189,233,0,139,173,233,139,12,194,
543 133,244,248,248,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255, 543 139,68,194,4,137,77,0,137,69,4,15,132,244,247,252,246,133,233,235,15,133,
544 36,252,235,248,2,252,246,129,233,235,15,132,244,1,128,189,233,0,15,132,244, 544 244,248,248,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,
545 1,137,213,137,194,141,139,233,232,251,1,26,137,252,234,252,233,244,1,255, 545 252,235,248,2,129,232,239,129,252,248,239,15,134,244,1,252,246,129,233,235,
546 139,106,252,248,255,252,242,15,16,4,199,255,139,172,253,141,233,139,141,233, 546 15,132,244,1,135,213,141,139,233,255,232,251,1,26,137,252,234,252,233,244,
547 255,252,242,15,17,1,255,221,25,255,72,252,247,208,139,106,252,248,139,172, 547 1,255,72,252,247,208,139,106,252,248,139,172,253,141,233,139,12,135,139,133,
548 253,141,233,139,141,233,137,65,4,139,6,15,182,204,15,182,232,131,198,4,193, 548 233,137,8,199,64,4,237,252,246,133,233,235,15,133,244,248,248,1,139,6,15,
549 232,16,252,255,36,252,235,255,141,180,253,134,233,139,108,36,96,131,189,233, 549 182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,2,252,246,
550 0,15,132,244,247,137,149,233,141,20,202,137,252,233,232,251,1,27,139,149, 550 129,233,235,15,132,244,1,128,189,233,0,15,132,244,1,137,213,137,194,141,139,
551 233,248,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252, 551 233,232,251,1,26,137,252,234,252,233,244,1,255,139,106,252,248,255,252,242,
552 235,255,72,252,247,208,139,108,36,96,137,149,233,68,139,66,252,248,139,20, 552 15,16,4,199,255,139,172,253,141,233,139,141,233,255,252,242,15,17,1,255,221,
553 135,137,252,233,137,116,36,100,232,251,1,28,139,149,233,15,182,78,252,253, 553 25,255,72,252,247,208,139,106,252,248,139,172,253,141,233,139,141,233,137,
554 65,4,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,
555 255,141,180,253,134,233,139,108,36,96,131,189,233,0,15,132,244,247,137,149,
556 233,141,20,202,137,252,233,232,251,1,27,139,149,233,248,1,139,6,15,182,204,
557 15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,72,252,247,208,139,
558 108,36,96,137,149,233,68,139,66,252,248,139,20,135,137,252,233,137,116,36,
559 100,232,251,1,28,139,149,233,15,182,78,252,253,137,4,202,199,68,202,4,237,
560 139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,139,
561 108,36,96,137,149,233,139,139,233,59,139,233,137,116,36,100,15,131,244,251,
562 248,1,65,137,192,37,252,255,7,0,0,65,193,232,11,61,252,255,7,0,0,15,132,244,
563 249,248,2,137,252,233,137,194,232,251,1,29,139,149,233,15,182,78,252,253,
554 137,4,202,199,68,202,4,237,139,6,15,182,204,15,182,232,131,198,4,193,232, 564 137,4,202,199,68,202,4,237,139,6,15,182,204,15,182,232,131,198,4,193,232,
555 16,252,255,36,252,235,255,139,108,36,96,137,149,233,139,139,233,59,139,233, 565 16,252,255,36,252,235,248,3,184,1,8,0,0,252,233,244,2,248,5,137,252,233,232,
556 137,116,36,100,15,131,244,251,248,1,65,137,192,37,252,255,7,0,0,65,193,232, 566 251,1,30,15,183,70,252,254,252,233,244,1,255,72,252,247,208,139,108,36,96,
557 11,61,252,255,7,0,0,15,132,244,249,248,2,137,252,233,137,194,232,251,1,29, 567 139,139,233,137,116,36,100,59,139,233,137,149,233,15,131,244,249,248,2,139,
558 139,149,233,15,182,78,252,253,137,4,202,199,68,202,4,237,139,6,15,182,204, 568 20,135,137,252,233,232,251,1,31,139,149,233,15,182,78,252,253,137,4,202,199,
559 15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,3,184,1,8,0,0,252, 569 68,202,4,237,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,
560 233,244,2,248,5,137,252,233,232,251,1,30,15,183,70,252,254,252,233,244,1, 570 252,235,248,3,137,252,233,232,251,1,30,15,183,70,252,254,72,252,247,208,252,
561 255,72,252,247,208,139,108,36,96,139,139,233,137,116,36,100,59,139,233,137, 571 233,244,2,255,72,252,247,208,139,106,252,248,139,173,233,139,4,135,252,233,
562 149,233,15,131,244,249,248,2,139,20,135,137,252,233,232,251,1,31,139,149, 572 244,158,255,72,252,247,208,139,106,252,248,139,173,233,139,4,135,252,233,
563 233,15,182,78,252,253,137,4,202,199,68,202,4,237,139,6,15,182,204,15,182, 573 244,159,255,15,182,252,236,15,182,192,129,124,253,252,234,4,239,15,133,244,
564 232,131,198,4,193,232,16,252,255,36,252,235,248,3,137,252,233,232,251,1,30, 574 36,139,44,252,234,129,124,253,194,4,239,15,135,244,251,255,252,242,15,16,
565 15,183,70,252,254,72,252,247,208,252,233,244,2,255,72,252,247,208,139,106, 575 4,194,252,242,15,45,192,252,242,15,42,200,102,15,46,193,255,15,133,244,36,
566 252,248,139,173,233,139,4,135,252,233,244,157,255,72,252,247,208,139,106, 576 59,133,233,15,131,244,36,193,224,3,3,133,233,129,120,253,4,239,15,132,244,
567 252,248,139,173,233,139,4,135,252,233,244,158,255,15,182,252,236,15,182,192, 577 248,72,139,40,72,137,44,202,248,1,139,6,15,182,204,15,182,232,131,198,4,193,
568 129,124,253,252,234,4,239,15,133,244,36,139,44,252,234,129,124,253,194,4, 578 232,16,252,255,36,252,235,248,2,131,189,233,0,15,132,244,249,139,141,233,
569 239,15,135,244,251,255,252,242,15,16,4,194,252,242,15,45,192,252,242,15,42, 579 252,246,129,233,235,15,132,244,36,15,182,78,252,253,248,3,255,199,68,202,
570 200,102,15,46,193,255,15,133,244,36,59,133,233,15,131,244,36,193,224,3,3, 580 4,237,252,233,244,1,248,5,129,124,253,194,4,239,15,133,244,36,139,4,194,252,
571 133,233,129,120,253,4,239,15,132,244,248,72,139,40,72,137,44,202,248,1,139, 581 233,244,158,255,15,182,252,236,15,182,192,72,252,247,208,139,4,135,129,124,
572 6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,2,131, 582 253,252,234,4,239,15,133,244,34,139,44,252,234,248,158,139,141,233,35,136,
573 189,233,0,15,132,244,249,139,141,233,252,246,129,233,235,15,132,244,36,15, 583 233,105,201,239,3,141,233,248,1,129,185,233,239,15,133,244,250,57,129,233,
574 182,78,252,253,248,3,255,199,68,202,4,237,252,233,244,1,248,5,129,124,253, 584 15,133,244,250,129,121,253,4,239,15,132,244,251,15,182,70,252,253,72,139,
575 194,4,239,15,133,244,36,139,4,194,252,233,244,157,255,15,182,252,236,15,182, 585 41,72,137,44,194,248,2,255,139,6,15,182,204,15,182,232,131,198,4,193,232,
576 192,72,252,247,208,139,4,135,129,124,253,252,234,4,239,15,133,244,34,139, 586 16,252,255,36,252,235,248,3,15,182,70,252,253,199,68,194,4,237,252,233,244,
577 44,252,234,248,157,139,141,233,35,136,233,105,201,239,3,141,233,248,1,129, 587 2,248,4,139,137,233,133,201,15,133,244,1,248,5,139,141,233,133,201,15,132,
578 185,233,239,15,133,244,250,57,129,233,15,133,244,250,129,121,253,4,239,15, 588 244,3,252,246,129,233,235,15,133,244,3,252,233,244,34,255,15,182,252,236,
579 132,244,251,15,182,70,252,253,72,139,41,72,137,44,194,248,2,255,139,6,15, 589 15,182,192,129,124,253,252,234,4,239,15,133,244,35,139,44,252,234,59,133,
580 182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,3,15,182,70, 590 233,15,131,244,35,193,224,3,3,133,233,129,120,253,4,239,15,132,244,248,72,
581 252,253,199,68,194,4,237,252,233,244,2,248,4,139,137,233,133,201,15,133,244, 591 139,40,72,137,44,202,248,1,139,6,15,182,204,15,182,232,131,198,4,193,232,
582 1,248,5,139,141,233,133,201,15,132,244,3,252,246,129,233,235,15,133,244,3, 592 16,252,255,36,252,235,248,2,131,189,233,0,15,132,244,249,139,141,233,252,
583 252,233,244,34,255,15,182,252,236,15,182,192,129,124,253,252,234,4,239,15, 593 246,129,233,235,15,132,244,35,255,15,182,78,252,253,248,3,199,68,202,4,237,
584 133,244,35,139,44,252,234,59,133,233,15,131,244,35,193,224,3,3,133,233,129, 594 252,233,244,1,255,15,182,252,236,15,182,192,129,124,253,252,234,4,239,15,
585 120,253,4,239,15,132,244,248,72,139,40,72,137,44,202,248,1,139,6,15,182,204, 595 133,244,39,139,44,252,234,129,124,253,194,4,239,15,135,244,251,255,15,133,
586 15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,2,131,189,233,0,15, 596 244,39,59,133,233,15,131,244,39,193,224,3,3,133,233,129,120,253,4,239,15,
587 132,244,249,139,141,233,252,246,129,233,235,15,132,244,35,255,15,182,78,252, 597 132,244,249,248,1,252,246,133,233,235,15,133,244,253,248,2,72,139,44,202,
588 253,248,3,199,68,202,4,237,252,233,244,1,255,15,182,252,236,15,182,192,129, 598 72,137,40,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,
589 124,253,252,234,4,239,15,133,244,39,139,44,252,234,129,124,253,194,4,239, 599 235,248,3,131,189,233,0,15,132,244,1,139,141,233,255,252,246,129,233,235,
590 15,135,244,251,255,15,133,244,39,59,133,233,15,131,244,39,193,224,3,3,133, 600 15,132,244,39,15,182,78,252,253,252,233,244,1,248,5,129,124,253,194,4,239,
591 233,129,120,253,4,239,15,132,244,249,248,1,252,246,133,233,235,15,133,244, 601 15,133,244,39,139,4,194,252,233,244,159,248,7,128,165,233,235,139,139,233,
592 253,248,2,72,139,44,202,72,137,40,139,6,15,182,204,15,182,232,131,198,4,193, 602 137,171,233,137,141,233,15,182,78,252,253,252,233,244,2,255,15,182,252,236,
593 232,16,252,255,36,252,235,248,3,131,189,233,0,15,132,244,1,139,141,233,255, 603 15,182,192,72,252,247,208,139,4,135,129,124,253,252,234,4,239,15,133,244,
594 252,246,129,233,235,15,132,244,39,15,182,78,252,253,252,233,244,1,248,5,129, 604 37,139,44,252,234,248,159,139,141,233,35,136,233,105,201,239,198,133,233,
595 124,253,194,4,239,15,133,244,39,139,4,194,252,233,244,158,248,7,128,165,233, 605 0,3,141,233,248,1,129,185,233,239,15,133,244,251,57,129,233,15,133,244,251,
596 235,139,139,233,137,171,233,137,141,233,15,182,78,252,253,252,233,244,2,255, 606 129,121,253,4,239,15,132,244,250,248,2,255,252,246,133,233,235,15,133,244,
597 15,182,252,236,15,182,192,72,252,247,208,139,4,135,129,124,253,252,234,4, 607 253,248,3,15,182,70,252,253,72,139,44,194,72,137,41,139,6,15,182,204,15,182,
598 239,15,133,244,37,139,44,252,234,248,158,139,141,233,35,136,233,105,201,239, 608 232,131,198,4,193,232,16,252,255,36,252,235,248,4,131,189,233,0,15,132,244,
599 198,133,233,0,3,141,233,248,1,129,185,233,239,15,133,244,251,57,129,233,15, 609 2,137,76,36,80,139,141,233,252,246,129,233,235,15,132,244,37,139,76,36,80,
600 133,244,251,129,121,253,4,239,15,132,244,250,248,2,255,252,246,133,233,235, 610 252,233,244,2,248,5,139,137,233,133,201,15,133,244,1,255,139,141,233,133,
601 15,133,244,253,248,3,15,182,70,252,253,72,139,44,194,72,137,41,139,6,15,182, 611 201,15,132,244,252,252,246,129,233,235,15,132,244,37,248,6,137,68,36,80,199,
602 204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,4,131,189,233, 612 68,36,84,237,137,108,36,32,139,76,36,96,137,145,233,76,141,68,36,80,137,252,
603 0,15,132,244,2,137,76,36,80,139,141,233,252,246,129,233,235,15,132,244,37, 613 234,137,205,137,116,36,100,232,251,1,32,139,149,233,139,108,36,32,137,193,
604 139,76,36,80,252,233,244,2,248,5,139,137,233,133,201,15,133,244,1,255,139, 614 252,233,244,2,248,7,128,165,233,235,139,131,233,137,171,233,137,133,233,252,
605 141,233,133,201,15,132,244,252,252,246,129,233,235,15,132,244,37,248,6,137, 615 233,244,3,255,15,182,252,236,15,182,192,129,124,253,252,234,4,239,15,133,
606 68,36,80,199,68,36,84,237,137,108,36,32,139,76,36,96,137,145,233,76,141,68, 616 244,38,139,44,252,234,59,133,233,15,131,244,38,193,224,3,3,133,233,129,120,
607 36,80,137,252,234,137,205,137,116,36,100,232,251,1,32,139,149,233,139,108, 617 253,4,239,15,132,244,249,248,1,252,246,133,233,235,15,133,244,253,248,2,72,
608 36,32,137,193,252,233,244,2,248,7,128,165,233,235,139,131,233,137,171,233, 618 139,12,202,72,137,8,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,
609 137,133,233,252,233,244,3,255,15,182,252,236,15,182,192,129,124,253,252,234, 619 255,36,252,235,248,3,131,189,233,0,15,132,244,1,255,139,141,233,252,246,129,
610 4,239,15,133,244,38,139,44,252,234,59,133,233,15,131,244,38,193,224,3,3,133, 620 233,235,15,132,244,38,15,182,78,252,253,252,233,244,1,248,7,128,165,233,235,
611 233,129,120,253,4,239,15,132,244,249,248,1,252,246,133,233,235,15,133,244, 621 139,139,233,137,171,233,137,141,233,15,182,78,252,253,252,233,244,2,255,137,
612 253,248,2,72,139,12,202,72,137,8,139,6,15,182,204,15,182,232,131,198,4,193, 622 124,36,80,139,60,199,248,1,141,12,202,139,105,252,248,252,246,133,233,235,
613 232,16,252,255,36,252,235,248,3,131,189,233,0,15,132,244,1,255,139,141,233, 623 15,133,244,253,248,2,139,68,36,84,131,232,1,15,132,244,250,1,252,248,59,133,
614 252,246,129,233,235,15,132,244,38,15,182,78,252,253,252,233,244,1,248,7,128, 624 233,15,135,244,251,41,252,248,193,231,3,3,189,233,248,3,72,139,41,131,193,
615 165,233,235,139,139,233,137,171,233,137,141,233,15,182,78,252,253,252,233, 625 8,72,137,47,131,199,8,131,232,1,15,133,244,3,248,4,139,124,36,80,139,6,15,
616 244,2,255,137,124,36,80,139,60,199,248,1,141,12,202,139,105,252,248,252,246, 626 182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,5,139,76,36,
617 133,233,235,15,133,244,253,248,2,139,68,36,84,131,232,1,15,132,244,250,1, 627 96,137,145,233,137,252,234,65,137,192,137,205,137,116,36,100,232,251,1,33,
618 252,248,59,133,233,15,135,244,251,41,252,248,193,231,3,3,189,233,248,3,72, 628 139,149,233,15,182,78,252,253,252,233,244,1,248,7,255,128,165,233,235,139,
619 139,41,131,193,8,72,137,47,131,199,8,131,232,1,15,133,244,3,248,4,139,124, 629 131,233,137,171,233,137,133,233,252,233,244,2,255,3,68,36,84,255,129,124,
620 36,80,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235, 630 253,202,4,239,139,44,202,15,133,244,51,141,84,202,8,137,114,252,252,139,181,
621 248,5,139,76,36,96,137,145,233,137,252,234,65,137,192,137,205,137,116,36, 631 233,139,14,15,182,252,233,15,182,205,131,198,4,252,255,36,252,235,255,141,
622 100,232,251,1,33,139,149,233,15,182,78,252,253,252,233,244,1,248,7,255,128, 632 76,202,8,137,215,139,105,252,248,129,121,253,252,252,239,15,133,244,28,248,
623 165,233,235,139,131,233,137,171,233,137,133,233,252,233,244,2,255,3,68,36, 633 52,139,114,252,252,252,247,198,237,15,133,244,253,248,1,137,106,252,248,137,
624 84,255,129,124,253,202,4,239,139,44,202,15,133,244,51,141,84,202,8,137,114, 634 68,36,84,131,232,1,15,132,244,249,248,2,72,139,41,131,193,8,72,137,47,131,
625 252,252,139,181,233,139,14,15,182,252,233,15,182,205,131,198,4,252,255,36, 635 199,8,131,232,1,15,133,244,2,139,106,252,248,248,3,139,68,36,84,128,189,233,
626 252,235,255,141,76,202,8,137,215,139,105,252,248,129,121,253,252,252,239, 636 1,15,135,244,251,248,4,139,181,233,139,14,15,182,252,233,15,182,205,131,198,
627 15,133,244,28,248,52,139,114,252,252,252,247,198,237,15,133,244,253,248,1, 637 4,252,255,36,252,235,248,5,255,252,247,198,237,15,133,244,4,15,182,78,252,
628 137,106,252,248,137,68,36,84,131,232,1,15,132,244,249,248,2,72,139,41,131, 638 253,72,252,247,209,141,12,202,139,121,252,248,139,191,233,139,191,233,252,
629 193,8,72,137,47,131,199,8,131,232,1,15,133,244,2,139,106,252,248,248,3,139, 639 233,244,4,248,7,129,252,238,239,252,247,198,237,15,133,244,254,41,252,242,
630 68,36,84,128,189,233,1,15,135,244,251,248,4,139,181,233,139,14,15,182,252, 640 137,215,139,114,252,252,252,233,244,1,248,8,129,198,239,252,233,244,1,255,
631 233,15,182,205,131,198,4,252,255,36,252,235,248,5,255,252,247,198,237,15, 641 141,76,202,8,72,139,105,232,72,139,65,252,240,72,137,41,72,137,65,8,139,105,
632 133,244,4,15,182,78,252,253,72,252,247,209,141,12,202,139,121,252,248,139, 642 224,139,65,228,137,105,252,248,137,65,252,252,129,252,248,239,184,237,15,
633 191,233,139,191,233,252,233,244,4,248,7,129,252,238,239,252,247,198,237,15, 643 133,244,28,137,202,137,114,252,252,139,181,233,139,14,15,182,252,233,15,182,
634 133,244,254,41,252,242,137,215,139,114,252,252,252,233,244,1,248,8,129,198, 644 205,131,198,4,252,255,36,252,235,255,137,124,36,80,137,92,36,84,139,108,202,
635 239,252,233,244,1,255,141,76,202,8,72,139,105,232,72,139,65,252,240,72,137, 645 252,240,139,68,202,252,248,139,157,233,131,198,4,139,189,233,248,1,57,216,
636 41,72,137,65,8,139,105,224,139,65,228,137,105,252,248,137,65,252,252,129, 646 15,131,244,251,129,124,253,199,4,239,15,132,244,250,255,252,242,15,42,192,
637 252,248,239,184,237,15,133,244,28,137,202,137,114,252,252,139,181,233,139, 647 255,219,68,202,252,248,255,72,139,44,199,72,137,108,202,8,131,192,1,255,137,
638 14,15,182,252,233,15,182,205,131,198,4,252,255,36,252,235,255,137,124,36, 648 68,202,252,248,248,2,15,183,70,252,254,141,180,253,134,233,248,3,139,92,36,
639 80,137,92,36,84,139,108,202,252,240,139,68,202,252,248,139,157,233,131,198, 649 84,139,124,36,80,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,
640 4,139,189,233,248,1,57,216,15,131,244,251,129,124,253,199,4,239,15,132,244, 650 36,252,235,248,4,131,192,1,255,137,68,202,252,248,255,252,233,244,1,248,5,
641 250,255,252,242,15,42,192,255,219,68,202,252,248,255,72,139,44,199,72,137, 651 41,216,248,6,59,133,233,15,135,244,3,105,252,248,239,3,189,233,129,191,233,
642 108,202,8,131,192,1,255,137,68,202,252,248,248,2,15,183,70,252,254,141,180, 652 239,15,132,244,253,141,92,24,1,72,139,175,233,72,139,135,233,72,137,44,202,
643 253,134,233,248,3,139,92,36,84,139,124,36,80,139,6,15,182,204,15,182,232, 653 72,137,68,202,8,137,92,202,252,248,252,233,244,2,248,7,131,192,1,252,233,
644 131,198,4,193,232,16,252,255,36,252,235,248,4,131,192,1,255,137,68,202,252, 654 244,6,255,129,124,253,202,252,236,239,15,133,244,251,139,108,202,232,129,
645 248,255,252,233,244,1,248,5,41,216,248,6,59,133,233,15,135,244,3,105,252, 655 124,253,202,252,244,239,15,133,244,251,129,124,253,202,252,252,239,15,133,
646 248,239,3,189,233,129,191,233,239,15,132,244,253,141,92,24,1,72,139,175,233, 656 244,251,128,189,233,235,15,133,244,251,141,180,253,134,233,199,68,202,252,
647 72,139,135,233,72,137,44,202,72,137,68,202,8,137,92,202,252,248,252,233,244, 657 248,0,0,0,0,248,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,
648 2,248,7,131,192,1,252,233,244,6,255,129,124,253,202,252,236,239,15,133,244, 658 36,252,235,248,5,198,70,252,252,235,141,180,253,134,233,198,6,235,252,233,
649 251,139,108,202,232,129,124,253,202,252,244,239,15,133,244,251,129,124,253, 659 244,1,255,15,182,252,236,15,182,192,137,124,36,80,141,188,253,194,233,141,
650 202,252,252,239,15,133,244,251,128,189,233,235,15,133,244,251,141,180,253, 660 12,202,43,122,252,252,133,252,237,15,132,244,251,141,108,252,233,252,248,
651 134,233,199,68,202,252,248,0,0,0,0,248,1,139,6,15,182,204,15,182,232,131, 661 57,215,15,131,244,248,248,1,72,139,71,252,248,131,199,8,72,137,1,131,193,
652 198,4,193,232,16,252,255,36,252,235,248,5,198,70,252,252,235,141,180,253, 662 8,57,252,233,15,131,244,249,57,215,15,130,244,1,248,2,199,65,4,237,131,193,
653 134,233,198,6,235,252,233,244,1,255,15,182,252,236,15,182,192,137,124,36, 663 8,57,252,233,15,130,244,2,248,3,139,124,36,80,139,6,15,182,204,15,182,232,
654 80,141,188,253,194,233,141,12,202,43,122,252,252,133,252,237,15,132,244,251, 664 131,198,4,193,232,16,252,255,36,252,235,248,5,199,68,36,84,1,0,0,0,137,208,
655 141,108,252,233,252,248,57,215,15,131,244,248,248,1,72,139,71,252,248,131, 665 41,252,248,15,134,244,3,137,197,193,252,237,3,131,197,1,137,108,36,84,139,
656 199,8,72,137,1,131,193,8,57,252,233,15,131,244,249,57,215,15,130,244,1,248, 666 108,36,96,1,200,59,133,233,15,135,244,253,248,6,255,72,139,71,252,248,131,
657 2,199,65,4,237,131,193,8,57,252,233,15,130,244,2,248,3,139,124,36,80,139, 667 199,8,72,137,1,131,193,8,57,215,15,130,244,6,252,233,244,3,248,7,137,149,
658 6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,5,199, 668 233,137,141,233,137,116,36,100,41,215,139,84,36,84,131,252,234,1,137,252,
659 68,36,84,1,0,0,0,137,208,41,252,248,15,134,244,3,137,197,193,252,237,3,131, 669 233,232,251,1,0,139,149,233,139,141,233,1,215,252,233,244,6,255,193,225,3,
660 197,1,137,108,36,84,139,108,36,96,1,200,59,133,233,15,135,244,253,248,6,255, 670 255,248,1,139,114,252,252,137,68,36,84,252,247,198,237,15,133,244,253,255,
661 72,139,71,252,248,131,199,8,72,137,1,131,193,8,57,215,15,130,244,6,252,233, 671 248,13,137,215,131,232,1,15,132,244,249,248,2,72,139,44,15,72,137,111,252,
662 244,3,248,7,137,149,233,137,141,233,137,116,36,100,41,215,139,84,36,84,131, 672 248,131,199,8,131,232,1,15,133,244,2,248,3,139,68,36,84,15,182,110,252,255,
663 252,234,1,137,252,233,232,251,1,0,139,149,233,139,141,233,1,215,252,233,244, 673 248,5,57,197,15,135,244,252,255,72,139,44,10,72,137,106,252,248,255,248,5,
664 6,255,193,225,3,255,248,1,139,114,252,252,137,68,36,84,252,247,198,237,15, 674 56,70,252,255,15,135,244,252,255,15,182,78,252,253,72,252,247,209,141,20,
665 133,244,253,255,248,13,137,215,131,232,1,15,132,244,249,248,2,72,139,44,15, 675 202,139,122,252,248,139,191,233,139,191,233,139,6,15,182,204,15,182,232,131,
666 72,137,111,252,248,131,199,8,131,232,1,15,133,244,2,248,3,139,68,36,84,15, 676 198,4,193,232,16,252,255,36,252,235,248,6,255,199,71,252,252,237,131,199,
667 182,110,252,255,248,5,57,197,15,135,244,252,255,72,139,44,10,72,137,106,252, 677 8,255,199,68,194,252,244,237,255,131,192,1,252,233,244,5,248,7,141,174,233,
668 248,255,248,5,56,70,252,255,15,135,244,252,255,15,182,78,252,253,72,252,247, 678 252,247,197,237,15,133,244,14,41,252,234,255,1,252,233,255,137,252,245,209,
669 209,141,20,202,139,122,252,248,139,191,233,139,191,233,139,6,15,182,204,15, 679 252,237,129,229,239,102,131,172,253,43,233,1,15,132,244,140,255,141,12,202,
670 182,232,131,198,4,193,232,16,252,255,36,252,235,248,6,255,199,71,252,252, 680 255,129,121,253,4,239,15,135,244,53,129,121,253,12,239,15,135,244,53,255,
671 237,131,199,8,255,199,68,194,252,244,237,255,131,192,1,252,233,244,5,248, 681 139,105,20,255,129,252,253,239,15,135,244,53,255,252,242,15,16,1,252,242,
672 7,141,174,233,252,247,197,237,15,133,244,14,41,252,234,255,1,252,233,255, 682 15,16,73,8,255,252,242,15,88,65,16,252,242,15,17,1,133,252,237,15,136,244,
673 137,252,245,209,252,237,129,229,239,102,131,172,253,43,233,1,15,132,244,140, 683 249,255,15,140,244,249,255,102,15,46,200,248,1,252,242,15,17,65,24,255,221,
674 255,141,12,202,255,129,121,253,4,239,15,135,244,53,129,121,253,12,239,15, 684 65,8,221,1,255,220,65,16,221,17,221,81,24,133,252,237,15,136,244,247,255,
675 135,244,53,255,139,105,20,255,129,252,253,239,15,135,244,53,255,252,242,15, 685 221,81,24,15,140,244,247,255,217,201,248,1,255,15,183,70,252,254,255,15,131,
676 16,1,252,242,15,16,73,8,255,252,242,15,88,65,16,252,242,15,17,1,133,252,237, 686 244,248,141,180,253,134,233,255,141,180,253,134,233,15,183,70,252,254,15,
677 15,136,244,249,255,15,140,244,249,255,102,15,46,200,248,1,252,242,15,17,65, 687 131,245,255,15,130,244,248,141,180,253,134,233,255,248,3,102,15,46,193,252,
678 24,255,221,65,8,221,1,255,220,65,16,221,17,221,81,24,133,252,237,15,136,244, 688 233,244,1,255,141,12,202,139,105,4,129,252,253,239,15,132,244,247,255,137,
679 247,255,221,81,24,15,140,244,247,255,217,201,248,1,255,15,183,70,252,254, 689 105,252,252,139,41,137,105,252,248,252,233,245,255,141,180,253,134,233,139,
680 255,15,131,244,248,141,180,253,134,233,255,141,180,253,134,233,15,183,70, 690 1,137,105,252,252,137,65,252,248,255,139,139,233,139,4,129,72,139,128,233,
681 252,254,15,131,245,255,15,130,244,248,141,180,253,134,233,255,248,3,102,15, 691 139,108,36,96,137,147,233,137,171,233,76,137,100,36,80,76,137,108,36,32,76,
682 46,193,252,233,244,1,255,141,12,202,139,105,4,129,252,253,239,15,132,244, 692 137,116,36,24,76,137,124,36,16,72,137,225,72,129,252,236,239,102,15,127,49,
683 247,255,137,105,252,252,139,41,137,105,252,248,252,233,245,255,141,180,253, 693 102,15,127,185,233,102,68,15,127,129,233,102,68,15,127,137,233,102,68,15,
684 134,233,139,1,137,105,252,252,137,65,252,248,255,139,139,233,139,4,129,72, 694 127,145,233,102,68,15,127,153,233,102,68,15,127,161,233,102,68,15,127,169,
685 139,128,233,139,108,36,96,137,147,233,137,171,233,76,137,100,36,80,76,137, 695 233,102,68,15,127,177,233,102,68,15,127,185,233,252,255,224,255,141,180,253,
686 108,36,32,76,137,116,36,24,76,137,124,36,16,72,137,225,72,129,252,236,239, 696 134,233,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,
687 102,15,127,49,102,15,127,185,233,102,68,15,127,129,233,102,68,15,127,137, 697 255,137,252,245,209,252,237,129,229,239,102,131,172,253,43,233,1,15,132,244,
688 233,102,68,15,127,145,233,102,68,15,127,153,233,102,68,15,127,161,233,102, 698 142,255,139,190,233,139,108,36,96,141,12,202,59,141,233,15,135,244,23,15,
689 68,15,127,169,233,102,68,15,127,177,233,102,68,15,127,185,233,252,255,224, 699 182,142,233,57,200,15,134,244,249,248,2,255,15,183,70,252,254,252,233,245,
690 255,141,180,253,134,233,139,6,15,182,204,15,182,232,131,198,4,193,232,16, 700 255,248,3,199,68,194,252,252,237,131,192,1,57,200,15,134,244,3,252,233,244,
691 252,255,36,252,235,255,137,252,245,209,252,237,129,229,239,102,131,172,253, 701 2,255,141,44,197,237,141,4,194,139,122,252,248,137,104,252,252,137,120,252,
692 43,233,1,15,132,244,142,255,139,190,233,139,108,36,96,141,12,202,59,141,233, 702 248,139,108,36,96,141,12,200,59,141,233,15,135,244,22,137,209,137,194,15,
693 15,135,244,23,15,182,142,233,57,200,15,134,244,249,248,2,255,15,183,70,252, 703 182,174,233,133,252,237,15,132,244,248,248,1,131,193,8,57,209,15,131,244,
694 254,252,233,245,255,248,3,199,68,194,252,252,237,131,192,1,57,200,15,134, 704 249,139,121,252,248,137,56,139,121,252,252,137,120,4,131,192,8,199,65,252,
695 244,3,252,233,244,2,255,141,44,197,237,141,4,194,139,122,252,248,137,104, 705 252,237,131,252,237,1,15,133,244,1,248,2,255,139,190,233,139,6,15,182,204,
696 252,252,137,120,252,248,139,108,36,96,141,12,200,59,141,233,15,135,244,22, 706 15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,248,3,199,64,4,237,
697 137,209,137,194,15,182,174,233,133,252,237,15,132,244,248,248,1,131,193,8, 707 131,192,8,131,252,237,1,15,133,244,3,252,233,244,2,255,139,106,252,248,72,
698 57,209,15,131,244,249,139,121,252,248,137,56,139,121,252,252,137,120,4,131, 708 139,189,233,139,108,36,96,141,68,194,252,248,137,149,233,141,136,233,59,141,
699 192,8,199,65,252,252,237,131,252,237,1,15,133,244,1,248,2,255,139,190,233, 709 233,137,133,233,255,137,252,233,255,72,137,252,250,137,252,233,255,15,135,
700 139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,248, 710 244,21,199,131,233,237,255,252,255,215,255,252,255,147,233,255,199,131,233,
701 3,199,64,4,237,131,192,8,131,252,237,1,15,133,244,3,252,233,244,2,255,139, 711 237,139,149,233,141,12,194,252,247,217,3,141,233,139,114,252,252,252,233,
702 106,252,248,72,139,189,233,139,108,36,96,141,68,194,252,248,137,149,233,141, 712 244,12,255,254,0
703 136,233,59,141,233,137,133,233,255,137,252,233,255,72,137,252,250,137,252,
704 233,255,15,135,244,21,199,131,233,237,255,252,255,215,255,252,255,147,233,
705 255,199,131,233,237,139,149,233,141,12,194,252,247,217,3,141,233,139,114,
706 252,252,252,233,244,12,255,254,0
707}; 713};
708 714
709enum { 715enum {
@@ -853,6 +859,7 @@ enum {
853 GLOB_vm_foldfpm, 859 GLOB_vm_foldfpm,
854 GLOB_vm_foldarith, 860 GLOB_vm_foldarith,
855 GLOB_vm_cpuid, 861 GLOB_vm_cpuid,
862 GLOB_vm_ffi_call,
856 GLOB_BC_MODVN_Z, 863 GLOB_BC_MODVN_Z,
857 GLOB_BC_TGETS_Z, 864 GLOB_BC_TGETS_Z,
858 GLOB_BC_TSETS_Z, 865 GLOB_BC_TSETS_Z,
@@ -1005,6 +1012,7 @@ static const char *const globnames[] = {
1005 "vm_foldfpm", 1012 "vm_foldfpm",
1006 "vm_foldarith", 1013 "vm_foldarith",
1007 "vm_cpuid", 1014 "vm_cpuid",
1015 "vm_ffi_call@4",
1008 "BC_MODVN_Z", 1016 "BC_MODVN_Z",
1009 "BC_TGETS_Z", 1017 "BC_TGETS_Z",
1010 "BC_TSETS_Z", 1018 "BC_TSETS_Z",
@@ -1445,6 +1453,11 @@ static void build_subroutines(BuildCtx *ctx, int cmov, int sse)
1445 dasm_put(Dst, 8995); 1453 dasm_put(Dst, 8995);
1446 } 1454 }
1447 dasm_put(Dst, 9413); 1455 dasm_put(Dst, 9413);
1456#if LJ_HASFFI
1457#define DtE(_V) (int)(ptrdiff_t)&(((CCallState *)0)_V)
1458 dasm_put(Dst, 9441, 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(->fpr[0]), DtE(->fpr[1]), DtE(->fpr[2]));
1459 dasm_put(Dst, 9530, DtE(->fpr[3]), DtE(->func), DtE(->gpr[0]), DtE(->fpr[0]));
1460#endif
1448} 1461}
1449 1462
1450/* Generate the code for a single instruction. */ 1463/* Generate the code for a single instruction. */
@@ -1460,20 +1473,20 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
1460 /* Remember: all ops branch for a true comparison, fall through otherwise. */ 1473 /* Remember: all ops branch for a true comparison, fall through otherwise. */
1461 1474
1462 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:
1463 dasm_put(Dst, 9439, LJ_TISNUM, LJ_TISNUM); 1476 dasm_put(Dst, 9556, LJ_TISNUM, LJ_TISNUM);
1464 if (sse) { 1477 if (sse) {
1465 dasm_put(Dst, 9460); 1478 dasm_put(Dst, 9577);
1466 } else { 1479 } else {
1467 dasm_put(Dst, 9475); 1480 dasm_put(Dst, 9592);
1468 if (cmov) { 1481 if (cmov) {
1469 dasm_put(Dst, 9485); 1482 dasm_put(Dst, 9602);
1470 } else { 1483 } else {
1471 dasm_put(Dst, 9491); 1484 dasm_put(Dst, 9608);
1472 } 1485 }
1473 } 1486 }
1474 switch (op) { 1487 switch (op) {
1475 case BC_ISLT: 1488 case BC_ISLT:
1476 dasm_put(Dst, 9498); 1489 dasm_put(Dst, 9615);
1477 break; 1490 break;
1478 case BC_ISGE: 1491 case BC_ISGE:
1479 dasm_put(Dst, 9293); 1492 dasm_put(Dst, 9293);
@@ -1482,599 +1495,599 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
1482 dasm_put(Dst, 5854); 1495 dasm_put(Dst, 5854);
1483 break; 1496 break;
1484 case BC_ISGT: 1497 case BC_ISGT:
1485 dasm_put(Dst, 9503); 1498 dasm_put(Dst, 9620);
1486 break; 1499 break;
1487 default: break; /* Shut up GCC. */ 1500 default: break; /* Shut up GCC. */
1488 } 1501 }
1489 dasm_put(Dst, 9508, -BCBIAS_J*4); 1502 dasm_put(Dst, 9625, -BCBIAS_J*4);
1490 break; 1503 break;
1491 1504
1492 case BC_ISEQV: case BC_ISNEV: 1505 case BC_ISEQV: case BC_ISNEV:
1493 vk = op == BC_ISEQV; 1506 vk = op == BC_ISEQV;
1494 dasm_put(Dst, 9542, LJ_TISNUM, LJ_TISNUM); 1507 dasm_put(Dst, 9659, LJ_TISNUM, LJ_TISNUM);
1495 if (sse) { 1508 if (sse) {
1496 dasm_put(Dst, 9568); 1509 dasm_put(Dst, 9685);
1497 } else { 1510 } else {
1498 dasm_put(Dst, 9580); 1511 dasm_put(Dst, 9697);
1499 if (cmov) { 1512 if (cmov) {
1500 dasm_put(Dst, 9485); 1513 dasm_put(Dst, 9602);
1501 } else { 1514 } else {
1502 dasm_put(Dst, 9491); 1515 dasm_put(Dst, 9608);
1503 } 1516 }
1504 } 1517 }
1505 iseqne_fp: 1518 iseqne_fp:
1506 if (vk) { 1519 if (vk) {
1507 dasm_put(Dst, 9587); 1520 dasm_put(Dst, 9704);
1508 } else { 1521 } else {
1509 dasm_put(Dst, 9596); 1522 dasm_put(Dst, 9713);
1510 } 1523 }
1511 iseqne_end: 1524 iseqne_end:
1512 if (vk) { 1525 if (vk) {
1513 dasm_put(Dst, 9605, -BCBIAS_J*4); 1526 dasm_put(Dst, 9722, -BCBIAS_J*4);
1514 } else { 1527 } else {
1515 dasm_put(Dst, 9620, -BCBIAS_J*4); 1528 dasm_put(Dst, 9737, -BCBIAS_J*4);
1516 } 1529 }
1517 dasm_put(Dst, 9522); 1530 dasm_put(Dst, 9639);
1518 if (op == BC_ISEQV || op == BC_ISNEV) { 1531 if (op == BC_ISEQV || op == BC_ISNEV) {
1519 dasm_put(Dst, 9635, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq); 1532 dasm_put(Dst, 9752, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq);
1520 if (vk) { 1533 if (vk) {
1521 dasm_put(Dst, 9693); 1534 dasm_put(Dst, 9810);
1522 } else { 1535 } else {
1523 dasm_put(Dst, 9697); 1536 dasm_put(Dst, 9814);
1524 } 1537 }
1525 dasm_put(Dst, 9703); 1538 dasm_put(Dst, 9820);
1526 } 1539 }
1527 break; 1540 break;
1528 case BC_ISEQS: case BC_ISNES: 1541 case BC_ISEQS: case BC_ISNES:
1529 vk = op == BC_ISEQS; 1542 vk = op == BC_ISEQS;
1530 dasm_put(Dst, 9708, LJ_TSTR); 1543 dasm_put(Dst, 9825, LJ_TSTR);
1531 iseqne_test: 1544 iseqne_test:
1532 if (vk) { 1545 if (vk) {
1533 dasm_put(Dst, 9591); 1546 dasm_put(Dst, 9708);
1534 } else { 1547 } else {
1535 dasm_put(Dst, 2772); 1548 dasm_put(Dst, 2772);
1536 } 1549 }
1537 goto iseqne_end; 1550 goto iseqne_end;
1538 case BC_ISEQN: case BC_ISNEN: 1551 case BC_ISEQN: case BC_ISNEN:
1539 vk = op == BC_ISEQN; 1552 vk = op == BC_ISEQN;
1540 dasm_put(Dst, 9732, LJ_TISNUM); 1553 dasm_put(Dst, 9849, LJ_TISNUM);
1541 if (sse) { 1554 if (sse) {
1542 dasm_put(Dst, 9746); 1555 dasm_put(Dst, 9863);
1543 } else { 1556 } else {
1544 dasm_put(Dst, 9758); 1557 dasm_put(Dst, 9875);
1545 if (cmov) { 1558 if (cmov) {
1546 dasm_put(Dst, 9485); 1559 dasm_put(Dst, 9602);
1547 } else { 1560 } else {
1548 dasm_put(Dst, 9491); 1561 dasm_put(Dst, 9608);
1549 } 1562 }
1550 } 1563 }
1551 goto iseqne_fp; 1564 goto iseqne_fp;
1552 case BC_ISEQP: case BC_ISNEP: 1565 case BC_ISEQP: case BC_ISNEP:
1553 vk = op == BC_ISEQP; 1566 vk = op == BC_ISEQP;
1554 dasm_put(Dst, 9765); 1567 dasm_put(Dst, 9882);
1555 goto iseqne_test; 1568 goto iseqne_test;
1556 1569
1557 /* -- Unary test and copy ops ------------------------------------------- */ 1570 /* -- Unary test and copy ops ------------------------------------------- */
1558 1571
1559 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:
1560 dasm_put(Dst, 9777, LJ_TISTRUECOND); 1573 dasm_put(Dst, 9894, LJ_TISTRUECOND);
1561 if (op == BC_IST || op == BC_ISTC) { 1574 if (op == BC_IST || op == BC_ISTC) {
1562 dasm_put(Dst, 9789); 1575 dasm_put(Dst, 9906);
1563 } else { 1576 } else {
1564 dasm_put(Dst, 9794); 1577 dasm_put(Dst, 9911);
1565 } 1578 }
1566 if (op == BC_ISTC || op == BC_ISFC) { 1579 if (op == BC_ISTC || op == BC_ISFC) {
1567 dasm_put(Dst, 9799); 1580 dasm_put(Dst, 9916);
1568 } 1581 }
1569 dasm_put(Dst, 9810, -BCBIAS_J*4); 1582 dasm_put(Dst, 9927, -BCBIAS_J*4);
1570 break; 1583 break;
1571 1584
1572 /* -- Unary ops --------------------------------------------------------- */ 1585 /* -- Unary ops --------------------------------------------------------- */
1573 1586
1574 case BC_MOV: 1587 case BC_MOV:
1575 dasm_put(Dst, 9842); 1588 dasm_put(Dst, 9959);
1576 break; 1589 break;
1577 case BC_NOT: 1590 case BC_NOT:
1578 dasm_put(Dst, 9870, LJ_TISTRUECOND, LJ_TTRUE); 1591 dasm_put(Dst, 9987, LJ_TISTRUECOND, LJ_TTRUE);
1579 break; 1592 break;
1580 case BC_UNM: 1593 case BC_UNM:
1581 dasm_put(Dst, 9906, LJ_TISNUM); 1594 dasm_put(Dst, 10023, LJ_TISNUM);
1582 if (sse) { 1595 if (sse) {
1583 dasm_put(Dst, 9917, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32)); 1596 dasm_put(Dst, 10034, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32));
1584 } else { 1597 } else {
1585 dasm_put(Dst, 9942); 1598 dasm_put(Dst, 10059);
1586 } 1599 }
1587 dasm_put(Dst, 9522); 1600 dasm_put(Dst, 9639);
1588 break; 1601 break;
1589 case BC_LEN: 1602 case BC_LEN:
1590 dasm_put(Dst, 9951, LJ_TSTR); 1603 dasm_put(Dst, 10068, LJ_TSTR);
1591 if (sse) { 1604 if (sse) {
1592 dasm_put(Dst, 9965, Dt5(->len)); 1605 dasm_put(Dst, 10082, Dt5(->len));
1593 } else { 1606 } else {
1594 dasm_put(Dst, 9983, Dt5(->len)); 1607 dasm_put(Dst, 10100, Dt5(->len));
1595 } 1608 }
1596 dasm_put(Dst, 9992, LJ_TTAB); 1609 dasm_put(Dst, 10109, LJ_TTAB);
1597 if (sse) { 1610 if (sse) {
1598 dasm_put(Dst, 10033); 1611 dasm_put(Dst, 10150);
1599 } else { 1612 } else {
1600 } 1613 }
1601 dasm_put(Dst, 10042); 1614 dasm_put(Dst, 10159);
1602 break; 1615 break;
1603 1616
1604 /* -- Binary ops -------------------------------------------------------- */ 1617 /* -- Binary ops -------------------------------------------------------- */
1605 1618
1606 1619
1607 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV: 1620 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV:
1608 dasm_put(Dst, 10052); 1621 dasm_put(Dst, 10169);
1609 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1622 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1610 switch (vk) { 1623 switch (vk) {
1611 case 0: 1624 case 0:
1612 dasm_put(Dst, 10060, LJ_TISNUM); 1625 dasm_put(Dst, 10177, LJ_TISNUM);
1613 if (sse) { 1626 if (sse) {
1614 dasm_put(Dst, 10072); 1627 dasm_put(Dst, 10189);
1615 } else { 1628 } else {
1616 dasm_put(Dst, 10086); 1629 dasm_put(Dst, 10203);
1617 } 1630 }
1618 break; 1631 break;
1619 case 1: 1632 case 1:
1620 dasm_put(Dst, 10094, LJ_TISNUM); 1633 dasm_put(Dst, 10211, LJ_TISNUM);
1621 if (sse) { 1634 if (sse) {
1622 dasm_put(Dst, 10106); 1635 dasm_put(Dst, 10223);
1623 } else { 1636 } else {
1624 dasm_put(Dst, 10120); 1637 dasm_put(Dst, 10237);
1625 } 1638 }
1626 break; 1639 break;
1627 default: 1640 default:
1628 dasm_put(Dst, 10128, LJ_TISNUM, LJ_TISNUM); 1641 dasm_put(Dst, 10245, LJ_TISNUM, LJ_TISNUM);
1629 if (sse) { 1642 if (sse) {
1630 dasm_put(Dst, 10150); 1643 dasm_put(Dst, 10267);
1631 } else { 1644 } else {
1632 dasm_put(Dst, 10164); 1645 dasm_put(Dst, 10281);
1633 } 1646 }
1634 break; 1647 break;
1635 } 1648 }
1636 if (sse) { 1649 if (sse) {
1637 dasm_put(Dst, 9935); 1650 dasm_put(Dst, 10052);
1638 } else { 1651 } else {
1639 dasm_put(Dst, 9947); 1652 dasm_put(Dst, 10064);
1640 } 1653 }
1641 dasm_put(Dst, 9522); 1654 dasm_put(Dst, 9639);
1642 break; 1655 break;
1643 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV: 1656 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV:
1644 dasm_put(Dst, 10052); 1657 dasm_put(Dst, 10169);
1645 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1658 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1646 switch (vk) { 1659 switch (vk) {
1647 case 0: 1660 case 0:
1648 dasm_put(Dst, 10060, LJ_TISNUM); 1661 dasm_put(Dst, 10177, LJ_TISNUM);
1649 if (sse) { 1662 if (sse) {
1650 dasm_put(Dst, 10172); 1663 dasm_put(Dst, 10289);
1651 } else { 1664 } else {
1652 dasm_put(Dst, 10186); 1665 dasm_put(Dst, 10303);
1653 } 1666 }
1654 break; 1667 break;
1655 case 1: 1668 case 1:
1656 dasm_put(Dst, 10094, LJ_TISNUM); 1669 dasm_put(Dst, 10211, LJ_TISNUM);
1657 if (sse) { 1670 if (sse) {
1658 dasm_put(Dst, 10194); 1671 dasm_put(Dst, 10311);
1659 } else { 1672 } else {
1660 dasm_put(Dst, 10208); 1673 dasm_put(Dst, 10325);
1661 } 1674 }
1662 break; 1675 break;
1663 default: 1676 default:
1664 dasm_put(Dst, 10128, LJ_TISNUM, LJ_TISNUM); 1677 dasm_put(Dst, 10245, LJ_TISNUM, LJ_TISNUM);
1665 if (sse) { 1678 if (sse) {
1666 dasm_put(Dst, 10216); 1679 dasm_put(Dst, 10333);
1667 } else { 1680 } else {
1668 dasm_put(Dst, 10230); 1681 dasm_put(Dst, 10347);
1669 } 1682 }
1670 break; 1683 break;
1671 } 1684 }
1672 if (sse) { 1685 if (sse) {
1673 dasm_put(Dst, 9935); 1686 dasm_put(Dst, 10052);
1674 } else { 1687 } else {
1675 dasm_put(Dst, 9947); 1688 dasm_put(Dst, 10064);
1676 } 1689 }
1677 dasm_put(Dst, 9522); 1690 dasm_put(Dst, 9639);
1678 break; 1691 break;
1679 case BC_MULVN: case BC_MULNV: case BC_MULVV: 1692 case BC_MULVN: case BC_MULNV: case BC_MULVV:
1680 dasm_put(Dst, 10052); 1693 dasm_put(Dst, 10169);
1681 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1694 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1682 switch (vk) { 1695 switch (vk) {
1683 case 0: 1696 case 0:
1684 dasm_put(Dst, 10060, LJ_TISNUM); 1697 dasm_put(Dst, 10177, LJ_TISNUM);
1685 if (sse) { 1698 if (sse) {
1686 dasm_put(Dst, 10238); 1699 dasm_put(Dst, 10355);
1687 } else { 1700 } else {
1688 dasm_put(Dst, 10252); 1701 dasm_put(Dst, 10369);
1689 } 1702 }
1690 break; 1703 break;
1691 case 1: 1704 case 1:
1692 dasm_put(Dst, 10094, LJ_TISNUM); 1705 dasm_put(Dst, 10211, LJ_TISNUM);
1693 if (sse) { 1706 if (sse) {
1694 dasm_put(Dst, 10260); 1707 dasm_put(Dst, 10377);
1695 } else { 1708 } else {
1696 dasm_put(Dst, 10274); 1709 dasm_put(Dst, 10391);
1697 } 1710 }
1698 break; 1711 break;
1699 default: 1712 default:
1700 dasm_put(Dst, 10128, LJ_TISNUM, LJ_TISNUM); 1713 dasm_put(Dst, 10245, LJ_TISNUM, LJ_TISNUM);
1701 if (sse) { 1714 if (sse) {
1702 dasm_put(Dst, 10282); 1715 dasm_put(Dst, 10399);
1703 } else { 1716 } else {
1704 dasm_put(Dst, 10296); 1717 dasm_put(Dst, 10413);
1705 } 1718 }
1706 break; 1719 break;
1707 } 1720 }
1708 if (sse) { 1721 if (sse) {
1709 dasm_put(Dst, 9935); 1722 dasm_put(Dst, 10052);
1710 } else { 1723 } else {
1711 dasm_put(Dst, 9947); 1724 dasm_put(Dst, 10064);
1712 } 1725 }
1713 dasm_put(Dst, 9522); 1726 dasm_put(Dst, 9639);
1714 break; 1727 break;
1715 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV: 1728 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV:
1716 dasm_put(Dst, 10052); 1729 dasm_put(Dst, 10169);
1717 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1730 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1718 switch (vk) { 1731 switch (vk) {
1719 case 0: 1732 case 0:
1720 dasm_put(Dst, 10060, LJ_TISNUM); 1733 dasm_put(Dst, 10177, LJ_TISNUM);
1721 if (sse) { 1734 if (sse) {
1722 dasm_put(Dst, 10304); 1735 dasm_put(Dst, 10421);
1723 } else { 1736 } else {
1724 dasm_put(Dst, 10318); 1737 dasm_put(Dst, 10435);
1725 } 1738 }
1726 break; 1739 break;
1727 case 1: 1740 case 1:
1728 dasm_put(Dst, 10094, LJ_TISNUM); 1741 dasm_put(Dst, 10211, LJ_TISNUM);
1729 if (sse) { 1742 if (sse) {
1730 dasm_put(Dst, 10326); 1743 dasm_put(Dst, 10443);
1731 } else { 1744 } else {
1732 dasm_put(Dst, 10340); 1745 dasm_put(Dst, 10457);
1733 } 1746 }
1734 break; 1747 break;
1735 default: 1748 default:
1736 dasm_put(Dst, 10128, LJ_TISNUM, LJ_TISNUM); 1749 dasm_put(Dst, 10245, LJ_TISNUM, LJ_TISNUM);
1737 if (sse) { 1750 if (sse) {
1738 dasm_put(Dst, 10348); 1751 dasm_put(Dst, 10465);
1739 } else { 1752 } else {
1740 dasm_put(Dst, 10362); 1753 dasm_put(Dst, 10479);
1741 } 1754 }
1742 break; 1755 break;
1743 } 1756 }
1744 if (sse) { 1757 if (sse) {
1745 dasm_put(Dst, 9935); 1758 dasm_put(Dst, 10052);
1746 } else { 1759 } else {
1747 dasm_put(Dst, 9947); 1760 dasm_put(Dst, 10064);
1748 } 1761 }
1749 dasm_put(Dst, 9522); 1762 dasm_put(Dst, 9639);
1750 break; 1763 break;
1751 case BC_MODVN: 1764 case BC_MODVN:
1752 dasm_put(Dst, 10052); 1765 dasm_put(Dst, 10169);
1753 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1766 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1754 switch (vk) { 1767 switch (vk) {
1755 case 0: 1768 case 0:
1756 dasm_put(Dst, 10060, LJ_TISNUM); 1769 dasm_put(Dst, 10177, LJ_TISNUM);
1757 if (sse) { 1770 if (sse) {
1758 dasm_put(Dst, 10370); 1771 dasm_put(Dst, 10487);
1759 } else { 1772 } else {
1760 dasm_put(Dst, 10384); 1773 dasm_put(Dst, 10501);
1761 } 1774 }
1762 break; 1775 break;
1763 case 1: 1776 case 1:
1764 dasm_put(Dst, 10094, LJ_TISNUM); 1777 dasm_put(Dst, 10211, LJ_TISNUM);
1765 if (sse) { 1778 if (sse) {
1766 dasm_put(Dst, 10392); 1779 dasm_put(Dst, 10509);
1767 } else { 1780 } else {
1768 dasm_put(Dst, 10406); 1781 dasm_put(Dst, 10523);
1769 } 1782 }
1770 break; 1783 break;
1771 default: 1784 default:
1772 dasm_put(Dst, 10128, LJ_TISNUM, LJ_TISNUM); 1785 dasm_put(Dst, 10245, LJ_TISNUM, LJ_TISNUM);
1773 if (sse) { 1786 if (sse) {
1774 dasm_put(Dst, 10414); 1787 dasm_put(Dst, 10531);
1775 } else { 1788 } else {
1776 dasm_put(Dst, 10428); 1789 dasm_put(Dst, 10545);
1777 } 1790 }
1778 break; 1791 break;
1779 } 1792 }
1780 dasm_put(Dst, 10436); 1793 dasm_put(Dst, 10553);
1781 if (sse) { 1794 if (sse) {
1782 dasm_put(Dst, 9935); 1795 dasm_put(Dst, 10052);
1783 } else { 1796 } else {
1784 dasm_put(Dst, 9947); 1797 dasm_put(Dst, 10064);
1785 } 1798 }
1786 dasm_put(Dst, 9522); 1799 dasm_put(Dst, 9639);
1787 break; 1800 break;
1788 case BC_MODNV: case BC_MODVV: 1801 case BC_MODNV: case BC_MODVV:
1789 dasm_put(Dst, 10052); 1802 dasm_put(Dst, 10169);
1790 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1803 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1791 switch (vk) { 1804 switch (vk) {
1792 case 0: 1805 case 0:
1793 dasm_put(Dst, 10060, LJ_TISNUM); 1806 dasm_put(Dst, 10177, LJ_TISNUM);
1794 if (sse) { 1807 if (sse) {
1795 dasm_put(Dst, 10370); 1808 dasm_put(Dst, 10487);
1796 } else { 1809 } else {
1797 dasm_put(Dst, 10384); 1810 dasm_put(Dst, 10501);
1798 } 1811 }
1799 break; 1812 break;
1800 case 1: 1813 case 1:
1801 dasm_put(Dst, 10094, LJ_TISNUM); 1814 dasm_put(Dst, 10211, LJ_TISNUM);
1802 if (sse) { 1815 if (sse) {
1803 dasm_put(Dst, 10392); 1816 dasm_put(Dst, 10509);
1804 } else { 1817 } else {
1805 dasm_put(Dst, 10406); 1818 dasm_put(Dst, 10523);
1806 } 1819 }
1807 break; 1820 break;
1808 default: 1821 default:
1809 dasm_put(Dst, 10128, LJ_TISNUM, LJ_TISNUM); 1822 dasm_put(Dst, 10245, LJ_TISNUM, LJ_TISNUM);
1810 if (sse) { 1823 if (sse) {
1811 dasm_put(Dst, 10414); 1824 dasm_put(Dst, 10531);
1812 } else { 1825 } else {
1813 dasm_put(Dst, 10428); 1826 dasm_put(Dst, 10545);
1814 } 1827 }
1815 break; 1828 break;
1816 } 1829 }
1817 dasm_put(Dst, 10442); 1830 dasm_put(Dst, 10559);
1818 break; 1831 break;
1819 case BC_POW: 1832 case BC_POW:
1820 dasm_put(Dst, 10052); 1833 dasm_put(Dst, 10169);
1821 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1834 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1822 switch (vk) { 1835 switch (vk) {
1823 case 0: 1836 case 0:
1824 dasm_put(Dst, 10060, LJ_TISNUM); 1837 dasm_put(Dst, 10177, LJ_TISNUM);
1825 if (sse) { 1838 if (sse) {
1826 dasm_put(Dst, 10370); 1839 dasm_put(Dst, 10487);
1827 } else { 1840 } else {
1828 dasm_put(Dst, 10384); 1841 dasm_put(Dst, 10501);
1829 } 1842 }
1830 break; 1843 break;
1831 case 1: 1844 case 1:
1832 dasm_put(Dst, 10094, LJ_TISNUM); 1845 dasm_put(Dst, 10211, LJ_TISNUM);
1833 if (sse) { 1846 if (sse) {
1834 dasm_put(Dst, 10392); 1847 dasm_put(Dst, 10509);
1835 } else { 1848 } else {
1836 dasm_put(Dst, 10406); 1849 dasm_put(Dst, 10523);
1837 } 1850 }
1838 break; 1851 break;
1839 default: 1852 default:
1840 dasm_put(Dst, 10128, LJ_TISNUM, LJ_TISNUM); 1853 dasm_put(Dst, 10245, LJ_TISNUM, LJ_TISNUM);
1841 if (sse) { 1854 if (sse) {
1842 dasm_put(Dst, 10414); 1855 dasm_put(Dst, 10531);
1843 } else { 1856 } else {
1844 dasm_put(Dst, 10428); 1857 dasm_put(Dst, 10545);
1845 } 1858 }
1846 break; 1859 break;
1847 } 1860 }
1848 dasm_put(Dst, 10447); 1861 dasm_put(Dst, 10564);
1849 if (sse) { 1862 if (sse) {
1850 dasm_put(Dst, 9935); 1863 dasm_put(Dst, 10052);
1851 } else { 1864 } else {
1852 dasm_put(Dst, 9947); 1865 dasm_put(Dst, 10064);
1853 } 1866 }
1854 dasm_put(Dst, 9522); 1867 dasm_put(Dst, 9639);
1855 break; 1868 break;
1856 1869
1857 case BC_CAT: 1870 case BC_CAT:
1858 dasm_put(Dst, 10451, Dt1(->base), Dt1(->base)); 1871 dasm_put(Dst, 10568, Dt1(->base), Dt1(->base));
1859 break; 1872 break;
1860 1873
1861 /* -- Constant ops ------------------------------------------------------ */ 1874 /* -- Constant ops ------------------------------------------------------ */
1862 1875
1863 case BC_KSTR: 1876 case BC_KSTR:
1864 dasm_put(Dst, 10534, LJ_TSTR); 1877 dasm_put(Dst, 10651, LJ_TSTR);
1865 break; 1878 break;
1866 case BC_KCDATA: 1879 case BC_KCDATA:
1867#if LJ_HASFFI 1880#if LJ_HASFFI
1868 dasm_put(Dst, 10534, LJ_TCDATA); 1881 dasm_put(Dst, 10651, LJ_TCDATA);
1869#endif 1882#endif
1870 break; 1883 break;
1871 case BC_KSHORT: 1884 case BC_KSHORT:
1872 if (sse) { 1885 if (sse) {
1873 dasm_put(Dst, 10569); 1886 dasm_put(Dst, 10686);
1874 } else { 1887 } else {
1875 dasm_put(Dst, 10584); 1888 dasm_put(Dst, 10701);
1876 } 1889 }
1877 dasm_put(Dst, 9522); 1890 dasm_put(Dst, 9639);
1878 break; 1891 break;
1879 case BC_KNUM: 1892 case BC_KNUM:
1880 if (sse) { 1893 if (sse) {
1881 dasm_put(Dst, 10592); 1894 dasm_put(Dst, 10709);
1882 } else { 1895 } else {
1883 dasm_put(Dst, 10605); 1896 dasm_put(Dst, 10722);
1884 } 1897 }
1885 dasm_put(Dst, 9522); 1898 dasm_put(Dst, 9639);
1886 break; 1899 break;
1887 case BC_KPRI: 1900 case BC_KPRI:
1888 dasm_put(Dst, 10612); 1901 dasm_put(Dst, 10729);
1889 break; 1902 break;
1890 case BC_KNIL: 1903 case BC_KNIL:
1891 dasm_put(Dst, 10640, LJ_TNIL); 1904 dasm_put(Dst, 10757, LJ_TNIL);
1892 break; 1905 break;
1893 1906
1894 /* -- Upvalue and function ops ------------------------------------------ */ 1907 /* -- Upvalue and function ops ------------------------------------------ */
1895 1908
1896 case BC_UGET: 1909 case BC_UGET:
1897 dasm_put(Dst, 10687, offsetof(GCfuncL, uvptr), DtA(->v)); 1910 dasm_put(Dst, 10804, offsetof(GCfuncL, uvptr), DtA(->v));
1898 break; 1911 break;
1899 case BC_USETV: 1912 case BC_USETV:
1900#define TV2MARKOFS \ 1913#define TV2MARKOFS \
1901 ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv)) 1914 ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv))
1902 dasm_put(Dst, 10727, 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, 10844, 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);
1903 dasm_put(Dst, 10818); 1916 dasm_put(Dst, 10935);
1904 break; 1917 break;
1905#undef TV2MARKOFS 1918#undef TV2MARKOFS
1906 case BC_USETS: 1919 case BC_USETS:
1907 dasm_put(Dst, 10830, 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, 10947, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G);
1908 break; 1921 break;
1909 case BC_USETN: 1922 case BC_USETN:
1910 dasm_put(Dst, 10923); 1923 dasm_put(Dst, 11040);
1911 if (sse) { 1924 if (sse) {
1912 dasm_put(Dst, 10928); 1925 dasm_put(Dst, 11045);
1913 } else { 1926 } else {
1914 dasm_put(Dst, 9761); 1927 dasm_put(Dst, 9878);
1915 } 1928 }
1916 dasm_put(Dst, 10935, offsetof(GCfuncL, uvptr), DtA(->v)); 1929 dasm_put(Dst, 11052, offsetof(GCfuncL, uvptr), DtA(->v));
1917 if (sse) { 1930 if (sse) {
1918 dasm_put(Dst, 10944); 1931 dasm_put(Dst, 11061);
1919 } else { 1932 } else {
1920 dasm_put(Dst, 10950); 1933 dasm_put(Dst, 11067);
1921 } 1934 }
1922 dasm_put(Dst, 9522); 1935 dasm_put(Dst, 9639);
1923 break; 1936 break;
1924 case BC_USETP: 1937 case BC_USETP:
1925 dasm_put(Dst, 10953, offsetof(GCfuncL, uvptr), DtA(->v)); 1938 dasm_put(Dst, 11070, offsetof(GCfuncL, uvptr), DtA(->v));
1926 break; 1939 break;
1927 case BC_UCLO: 1940 case BC_UCLO:
1928 dasm_put(Dst, 10992, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base)); 1941 dasm_put(Dst, 11109, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base));
1929 break; 1942 break;
1930 1943
1931 case BC_FNEW: 1944 case BC_FNEW:
1932 dasm_put(Dst, 11047, Dt1(->base), Dt1(->base), LJ_TFUNC); 1945 dasm_put(Dst, 11164, Dt1(->base), Dt1(->base), LJ_TFUNC);
1933 break; 1946 break;
1934 1947
1935 /* -- Table ops --------------------------------------------------------- */ 1948 /* -- Table ops --------------------------------------------------------- */
1936 1949
1937 case BC_TNEW: 1950 case BC_TNEW:
1938 dasm_put(Dst, 11113, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB); 1951 dasm_put(Dst, 11230, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB);
1939 break; 1952 break;
1940 case BC_TDUP: 1953 case BC_TDUP:
1941 dasm_put(Dst, 11235, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB); 1954 dasm_put(Dst, 11352, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB);
1942 break; 1955 break;
1943 1956
1944 case BC_GGET: 1957 case BC_GGET:
1945 dasm_put(Dst, 11330, Dt7(->env)); 1958 dasm_put(Dst, 11447, Dt7(->env));
1946 break; 1959 break;
1947 case BC_GSET: 1960 case BC_GSET:
1948 dasm_put(Dst, 11349, Dt7(->env)); 1961 dasm_put(Dst, 11466, Dt7(->env));
1949 break; 1962 break;
1950 1963
1951 case BC_TGETV: 1964 case BC_TGETV:
1952 dasm_put(Dst, 11368, LJ_TTAB, LJ_TISNUM); 1965 dasm_put(Dst, 11485, LJ_TTAB, LJ_TISNUM);
1953 if (sse) { 1966 if (sse) {
1954 dasm_put(Dst, 11401); 1967 dasm_put(Dst, 11518);
1955 } else { 1968 } else {
1956 } 1969 }
1957 dasm_put(Dst, 11422, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 1970 dasm_put(Dst, 11539, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
1958 dasm_put(Dst, 11506, LJ_TNIL, LJ_TSTR); 1971 dasm_put(Dst, 11623, LJ_TNIL, LJ_TSTR);
1959 break; 1972 break;
1960 case BC_TGETS: 1973 case BC_TGETS:
1961 dasm_put(Dst, 11535, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); 1974 dasm_put(Dst, 11652, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
1962 dasm_put(Dst, 11619, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 1975 dasm_put(Dst, 11736, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
1963 break; 1976 break;
1964 case BC_TGETB: 1977 case BC_TGETB:
1965 dasm_put(Dst, 11690, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 1978 dasm_put(Dst, 11807, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
1966 dasm_put(Dst, 11785, LJ_TNIL); 1979 dasm_put(Dst, 11902, LJ_TNIL);
1967 break; 1980 break;
1968 1981
1969 case BC_TSETV: 1982 case BC_TSETV:
1970 dasm_put(Dst, 11802, LJ_TTAB, LJ_TISNUM); 1983 dasm_put(Dst, 11919, LJ_TTAB, LJ_TISNUM);
1971 if (sse) { 1984 if (sse) {
1972 dasm_put(Dst, 11401); 1985 dasm_put(Dst, 11518);
1973 } else { 1986 } else {
1974 } 1987 }
1975 dasm_put(Dst, 11835, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable)); 1988 dasm_put(Dst, 11952, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable));
1976 dasm_put(Dst, 11914, 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, 12031, Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
1977 break; 1990 break;
1978 case BC_TSETS: 1991 case BC_TSETS:
1979 dasm_put(Dst, 11976, 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, 12093, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
1980 dasm_put(Dst, 12052, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next)); 1993 dasm_put(Dst, 12169, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next));
1981 dasm_put(Dst, 12140, 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, 12257, 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));
1982 break; 1995 break;
1983 case BC_TSETB: 1996 case BC_TSETB:
1984 dasm_put(Dst, 12231, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable)); 1997 dasm_put(Dst, 12348, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable));
1985 dasm_put(Dst, 12325, 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, 12442, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
1986 break; 1999 break;
1987 2000
1988 case BC_TSETM: 2001 case BC_TSETM:
1989 dasm_put(Dst, 12371, Dt6(->marked), LJ_GC_BLACK, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base)); 2002 dasm_put(Dst, 12488, Dt6(->marked), LJ_GC_BLACK, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base));
1990 dasm_put(Dst, 12514, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 2003 dasm_put(Dst, 12631, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
1991 break; 2004 break;
1992 2005
1993 /* -- Calls and vararg handling ----------------------------------------- */ 2006 /* -- Calls and vararg handling ----------------------------------------- */
1994 2007
1995 case BC_CALL: case BC_CALLM: 2008 case BC_CALL: case BC_CALLM:
1996 dasm_put(Dst, 10056); 2009 dasm_put(Dst, 10173);
1997 if (op == BC_CALLM) { 2010 if (op == BC_CALLM) {
1998 dasm_put(Dst, 12532); 2011 dasm_put(Dst, 12649);
1999 } 2012 }
2000 dasm_put(Dst, 12537, LJ_TFUNC, Dt7(->pc)); 2013 dasm_put(Dst, 12654, LJ_TFUNC, Dt7(->pc));
2001 break; 2014 break;
2002 2015
2003 case BC_CALLMT: 2016 case BC_CALLMT:
2004 dasm_put(Dst, 12532); 2017 dasm_put(Dst, 12649);
2005 break; 2018 break;
2006 case BC_CALLT: 2019 case BC_CALLT:
2007 dasm_put(Dst, 12579, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc)); 2020 dasm_put(Dst, 12696, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc));
2008 dasm_put(Dst, 12694, FRAME_TYPE, Dt7(->pc), PC2PROTO(k), FRAME_VARG, FRAME_TYPEP, FRAME_VARG); 2021 dasm_put(Dst, 12811, FRAME_TYPE, Dt7(->pc), PC2PROTO(k), FRAME_VARG, FRAME_TYPEP, FRAME_VARG);
2009 break; 2022 break;
2010 2023
2011 case BC_ITERC: 2024 case BC_ITERC:
2012 dasm_put(Dst, 12765, LJ_TFUNC, 2+1, Dt7(->pc)); 2025 dasm_put(Dst, 12882, LJ_TFUNC, 2+1, Dt7(->pc));
2013 break; 2026 break;
2014 2027
2015 case BC_ITERN: 2028 case BC_ITERN:
2016#if LJ_HASJIT 2029#if LJ_HASJIT
2017#endif 2030#endif
2018 dasm_put(Dst, 12836, Dt6(->asize), Dt6(->array), LJ_TNIL); 2031 dasm_put(Dst, 12953, Dt6(->asize), Dt6(->array), LJ_TNIL);
2019 if (sse) { 2032 if (sse) {
2020 dasm_put(Dst, 12882); 2033 dasm_put(Dst, 12999);
2021 } else { 2034 } else {
2022 dasm_put(Dst, 12888); 2035 dasm_put(Dst, 13005);
2023 } 2036 }
2024 dasm_put(Dst, 12894); 2037 dasm_put(Dst, 13011);
2025 if (sse) { 2038 if (sse) {
2026 dasm_put(Dst, 9935); 2039 dasm_put(Dst, 10052);
2027 } else { 2040 } else {
2028 dasm_put(Dst, 9947); 2041 dasm_put(Dst, 10064);
2029 } 2042 }
2030 dasm_put(Dst, 12907, -BCBIAS_J*4); 2043 dasm_put(Dst, 13024, -BCBIAS_J*4);
2031 if (!sse) { 2044 if (!sse) {
2032 dasm_put(Dst, 12959); 2045 dasm_put(Dst, 13076);
2033 } 2046 }
2034 dasm_put(Dst, 12965, Dt6(->hmask), sizeof(Node), Dt6(->node), DtB(->val.it), LJ_TNIL, DtB(->key), DtB(->val)); 2047 dasm_put(Dst, 13082, Dt6(->hmask), sizeof(Node), Dt6(->node), DtB(->val.it), LJ_TNIL, DtB(->key), DtB(->val));
2035 break; 2048 break;
2036 2049
2037 case BC_ISNEXT: 2050 case BC_ISNEXT:
2038 dasm_put(Dst, 13037, 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, 13154, LJ_TFUNC, LJ_TTAB, LJ_TNIL, Dt8(->ffid), FF_next_N, -BCBIAS_J*4, BC_JMP, -BCBIAS_J*4, BC_ITERC);
2039 break; 2052 break;
2040 2053
2041 case BC_VARG: 2054 case BC_VARG:
2042 dasm_put(Dst, 13137, (8+FRAME_VARG), LJ_TNIL, Dt1(->maxstack)); 2055 dasm_put(Dst, 13254, (8+FRAME_VARG), LJ_TNIL, Dt1(->maxstack));
2043 dasm_put(Dst, 13297, Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top)); 2056 dasm_put(Dst, 13414, Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top));
2044 break; 2057 break;
2045 2058
2046 /* -- Returns ----------------------------------------------------------- */ 2059 /* -- Returns ----------------------------------------------------------- */
2047 2060
2048 case BC_RETM: 2061 case BC_RETM:
2049 dasm_put(Dst, 12532); 2062 dasm_put(Dst, 12649);
2050 break; 2063 break;
2051 2064
2052 case BC_RET: case BC_RET0: case BC_RET1: 2065 case BC_RET: case BC_RET0: case BC_RET1:
2053 if (op != BC_RET0) { 2066 if (op != BC_RET0) {
2054 dasm_put(Dst, 13363); 2067 dasm_put(Dst, 13480);
2055 } 2068 }
2056 dasm_put(Dst, 13367, FRAME_TYPE); 2069 dasm_put(Dst, 13484, FRAME_TYPE);
2057 switch (op) { 2070 switch (op) {
2058 case BC_RET: 2071 case BC_RET:
2059 dasm_put(Dst, 13386); 2072 dasm_put(Dst, 13503);
2060 break; 2073 break;
2061 case BC_RET1: 2074 case BC_RET1:
2062 dasm_put(Dst, 13438); 2075 dasm_put(Dst, 13555);
2063 /* fallthrough */ 2076 /* fallthrough */
2064 case BC_RET0: 2077 case BC_RET0:
2065 dasm_put(Dst, 13448); 2078 dasm_put(Dst, 13565);
2066 default: 2079 default:
2067 break; 2080 break;
2068 } 2081 }
2069 dasm_put(Dst, 13459, Dt7(->pc), PC2PROTO(k)); 2082 dasm_put(Dst, 13576, Dt7(->pc), PC2PROTO(k));
2070 if (op == BC_RET) { 2083 if (op == BC_RET) {
2071 dasm_put(Dst, 13503, LJ_TNIL); 2084 dasm_put(Dst, 13620, LJ_TNIL);
2072 } else { 2085 } else {
2073 dasm_put(Dst, 13512, LJ_TNIL); 2086 dasm_put(Dst, 13629, LJ_TNIL);
2074 } 2087 }
2075 dasm_put(Dst, 13519, -FRAME_VARG, FRAME_TYPEP); 2088 dasm_put(Dst, 13636, -FRAME_VARG, FRAME_TYPEP);
2076 if (op != BC_RET0) { 2089 if (op != BC_RET0) {
2077 dasm_put(Dst, 13543); 2090 dasm_put(Dst, 13660);
2078 } 2091 }
2079 dasm_put(Dst, 4522); 2092 dasm_put(Dst, 4522);
2080 break; 2093 break;
@@ -2084,7 +2097,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2084 2097
2085 case BC_FORL: 2098 case BC_FORL:
2086#if LJ_HASJIT 2099#if LJ_HASJIT
2087 dasm_put(Dst, 13547, HOTCOUNT_PCMASK, GG_DISP2HOT); 2100 dasm_put(Dst, 13664, HOTCOUNT_PCMASK, GG_DISP2HOT);
2088#endif 2101#endif
2089 break; 2102 break;
2090 2103
@@ -2096,57 +2109,57 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2096 case BC_FORI: 2109 case BC_FORI:
2097 case BC_IFORL: 2110 case BC_IFORL:
2098 vk = (op == BC_IFORL || op == BC_JFORL); 2111 vk = (op == BC_IFORL || op == BC_JFORL);
2099 dasm_put(Dst, 13568); 2112 dasm_put(Dst, 13685);
2100 if (!vk) { 2113 if (!vk) {
2101 dasm_put(Dst, 13572, LJ_TISNUM, LJ_TISNUM); 2114 dasm_put(Dst, 13689, LJ_TISNUM, LJ_TISNUM);
2102 } 2115 }
2103 dasm_put(Dst, 13591); 2116 dasm_put(Dst, 13708);
2104 if (!vk) { 2117 if (!vk) {
2105 dasm_put(Dst, 13595, LJ_TISNUM); 2118 dasm_put(Dst, 13712, LJ_TISNUM);
2106 } 2119 }
2107 if (sse) { 2120 if (sse) {
2108 dasm_put(Dst, 13604); 2121 dasm_put(Dst, 13721);
2109 if (vk) { 2122 if (vk) {
2110 dasm_put(Dst, 13616); 2123 dasm_put(Dst, 13733);
2111 } else { 2124 } else {
2112 dasm_put(Dst, 13635); 2125 dasm_put(Dst, 13752);
2113 } 2126 }
2114 dasm_put(Dst, 13640); 2127 dasm_put(Dst, 13757);
2115 } else { 2128 } else {
2116 dasm_put(Dst, 13653); 2129 dasm_put(Dst, 13770);
2117 if (vk) { 2130 if (vk) {
2118 dasm_put(Dst, 13659); 2131 dasm_put(Dst, 13776);
2119 } else { 2132 } else {
2120 dasm_put(Dst, 13675); 2133 dasm_put(Dst, 13792);
2121 } 2134 }
2122 dasm_put(Dst, 13683); 2135 dasm_put(Dst, 13800);
2123 if (cmov) { 2136 if (cmov) {
2124 dasm_put(Dst, 9485); 2137 dasm_put(Dst, 9602);
2125 } else { 2138 } else {
2126 dasm_put(Dst, 9491); 2139 dasm_put(Dst, 9608);
2127 } 2140 }
2128 if (!cmov) { 2141 if (!cmov) {
2129 dasm_put(Dst, 13688); 2142 dasm_put(Dst, 13805);
2130 } 2143 }
2131 } 2144 }
2132 if (op == BC_FORI) { 2145 if (op == BC_FORI) {
2133 dasm_put(Dst, 13694, -BCBIAS_J*4); 2146 dasm_put(Dst, 13811, -BCBIAS_J*4);
2134 } else if (op == BC_JFORI) { 2147 } else if (op == BC_JFORI) {
2135 dasm_put(Dst, 13704, -BCBIAS_J*4, BC_JLOOP); 2148 dasm_put(Dst, 13821, -BCBIAS_J*4, BC_JLOOP);
2136 } else if (op == BC_IFORL) { 2149 } else if (op == BC_IFORL) {
2137 dasm_put(Dst, 13718, -BCBIAS_J*4); 2150 dasm_put(Dst, 13835, -BCBIAS_J*4);
2138 } else { 2151 } else {
2139 dasm_put(Dst, 13714, BC_JLOOP); 2152 dasm_put(Dst, 13831, BC_JLOOP);
2140 } 2153 }
2141 dasm_put(Dst, 9520); 2154 dasm_put(Dst, 9637);
2142 if (sse) { 2155 if (sse) {
2143 dasm_put(Dst, 13728); 2156 dasm_put(Dst, 13845);
2144 } 2157 }
2145 break; 2158 break;
2146 2159
2147 case BC_ITERL: 2160 case BC_ITERL:
2148#if LJ_HASJIT 2161#if LJ_HASJIT
2149 dasm_put(Dst, 13547, HOTCOUNT_PCMASK, GG_DISP2HOT); 2162 dasm_put(Dst, 13664, HOTCOUNT_PCMASK, GG_DISP2HOT);
2150#endif 2163#endif
2151 break; 2164 break;
2152 2165
@@ -2155,33 +2168,33 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2155 break; 2168 break;
2156#endif 2169#endif
2157 case BC_IITERL: 2170 case BC_IITERL:
2158 dasm_put(Dst, 13739, LJ_TNIL); 2171 dasm_put(Dst, 13856, LJ_TNIL);
2159 if (op == BC_JITERL) { 2172 if (op == BC_JITERL) {
2160 dasm_put(Dst, 13754, BC_JLOOP); 2173 dasm_put(Dst, 13871, BC_JLOOP);
2161 } else { 2174 } else {
2162 dasm_put(Dst, 13768, -BCBIAS_J*4); 2175 dasm_put(Dst, 13885, -BCBIAS_J*4);
2163 } 2176 }
2164 dasm_put(Dst, 9820); 2177 dasm_put(Dst, 9937);
2165 break; 2178 break;
2166 2179
2167 case BC_LOOP: 2180 case BC_LOOP:
2168#if LJ_HASJIT 2181#if LJ_HASJIT
2169 dasm_put(Dst, 13547, HOTCOUNT_PCMASK, GG_DISP2HOT); 2182 dasm_put(Dst, 13664, HOTCOUNT_PCMASK, GG_DISP2HOT);
2170#endif 2183#endif
2171 break; 2184 break;
2172 2185
2173 case BC_ILOOP: 2186 case BC_ILOOP:
2174 dasm_put(Dst, 9522); 2187 dasm_put(Dst, 9639);
2175 break; 2188 break;
2176 2189
2177 case BC_JLOOP: 2190 case BC_JLOOP:
2178#if LJ_HASJIT 2191#if LJ_HASJIT
2179 dasm_put(Dst, 13784, 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); 2192 dasm_put(Dst, 13901, 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);
2180#endif 2193#endif
2181 break; 2194 break;
2182 2195
2183 case BC_JMP: 2196 case BC_JMP:
2184 dasm_put(Dst, 13893, -BCBIAS_J*4); 2197 dasm_put(Dst, 14010, -BCBIAS_J*4);
2185 break; 2198 break;
2186 2199
2187 /* -- Function headers -------------------------------------------------- */ 2200 /* -- Function headers -------------------------------------------------- */
@@ -2195,7 +2208,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2195 2208
2196 case BC_FUNCF: 2209 case BC_FUNCF:
2197#if LJ_HASJIT 2210#if LJ_HASJIT
2198 dasm_put(Dst, 13918, HOTCOUNT_PCMASK, GG_DISP2HOT); 2211 dasm_put(Dst, 14035, HOTCOUNT_PCMASK, GG_DISP2HOT);
2199#endif 2212#endif
2200 case BC_FUNCV: /* NYI: compiled vararg functions. */ 2213 case BC_FUNCV: /* NYI: compiled vararg functions. */
2201 break; 2214 break;
@@ -2205,13 +2218,13 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2205 break; 2218 break;
2206#endif 2219#endif
2207 case BC_IFUNCF: 2220 case BC_IFUNCF:
2208 dasm_put(Dst, 13939, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams)); 2221 dasm_put(Dst, 14056, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams));
2209 if (op == BC_JFUNCF) { 2222 if (op == BC_JFUNCF) {
2210 dasm_put(Dst, 13969, BC_JLOOP); 2223 dasm_put(Dst, 14086, BC_JLOOP);
2211 } else { 2224 } else {
2212 dasm_put(Dst, 9522); 2225 dasm_put(Dst, 9639);
2213 } 2226 }
2214 dasm_put(Dst, 13978, LJ_TNIL); 2227 dasm_put(Dst, 14095, LJ_TNIL);
2215 break; 2228 break;
2216 2229
2217 case BC_JFUNCV: 2230 case BC_JFUNCV:
@@ -2222,30 +2235,30 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2222 break; /* NYI: compiled vararg functions. */ 2235 break; /* NYI: compiled vararg functions. */
2223 2236
2224 case BC_IFUNCV: 2237 case BC_IFUNCV:
2225 dasm_put(Dst, 14000, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL); 2238 dasm_put(Dst, 14117, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL);
2226 if (op == BC_JFUNCV) { 2239 if (op == BC_JFUNCV) {
2227 dasm_put(Dst, 13969, BC_JLOOP); 2240 dasm_put(Dst, 14086, BC_JLOOP);
2228 } else { 2241 } else {
2229 dasm_put(Dst, 14091, -4+PC2PROTO(k)); 2242 dasm_put(Dst, 14208, -4+PC2PROTO(k));
2230 } 2243 }
2231 dasm_put(Dst, 14114, LJ_TNIL); 2244 dasm_put(Dst, 14231, LJ_TNIL);
2232 break; 2245 break;
2233 2246
2234 case BC_FUNCC: 2247 case BC_FUNCC:
2235 case BC_FUNCCW: 2248 case BC_FUNCCW:
2236 dasm_put(Dst, 14136, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top)); 2249 dasm_put(Dst, 14253, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top));
2237 if (op == BC_FUNCC) { 2250 if (op == BC_FUNCC) {
2238 dasm_put(Dst, 14166); 2251 dasm_put(Dst, 14283);
2239 } else { 2252 } else {
2240 dasm_put(Dst, 14170); 2253 dasm_put(Dst, 14287);
2241 } 2254 }
2242 dasm_put(Dst, 14178, DISPATCH_GL(vmstate), ~LJ_VMST_C); 2255 dasm_put(Dst, 14295, DISPATCH_GL(vmstate), ~LJ_VMST_C);
2243 if (op == BC_FUNCC) { 2256 if (op == BC_FUNCC) {
2244 dasm_put(Dst, 14187); 2257 dasm_put(Dst, 14304);
2245 } else { 2258 } else {
2246 dasm_put(Dst, 14191, DISPATCH_GL(wrapf)); 2259 dasm_put(Dst, 14308, DISPATCH_GL(wrapf));
2247 } 2260 }
2248 dasm_put(Dst, 14196, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top)); 2261 dasm_put(Dst, 14313, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top));
2249 break; 2262 break;
2250 2263
2251 /* ---------------------------------------------------------------------- */ 2264 /* ---------------------------------------------------------------------- */
@@ -2273,7 +2286,7 @@ static int build_backend(BuildCtx *ctx)
2273 2286
2274 build_subroutines(ctx, cmov, sse); 2287 build_subroutines(ctx, cmov, sse);
2275 2288
2276 dasm_put(Dst, 14221); 2289 dasm_put(Dst, 14338);
2277 for (op = 0; op < BC__MAX; op++) 2290 for (op = 0; op < BC__MAX; op++)
2278 build_ins(ctx, (BCOp)op, op, cmov, sse); 2291 build_ins(ctx, (BCOp)op, op, cmov, sse);
2279 2292