summaryrefslogtreecommitdiff
path: root/src/buildvm_x86.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/buildvm_x86.h')
-rw-r--r--src/buildvm_x86.h1112
1 files changed, 564 insertions, 548 deletions
diff --git a/src/buildvm_x86.h b/src/buildvm_x86.h
index 0ce64f41..bc2ef125 100644
--- a/src/buildvm_x86.h
+++ b/src/buildvm_x86.h
@@ -12,7 +12,7 @@
12#define DASM_SECTION_CODE_OP 0 12#define DASM_SECTION_CODE_OP 0
13#define DASM_SECTION_CODE_SUB 1 13#define DASM_SECTION_CODE_SUB 1
14#define DASM_MAXSECTION 2 14#define DASM_MAXSECTION 2
15static const unsigned char build_actionlist[16904] = { 15static const unsigned char build_actionlist[16945] = {
16 254,1,248,10,252,247,198,237,15,132,244,11,131,230,252,248,41,252,242,141, 16 254,1,248,10,252,247,198,237,15,132,244,11,131,230,252,248,41,252,242,141,
17 76,49,252,248,139,114,252,252,199,68,10,4,237,248,12,131,192,1,137,68,36, 17 76,49,252,248,139,114,252,252,199,68,10,4,237,248,12,131,192,1,137,68,36,
18 20,252,247,198,237,15,132,244,13,248,14,129,252,246,239,252,247,198,237,15, 18 20,252,247,198,237,15,132,244,13,248,14,129,252,246,239,252,247,198,237,15,
@@ -539,148 +539,148 @@ static const unsigned char build_actionlist[16904] = {
539 1,15,137,244,1,248,2,139,139,233,139,147,233,252,255,147,233,137,131,233, 539 1,15,137,244,1,248,2,139,139,233,139,147,233,252,255,147,233,137,131,233,
540 137,147,233,128,187,233,1,15,130,244,253,15,132,244,252,221,155,233,252,233, 540 137,147,233,128,187,233,1,15,130,244,253,15,132,244,252,221,155,233,252,233,
541 244,253,248,6,255,217,155,233,248,7,255,41,163,233,255,139,93,252,252,201, 541 244,253,248,6,255,217,155,233,248,7,255,41,163,233,255,139,93,252,252,201,
542 195,255,249,255,129,124,253,202,4,239,15,133,244,253,129,124,253,194,4,239, 542 195,255,248,162,255,249,255,129,124,253,202,4,239,15,133,244,253,129,124,
543 15,133,244,254,139,44,202,131,198,4,59,44,194,255,15,141,244,255,255,15,140, 543 253,194,4,239,15,133,244,254,139,44,202,131,198,4,59,44,194,255,15,141,244,
544 244,255,255,15,143,244,255,255,15,142,244,255,255,248,6,15,183,70,252,254, 544 255,255,15,140,244,255,255,15,143,244,255,255,15,142,244,255,255,248,6,15,
545 141,180,253,134,233,248,9,139,6,15,182,204,15,182,232,131,198,4,193,232,16, 545 183,70,252,254,141,180,253,134,233,248,9,139,6,15,182,204,15,182,232,131,
546 252,255,36,171,248,7,15,135,244,41,129,124,253,194,4,239,15,130,244,247,15, 546 198,4,193,232,16,252,255,36,171,248,7,15,135,244,41,129,124,253,194,4,239,
547 133,244,41,255,252,242,15,42,4,194,252,233,244,248,255,221,4,202,219,4,194, 547 15,130,244,247,15,133,244,41,255,252,242,15,42,4,194,252,233,244,248,255,
548 252,233,244,249,255,248,8,15,135,244,41,255,252,242,15,42,12,202,252,242, 548 221,4,202,219,4,194,252,233,244,249,255,248,8,15,135,244,41,255,252,242,15,
549 15,16,4,194,131,198,4,102,15,46,193,255,15,134,244,9,255,15,135,244,9,255, 549 42,12,202,252,242,15,16,4,194,131,198,4,102,15,46,193,255,15,134,244,9,255,
550 15,130,244,9,255,15,131,244,9,255,252,233,244,6,255,219,4,202,252,233,244, 550 15,135,244,9,255,15,130,244,9,255,15,131,244,9,255,252,233,244,6,255,219,
551 248,255,129,124,253,202,4,239,15,131,244,41,129,124,253,194,4,239,15,131, 551 4,202,252,233,244,248,255,129,124,253,202,4,239,15,131,244,41,129,124,253,
552 244,41,255,248,1,252,242,15,16,4,194,248,2,131,198,4,102,15,46,4,202,248, 552 194,4,239,15,131,244,41,255,248,1,252,242,15,16,4,194,248,2,131,198,4,102,
553 3,255,248,1,221,4,202,248,2,221,4,194,248,3,131,198,4,255,15,134,244,247, 553 15,46,4,202,248,3,255,248,1,221,4,202,248,2,221,4,194,248,3,131,198,4,255,
554 255,15,135,244,247,255,15,130,244,247,255,15,131,244,247,255,15,183,70,252, 554 15,134,244,247,255,15,135,244,247,255,15,130,244,247,255,15,131,244,247,255,
555 254,141,180,253,134,233,248,1,139,6,15,182,204,15,182,232,131,198,4,193,232, 555 15,183,70,252,254,141,180,253,134,233,248,1,139,6,15,182,204,15,182,232,131,
556 16,252,255,36,171,255,139,108,194,4,131,198,4,255,129,252,253,239,15,133, 556 198,4,193,232,16,252,255,36,171,255,139,108,194,4,131,198,4,255,129,252,253,
557 244,253,129,124,253,202,4,239,15,133,244,254,139,44,194,59,44,202,255,15, 557 239,15,133,244,253,129,124,253,202,4,239,15,133,244,254,139,44,194,59,44,
558 133,244,255,255,15,132,244,255,255,15,183,70,252,254,141,180,253,134,233, 558 202,255,15,133,244,255,255,15,132,244,255,255,15,183,70,252,254,141,180,253,
559 248,9,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248, 559 134,233,248,9,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,
560 7,15,135,244,251,129,124,253,202,4,239,15,130,244,247,15,133,244,251,255, 560 171,248,7,15,135,244,251,129,124,253,202,4,239,15,130,244,247,15,133,244,
561 252,242,15,42,4,202,255,219,4,202,255,252,233,244,248,248,8,15,135,244,251, 561 251,255,252,242,15,42,4,202,255,219,4,202,255,252,233,244,248,248,8,15,135,
562 255,252,242,15,42,4,194,102,15,46,4,202,255,219,4,194,221,4,202,255,252,233, 562 244,251,255,252,242,15,42,4,194,102,15,46,4,202,255,219,4,194,221,4,202,255,
563 244,250,255,129,252,253,239,15,131,244,251,129,124,253,202,4,239,15,131,244, 563 252,233,244,250,255,129,252,253,239,15,131,244,251,129,124,253,202,4,239,
564 251,255,248,1,252,242,15,16,4,202,248,2,102,15,46,4,194,248,4,255,248,1,221, 564 15,131,244,251,255,248,1,252,242,15,16,4,202,248,2,102,15,46,4,194,248,4,
565 4,202,248,2,221,4,194,248,4,255,15,138,244,248,15,133,244,248,255,15,138, 565 255,248,1,221,4,202,248,2,221,4,194,248,4,255,15,138,244,248,15,133,244,248,
566 244,248,15,132,244,247,255,248,1,15,183,70,252,254,141,180,253,134,233,248, 566 255,15,138,244,248,15,132,244,247,255,248,1,15,183,70,252,254,141,180,253,
567 2,255,248,2,15,183,70,252,254,141,180,253,134,233,248,1,255,252,233,244,9, 567 134,233,248,2,255,248,2,15,183,70,252,254,141,180,253,134,233,248,1,255,252,
568 255,248,5,255,129,252,253,239,15,132,244,46,129,124,253,202,4,239,15,132, 568 233,244,9,255,248,5,255,129,252,253,239,15,132,244,46,129,124,253,202,4,239,
569 244,46,255,57,108,202,4,15,133,244,2,129,252,253,239,15,131,244,1,139,12, 569 15,132,244,46,255,57,108,202,4,15,133,244,2,129,252,253,239,15,131,244,1,
570 202,139,4,194,57,193,15,132,244,1,129,252,253,239,15,135,244,2,139,169,233, 570 139,12,202,139,4,194,57,193,15,132,244,1,129,252,253,239,15,135,244,2,139,
571 133,252,237,15,132,244,2,252,246,133,233,235,15,133,244,2,255,49,252,237, 571 169,233,133,252,237,15,132,244,2,252,246,133,233,235,15,133,244,2,255,49,
572 255,189,1,0,0,0,255,252,233,244,45,255,248,3,129,252,253,239,255,15,133,244, 572 252,237,255,189,1,0,0,0,255,252,233,244,45,255,248,3,129,252,253,239,255,
573 9,255,252,233,244,46,255,252,247,208,139,108,202,4,131,198,4,129,252,253, 573 15,133,244,9,255,252,233,244,46,255,252,247,208,139,108,202,4,131,198,4,129,
574 239,15,133,244,249,139,12,202,59,12,135,255,139,108,202,4,131,198,4,255,129, 574 252,253,239,15,133,244,249,139,12,202,59,12,135,255,139,108,202,4,131,198,
575 252,253,239,15,133,244,253,129,124,253,199,4,239,15,133,244,254,139,44,199, 575 4,255,129,252,253,239,15,133,244,253,129,124,253,199,4,239,15,133,244,254,
576 59,44,202,255,15,183,70,252,254,141,180,253,134,233,248,9,139,6,15,182,204, 576 139,44,199,59,44,202,255,15,183,70,252,254,141,180,253,134,233,248,9,139,
577 15,182,232,131,198,4,193,232,16,252,255,36,171,248,7,15,135,244,249,129,124, 577 6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,7,15,135,
578 253,199,4,239,15,130,244,247,255,252,242,15,42,4,199,255,219,4,199,255,252, 578 244,249,129,124,253,199,4,239,15,130,244,247,255,252,242,15,42,4,199,255,
579 233,244,248,248,8,255,252,242,15,42,4,202,102,15,46,4,199,255,219,4,202,221, 579 219,4,199,255,252,233,244,248,248,8,255,252,242,15,42,4,202,102,15,46,4,199,
580 4,199,255,129,252,253,239,15,131,244,249,255,248,1,252,242,15,16,4,199,248, 580 255,219,4,202,221,4,199,255,129,252,253,239,15,131,244,249,255,248,1,252,
581 2,102,15,46,4,202,248,4,255,248,1,221,4,199,248,2,221,4,202,248,4,255,252, 581 242,15,16,4,199,248,2,102,15,46,4,202,248,4,255,248,1,221,4,199,248,2,221,
582 247,208,139,108,202,4,131,198,4,57,197,255,15,133,244,249,15,183,70,252,254, 582 4,202,248,4,255,252,247,208,139,108,202,4,131,198,4,57,197,255,15,133,244,
583 141,180,253,134,233,248,2,139,6,15,182,204,15,182,232,131,198,4,193,232,16, 583 249,15,183,70,252,254,141,180,253,134,233,248,2,139,6,15,182,204,15,182,232,
584 252,255,36,171,248,3,129,252,253,239,15,133,244,2,252,233,244,46,255,15,132, 584 131,198,4,193,232,16,252,255,36,171,248,3,129,252,253,239,15,133,244,2,252,
585 244,248,129,252,253,239,15,132,244,46,15,183,70,252,254,141,180,253,134,233, 585 233,244,46,255,15,132,244,248,129,252,253,239,15,132,244,46,15,183,70,252,
586 248,2,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255, 586 254,141,180,253,134,233,248,2,139,6,15,182,204,15,182,232,131,198,4,193,232,
587 139,108,194,4,131,198,4,129,252,253,239,255,137,108,202,4,139,44,194,137, 587 16,252,255,36,171,255,139,108,194,4,131,198,4,129,252,253,239,255,137,108,
588 44,202,255,139,108,194,4,139,4,194,137,108,202,4,137,4,202,139,6,15,182,204, 588 202,4,139,44,194,137,44,202,255,139,108,194,4,139,4,194,137,108,202,4,137,
589 15,182,232,131,198,4,193,232,16,252,255,36,171,255,49,252,237,129,124,253, 589 4,202,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,
590 194,4,239,129,213,239,137,108,202,4,139,6,15,182,204,15,182,232,131,198,4, 590 49,252,237,129,124,253,194,4,239,129,213,239,137,108,202,4,139,6,15,182,204,
591 193,232,16,252,255,36,171,255,129,124,253,194,4,239,15,133,244,251,139,44, 591 15,182,232,131,198,4,193,232,16,252,255,36,171,255,129,124,253,194,4,239,
592 194,252,247,221,15,128,244,250,199,68,202,4,237,137,44,202,248,9,139,6,15, 592 15,133,244,251,139,44,194,252,247,221,15,128,244,250,199,68,202,4,237,137,
593 182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,4,199,68,202,4, 593 44,202,248,9,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,
594 0,0,224,65,199,4,202,0,0,0,0,252,233,244,9,248,5,15,135,244,51,255,129,124, 594 171,248,4,199,68,202,4,0,0,224,65,199,4,202,0,0,0,0,252,233,244,9,248,5,15,
595 253,194,4,239,15,131,244,51,255,252,242,15,16,4,194,184,0,0,0,128,102,15, 595 135,244,51,255,129,124,253,194,4,239,15,131,244,51,255,252,242,15,16,4,194,
596 110,200,102,15,112,201,81,15,87,193,252,242,15,17,4,202,255,221,4,194,217, 596 184,0,0,0,128,102,15,110,200,102,15,112,201,81,15,87,193,252,242,15,17,4,
597 224,221,28,202,255,129,124,253,194,4,239,15,133,244,248,139,4,194,255,139, 597 202,255,221,4,194,217,224,221,28,202,255,129,124,253,194,4,239,15,133,244,
598 128,233,248,1,199,68,202,4,237,137,4,202,255,15,87,192,252,242,15,42,128, 598 248,139,4,194,255,139,128,233,248,1,199,68,202,4,237,137,4,202,255,15,87,
599 233,248,1,252,242,15,17,4,202,255,219,128,233,248,1,221,28,202,255,139,6, 599 192,252,242,15,42,128,233,248,1,252,242,15,17,4,202,255,219,128,233,248,1,
600 15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,2,129,124,253, 600 221,28,202,255,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,
601 194,4,239,15,133,244,54,139,12,194,137,213,232,251,1,20,255,252,242,15,42, 601 171,248,2,129,124,253,194,4,239,15,133,244,54,139,12,194,137,213,232,251,
602 192,255,137,4,36,219,4,36,255,137,252,234,15,182,78,252,253,252,233,244,1, 602 1,20,255,252,242,15,42,192,255,137,4,36,219,4,36,255,137,252,234,15,182,78,
603 255,15,182,252,236,15,182,192,255,129,124,253,252,234,4,239,15,133,244,48, 603 252,253,252,233,244,1,255,15,182,252,236,15,182,192,255,129,124,253,252,234,
604 129,124,253,199,4,239,15,133,244,48,139,44,252,234,3,44,199,15,128,244,47, 604 4,239,15,133,244,48,129,124,253,199,4,239,15,133,244,48,139,44,252,234,3,
605 255,129,124,253,252,234,4,239,15,133,244,50,129,124,253,199,4,239,15,133, 605 44,199,15,128,244,47,255,129,124,253,252,234,4,239,15,133,244,50,129,124,
606 244,50,139,4,199,3,4,252,234,15,128,244,49,255,129,124,253,252,234,4,239, 606 253,199,4,239,15,133,244,50,139,4,199,3,4,252,234,15,128,244,49,255,129,124,
607 15,133,244,53,129,124,253,194,4,239,15,133,244,53,139,44,252,234,3,44,194, 607 253,252,234,4,239,15,133,244,53,129,124,253,194,4,239,15,133,244,53,139,44,
608 15,128,244,52,255,199,68,202,4,237,255,129,124,253,252,234,4,239,15,131,244, 608 252,234,3,44,194,15,128,244,52,255,199,68,202,4,237,255,129,124,253,252,234,
609 48,255,129,124,253,199,4,239,15,131,244,48,255,252,242,15,16,4,252,234,252, 609 4,239,15,131,244,48,255,129,124,253,199,4,239,15,131,244,48,255,252,242,15,
610 242,15,88,4,199,255,221,4,252,234,220,4,199,255,129,124,253,252,234,4,239, 610 16,4,252,234,252,242,15,88,4,199,255,221,4,252,234,220,4,199,255,129,124,
611 15,131,244,50,255,129,124,253,199,4,239,15,131,244,50,255,252,242,15,16,4, 611 253,252,234,4,239,15,131,244,50,255,129,124,253,199,4,239,15,131,244,50,255,
612 199,252,242,15,88,4,252,234,255,221,4,199,220,4,252,234,255,129,124,253,252, 612 252,242,15,16,4,199,252,242,15,88,4,252,234,255,221,4,199,220,4,252,234,255,
613 234,4,239,15,131,244,53,129,124,253,194,4,239,15,131,244,53,255,252,242,15, 613 129,124,253,252,234,4,239,15,131,244,53,129,124,253,194,4,239,15,131,244,
614 16,4,252,234,252,242,15,88,4,194,255,221,4,252,234,220,4,194,255,129,124, 614 53,255,252,242,15,16,4,252,234,252,242,15,88,4,194,255,221,4,252,234,220,
615 253,252,234,4,239,15,133,244,48,129,124,253,199,4,239,15,133,244,48,139,44, 615 4,194,255,129,124,253,252,234,4,239,15,133,244,48,129,124,253,199,4,239,15,
616 252,234,43,44,199,15,128,244,47,255,129,124,253,252,234,4,239,15,133,244, 616 133,244,48,139,44,252,234,43,44,199,15,128,244,47,255,129,124,253,252,234,
617 50,129,124,253,199,4,239,15,133,244,50,139,4,199,43,4,252,234,15,128,244, 617 4,239,15,133,244,50,129,124,253,199,4,239,15,133,244,50,139,4,199,43,4,252,
618 49,255,129,124,253,252,234,4,239,15,133,244,53,129,124,253,194,4,239,15,133, 618 234,15,128,244,49,255,129,124,253,252,234,4,239,15,133,244,53,129,124,253,
619 244,53,139,44,252,234,43,44,194,15,128,244,52,255,252,242,15,16,4,252,234, 619 194,4,239,15,133,244,53,139,44,252,234,43,44,194,15,128,244,52,255,252,242,
620 252,242,15,92,4,199,255,221,4,252,234,220,36,199,255,252,242,15,16,4,199, 620 15,16,4,252,234,252,242,15,92,4,199,255,221,4,252,234,220,36,199,255,252,
621 252,242,15,92,4,252,234,255,221,4,199,220,36,252,234,255,252,242,15,16,4, 621 242,15,16,4,199,252,242,15,92,4,252,234,255,221,4,199,220,36,252,234,255,
622 252,234,252,242,15,92,4,194,255,221,4,252,234,220,36,194,255,129,124,253, 622 252,242,15,16,4,252,234,252,242,15,92,4,194,255,221,4,252,234,220,36,194,
623 252,234,4,239,15,133,244,48,129,124,253,199,4,239,15,133,244,48,139,44,252, 623 255,129,124,253,252,234,4,239,15,133,244,48,129,124,253,199,4,239,15,133,
624 234,15,175,44,199,15,128,244,47,255,129,124,253,252,234,4,239,15,133,244, 624 244,48,139,44,252,234,15,175,44,199,15,128,244,47,255,129,124,253,252,234,
625 50,129,124,253,199,4,239,15,133,244,50,139,4,199,15,175,4,252,234,15,128, 625 4,239,15,133,244,50,129,124,253,199,4,239,15,133,244,50,139,4,199,15,175,
626 244,49,255,129,124,253,252,234,4,239,15,133,244,53,129,124,253,194,4,239, 626 4,252,234,15,128,244,49,255,129,124,253,252,234,4,239,15,133,244,53,129,124,
627 15,133,244,53,139,44,252,234,15,175,44,194,15,128,244,52,255,252,242,15,16, 627 253,194,4,239,15,133,244,53,139,44,252,234,15,175,44,194,15,128,244,52,255,
628 4,252,234,252,242,15,89,4,199,255,221,4,252,234,220,12,199,255,252,242,15, 628 252,242,15,16,4,252,234,252,242,15,89,4,199,255,221,4,252,234,220,12,199,
629 16,4,199,252,242,15,89,4,252,234,255,221,4,199,220,12,252,234,255,252,242, 629 255,252,242,15,16,4,199,252,242,15,89,4,252,234,255,221,4,199,220,12,252,
630 15,16,4,252,234,252,242,15,89,4,194,255,221,4,252,234,220,12,194,255,252, 630 234,255,252,242,15,16,4,252,234,252,242,15,89,4,194,255,221,4,252,234,220,
631 242,15,16,4,252,234,252,242,15,94,4,199,255,221,4,252,234,220,52,199,255, 631 12,194,255,252,242,15,16,4,252,234,252,242,15,94,4,199,255,221,4,252,234,
632 252,242,15,16,4,199,252,242,15,94,4,252,234,255,221,4,199,220,52,252,234, 632 220,52,199,255,252,242,15,16,4,199,252,242,15,94,4,252,234,255,221,4,199,
633 255,252,242,15,16,4,252,234,252,242,15,94,4,194,255,221,4,252,234,220,52, 633 220,52,252,234,255,252,242,15,16,4,252,234,252,242,15,94,4,194,255,221,4,
634 194,255,252,242,15,16,4,252,234,252,242,15,16,12,199,255,221,4,252,234,221, 634 252,234,220,52,194,255,252,242,15,16,4,252,234,252,242,15,16,12,199,255,221,
635 4,199,255,252,242,15,16,4,199,252,242,15,16,12,252,234,255,221,4,199,221, 635 4,252,234,221,4,199,255,252,242,15,16,4,199,252,242,15,16,12,252,234,255,
636 4,252,234,255,252,242,15,16,4,252,234,252,242,15,16,12,194,255,221,4,252, 636 221,4,199,221,4,252,234,255,252,242,15,16,4,252,234,252,242,15,16,12,194,
637 234,221,4,194,255,248,162,232,244,153,255,252,233,244,162,255,232,244,113, 637 255,221,4,252,234,221,4,194,255,248,163,232,244,153,255,252,233,244,163,255,
638 255,15,182,252,236,15,182,192,141,12,194,41,232,137,76,36,4,137,68,36,8,248, 638 232,244,113,255,15,182,252,236,15,182,192,141,12,194,41,232,137,76,36,4,137,
639 33,139,108,36,48,137,44,36,137,149,233,137,116,36,24,232,251,1,27,139,149, 639 68,36,8,248,33,139,108,36,48,137,44,36,137,149,233,137,116,36,24,232,251,
640 233,133,192,15,133,244,42,15,182,110,252,255,15,182,78,252,253,139,68,252, 640 1,27,139,149,233,133,192,15,133,244,42,15,182,110,252,255,15,182,78,252,253,
641 234,4,139,44,252,234,137,68,202,4,137,44,202,139,6,15,182,204,15,182,232, 641 139,68,252,234,4,139,44,252,234,137,68,202,4,137,44,202,139,6,15,182,204,
642 131,198,4,193,232,16,252,255,36,171,255,252,247,208,139,4,135,199,68,202, 642 15,182,232,131,198,4,193,232,16,252,255,36,171,255,252,247,208,139,4,135,
643 4,237,137,4,202,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255, 643 199,68,202,4,237,137,4,202,139,6,15,182,204,15,182,232,131,198,4,193,232,
644 36,171,255,15,191,192,199,68,202,4,237,137,4,202,255,15,191,192,252,242,15, 644 16,252,255,36,171,255,15,191,192,199,68,202,4,237,137,4,202,255,15,191,192,
645 42,192,252,242,15,17,4,202,255,223,70,252,254,221,28,202,255,252,242,15,16, 645 252,242,15,42,192,252,242,15,17,4,202,255,223,70,252,254,221,28,202,255,252,
646 4,199,252,242,15,17,4,202,255,221,4,199,221,28,202,255,252,247,208,137,68, 646 242,15,16,4,199,252,242,15,17,4,202,255,221,4,199,221,28,202,255,252,247,
647 202,4,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255, 647 208,137,68,202,4,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,
648 141,76,202,12,141,68,194,4,189,237,137,105,252,248,248,1,137,41,131,193,8, 648 36,171,255,141,76,202,12,141,68,194,4,189,237,137,105,252,248,248,1,137,41,
649 57,193,15,134,244,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252, 649 131,193,8,57,193,15,134,244,1,139,6,15,182,204,15,182,232,131,198,4,193,232,
650 255,36,171,255,139,106,252,248,139,172,253,133,233,139,173,233,139,69,4,139, 650 16,252,255,36,171,255,139,106,252,248,139,172,253,133,233,139,173,233,139,
651 109,0,137,68,202,4,137,44,202,139,6,15,182,204,15,182,232,131,198,4,193,232, 651 69,4,139,109,0,137,68,202,4,137,44,202,139,6,15,182,204,15,182,232,131,198,
652 16,252,255,36,171,255,139,106,252,248,139,172,253,141,233,128,189,233,0,139, 652 4,193,232,16,252,255,36,171,255,139,106,252,248,139,172,253,141,233,128,189,
653 173,233,139,12,194,139,68,194,4,137,77,0,137,69,4,15,132,244,247,252,246, 653 233,0,139,173,233,139,12,194,139,68,194,4,137,77,0,137,69,4,15,132,244,247,
654 133,233,235,15,133,244,248,248,1,139,6,15,182,204,15,182,232,131,198,4,193, 654 252,246,133,233,235,15,133,244,248,248,1,139,6,15,182,204,15,182,232,131,
655 232,16,252,255,36,171,248,2,129,232,239,129,252,248,239,15,134,244,1,252, 655 198,4,193,232,16,252,255,36,171,248,2,129,232,239,129,252,248,239,15,134,
656 246,129,233,235,15,132,244,1,135,213,141,139,233,255,232,251,1,28,137,252, 656 244,1,252,246,129,233,235,15,132,244,1,135,213,141,139,233,255,232,251,1,
657 234,252,233,244,1,255,252,247,208,139,106,252,248,139,172,253,141,233,139, 657 28,137,252,234,252,233,244,1,255,252,247,208,139,106,252,248,139,172,253,
658 12,135,139,133,233,137,8,199,64,4,237,252,246,133,233,235,15,133,244,248, 658 141,233,139,12,135,139,133,233,137,8,199,64,4,237,252,246,133,233,235,15,
659 248,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248, 659 133,244,248,248,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,
660 2,252,246,129,233,235,15,132,244,1,128,189,233,0,15,132,244,1,137,213,137, 660 36,171,248,2,252,246,129,233,235,15,132,244,1,128,189,233,0,15,132,244,1,
661 194,141,139,233,232,251,1,28,137,252,234,252,233,244,1,255,139,106,252,248, 661 137,213,137,194,141,139,233,232,251,1,28,137,252,234,252,233,244,1,255,139,
662 255,252,242,15,16,4,199,255,139,172,253,141,233,139,141,233,255,252,242,15, 662 106,252,248,255,252,242,15,16,4,199,255,139,172,253,141,233,139,141,233,255,
663 17,1,255,221,25,255,252,247,208,139,106,252,248,139,172,253,141,233,139,141, 663 252,242,15,17,1,255,221,25,255,252,247,208,139,106,252,248,139,172,253,141,
664 233,137,65,4,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36, 664 233,139,141,233,137,65,4,139,6,15,182,204,15,182,232,131,198,4,193,232,16,
665 171,255,141,180,253,134,233,139,108,36,48,131,189,233,0,15,132,244,247,137, 665 252,255,36,171,255,141,180,253,134,233,139,108,36,48,131,189,233,0,15,132,
666 149,233,141,20,202,137,252,233,232,251,1,29,139,149,233,248,1,139,6,15,182, 666 244,247,137,149,233,141,20,202,137,252,233,232,251,1,29,139,149,233,248,1,
667 204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,252,247,208,139,74, 667 139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,252,247,
668 252,248,139,4,135,139,108,36,48,137,76,36,8,137,68,36,4,137,44,36,137,149, 668 208,139,74,252,248,139,4,135,139,108,36,48,137,76,36,8,137,68,36,4,137,44,
669 233,137,116,36,24,232,251,1,30,139,149,233,15,182,78,252,253,137,4,202,199, 669 36,137,149,233,137,116,36,24,232,251,1,30,139,149,233,15,182,78,252,253,137,
670 68,202,4,237,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36, 670 4,202,199,68,202,4,237,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,
671 171,255,139,108,36,48,137,149,233,139,139,233,59,139,233,137,116,36,24,15, 671 255,36,171,255,139,108,36,48,137,149,233,139,139,233,59,139,233,137,116,36,
672 131,244,251,248,1,137,193,37,252,255,7,0,0,193,252,233,11,137,76,36,8,61, 672 24,15,131,244,251,248,1,137,193,37,252,255,7,0,0,193,252,233,11,137,76,36,
673 252,255,7,0,0,15,132,244,249,248,2,137,44,36,137,68,36,4,232,251,1,31,139, 673 8,61,252,255,7,0,0,15,132,244,249,248,2,137,44,36,137,68,36,4,232,251,1,31,
674 149,233,15,182,78,252,253,137,4,202,199,68,202,4,237,139,6,15,182,204,15, 674 139,149,233,15,182,78,252,253,137,4,202,199,68,202,4,237,139,6,15,182,204,
675 182,232,131,198,4,193,232,16,252,255,36,171,248,3,184,1,8,0,0,252,233,244, 675 15,182,232,131,198,4,193,232,16,252,255,36,171,248,3,184,1,8,0,0,252,233,
676 2,248,5,137,252,233,232,251,1,32,15,183,70,252,254,252,233,244,1,255,252, 676 244,2,248,5,137,252,233,232,251,1,32,15,183,70,252,254,252,233,244,1,255,
677 247,208,139,108,36,48,139,139,233,137,116,36,24,59,139,233,137,149,233,15, 677 252,247,208,139,108,36,48,139,139,233,137,116,36,24,59,139,233,137,149,233,
678 131,244,249,248,2,139,20,135,137,252,233,232,251,1,33,139,149,233,15,182, 678 15,131,244,249,248,2,139,20,135,137,252,233,232,251,1,33,139,149,233,15,182,
679 78,252,253,137,4,202,199,68,202,4,237,139,6,15,182,204,15,182,232,131,198, 679 78,252,253,137,4,202,199,68,202,4,237,139,6,15,182,204,15,182,232,131,198,
680 4,193,232,16,252,255,36,171,248,3,137,252,233,232,251,1,32,15,183,70,252, 680 4,193,232,16,252,255,36,171,248,3,137,252,233,232,251,1,32,15,183,70,252,
681 254,252,247,208,252,233,244,2,255,252,247,208,139,106,252,248,139,173,233, 681 254,252,247,208,252,233,244,2,255,252,247,208,139,106,252,248,139,173,233,
682 139,4,135,252,233,244,163,255,252,247,208,139,106,252,248,139,173,233,139, 682 139,4,135,252,233,244,164,255,252,247,208,139,106,252,248,139,173,233,139,
683 4,135,252,233,244,164,255,15,182,252,236,15,182,192,129,124,253,252,234,4, 683 4,135,252,233,244,165,255,15,182,252,236,15,182,192,129,124,253,252,234,4,
684 239,15,133,244,36,139,44,252,234,255,129,124,253,194,4,239,15,133,244,251, 684 239,15,133,244,36,139,44,252,234,255,129,124,253,194,4,239,15,133,244,251,
685 139,4,194,255,129,124,253,194,4,239,15,131,244,251,255,252,242,15,16,4,194, 685 139,4,194,255,129,124,253,194,4,239,15,131,244,251,255,252,242,15,16,4,194,
686 252,242,15,45,192,252,242,15,42,200,102,15,46,193,255,221,4,194,219,20,36, 686 252,242,15,45,192,252,242,15,42,200,102,15,46,193,255,221,4,194,219,20,36,
@@ -689,9 +689,9 @@ static const unsigned char build_actionlist[16904] = {
689 248,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248, 689 248,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,
690 2,131,189,233,0,15,132,244,249,139,141,233,252,246,129,233,235,15,132,244, 690 2,131,189,233,0,15,132,244,249,139,141,233,252,246,129,233,235,15,132,244,
691 36,15,182,78,252,253,248,3,199,68,202,4,237,252,233,244,1,248,5,255,129,124, 691 36,15,182,78,252,253,248,3,199,68,202,4,237,252,233,244,1,248,5,255,129,124,
692 253,194,4,239,15,133,244,36,139,4,194,252,233,244,163,255,15,182,252,236, 692 253,194,4,239,15,133,244,36,139,4,194,252,233,244,164,255,15,182,252,236,
693 15,182,192,252,247,208,139,4,135,129,124,253,252,234,4,239,15,133,244,34, 693 15,182,192,252,247,208,139,4,135,129,124,253,252,234,4,239,15,133,244,34,
694 139,44,252,234,248,163,139,141,233,35,136,233,105,201,239,3,141,233,248,1, 694 139,44,252,234,248,164,139,141,233,35,136,233,105,201,239,3,141,233,248,1,
695 129,185,233,239,15,133,244,250,57,129,233,15,133,244,250,129,121,253,4,239, 695 129,185,233,239,15,133,244,250,57,129,233,15,133,244,250,129,121,253,4,239,
696 15,132,244,251,15,182,70,252,253,139,41,139,73,4,137,44,194,137,76,194,4, 696 15,132,244,251,15,182,70,252,253,139,41,139,73,4,137,44,194,137,76,194,4,
697 248,2,255,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171, 697 248,2,255,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,
@@ -709,10 +709,10 @@ static const unsigned char build_actionlist[16904] = {
709 248,2,139,108,202,4,139,12,202,137,104,4,137,8,139,6,15,182,204,15,182,232, 709 248,2,139,108,202,4,139,12,202,137,104,4,137,8,139,6,15,182,204,15,182,232,
710 131,198,4,193,232,16,252,255,36,171,248,3,131,189,233,0,15,132,244,1,139, 710 131,198,4,193,232,16,252,255,36,171,248,3,131,189,233,0,15,132,244,1,139,
711 141,233,252,246,129,233,235,255,15,132,244,39,15,182,78,252,253,252,233,244, 711 141,233,252,246,129,233,235,255,15,132,244,39,15,182,78,252,253,252,233,244,
712 1,248,5,129,124,253,194,4,239,15,133,244,39,139,4,194,252,233,244,164,248, 712 1,248,5,129,124,253,194,4,239,15,133,244,39,139,4,194,252,233,244,165,248,
713 7,128,165,233,235,139,139,233,137,171,233,137,141,233,15,182,78,252,253,252, 713 7,128,165,233,235,139,139,233,137,171,233,137,141,233,15,182,78,252,253,252,
714 233,244,2,255,15,182,252,236,15,182,192,252,247,208,139,4,135,129,124,253, 714 233,244,2,255,15,182,252,236,15,182,192,252,247,208,139,4,135,129,124,253,
715 252,234,4,239,15,133,244,37,139,44,252,234,248,164,139,141,233,35,136,233, 715 252,234,4,239,15,133,244,37,139,44,252,234,248,165,139,141,233,35,136,233,
716 105,201,239,198,133,233,0,3,141,233,248,1,129,185,233,239,15,133,244,251, 716 105,201,239,198,133,233,0,3,141,233,248,1,129,185,233,239,15,133,244,251,
717 57,129,233,15,133,244,251,129,121,253,4,239,15,132,244,250,248,2,255,252, 717 57,129,233,15,133,244,251,129,121,253,4,239,15,132,244,250,248,2,255,252,
718 246,133,233,235,15,133,244,253,248,3,15,182,70,252,253,139,108,194,4,139, 718 246,133,233,235,15,133,244,253,248,3,15,182,70,252,253,139,108,194,4,139,
@@ -793,31 +793,33 @@ static const unsigned char build_actionlist[16904] = {
793 137,252,245,209,252,237,129,229,239,102,131,172,253,43,233,1,15,132,244,145, 793 137,252,245,209,252,237,129,229,239,102,131,172,253,43,233,1,15,132,244,145,
794 255,141,12,202,255,129,121,253,4,239,15,133,244,255,255,129,121,253,12,239, 794 255,141,12,202,255,129,121,253,4,239,15,133,244,255,255,129,121,253,12,239,
795 15,133,244,57,129,121,253,20,239,15,133,244,57,139,41,131,121,16,0,15,140, 795 15,133,244,57,129,121,253,20,239,15,133,244,57,139,41,131,121,16,0,15,140,
796 244,251,255,139,105,16,133,252,237,15,136,244,251,3,41,15,128,244,247,137, 796 244,251,255,129,121,253,12,239,15,133,244,162,129,121,253,20,239,15,133,244,
797 41,255,59,105,8,199,65,28,237,137,105,24,255,15,142,244,253,248,1,248,6,141, 797 162,255,139,105,16,133,252,237,15,136,244,251,3,41,15,128,244,247,137,41,
798 255,59,105,8,199,65,28,237,137,105,24,255,15,142,244,253,248,1,248,6,141,
798 180,253,134,233,255,141,180,253,134,233,15,183,70,252,254,15,142,245,248, 799 180,253,134,233,255,141,180,253,134,233,15,183,70,252,254,15,142,245,248,
799 1,248,6,255,15,143,244,253,248,6,141,180,253,134,233,248,1,255,248,7,139, 800 1,248,6,255,15,143,244,253,248,6,141,180,253,134,233,248,1,255,248,7,139,
800 6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,5,255,3,41, 801 6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,5,255,3,41,
801 15,128,244,1,137,41,255,15,141,244,7,255,141,180,253,134,233,15,183,70,252, 802 15,128,244,1,137,41,255,15,141,244,7,255,141,180,253,134,233,15,183,70,252,
802 254,15,141,245,255,15,140,244,7,255,252,233,244,6,248,9,255,129,121,253,4, 803 254,15,141,245,255,15,140,244,7,255,252,233,244,6,248,9,255,129,121,253,4,
803 239,255,15,131,244,57,129,121,253,12,239,15,131,244,57,255,139,105,20,255, 804 239,255,15,131,244,57,129,121,253,12,239,15,131,244,57,255,129,121,253,12,
804 129,252,253,239,15,131,244,57,255,252,242,15,16,1,252,242,15,16,73,8,255, 805 239,15,131,244,162,129,121,253,20,239,15,131,244,162,255,139,105,20,255,129,
805 252,242,15,88,65,16,252,242,15,17,1,133,252,237,15,136,244,249,255,15,140, 806 252,253,239,15,131,244,57,255,252,242,15,16,1,252,242,15,16,73,8,255,252,
806 244,249,255,102,15,46,200,248,1,252,242,15,17,65,24,255,221,65,8,221,1,255, 807 242,15,88,65,16,252,242,15,17,1,133,252,237,15,136,244,249,255,15,140,244,
807 220,65,16,221,17,221,81,24,133,252,237,15,136,244,247,255,221,81,24,15,140, 808 249,255,102,15,46,200,248,1,252,242,15,17,65,24,255,221,65,8,221,1,255,220,
808 244,247,255,217,201,248,1,255,15,183,70,252,254,255,15,131,244,7,255,15,131, 809 65,16,221,17,221,81,24,133,252,237,15,136,244,247,255,221,81,24,15,140,244,
809 244,248,141,180,253,134,233,255,141,180,253,134,233,15,183,70,252,254,15, 810 247,255,217,201,248,1,255,15,183,70,252,254,255,15,131,244,7,255,15,131,244,
810 131,245,255,15,130,244,7,255,15,130,244,248,141,180,253,134,233,255,248,3, 811 248,141,180,253,134,233,255,141,180,253,134,233,15,183,70,252,254,15,131,
811 102,15,46,193,252,233,244,1,255,141,12,202,139,105,4,129,252,253,239,15,132, 812 245,255,15,130,244,7,255,15,130,244,248,141,180,253,134,233,255,248,3,102,
812 244,247,255,137,105,252,252,139,41,137,105,252,248,252,233,245,255,141,180, 813 15,46,193,252,233,244,1,255,141,12,202,139,105,4,129,252,253,239,15,132,244,
813 253,134,233,139,1,137,105,252,252,137,65,252,248,255,139,139,233,139,4,129, 814 247,255,137,105,252,252,139,41,137,105,252,248,252,233,245,255,141,180,253,
814 139,128,233,139,108,36,48,137,147,233,137,171,233,252,255,224,255,141,180, 815 134,233,139,1,137,105,252,252,137,65,252,248,255,139,139,233,139,4,129,139,
815 253,134,233,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171, 816 128,233,139,108,36,48,137,147,233,137,171,233,252,255,224,255,141,180,253,
816 255,137,252,245,209,252,237,129,229,239,102,131,172,253,43,233,1,15,132,244, 817 134,233,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,
817 147,255,139,190,233,139,108,36,48,141,12,202,59,141,233,15,135,244,23,15, 818 137,252,245,209,252,237,129,229,239,102,131,172,253,43,233,1,15,132,244,147,
818 182,142,233,57,200,15,134,244,249,248,2,255,15,183,70,252,254,252,233,245, 819 255,139,190,233,139,108,36,48,141,12,202,59,141,233,15,135,244,23,15,182,
819 255,248,3,199,68,194,252,252,237,131,192,1,57,200,15,134,244,3,252,233,244, 820 142,233,57,200,15,134,244,249,248,2,255,15,183,70,252,254,252,233,245,255,
820 2,255,141,44,197,237,141,4,194,139,122,252,248,137,104,252,252,137,120,252, 821 248,3,199,68,194,252,252,237,131,192,1,57,200,15,134,244,3,252,233,244,2,
822 255,141,44,197,237,141,4,194,139,122,252,248,137,104,252,252,137,120,252,
821 248,139,108,36,48,141,12,200,59,141,233,15,135,244,22,137,209,137,194,15, 823 248,139,108,36,48,141,12,200,59,141,233,15,135,244,22,137,209,137,194,15,
822 182,174,233,133,252,237,15,132,244,248,248,1,131,193,8,57,209,15,131,244, 824 182,174,233,133,252,237,15,132,244,248,248,1,131,193,8,57,209,15,131,244,
823 249,139,121,252,248,137,56,139,121,252,252,137,120,4,131,192,8,199,65,252, 825 249,139,121,252,248,137,56,139,121,252,252,137,120,4,131,192,8,199,65,252,
@@ -983,6 +985,7 @@ enum {
983 GLOB_vm_foldarith, 985 GLOB_vm_foldarith,
984 GLOB_vm_cpuid, 986 GLOB_vm_cpuid,
985 GLOB_vm_ffi_call, 987 GLOB_vm_ffi_call,
988 GLOB_assert_bad_for_arg_type,
986 GLOB_BC_MODVN_Z, 989 GLOB_BC_MODVN_Z,
987 GLOB_BC_TGETS_Z, 990 GLOB_BC_TGETS_Z,
988 GLOB_BC_TSETS_Z, 991 GLOB_BC_TSETS_Z,
@@ -1141,6 +1144,7 @@ static const char *const globnames[] = {
1141 "vm_foldarith", 1144 "vm_foldarith",
1142 "vm_cpuid", 1145 "vm_cpuid",
1143 "vm_ffi_call@4", 1146 "vm_ffi_call@4",
1147 "assert_bad_for_arg_type",
1144 "BC_MODVN_Z", 1148 "BC_MODVN_Z",
1145 "BC_TGETS_Z", 1149 "BC_TGETS_Z",
1146 "BC_TSETS_Z", 1150 "BC_TSETS_Z",
@@ -1961,13 +1965,18 @@ static void build_subroutines(BuildCtx *ctx, int cmov, int sse)
1961#endif 1965#endif
1962 dasm_put(Dst, 10916); 1966 dasm_put(Dst, 10916);
1963#endif 1967#endif
1968 dasm_put(Dst, 10923);
1969#ifdef LUA_USE_ASSERT
1970 dasm_put(Dst, 10303);
1971#endif
1972 dasm_put(Dst, 10303);
1964} 1973}
1965 1974
1966/* Generate the code for a single instruction. */ 1975/* Generate the code for a single instruction. */
1967static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse) 1976static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
1968{ 1977{
1969 int vk = 0; 1978 int vk = 0;
1970 dasm_put(Dst, 10923, defop); 1979 dasm_put(Dst, 10926, defop);
1971 1980
1972 switch (op) { 1981 switch (op) {
1973 1982
@@ -1978,57 +1987,57 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
1978 1987
1979 case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT: 1988 case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT:
1980 if (LJ_DUALNUM) { 1989 if (LJ_DUALNUM) {
1981 dasm_put(Dst, 10925, LJ_TISNUM, LJ_TISNUM); 1990 dasm_put(Dst, 10928, LJ_TISNUM, LJ_TISNUM);
1982 switch (op) { 1991 switch (op) {
1983 case BC_ISLT: 1992 case BC_ISLT:
1984 dasm_put(Dst, 10955); 1993 dasm_put(Dst, 10958);
1985 break; 1994 break;
1986 case BC_ISGE: 1995 case BC_ISGE:
1987 dasm_put(Dst, 10960); 1996 dasm_put(Dst, 10963);
1988 break; 1997 break;
1989 case BC_ISLE: 1998 case BC_ISLE:
1990 dasm_put(Dst, 10965); 1999 dasm_put(Dst, 10968);
1991 break; 2000 break;
1992 case BC_ISGT: 2001 case BC_ISGT:
1993 dasm_put(Dst, 10970); 2002 dasm_put(Dst, 10973);
1994 break; 2003 break;
1995 default: break; /* Shut up GCC. */ 2004 default: break; /* Shut up GCC. */
1996 } 2005 }
1997 dasm_put(Dst, 10975, -BCBIAS_J*4, LJ_TISNUM); 2006 dasm_put(Dst, 10978, -BCBIAS_J*4, LJ_TISNUM);
1998 if (sse) { 2007 if (sse) {
1999 dasm_put(Dst, 11028); 2008 dasm_put(Dst, 11031);
2000 } else { 2009 } else {
2001 dasm_put(Dst, 11039); 2010 dasm_put(Dst, 11042);
2002 } 2011 }
2003 dasm_put(Dst, 11050); 2012 dasm_put(Dst, 11053);
2004 if (sse) { 2013 if (sse) {
2005 dasm_put(Dst, 11057); 2014 dasm_put(Dst, 11060);
2006 switch (op) { 2015 switch (op) {
2007 case BC_ISLT: 2016 case BC_ISLT:
2008 dasm_put(Dst, 11077); 2017 dasm_put(Dst, 11080);
2009 break; 2018 break;
2010 case BC_ISGE: 2019 case BC_ISGE:
2011 dasm_put(Dst, 11082); 2020 dasm_put(Dst, 11085);
2012 break; 2021 break;
2013 case BC_ISLE: 2022 case BC_ISLE:
2014 dasm_put(Dst, 11087); 2023 dasm_put(Dst, 11090);
2015 break; 2024 break;
2016 case BC_ISGT: 2025 case BC_ISGT:
2017 dasm_put(Dst, 11092); 2026 dasm_put(Dst, 11095);
2018 break; 2027 break;
2019 default: break; /* Shut up GCC. */ 2028 default: break; /* Shut up GCC. */
2020 } 2029 }
2021 dasm_put(Dst, 11097); 2030 dasm_put(Dst, 11100);
2022 } else { 2031 } else {
2023 dasm_put(Dst, 11102); 2032 dasm_put(Dst, 11105);
2024 } 2033 }
2025 } else { 2034 } else {
2026 dasm_put(Dst, 11110, LJ_TISNUM, LJ_TISNUM); 2035 dasm_put(Dst, 11113, LJ_TISNUM, LJ_TISNUM);
2027 } 2036 }
2028 if (sse) { 2037 if (sse) {
2029 dasm_put(Dst, 11131); 2038 dasm_put(Dst, 11134);
2030 } else { 2039 } else {
2031 dasm_put(Dst, 11152); 2040 dasm_put(Dst, 11155);
2032 if (cmov) { 2041 if (cmov) {
2033 dasm_put(Dst, 3899); 2042 dasm_put(Dst, 3899);
2034 } else { 2043 } else {
@@ -2038,70 +2047,70 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2038 if (LJ_DUALNUM) { 2047 if (LJ_DUALNUM) {
2039 switch (op) { 2048 switch (op) {
2040 case BC_ISLT: 2049 case BC_ISLT:
2041 dasm_put(Dst, 11077); 2050 dasm_put(Dst, 11080);
2042 break; 2051 break;
2043 case BC_ISGE: 2052 case BC_ISGE:
2044 dasm_put(Dst, 11082); 2053 dasm_put(Dst, 11085);
2045 break; 2054 break;
2046 case BC_ISLE: 2055 case BC_ISLE:
2047 dasm_put(Dst, 11087); 2056 dasm_put(Dst, 11090);
2048 break; 2057 break;
2049 case BC_ISGT: 2058 case BC_ISGT:
2050 dasm_put(Dst, 11092); 2059 dasm_put(Dst, 11095);
2051 break; 2060 break;
2052 default: break; /* Shut up GCC. */ 2061 default: break; /* Shut up GCC. */
2053 } 2062 }
2054 dasm_put(Dst, 11097); 2063 dasm_put(Dst, 11100);
2055 } else { 2064 } else {
2056 switch (op) { 2065 switch (op) {
2057 case BC_ISLT: 2066 case BC_ISLT:
2058 dasm_put(Dst, 11168); 2067 dasm_put(Dst, 11171);
2059 break; 2068 break;
2060 case BC_ISGE: 2069 case BC_ISGE:
2061 dasm_put(Dst, 11173); 2070 dasm_put(Dst, 11176);
2062 break; 2071 break;
2063 case BC_ISLE: 2072 case BC_ISLE:
2064 dasm_put(Dst, 11178); 2073 dasm_put(Dst, 11181);
2065 break; 2074 break;
2066 case BC_ISGT: 2075 case BC_ISGT:
2067 dasm_put(Dst, 11183); 2076 dasm_put(Dst, 11186);
2068 break; 2077 break;
2069 default: break; /* Shut up GCC. */ 2078 default: break; /* Shut up GCC. */
2070 } 2079 }
2071 dasm_put(Dst, 11188, -BCBIAS_J*4); 2080 dasm_put(Dst, 11191, -BCBIAS_J*4);
2072 } 2081 }
2073 break; 2082 break;
2074 2083
2075 case BC_ISEQV: case BC_ISNEV: 2084 case BC_ISEQV: case BC_ISNEV:
2076 vk = op == BC_ISEQV; 2085 vk = op == BC_ISEQV;
2077 dasm_put(Dst, 11219); 2086 dasm_put(Dst, 11222);
2078 if (LJ_DUALNUM) { 2087 if (LJ_DUALNUM) {
2079 dasm_put(Dst, 11227, LJ_TISNUM, LJ_TISNUM); 2088 dasm_put(Dst, 11230, LJ_TISNUM, LJ_TISNUM);
2080 if (vk) { 2089 if (vk) {
2081 dasm_put(Dst, 11252); 2090 dasm_put(Dst, 11255);
2082 } else { 2091 } else {
2083 dasm_put(Dst, 11257); 2092 dasm_put(Dst, 11260);
2084 } 2093 }
2085 dasm_put(Dst, 11262, -BCBIAS_J*4, LJ_TISNUM); 2094 dasm_put(Dst, 11265, -BCBIAS_J*4, LJ_TISNUM);
2086 if (sse) { 2095 if (sse) {
2087 dasm_put(Dst, 11313); 2096 dasm_put(Dst, 11316);
2088 } else { 2097 } else {
2089 dasm_put(Dst, 11320); 2098 dasm_put(Dst, 11323);
2090 } 2099 }
2091 dasm_put(Dst, 11324); 2100 dasm_put(Dst, 11327);
2092 if (sse) { 2101 if (sse) {
2093 dasm_put(Dst, 11335); 2102 dasm_put(Dst, 11338);
2094 } else { 2103 } else {
2095 dasm_put(Dst, 11347); 2104 dasm_put(Dst, 11350);
2096 } 2105 }
2097 dasm_put(Dst, 11354); 2106 dasm_put(Dst, 11357);
2098 } else { 2107 } else {
2099 dasm_put(Dst, 11359, LJ_TISNUM, LJ_TISNUM); 2108 dasm_put(Dst, 11362, LJ_TISNUM, LJ_TISNUM);
2100 } 2109 }
2101 if (sse) { 2110 if (sse) {
2102 dasm_put(Dst, 11378); 2111 dasm_put(Dst, 11381);
2103 } else { 2112 } else {
2104 dasm_put(Dst, 11396); 2113 dasm_put(Dst, 11399);
2105 if (cmov) { 2114 if (cmov) {
2106 dasm_put(Dst, 3899); 2115 dasm_put(Dst, 3899);
2107 } else { 2116 } else {
@@ -2110,13 +2119,13 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2110 } 2119 }
2111 iseqne_fp: 2120 iseqne_fp:
2112 if (vk) { 2121 if (vk) {
2113 dasm_put(Dst, 11409); 2122 dasm_put(Dst, 11412);
2114 } else { 2123 } else {
2115 dasm_put(Dst, 11418); 2124 dasm_put(Dst, 11421);
2116 } 2125 }
2117 iseqne_end: 2126 iseqne_end:
2118 if (vk) { 2127 if (vk) {
2119 dasm_put(Dst, 11427, -BCBIAS_J*4); 2128 dasm_put(Dst, 11430, -BCBIAS_J*4);
2120 if (!LJ_HASFFI) { 2129 if (!LJ_HASFFI) {
2121 dasm_put(Dst, 4799); 2130 dasm_put(Dst, 4799);
2122 } 2131 }
@@ -2124,76 +2133,76 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2124 if (!LJ_HASFFI) { 2133 if (!LJ_HASFFI) {
2125 dasm_put(Dst, 4799); 2134 dasm_put(Dst, 4799);
2126 } 2135 }
2127 dasm_put(Dst, 11442, -BCBIAS_J*4); 2136 dasm_put(Dst, 11445, -BCBIAS_J*4);
2128 } 2137 }
2129 if (LJ_DUALNUM && (op == BC_ISEQV || op == BC_ISNEV || 2138 if (LJ_DUALNUM && (op == BC_ISEQV || op == BC_ISNEV ||
2130 op == BC_ISEQN || op == BC_ISNEN)) { 2139 op == BC_ISEQN || op == BC_ISNEN)) {
2131 dasm_put(Dst, 11457); 2140 dasm_put(Dst, 11460);
2132 } else { 2141 } else {
2133 dasm_put(Dst, 11200); 2142 dasm_put(Dst, 11203);
2134 } 2143 }
2135 if (op == BC_ISEQV || op == BC_ISNEV) { 2144 if (op == BC_ISEQV || op == BC_ISNEV) {
2136 dasm_put(Dst, 11462); 2145 dasm_put(Dst, 11465);
2137 if (LJ_HASFFI) { 2146 if (LJ_HASFFI) {
2138 dasm_put(Dst, 11465, LJ_TCDATA, LJ_TCDATA); 2147 dasm_put(Dst, 11468, LJ_TCDATA, LJ_TCDATA);
2139 } 2148 }
2140 dasm_put(Dst, 11484, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq); 2149 dasm_put(Dst, 11487, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq);
2141 if (vk) { 2150 if (vk) {
2142 dasm_put(Dst, 11540); 2151 dasm_put(Dst, 11543);
2143 } else { 2152 } else {
2144 dasm_put(Dst, 11544); 2153 dasm_put(Dst, 11547);
2145 } 2154 }
2146 dasm_put(Dst, 11550); 2155 dasm_put(Dst, 11553);
2147 } else if (LJ_HASFFI) { 2156 } else if (LJ_HASFFI) {
2148 dasm_put(Dst, 11555, LJ_TCDATA); 2157 dasm_put(Dst, 11558, LJ_TCDATA);
2149 if (LJ_DUALNUM && vk) { 2158 if (LJ_DUALNUM && vk) {
2150 dasm_put(Dst, 11562); 2159 dasm_put(Dst, 11565);
2151 } else { 2160 } else {
2152 dasm_put(Dst, 11535); 2161 dasm_put(Dst, 11538);
2153 } 2162 }
2154 dasm_put(Dst, 11567); 2163 dasm_put(Dst, 11570);
2155 } 2164 }
2156 break; 2165 break;
2157 case BC_ISEQS: case BC_ISNES: 2166 case BC_ISEQS: case BC_ISNES:
2158 vk = op == BC_ISEQS; 2167 vk = op == BC_ISEQS;
2159 dasm_put(Dst, 11572, LJ_TSTR); 2168 dasm_put(Dst, 11575, LJ_TSTR);
2160 iseqne_test: 2169 iseqne_test:
2161 if (vk) { 2170 if (vk) {
2162 dasm_put(Dst, 11413); 2171 dasm_put(Dst, 11416);
2163 } else { 2172 } else {
2164 dasm_put(Dst, 2917); 2173 dasm_put(Dst, 2917);
2165 } 2174 }
2166 goto iseqne_end; 2175 goto iseqne_end;
2167 case BC_ISEQN: case BC_ISNEN: 2176 case BC_ISEQN: case BC_ISNEN:
2168 vk = op == BC_ISEQN; 2177 vk = op == BC_ISEQN;
2169 dasm_put(Dst, 11597); 2178 dasm_put(Dst, 11600);
2170 if (LJ_DUALNUM) { 2179 if (LJ_DUALNUM) {
2171 dasm_put(Dst, 11605, LJ_TISNUM, LJ_TISNUM); 2180 dasm_put(Dst, 11608, LJ_TISNUM, LJ_TISNUM);
2172 if (vk) { 2181 if (vk) {
2173 dasm_put(Dst, 11252); 2182 dasm_put(Dst, 11255);
2174 } else { 2183 } else {
2175 dasm_put(Dst, 11257); 2184 dasm_put(Dst, 11260);
2176 } 2185 }
2177 dasm_put(Dst, 11630, -BCBIAS_J*4, LJ_TISNUM); 2186 dasm_put(Dst, 11633, -BCBIAS_J*4, LJ_TISNUM);
2178 if (sse) { 2187 if (sse) {
2179 dasm_put(Dst, 11677); 2188 dasm_put(Dst, 11680);
2180 } else { 2189 } else {
2181 dasm_put(Dst, 11684); 2190 dasm_put(Dst, 11687);
2182 } 2191 }
2183 dasm_put(Dst, 11688); 2192 dasm_put(Dst, 11691);
2184 if (sse) { 2193 if (sse) {
2185 dasm_put(Dst, 11695); 2194 dasm_put(Dst, 11698);
2186 } else { 2195 } else {
2187 dasm_put(Dst, 11707); 2196 dasm_put(Dst, 11710);
2188 } 2197 }
2189 dasm_put(Dst, 11354); 2198 dasm_put(Dst, 11357);
2190 } else { 2199 } else {
2191 dasm_put(Dst, 11714, LJ_TISNUM); 2200 dasm_put(Dst, 11717, LJ_TISNUM);
2192 } 2201 }
2193 if (sse) { 2202 if (sse) {
2194 dasm_put(Dst, 11723); 2203 dasm_put(Dst, 11726);
2195 } else { 2204 } else {
2196 dasm_put(Dst, 11741); 2205 dasm_put(Dst, 11744);
2197 if (cmov) { 2206 if (cmov) {
2198 dasm_put(Dst, 3899); 2207 dasm_put(Dst, 3899);
2199 } else { 2208 } else {
@@ -2203,72 +2212,72 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2203 goto iseqne_fp; 2212 goto iseqne_fp;
2204 case BC_ISEQP: case BC_ISNEP: 2213 case BC_ISEQP: case BC_ISNEP:
2205 vk = op == BC_ISEQP; 2214 vk = op == BC_ISEQP;
2206 dasm_put(Dst, 11754); 2215 dasm_put(Dst, 11757);
2207 if (!LJ_HASFFI) goto iseqne_test; 2216 if (!LJ_HASFFI) goto iseqne_test;
2208 if (vk) { 2217 if (vk) {
2209 dasm_put(Dst, 11767, -BCBIAS_J*4, LJ_TCDATA); 2218 dasm_put(Dst, 11770, -BCBIAS_J*4, LJ_TCDATA);
2210 } else { 2219 } else {
2211 dasm_put(Dst, 11816, LJ_TCDATA, -BCBIAS_J*4); 2220 dasm_put(Dst, 11819, LJ_TCDATA, -BCBIAS_J*4);
2212 } 2221 }
2213 break; 2222 break;
2214 2223
2215 /* -- Unary test and copy ops ------------------------------------------- */ 2224 /* -- Unary test and copy ops ------------------------------------------- */
2216 2225
2217 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF: 2226 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF:
2218 dasm_put(Dst, 11859, LJ_TISTRUECOND); 2227 dasm_put(Dst, 11862, LJ_TISTRUECOND);
2219 if (op == BC_IST || op == BC_ISTC) { 2228 if (op == BC_IST || op == BC_ISTC) {
2220 dasm_put(Dst, 11183); 2229 dasm_put(Dst, 11186);
2221 } else { 2230 } else {
2222 dasm_put(Dst, 11178); 2231 dasm_put(Dst, 11181);
2223 } 2232 }
2224 if (op == BC_ISTC || op == BC_ISFC) { 2233 if (op == BC_ISTC || op == BC_ISFC) {
2225 dasm_put(Dst, 11871); 2234 dasm_put(Dst, 11874);
2226 } 2235 }
2227 dasm_put(Dst, 11188, -BCBIAS_J*4); 2236 dasm_put(Dst, 11191, -BCBIAS_J*4);
2228 break; 2237 break;
2229 2238
2230 /* -- Unary ops --------------------------------------------------------- */ 2239 /* -- Unary ops --------------------------------------------------------- */
2231 2240
2232 case BC_MOV: 2241 case BC_MOV:
2233 dasm_put(Dst, 11882); 2242 dasm_put(Dst, 11885);
2234 break; 2243 break;
2235 case BC_NOT: 2244 case BC_NOT:
2236 dasm_put(Dst, 11915, LJ_TISTRUECOND, LJ_TTRUE); 2245 dasm_put(Dst, 11918, LJ_TISTRUECOND, LJ_TTRUE);
2237 break; 2246 break;
2238 case BC_UNM: 2247 case BC_UNM:
2239 if (LJ_DUALNUM) { 2248 if (LJ_DUALNUM) {
2240 dasm_put(Dst, 11950, LJ_TISNUM, LJ_TISNUM); 2249 dasm_put(Dst, 11953, LJ_TISNUM, LJ_TISNUM);
2241 } else { 2250 } else {
2242 dasm_put(Dst, 12026, LJ_TISNUM); 2251 dasm_put(Dst, 12029, LJ_TISNUM);
2243 } 2252 }
2244 if (sse) { 2253 if (sse) {
2245 dasm_put(Dst, 12037); 2254 dasm_put(Dst, 12040);
2246 } else { 2255 } else {
2247 dasm_put(Dst, 12067); 2256 dasm_put(Dst, 12070);
2248 } 2257 }
2249 if (LJ_DUALNUM) { 2258 if (LJ_DUALNUM) {
2250 dasm_put(Dst, 11457); 2259 dasm_put(Dst, 11460);
2251 } else { 2260 } else {
2252 dasm_put(Dst, 11200); 2261 dasm_put(Dst, 11203);
2253 } 2262 }
2254 break; 2263 break;
2255 case BC_LEN: 2264 case BC_LEN:
2256 dasm_put(Dst, 12076, LJ_TSTR); 2265 dasm_put(Dst, 12079, LJ_TSTR);
2257 if (LJ_DUALNUM) { 2266 if (LJ_DUALNUM) {
2258 dasm_put(Dst, 12090, Dt5(->len), LJ_TISNUM); 2267 dasm_put(Dst, 12093, Dt5(->len), LJ_TISNUM);
2259 } else if (sse) { 2268 } else if (sse) {
2260 dasm_put(Dst, 12104, Dt5(->len)); 2269 dasm_put(Dst, 12107, Dt5(->len));
2261 } else { 2270 } else {
2262 dasm_put(Dst, 12122, Dt5(->len)); 2271 dasm_put(Dst, 12125, Dt5(->len));
2263 } 2272 }
2264 dasm_put(Dst, 12131, LJ_TTAB); 2273 dasm_put(Dst, 12134, LJ_TTAB);
2265 if (LJ_DUALNUM) { 2274 if (LJ_DUALNUM) {
2266 } else if (sse) { 2275 } else if (sse) {
2267 dasm_put(Dst, 12171); 2276 dasm_put(Dst, 12174);
2268 } else { 2277 } else {
2269 dasm_put(Dst, 12177); 2278 dasm_put(Dst, 12180);
2270 } 2279 }
2271 dasm_put(Dst, 12184); 2280 dasm_put(Dst, 12187);
2272 break; 2281 break;
2273 2282
2274 /* -- Binary ops -------------------------------------------------------- */ 2283 /* -- Binary ops -------------------------------------------------------- */
@@ -2276,471 +2285,471 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2276 2285
2277 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV: 2286 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV:
2278 if (LJ_DUALNUM) { 2287 if (LJ_DUALNUM) {
2279 dasm_put(Dst, 12197); 2288 dasm_put(Dst, 12200);
2280 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2289 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2281 switch (vk) { 2290 switch (vk) {
2282 case 0: 2291 case 0:
2283 dasm_put(Dst, 12205, LJ_TISNUM, LJ_TISNUM); 2292 dasm_put(Dst, 12208, LJ_TISNUM, LJ_TISNUM);
2284 break; 2293 break;
2285 case 1: 2294 case 1:
2286 dasm_put(Dst, 12238, LJ_TISNUM, LJ_TISNUM); 2295 dasm_put(Dst, 12241, LJ_TISNUM, LJ_TISNUM);
2287 break; 2296 break;
2288 default: 2297 default:
2289 dasm_put(Dst, 12271, LJ_TISNUM, LJ_TISNUM); 2298 dasm_put(Dst, 12274, LJ_TISNUM, LJ_TISNUM);
2290 break; 2299 break;
2291 } 2300 }
2292 dasm_put(Dst, 12304, LJ_TISNUM); 2301 dasm_put(Dst, 12307, LJ_TISNUM);
2293 if (vk == 1) { 2302 if (vk == 1) {
2294 dasm_put(Dst, 12100); 2303 dasm_put(Dst, 12103);
2295 } else { 2304 } else {
2296 dasm_put(Dst, 11878); 2305 dasm_put(Dst, 11881);
2297 } 2306 }
2298 dasm_put(Dst, 11200); 2307 dasm_put(Dst, 11203);
2299 } else { 2308 } else {
2300 dasm_put(Dst, 12197); 2309 dasm_put(Dst, 12200);
2301 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2310 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2302 switch (vk) { 2311 switch (vk) {
2303 case 0: 2312 case 0:
2304 dasm_put(Dst, 12310, LJ_TISNUM); 2313 dasm_put(Dst, 12313, LJ_TISNUM);
2305 if (LJ_DUALNUM) { 2314 if (LJ_DUALNUM) {
2306 dasm_put(Dst, 12322, LJ_TISNUM); 2315 dasm_put(Dst, 12325, LJ_TISNUM);
2307 } 2316 }
2308 if (sse) { 2317 if (sse) {
2309 dasm_put(Dst, 12333); 2318 dasm_put(Dst, 12336);
2310 } else { 2319 } else {
2311 dasm_put(Dst, 12347); 2320 dasm_put(Dst, 12350);
2312 } 2321 }
2313 break; 2322 break;
2314 case 1: 2323 case 1:
2315 dasm_put(Dst, 12355, LJ_TISNUM); 2324 dasm_put(Dst, 12358, LJ_TISNUM);
2316 if (LJ_DUALNUM) { 2325 if (LJ_DUALNUM) {
2317 dasm_put(Dst, 12367, LJ_TISNUM); 2326 dasm_put(Dst, 12370, LJ_TISNUM);
2318 } 2327 }
2319 if (sse) { 2328 if (sse) {
2320 dasm_put(Dst, 12378); 2329 dasm_put(Dst, 12381);
2321 } else { 2330 } else {
2322 dasm_put(Dst, 12392); 2331 dasm_put(Dst, 12395);
2323 } 2332 }
2324 break; 2333 break;
2325 default: 2334 default:
2326 dasm_put(Dst, 12400, LJ_TISNUM, LJ_TISNUM); 2335 dasm_put(Dst, 12403, LJ_TISNUM, LJ_TISNUM);
2327 if (sse) { 2336 if (sse) {
2328 dasm_put(Dst, 12422); 2337 dasm_put(Dst, 12425);
2329 } else { 2338 } else {
2330 dasm_put(Dst, 12436); 2339 dasm_put(Dst, 12439);
2331 } 2340 }
2332 break; 2341 break;
2333 } 2342 }
2334 if (sse) { 2343 if (sse) {
2335 dasm_put(Dst, 12060); 2344 dasm_put(Dst, 12063);
2336 } else { 2345 } else {
2337 dasm_put(Dst, 12072); 2346 dasm_put(Dst, 12075);
2338 } 2347 }
2339 dasm_put(Dst, 11200); 2348 dasm_put(Dst, 11203);
2340 } 2349 }
2341 break; 2350 break;
2342 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV: 2351 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV:
2343 if (LJ_DUALNUM) { 2352 if (LJ_DUALNUM) {
2344 dasm_put(Dst, 12197); 2353 dasm_put(Dst, 12200);
2345 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2354 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2346 switch (vk) { 2355 switch (vk) {
2347 case 0: 2356 case 0:
2348 dasm_put(Dst, 12444, LJ_TISNUM, LJ_TISNUM); 2357 dasm_put(Dst, 12447, LJ_TISNUM, LJ_TISNUM);
2349 break; 2358 break;
2350 case 1: 2359 case 1:
2351 dasm_put(Dst, 12477, LJ_TISNUM, LJ_TISNUM); 2360 dasm_put(Dst, 12480, LJ_TISNUM, LJ_TISNUM);
2352 break; 2361 break;
2353 default: 2362 default:
2354 dasm_put(Dst, 12510, LJ_TISNUM, LJ_TISNUM); 2363 dasm_put(Dst, 12513, LJ_TISNUM, LJ_TISNUM);
2355 break; 2364 break;
2356 } 2365 }
2357 dasm_put(Dst, 12304, LJ_TISNUM); 2366 dasm_put(Dst, 12307, LJ_TISNUM);
2358 if (vk == 1) { 2367 if (vk == 1) {
2359 dasm_put(Dst, 12100); 2368 dasm_put(Dst, 12103);
2360 } else { 2369 } else {
2361 dasm_put(Dst, 11878); 2370 dasm_put(Dst, 11881);
2362 } 2371 }
2363 dasm_put(Dst, 11200); 2372 dasm_put(Dst, 11203);
2364 } else { 2373 } else {
2365 dasm_put(Dst, 12197); 2374 dasm_put(Dst, 12200);
2366 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2375 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2367 switch (vk) { 2376 switch (vk) {
2368 case 0: 2377 case 0:
2369 dasm_put(Dst, 12310, LJ_TISNUM); 2378 dasm_put(Dst, 12313, LJ_TISNUM);
2370 if (LJ_DUALNUM) { 2379 if (LJ_DUALNUM) {
2371 dasm_put(Dst, 12322, LJ_TISNUM); 2380 dasm_put(Dst, 12325, LJ_TISNUM);
2372 } 2381 }
2373 if (sse) { 2382 if (sse) {
2374 dasm_put(Dst, 12543); 2383 dasm_put(Dst, 12546);
2375 } else { 2384 } else {
2376 dasm_put(Dst, 12557); 2385 dasm_put(Dst, 12560);
2377 } 2386 }
2378 break; 2387 break;
2379 case 1: 2388 case 1:
2380 dasm_put(Dst, 12355, LJ_TISNUM); 2389 dasm_put(Dst, 12358, LJ_TISNUM);
2381 if (LJ_DUALNUM) { 2390 if (LJ_DUALNUM) {
2382 dasm_put(Dst, 12367, LJ_TISNUM); 2391 dasm_put(Dst, 12370, LJ_TISNUM);
2383 } 2392 }
2384 if (sse) { 2393 if (sse) {
2385 dasm_put(Dst, 12565); 2394 dasm_put(Dst, 12568);
2386 } else { 2395 } else {
2387 dasm_put(Dst, 12579); 2396 dasm_put(Dst, 12582);
2388 } 2397 }
2389 break; 2398 break;
2390 default: 2399 default:
2391 dasm_put(Dst, 12400, LJ_TISNUM, LJ_TISNUM); 2400 dasm_put(Dst, 12403, LJ_TISNUM, LJ_TISNUM);
2392 if (sse) { 2401 if (sse) {
2393 dasm_put(Dst, 12587); 2402 dasm_put(Dst, 12590);
2394 } else { 2403 } else {
2395 dasm_put(Dst, 12601); 2404 dasm_put(Dst, 12604);
2396 } 2405 }
2397 break; 2406 break;
2398 } 2407 }
2399 if (sse) { 2408 if (sse) {
2400 dasm_put(Dst, 12060); 2409 dasm_put(Dst, 12063);
2401 } else { 2410 } else {
2402 dasm_put(Dst, 12072); 2411 dasm_put(Dst, 12075);
2403 } 2412 }
2404 dasm_put(Dst, 11200); 2413 dasm_put(Dst, 11203);
2405 } 2414 }
2406 break; 2415 break;
2407 case BC_MULVN: case BC_MULNV: case BC_MULVV: 2416 case BC_MULVN: case BC_MULNV: case BC_MULVV:
2408 if (LJ_DUALNUM) { 2417 if (LJ_DUALNUM) {
2409 dasm_put(Dst, 12197); 2418 dasm_put(Dst, 12200);
2410 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2419 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2411 switch (vk) { 2420 switch (vk) {
2412 case 0: 2421 case 0:
2413 dasm_put(Dst, 12609, LJ_TISNUM, LJ_TISNUM); 2422 dasm_put(Dst, 12612, LJ_TISNUM, LJ_TISNUM);
2414 break; 2423 break;
2415 case 1: 2424 case 1:
2416 dasm_put(Dst, 12643, LJ_TISNUM, LJ_TISNUM); 2425 dasm_put(Dst, 12646, LJ_TISNUM, LJ_TISNUM);
2417 break; 2426 break;
2418 default: 2427 default:
2419 dasm_put(Dst, 12677, LJ_TISNUM, LJ_TISNUM); 2428 dasm_put(Dst, 12680, LJ_TISNUM, LJ_TISNUM);
2420 break; 2429 break;
2421 } 2430 }
2422 dasm_put(Dst, 12304, LJ_TISNUM); 2431 dasm_put(Dst, 12307, LJ_TISNUM);
2423 if (vk == 1) { 2432 if (vk == 1) {
2424 dasm_put(Dst, 12100); 2433 dasm_put(Dst, 12103);
2425 } else { 2434 } else {
2426 dasm_put(Dst, 11878); 2435 dasm_put(Dst, 11881);
2427 } 2436 }
2428 dasm_put(Dst, 11200); 2437 dasm_put(Dst, 11203);
2429 } else { 2438 } else {
2430 dasm_put(Dst, 12197); 2439 dasm_put(Dst, 12200);
2431 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2440 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2432 switch (vk) { 2441 switch (vk) {
2433 case 0: 2442 case 0:
2434 dasm_put(Dst, 12310, LJ_TISNUM); 2443 dasm_put(Dst, 12313, LJ_TISNUM);
2435 if (LJ_DUALNUM) { 2444 if (LJ_DUALNUM) {
2436 dasm_put(Dst, 12322, LJ_TISNUM); 2445 dasm_put(Dst, 12325, LJ_TISNUM);
2437 } 2446 }
2438 if (sse) { 2447 if (sse) {
2439 dasm_put(Dst, 12711); 2448 dasm_put(Dst, 12714);
2440 } else { 2449 } else {
2441 dasm_put(Dst, 12725); 2450 dasm_put(Dst, 12728);
2442 } 2451 }
2443 break; 2452 break;
2444 case 1: 2453 case 1:
2445 dasm_put(Dst, 12355, LJ_TISNUM); 2454 dasm_put(Dst, 12358, LJ_TISNUM);
2446 if (LJ_DUALNUM) { 2455 if (LJ_DUALNUM) {
2447 dasm_put(Dst, 12367, LJ_TISNUM); 2456 dasm_put(Dst, 12370, LJ_TISNUM);
2448 } 2457 }
2449 if (sse) { 2458 if (sse) {
2450 dasm_put(Dst, 12733); 2459 dasm_put(Dst, 12736);
2451 } else { 2460 } else {
2452 dasm_put(Dst, 12747); 2461 dasm_put(Dst, 12750);
2453 } 2462 }
2454 break; 2463 break;
2455 default: 2464 default:
2456 dasm_put(Dst, 12400, LJ_TISNUM, LJ_TISNUM); 2465 dasm_put(Dst, 12403, LJ_TISNUM, LJ_TISNUM);
2457 if (sse) { 2466 if (sse) {
2458 dasm_put(Dst, 12755); 2467 dasm_put(Dst, 12758);
2459 } else { 2468 } else {
2460 dasm_put(Dst, 12769); 2469 dasm_put(Dst, 12772);
2461 } 2470 }
2462 break; 2471 break;
2463 } 2472 }
2464 if (sse) { 2473 if (sse) {
2465 dasm_put(Dst, 12060); 2474 dasm_put(Dst, 12063);
2466 } else { 2475 } else {
2467 dasm_put(Dst, 12072); 2476 dasm_put(Dst, 12075);
2468 } 2477 }
2469 dasm_put(Dst, 11200); 2478 dasm_put(Dst, 11203);
2470 } 2479 }
2471 break; 2480 break;
2472 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV: 2481 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV:
2473 dasm_put(Dst, 12197); 2482 dasm_put(Dst, 12200);
2474 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2483 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2475 switch (vk) { 2484 switch (vk) {
2476 case 0: 2485 case 0:
2477 dasm_put(Dst, 12310, LJ_TISNUM); 2486 dasm_put(Dst, 12313, LJ_TISNUM);
2478 if (LJ_DUALNUM) { 2487 if (LJ_DUALNUM) {
2479 dasm_put(Dst, 12322, LJ_TISNUM); 2488 dasm_put(Dst, 12325, LJ_TISNUM);
2480 } 2489 }
2481 if (sse) { 2490 if (sse) {
2482 dasm_put(Dst, 12777); 2491 dasm_put(Dst, 12780);
2483 } else { 2492 } else {
2484 dasm_put(Dst, 12791); 2493 dasm_put(Dst, 12794);
2485 } 2494 }
2486 break; 2495 break;
2487 case 1: 2496 case 1:
2488 dasm_put(Dst, 12355, LJ_TISNUM); 2497 dasm_put(Dst, 12358, LJ_TISNUM);
2489 if (LJ_DUALNUM) { 2498 if (LJ_DUALNUM) {
2490 dasm_put(Dst, 12367, LJ_TISNUM); 2499 dasm_put(Dst, 12370, LJ_TISNUM);
2491 } 2500 }
2492 if (sse) { 2501 if (sse) {
2493 dasm_put(Dst, 12799); 2502 dasm_put(Dst, 12802);
2494 } else { 2503 } else {
2495 dasm_put(Dst, 12813); 2504 dasm_put(Dst, 12816);
2496 } 2505 }
2497 break; 2506 break;
2498 default: 2507 default:
2499 dasm_put(Dst, 12400, LJ_TISNUM, LJ_TISNUM); 2508 dasm_put(Dst, 12403, LJ_TISNUM, LJ_TISNUM);
2500 if (sse) { 2509 if (sse) {
2501 dasm_put(Dst, 12821); 2510 dasm_put(Dst, 12824);
2502 } else { 2511 } else {
2503 dasm_put(Dst, 12835); 2512 dasm_put(Dst, 12838);
2504 } 2513 }
2505 break; 2514 break;
2506 } 2515 }
2507 if (sse) { 2516 if (sse) {
2508 dasm_put(Dst, 12060); 2517 dasm_put(Dst, 12063);
2509 } else { 2518 } else {
2510 dasm_put(Dst, 12072); 2519 dasm_put(Dst, 12075);
2511 } 2520 }
2512 dasm_put(Dst, 11200); 2521 dasm_put(Dst, 11203);
2513 break; 2522 break;
2514 case BC_MODVN: 2523 case BC_MODVN:
2515 dasm_put(Dst, 12197); 2524 dasm_put(Dst, 12200);
2516 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2525 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2517 switch (vk) { 2526 switch (vk) {
2518 case 0: 2527 case 0:
2519 dasm_put(Dst, 12310, LJ_TISNUM); 2528 dasm_put(Dst, 12313, LJ_TISNUM);
2520 if (LJ_DUALNUM) { 2529 if (LJ_DUALNUM) {
2521 dasm_put(Dst, 12322, LJ_TISNUM); 2530 dasm_put(Dst, 12325, LJ_TISNUM);
2522 } 2531 }
2523 if (sse) { 2532 if (sse) {
2524 dasm_put(Dst, 12843); 2533 dasm_put(Dst, 12846);
2525 } else { 2534 } else {
2526 dasm_put(Dst, 12857); 2535 dasm_put(Dst, 12860);
2527 } 2536 }
2528 break; 2537 break;
2529 case 1: 2538 case 1:
2530 dasm_put(Dst, 12355, LJ_TISNUM); 2539 dasm_put(Dst, 12358, LJ_TISNUM);
2531 if (LJ_DUALNUM) { 2540 if (LJ_DUALNUM) {
2532 dasm_put(Dst, 12367, LJ_TISNUM); 2541 dasm_put(Dst, 12370, LJ_TISNUM);
2533 } 2542 }
2534 if (sse) { 2543 if (sse) {
2535 dasm_put(Dst, 12865); 2544 dasm_put(Dst, 12868);
2536 } else { 2545 } else {
2537 dasm_put(Dst, 12879); 2546 dasm_put(Dst, 12882);
2538 } 2547 }
2539 break; 2548 break;
2540 default: 2549 default:
2541 dasm_put(Dst, 12400, LJ_TISNUM, LJ_TISNUM); 2550 dasm_put(Dst, 12403, LJ_TISNUM, LJ_TISNUM);
2542 if (sse) { 2551 if (sse) {
2543 dasm_put(Dst, 12887); 2552 dasm_put(Dst, 12890);
2544 } else { 2553 } else {
2545 dasm_put(Dst, 12901); 2554 dasm_put(Dst, 12904);
2546 } 2555 }
2547 break; 2556 break;
2548 } 2557 }
2549 dasm_put(Dst, 12909); 2558 dasm_put(Dst, 12912);
2550 if (sse) { 2559 if (sse) {
2551 dasm_put(Dst, 12060); 2560 dasm_put(Dst, 12063);
2552 } else { 2561 } else {
2553 dasm_put(Dst, 12072); 2562 dasm_put(Dst, 12075);
2554 } 2563 }
2555 dasm_put(Dst, 11200); 2564 dasm_put(Dst, 11203);
2556 break; 2565 break;
2557 case BC_MODNV: case BC_MODVV: 2566 case BC_MODNV: case BC_MODVV:
2558 dasm_put(Dst, 12197); 2567 dasm_put(Dst, 12200);
2559 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2568 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2560 switch (vk) { 2569 switch (vk) {
2561 case 0: 2570 case 0:
2562 dasm_put(Dst, 12310, LJ_TISNUM); 2571 dasm_put(Dst, 12313, LJ_TISNUM);
2563 if (LJ_DUALNUM) { 2572 if (LJ_DUALNUM) {
2564 dasm_put(Dst, 12322, LJ_TISNUM); 2573 dasm_put(Dst, 12325, LJ_TISNUM);
2565 } 2574 }
2566 if (sse) { 2575 if (sse) {
2567 dasm_put(Dst, 12843); 2576 dasm_put(Dst, 12846);
2568 } else { 2577 } else {
2569 dasm_put(Dst, 12857); 2578 dasm_put(Dst, 12860);
2570 } 2579 }
2571 break; 2580 break;
2572 case 1: 2581 case 1:
2573 dasm_put(Dst, 12355, LJ_TISNUM); 2582 dasm_put(Dst, 12358, LJ_TISNUM);
2574 if (LJ_DUALNUM) { 2583 if (LJ_DUALNUM) {
2575 dasm_put(Dst, 12367, LJ_TISNUM); 2584 dasm_put(Dst, 12370, LJ_TISNUM);
2576 } 2585 }
2577 if (sse) { 2586 if (sse) {
2578 dasm_put(Dst, 12865); 2587 dasm_put(Dst, 12868);
2579 } else { 2588 } else {
2580 dasm_put(Dst, 12879); 2589 dasm_put(Dst, 12882);
2581 } 2590 }
2582 break; 2591 break;
2583 default: 2592 default:
2584 dasm_put(Dst, 12400, LJ_TISNUM, LJ_TISNUM); 2593 dasm_put(Dst, 12403, LJ_TISNUM, LJ_TISNUM);
2585 if (sse) { 2594 if (sse) {
2586 dasm_put(Dst, 12887); 2595 dasm_put(Dst, 12890);
2587 } else { 2596 } else {
2588 dasm_put(Dst, 12901); 2597 dasm_put(Dst, 12904);
2589 } 2598 }
2590 break; 2599 break;
2591 } 2600 }
2592 dasm_put(Dst, 12915); 2601 dasm_put(Dst, 12918);
2593 break; 2602 break;
2594 case BC_POW: 2603 case BC_POW:
2595 dasm_put(Dst, 12197); 2604 dasm_put(Dst, 12200);
2596 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2605 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2597 switch (vk) { 2606 switch (vk) {
2598 case 0: 2607 case 0:
2599 dasm_put(Dst, 12310, LJ_TISNUM); 2608 dasm_put(Dst, 12313, LJ_TISNUM);
2600 if (LJ_DUALNUM) { 2609 if (LJ_DUALNUM) {
2601 dasm_put(Dst, 12322, LJ_TISNUM); 2610 dasm_put(Dst, 12325, LJ_TISNUM);
2602 } 2611 }
2603 if (sse) { 2612 if (sse) {
2604 dasm_put(Dst, 12843); 2613 dasm_put(Dst, 12846);
2605 } else { 2614 } else {
2606 dasm_put(Dst, 12857); 2615 dasm_put(Dst, 12860);
2607 } 2616 }
2608 break; 2617 break;
2609 case 1: 2618 case 1:
2610 dasm_put(Dst, 12355, LJ_TISNUM); 2619 dasm_put(Dst, 12358, LJ_TISNUM);
2611 if (LJ_DUALNUM) { 2620 if (LJ_DUALNUM) {
2612 dasm_put(Dst, 12367, LJ_TISNUM); 2621 dasm_put(Dst, 12370, LJ_TISNUM);
2613 } 2622 }
2614 if (sse) { 2623 if (sse) {
2615 dasm_put(Dst, 12865); 2624 dasm_put(Dst, 12868);
2616 } else { 2625 } else {
2617 dasm_put(Dst, 12879); 2626 dasm_put(Dst, 12882);
2618 } 2627 }
2619 break; 2628 break;
2620 default: 2629 default:
2621 dasm_put(Dst, 12400, LJ_TISNUM, LJ_TISNUM); 2630 dasm_put(Dst, 12403, LJ_TISNUM, LJ_TISNUM);
2622 if (sse) { 2631 if (sse) {
2623 dasm_put(Dst, 12887); 2632 dasm_put(Dst, 12890);
2624 } else { 2633 } else {
2625 dasm_put(Dst, 12901); 2634 dasm_put(Dst, 12904);
2626 } 2635 }
2627 break; 2636 break;
2628 } 2637 }
2629 dasm_put(Dst, 12920); 2638 dasm_put(Dst, 12923);
2630 if (sse) { 2639 if (sse) {
2631 dasm_put(Dst, 12060); 2640 dasm_put(Dst, 12063);
2632 } else { 2641 } else {
2633 dasm_put(Dst, 12072); 2642 dasm_put(Dst, 12075);
2634 } 2643 }
2635 dasm_put(Dst, 11200); 2644 dasm_put(Dst, 11203);
2636 break; 2645 break;
2637 2646
2638 case BC_CAT: 2647 case BC_CAT:
2639 dasm_put(Dst, 12924, Dt1(->base), Dt1(->base)); 2648 dasm_put(Dst, 12927, Dt1(->base), Dt1(->base));
2640 break; 2649 break;
2641 2650
2642 /* -- Constant ops ------------------------------------------------------ */ 2651 /* -- Constant ops ------------------------------------------------------ */
2643 2652
2644 case BC_KSTR: 2653 case BC_KSTR:
2645 dasm_put(Dst, 13018, LJ_TSTR); 2654 dasm_put(Dst, 13021, LJ_TSTR);
2646 break; 2655 break;
2647 case BC_KCDATA: 2656 case BC_KCDATA:
2648#if LJ_HASFFI 2657#if LJ_HASFFI
2649 dasm_put(Dst, 13018, LJ_TCDATA); 2658 dasm_put(Dst, 13021, LJ_TCDATA);
2650#endif 2659#endif
2651 break; 2660 break;
2652 case BC_KSHORT: 2661 case BC_KSHORT:
2653 if (LJ_DUALNUM) { 2662 if (LJ_DUALNUM) {
2654 dasm_put(Dst, 13051, LJ_TISNUM); 2663 dasm_put(Dst, 13054, LJ_TISNUM);
2655 } else if (sse) { 2664 } else if (sse) {
2656 dasm_put(Dst, 13063); 2665 dasm_put(Dst, 13066);
2657 } else { 2666 } else {
2658 dasm_put(Dst, 13078); 2667 dasm_put(Dst, 13081);
2659 } 2668 }
2660 dasm_put(Dst, 11200); 2669 dasm_put(Dst, 11203);
2661 break; 2670 break;
2662 case BC_KNUM: 2671 case BC_KNUM:
2663 if (sse) { 2672 if (sse) {
2664 dasm_put(Dst, 13086); 2673 dasm_put(Dst, 13089);
2665 } else { 2674 } else {
2666 dasm_put(Dst, 13099); 2675 dasm_put(Dst, 13102);
2667 } 2676 }
2668 dasm_put(Dst, 11200); 2677 dasm_put(Dst, 11203);
2669 break; 2678 break;
2670 case BC_KPRI: 2679 case BC_KPRI:
2671 dasm_put(Dst, 13106); 2680 dasm_put(Dst, 13109);
2672 break; 2681 break;
2673 case BC_KNIL: 2682 case BC_KNIL:
2674 dasm_put(Dst, 13132, LJ_TNIL); 2683 dasm_put(Dst, 13135, LJ_TNIL);
2675 break; 2684 break;
2676 2685
2677 /* -- Upvalue and function ops ------------------------------------------ */ 2686 /* -- Upvalue and function ops ------------------------------------------ */
2678 2687
2679 case BC_UGET: 2688 case BC_UGET:
2680 dasm_put(Dst, 13178, offsetof(GCfuncL, uvptr), DtA(->v)); 2689 dasm_put(Dst, 13181, offsetof(GCfuncL, uvptr), DtA(->v));
2681 break; 2690 break;
2682 case BC_USETV: 2691 case BC_USETV:
2683#define TV2MARKOFS \ 2692#define TV2MARKOFS \
2684 ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv)) 2693 ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv))
2685 dasm_put(Dst, 13222, 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); 2694 dasm_put(Dst, 13225, 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);
2686 dasm_put(Dst, 13312); 2695 dasm_put(Dst, 13315);
2687 break; 2696 break;
2688#undef TV2MARKOFS 2697#undef TV2MARKOFS
2689 case BC_USETS: 2698 case BC_USETS:
2690 dasm_put(Dst, 13324, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G); 2699 dasm_put(Dst, 13327, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G);
2691 break; 2700 break;
2692 case BC_USETN: 2701 case BC_USETN:
2693 dasm_put(Dst, 13415); 2702 dasm_put(Dst, 13418);
2694 if (sse) { 2703 if (sse) {
2695 dasm_put(Dst, 13420); 2704 dasm_put(Dst, 13423);
2696 } else { 2705 } else {
2697 dasm_put(Dst, 11710); 2706 dasm_put(Dst, 11713);
2698 } 2707 }
2699 dasm_put(Dst, 13427, offsetof(GCfuncL, uvptr), DtA(->v)); 2708 dasm_put(Dst, 13430, offsetof(GCfuncL, uvptr), DtA(->v));
2700 if (sse) { 2709 if (sse) {
2701 dasm_put(Dst, 13436); 2710 dasm_put(Dst, 13439);
2702 } else { 2711 } else {
2703 dasm_put(Dst, 13442); 2712 dasm_put(Dst, 13445);
2704 } 2713 }
2705 dasm_put(Dst, 11200); 2714 dasm_put(Dst, 11203);
2706 break; 2715 break;
2707 case BC_USETP: 2716 case BC_USETP:
2708 dasm_put(Dst, 13445, offsetof(GCfuncL, uvptr), DtA(->v)); 2717 dasm_put(Dst, 13448, offsetof(GCfuncL, uvptr), DtA(->v));
2709 break; 2718 break;
2710 case BC_UCLO: 2719 case BC_UCLO:
2711 dasm_put(Dst, 13482, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base)); 2720 dasm_put(Dst, 13485, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base));
2712 break; 2721 break;
2713 2722
2714 case BC_FNEW: 2723 case BC_FNEW:
2715 dasm_put(Dst, 13536, Dt1(->base), Dt1(->base), LJ_TFUNC); 2724 dasm_put(Dst, 13539, Dt1(->base), Dt1(->base), LJ_TFUNC);
2716 break; 2725 break;
2717 2726
2718 /* -- Table ops --------------------------------------------------------- */ 2727 /* -- Table ops --------------------------------------------------------- */
2719 2728
2720 case BC_TNEW: 2729 case BC_TNEW:
2721 dasm_put(Dst, 13607, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB); 2730 dasm_put(Dst, 13610, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB);
2722 break; 2731 break;
2723 case BC_TDUP: 2732 case BC_TDUP:
2724 dasm_put(Dst, 13733, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB); 2733 dasm_put(Dst, 13736, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB);
2725 break; 2734 break;
2726 2735
2727 case BC_GGET: 2736 case BC_GGET:
2728 dasm_put(Dst, 13825, Dt7(->env)); 2737 dasm_put(Dst, 13828, Dt7(->env));
2729 break; 2738 break;
2730 case BC_GSET: 2739 case BC_GSET:
2731 dasm_put(Dst, 13843, Dt7(->env)); 2740 dasm_put(Dst, 13846, Dt7(->env));
2732 break; 2741 break;
2733 2742
2734 case BC_TGETV: 2743 case BC_TGETV:
2735 dasm_put(Dst, 13861, LJ_TTAB); 2744 dasm_put(Dst, 13864, LJ_TTAB);
2736 if (LJ_DUALNUM) { 2745 if (LJ_DUALNUM) {
2737 dasm_put(Dst, 13884, LJ_TISNUM); 2746 dasm_put(Dst, 13887, LJ_TISNUM);
2738 } else { 2747 } else {
2739 dasm_put(Dst, 13898, LJ_TISNUM); 2748 dasm_put(Dst, 13901, LJ_TISNUM);
2740 if (sse) { 2749 if (sse) {
2741 dasm_put(Dst, 13909); 2750 dasm_put(Dst, 13912);
2742 } else { 2751 } else {
2743 dasm_put(Dst, 13930); 2752 dasm_put(Dst, 13933);
2744 if (cmov) { 2753 if (cmov) {
2745 dasm_put(Dst, 3899); 2754 dasm_put(Dst, 3899);
2746 } else { 2755 } else {
@@ -2748,30 +2757,30 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2748 } 2757 }
2749 dasm_put(Dst, 2635); 2758 dasm_put(Dst, 2635);
2750 } 2759 }
2751 dasm_put(Dst, 13940); 2760 dasm_put(Dst, 13943);
2752 } 2761 }
2753 dasm_put(Dst, 13945, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index, LJ_TNIL); 2762 dasm_put(Dst, 13948, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index, LJ_TNIL);
2754 dasm_put(Dst, 14040, LJ_TSTR); 2763 dasm_put(Dst, 14043, LJ_TSTR);
2755 break; 2764 break;
2756 case BC_TGETS: 2765 case BC_TGETS:
2757 dasm_put(Dst, 14058, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); 2766 dasm_put(Dst, 14061, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
2758 dasm_put(Dst, 14146, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 2767 dasm_put(Dst, 14149, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
2759 break; 2768 break;
2760 case BC_TGETB: 2769 case BC_TGETB:
2761 dasm_put(Dst, 14216, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 2770 dasm_put(Dst, 14219, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
2762 dasm_put(Dst, 14315, LJ_TNIL); 2771 dasm_put(Dst, 14318, LJ_TNIL);
2763 break; 2772 break;
2764 2773
2765 case BC_TSETV: 2774 case BC_TSETV:
2766 dasm_put(Dst, 14332, LJ_TTAB); 2775 dasm_put(Dst, 14335, LJ_TTAB);
2767 if (LJ_DUALNUM) { 2776 if (LJ_DUALNUM) {
2768 dasm_put(Dst, 13884, LJ_TISNUM); 2777 dasm_put(Dst, 13887, LJ_TISNUM);
2769 } else { 2778 } else {
2770 dasm_put(Dst, 13898, LJ_TISNUM); 2779 dasm_put(Dst, 13901, LJ_TISNUM);
2771 if (sse) { 2780 if (sse) {
2772 dasm_put(Dst, 13909); 2781 dasm_put(Dst, 13912);
2773 } else { 2782 } else {
2774 dasm_put(Dst, 13930); 2783 dasm_put(Dst, 13933);
2775 if (cmov) { 2784 if (cmov) {
2776 dasm_put(Dst, 3899); 2785 dasm_put(Dst, 3899);
2777 } else { 2786 } else {
@@ -2779,115 +2788,115 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2779 } 2788 }
2780 dasm_put(Dst, 2635); 2789 dasm_put(Dst, 2635);
2781 } 2790 }
2782 dasm_put(Dst, 14355); 2791 dasm_put(Dst, 14358);
2783 } 2792 }
2784 dasm_put(Dst, 14360, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex); 2793 dasm_put(Dst, 14363, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex);
2785 dasm_put(Dst, 14444, LJ_TSTR, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 2794 dasm_put(Dst, 14447, LJ_TSTR, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
2786 break; 2795 break;
2787 case BC_TSETS: 2796 case BC_TSETS:
2788 dasm_put(Dst, 14501, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); 2797 dasm_put(Dst, 14504, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
2789 dasm_put(Dst, 14576, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next)); 2798 dasm_put(Dst, 14579, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next));
2790 dasm_put(Dst, 14668, 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)); 2799 dasm_put(Dst, 14671, 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));
2791 break; 2800 break;
2792 case BC_TSETB: 2801 case BC_TSETB:
2793 dasm_put(Dst, 14764, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable)); 2802 dasm_put(Dst, 14767, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable));
2794 dasm_put(Dst, 14862, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 2803 dasm_put(Dst, 14865, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
2795 break; 2804 break;
2796 2805
2797 case BC_TSETM: 2806 case BC_TSETM:
2798 dasm_put(Dst, 14908, Dt6(->marked), LJ_GC_BLACK, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base)); 2807 dasm_put(Dst, 14911, Dt6(->marked), LJ_GC_BLACK, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base));
2799 dasm_put(Dst, 15057, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 2808 dasm_put(Dst, 15060, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
2800 break; 2809 break;
2801 2810
2802 /* -- Calls and vararg handling ----------------------------------------- */ 2811 /* -- Calls and vararg handling ----------------------------------------- */
2803 2812
2804 case BC_CALL: case BC_CALLM: 2813 case BC_CALL: case BC_CALLM:
2805 dasm_put(Dst, 12201); 2814 dasm_put(Dst, 12204);
2806 if (op == BC_CALLM) { 2815 if (op == BC_CALLM) {
2807 dasm_put(Dst, 15075); 2816 dasm_put(Dst, 15078);
2808 } 2817 }
2809 dasm_put(Dst, 15080, LJ_TFUNC, Dt7(->pc)); 2818 dasm_put(Dst, 15083, LJ_TFUNC, Dt7(->pc));
2810 break; 2819 break;
2811 2820
2812 case BC_CALLMT: 2821 case BC_CALLMT:
2813 dasm_put(Dst, 15075); 2822 dasm_put(Dst, 15078);
2814 break; 2823 break;
2815 case BC_CALLT: 2824 case BC_CALLT:
2816 dasm_put(Dst, 15121, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc)); 2825 dasm_put(Dst, 15124, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc));
2817 dasm_put(Dst, 15239, FRAME_TYPE, Dt7(->pc), PC2PROTO(k), FRAME_VARG, FRAME_TYPEP, FRAME_VARG); 2826 dasm_put(Dst, 15242, FRAME_TYPE, Dt7(->pc), PC2PROTO(k), FRAME_VARG, FRAME_TYPEP, FRAME_VARG);
2818 break; 2827 break;
2819 2828
2820 case BC_ITERC: 2829 case BC_ITERC:
2821 dasm_put(Dst, 15309, LJ_TFUNC, 2+1, Dt7(->pc)); 2830 dasm_put(Dst, 15312, LJ_TFUNC, 2+1, Dt7(->pc));
2822 break; 2831 break;
2823 2832
2824 case BC_ITERN: 2833 case BC_ITERN:
2825#if LJ_HASJIT 2834#if LJ_HASJIT
2826#endif 2835#endif
2827 dasm_put(Dst, 15389, Dt6(->asize), Dt6(->array), LJ_TNIL); 2836 dasm_put(Dst, 15392, Dt6(->asize), Dt6(->array), LJ_TNIL);
2828 if (LJ_DUALNUM) { 2837 if (LJ_DUALNUM) {
2829 dasm_put(Dst, 12095, LJ_TISNUM); 2838 dasm_put(Dst, 12098, LJ_TISNUM);
2830 } else if (sse) { 2839 } else if (sse) {
2831 dasm_put(Dst, 12171); 2840 dasm_put(Dst, 12174);
2832 } else { 2841 } else {
2833 dasm_put(Dst, 15435); 2842 dasm_put(Dst, 15438);
2834 } 2843 }
2835 dasm_put(Dst, 15441); 2844 dasm_put(Dst, 15444);
2836 if (LJ_DUALNUM) { 2845 if (LJ_DUALNUM) {
2837 } else if (sse) { 2846 } else if (sse) {
2838 dasm_put(Dst, 12060); 2847 dasm_put(Dst, 12063);
2839 } else { 2848 } else {
2840 dasm_put(Dst, 12072); 2849 dasm_put(Dst, 12075);
2841 } 2850 }
2842 dasm_put(Dst, 15460, -BCBIAS_J*4); 2851 dasm_put(Dst, 15463, -BCBIAS_J*4);
2843 if (!LJ_DUALNUM && !sse) { 2852 if (!LJ_DUALNUM && !sse) {
2844 dasm_put(Dst, 15511); 2853 dasm_put(Dst, 15514);
2845 } 2854 }
2846 dasm_put(Dst, 15517, Dt6(->hmask), sizeof(Node), Dt6(->node), DtB(->val.it), LJ_TNIL, DtB(->key.gcr), DtB(->key.it), DtB(->val.gcr), DtB(->val.it)); 2855 dasm_put(Dst, 15520, Dt6(->hmask), sizeof(Node), Dt6(->node), DtB(->val.it), LJ_TNIL, DtB(->key.gcr), DtB(->key.it), DtB(->val.gcr), DtB(->val.it));
2847 dasm_put(Dst, 15592); 2856 dasm_put(Dst, 15595);
2848 break; 2857 break;
2849 2858
2850 case BC_ISNEXT: 2859 case BC_ISNEXT:
2851 dasm_put(Dst, 15600, LJ_TFUNC, LJ_TTAB, LJ_TNIL, Dt8(->ffid), FF_next_N, -BCBIAS_J*4, BC_JMP, -BCBIAS_J*4, BC_ITERC); 2860 dasm_put(Dst, 15603, LJ_TFUNC, LJ_TTAB, LJ_TNIL, Dt8(->ffid), FF_next_N, -BCBIAS_J*4, BC_JMP, -BCBIAS_J*4, BC_ITERC);
2852 break; 2861 break;
2853 2862
2854 case BC_VARG: 2863 case BC_VARG:
2855 dasm_put(Dst, 15699, (8+FRAME_VARG), LJ_TNIL, Dt1(->maxstack)); 2864 dasm_put(Dst, 15702, (8+FRAME_VARG), LJ_TNIL, Dt1(->maxstack));
2856 dasm_put(Dst, 15863, Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top)); 2865 dasm_put(Dst, 15866, Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top));
2857 break; 2866 break;
2858 2867
2859 /* -- Returns ----------------------------------------------------------- */ 2868 /* -- Returns ----------------------------------------------------------- */
2860 2869
2861 case BC_RETM: 2870 case BC_RETM:
2862 dasm_put(Dst, 15075); 2871 dasm_put(Dst, 15078);
2863 break; 2872 break;
2864 2873
2865 case BC_RET: case BC_RET0: case BC_RET1: 2874 case BC_RET: case BC_RET0: case BC_RET1:
2866 if (op != BC_RET0) { 2875 if (op != BC_RET0) {
2867 dasm_put(Dst, 15934); 2876 dasm_put(Dst, 15937);
2868 } 2877 }
2869 dasm_put(Dst, 15938, FRAME_TYPE); 2878 dasm_put(Dst, 15941, FRAME_TYPE);
2870 switch (op) { 2879 switch (op) {
2871 case BC_RET: 2880 case BC_RET:
2872 dasm_put(Dst, 15957); 2881 dasm_put(Dst, 15960);
2873 break; 2882 break;
2874 case BC_RET1: 2883 case BC_RET1:
2875 dasm_put(Dst, 16015); 2884 dasm_put(Dst, 16018);
2876 /* fallthrough */ 2885 /* fallthrough */
2877 case BC_RET0: 2886 case BC_RET0:
2878 dasm_put(Dst, 16031); 2887 dasm_put(Dst, 16034);
2879 default: 2888 default:
2880 break; 2889 break;
2881 } 2890 }
2882 dasm_put(Dst, 16042, Dt7(->pc), PC2PROTO(k)); 2891 dasm_put(Dst, 16045, Dt7(->pc), PC2PROTO(k));
2883 if (op == BC_RET) { 2892 if (op == BC_RET) {
2884 dasm_put(Dst, 16084, LJ_TNIL); 2893 dasm_put(Dst, 16087, LJ_TNIL);
2885 } else { 2894 } else {
2886 dasm_put(Dst, 16093, LJ_TNIL); 2895 dasm_put(Dst, 16096, LJ_TNIL);
2887 } 2896 }
2888 dasm_put(Dst, 16100, -FRAME_VARG, FRAME_TYPEP); 2897 dasm_put(Dst, 16103, -FRAME_VARG, FRAME_TYPEP);
2889 if (op != BC_RET0) { 2898 if (op != BC_RET0) {
2890 dasm_put(Dst, 16124); 2899 dasm_put(Dst, 16127);
2891 } 2900 }
2892 dasm_put(Dst, 4883); 2901 dasm_put(Dst, 4883);
2893 break; 2902 break;
@@ -2897,7 +2906,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2897 2906
2898 case BC_FORL: 2907 case BC_FORL:
2899#if LJ_HASJIT 2908#if LJ_HASJIT
2900 dasm_put(Dst, 16128, HOTCOUNT_PCMASK, GG_DISP2HOT); 2909 dasm_put(Dst, 16131, HOTCOUNT_PCMASK, GG_DISP2HOT);
2901#endif 2910#endif
2902 break; 2911 break;
2903 2912
@@ -2909,104 +2918,111 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2909 case BC_FORI: 2918 case BC_FORI:
2910 case BC_IFORL: 2919 case BC_IFORL:
2911 vk = (op == BC_IFORL || op == BC_JFORL); 2920 vk = (op == BC_IFORL || op == BC_JFORL);
2912 dasm_put(Dst, 16149); 2921 dasm_put(Dst, 16152);
2913 if (LJ_DUALNUM) { 2922 if (LJ_DUALNUM) {
2914 dasm_put(Dst, 16153, LJ_TISNUM); 2923 dasm_put(Dst, 16156, LJ_TISNUM);
2915 if (!vk) { 2924 if (!vk) {
2916 dasm_put(Dst, 16163, LJ_TISNUM, LJ_TISNUM); 2925 dasm_put(Dst, 16166, LJ_TISNUM, LJ_TISNUM);
2917 } else { 2926 } else {
2918 dasm_put(Dst, 16192); 2927#ifdef LUA_USE_ASSERT
2928 dasm_put(Dst, 16195, LJ_TISNUM, LJ_TISNUM);
2929#endif
2930 dasm_put(Dst, 16214);
2919 } 2931 }
2920 dasm_put(Dst, 16211, LJ_TISNUM); 2932 dasm_put(Dst, 16233, LJ_TISNUM);
2921 if (op == BC_FORI) { 2933 if (op == BC_FORI) {
2922 dasm_put(Dst, 16222, -BCBIAS_J*4); 2934 dasm_put(Dst, 16244, -BCBIAS_J*4);
2923 } else if (op == BC_JFORI) { 2935 } else if (op == BC_JFORI) {
2924 dasm_put(Dst, 16236, -BCBIAS_J*4, BC_JLOOP); 2936 dasm_put(Dst, 16258, -BCBIAS_J*4, BC_JLOOP);
2925 } else if (op == BC_IFORL) { 2937 } else if (op == BC_IFORL) {
2926 dasm_put(Dst, 16254, -BCBIAS_J*4); 2938 dasm_put(Dst, 16276, -BCBIAS_J*4);
2927 } else { 2939 } else {
2928 dasm_put(Dst, 16246, BC_JLOOP); 2940 dasm_put(Dst, 16268, BC_JLOOP);
2929 } 2941 }
2930 dasm_put(Dst, 16268); 2942 dasm_put(Dst, 16290);
2931 if (vk) { 2943 if (vk) {
2932 dasm_put(Dst, 16291); 2944 dasm_put(Dst, 16313);
2933 } 2945 }
2934 dasm_put(Dst, 16211, LJ_TISNUM); 2946 dasm_put(Dst, 16233, LJ_TISNUM);
2935 if (op == BC_FORI) { 2947 if (op == BC_FORI) {
2936 dasm_put(Dst, 16300); 2948 dasm_put(Dst, 16322);
2937 } else if (op == BC_JFORI) { 2949 } else if (op == BC_JFORI) {
2938 dasm_put(Dst, 16305, -BCBIAS_J*4, BC_JLOOP); 2950 dasm_put(Dst, 16327, -BCBIAS_J*4, BC_JLOOP);
2939 } else if (op == BC_IFORL) { 2951 } else if (op == BC_IFORL) {
2940 dasm_put(Dst, 16319); 2952 dasm_put(Dst, 16341);
2941 } else { 2953 } else {
2942 dasm_put(Dst, 16315, BC_JLOOP); 2954 dasm_put(Dst, 16337, BC_JLOOP);
2943 } 2955 }
2944 dasm_put(Dst, 16324); 2956 dasm_put(Dst, 16346);
2945 } else if (!vk) { 2957 } else if (!vk) {
2946 dasm_put(Dst, 16331, LJ_TISNUM); 2958 dasm_put(Dst, 16353, LJ_TISNUM);
2947 } 2959 }
2948 if (!vk) { 2960 if (!vk) {
2949 dasm_put(Dst, 16337, LJ_TISNUM); 2961 dasm_put(Dst, 16359, LJ_TISNUM);
2962 } else {
2963#ifdef LUA_USE_ASSERT
2964 dasm_put(Dst, 16373, LJ_TISNUM, LJ_TISNUM);
2965#endif
2950 } 2966 }
2951 dasm_put(Dst, 16351); 2967 dasm_put(Dst, 16392);
2952 if (!vk) { 2968 if (!vk) {
2953 dasm_put(Dst, 16355, LJ_TISNUM); 2969 dasm_put(Dst, 16396, LJ_TISNUM);
2954 } 2970 }
2955 if (sse) { 2971 if (sse) {
2956 dasm_put(Dst, 16364); 2972 dasm_put(Dst, 16405);
2957 if (vk) { 2973 if (vk) {
2958 dasm_put(Dst, 16376); 2974 dasm_put(Dst, 16417);
2959 } else { 2975 } else {
2960 dasm_put(Dst, 16395); 2976 dasm_put(Dst, 16436);
2961 } 2977 }
2962 dasm_put(Dst, 16400); 2978 dasm_put(Dst, 16441);
2963 } else { 2979 } else {
2964 dasm_put(Dst, 16413); 2980 dasm_put(Dst, 16454);
2965 if (vk) { 2981 if (vk) {
2966 dasm_put(Dst, 16419); 2982 dasm_put(Dst, 16460);
2967 } else { 2983 } else {
2968 dasm_put(Dst, 16435); 2984 dasm_put(Dst, 16476);
2969 } 2985 }
2970 dasm_put(Dst, 16443); 2986 dasm_put(Dst, 16484);
2971 if (cmov) { 2987 if (cmov) {
2972 dasm_put(Dst, 3899); 2988 dasm_put(Dst, 3899);
2973 } else { 2989 } else {
2974 dasm_put(Dst, 3905); 2990 dasm_put(Dst, 3905);
2975 } 2991 }
2976 if (!cmov) { 2992 if (!cmov) {
2977 dasm_put(Dst, 16448); 2993 dasm_put(Dst, 16489);
2978 } 2994 }
2979 } 2995 }
2980 if (op == BC_FORI) { 2996 if (op == BC_FORI) {
2981 if (LJ_DUALNUM) { 2997 if (LJ_DUALNUM) {
2982 dasm_put(Dst, 16454); 2998 dasm_put(Dst, 16495);
2983 } else { 2999 } else {
2984 dasm_put(Dst, 16459, -BCBIAS_J*4); 3000 dasm_put(Dst, 16500, -BCBIAS_J*4);
2985 } 3001 }
2986 } else if (op == BC_JFORI) { 3002 } else if (op == BC_JFORI) {
2987 dasm_put(Dst, 16469, -BCBIAS_J*4, BC_JLOOP); 3003 dasm_put(Dst, 16510, -BCBIAS_J*4, BC_JLOOP);
2988 } else if (op == BC_IFORL) { 3004 } else if (op == BC_IFORL) {
2989 if (LJ_DUALNUM) { 3005 if (LJ_DUALNUM) {
2990 dasm_put(Dst, 16483); 3006 dasm_put(Dst, 16524);
2991 } else { 3007 } else {
2992 dasm_put(Dst, 16488, -BCBIAS_J*4); 3008 dasm_put(Dst, 16529, -BCBIAS_J*4);
2993 } 3009 }
2994 } else { 3010 } else {
2995 dasm_put(Dst, 16479, BC_JLOOP); 3011 dasm_put(Dst, 16520, BC_JLOOP);
2996 } 3012 }
2997 if (LJ_DUALNUM) { 3013 if (LJ_DUALNUM) {
2998 dasm_put(Dst, 11097); 3014 dasm_put(Dst, 11100);
2999 } else { 3015 } else {
3000 dasm_put(Dst, 11838); 3016 dasm_put(Dst, 11841);
3001 } 3017 }
3002 if (sse) { 3018 if (sse) {
3003 dasm_put(Dst, 16498); 3019 dasm_put(Dst, 16539);
3004 } 3020 }
3005 break; 3021 break;
3006 3022
3007 case BC_ITERL: 3023 case BC_ITERL:
3008#if LJ_HASJIT 3024#if LJ_HASJIT
3009 dasm_put(Dst, 16128, HOTCOUNT_PCMASK, GG_DISP2HOT); 3025 dasm_put(Dst, 16131, HOTCOUNT_PCMASK, GG_DISP2HOT);
3010#endif 3026#endif
3011 break; 3027 break;
3012 3028
@@ -3015,33 +3031,33 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
3015 break; 3031 break;
3016#endif 3032#endif
3017 case BC_IITERL: 3033 case BC_IITERL:
3018 dasm_put(Dst, 16509, LJ_TNIL); 3034 dasm_put(Dst, 16550, LJ_TNIL);
3019 if (op == BC_JITERL) { 3035 if (op == BC_JITERL) {
3020 dasm_put(Dst, 16524, BC_JLOOP); 3036 dasm_put(Dst, 16565, BC_JLOOP);
3021 } else { 3037 } else {
3022 dasm_put(Dst, 16538, -BCBIAS_J*4); 3038 dasm_put(Dst, 16579, -BCBIAS_J*4);
3023 } 3039 }
3024 dasm_put(Dst, 11198); 3040 dasm_put(Dst, 11201);
3025 break; 3041 break;
3026 3042
3027 case BC_LOOP: 3043 case BC_LOOP:
3028#if LJ_HASJIT 3044#if LJ_HASJIT
3029 dasm_put(Dst, 16128, HOTCOUNT_PCMASK, GG_DISP2HOT); 3045 dasm_put(Dst, 16131, HOTCOUNT_PCMASK, GG_DISP2HOT);
3030#endif 3046#endif
3031 break; 3047 break;
3032 3048
3033 case BC_ILOOP: 3049 case BC_ILOOP:
3034 dasm_put(Dst, 11200); 3050 dasm_put(Dst, 11203);
3035 break; 3051 break;
3036 3052
3037 case BC_JLOOP: 3053 case BC_JLOOP:
3038#if LJ_HASJIT 3054#if LJ_HASJIT
3039 dasm_put(Dst, 16554, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L)); 3055 dasm_put(Dst, 16595, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L));
3040#endif 3056#endif
3041 break; 3057 break;
3042 3058
3043 case BC_JMP: 3059 case BC_JMP:
3044 dasm_put(Dst, 16577, -BCBIAS_J*4); 3060 dasm_put(Dst, 16618, -BCBIAS_J*4);
3045 break; 3061 break;
3046 3062
3047 /* -- Function headers -------------------------------------------------- */ 3063 /* -- Function headers -------------------------------------------------- */
@@ -3055,7 +3071,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
3055 3071
3056 case BC_FUNCF: 3072 case BC_FUNCF:
3057#if LJ_HASJIT 3073#if LJ_HASJIT
3058 dasm_put(Dst, 16601, HOTCOUNT_PCMASK, GG_DISP2HOT); 3074 dasm_put(Dst, 16642, HOTCOUNT_PCMASK, GG_DISP2HOT);
3059#endif 3075#endif
3060 case BC_FUNCV: /* NYI: compiled vararg functions. */ 3076 case BC_FUNCV: /* NYI: compiled vararg functions. */
3061 break; 3077 break;
@@ -3065,13 +3081,13 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
3065 break; 3081 break;
3066#endif 3082#endif
3067 case BC_IFUNCF: 3083 case BC_IFUNCF:
3068 dasm_put(Dst, 16622, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams)); 3084 dasm_put(Dst, 16663, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams));
3069 if (op == BC_JFUNCF) { 3085 if (op == BC_JFUNCF) {
3070 dasm_put(Dst, 16652, BC_JLOOP); 3086 dasm_put(Dst, 16693, BC_JLOOP);
3071 } else { 3087 } else {
3072 dasm_put(Dst, 11200); 3088 dasm_put(Dst, 11203);
3073 } 3089 }
3074 dasm_put(Dst, 16661, LJ_TNIL); 3090 dasm_put(Dst, 16702, LJ_TNIL);
3075 break; 3091 break;
3076 3092
3077 case BC_JFUNCV: 3093 case BC_JFUNCV:
@@ -3082,30 +3098,30 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
3082 break; /* NYI: compiled vararg functions. */ 3098 break; /* NYI: compiled vararg functions. */
3083 3099
3084 case BC_IFUNCV: 3100 case BC_IFUNCV:
3085 dasm_put(Dst, 16683, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL); 3101 dasm_put(Dst, 16724, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL);
3086 if (op == BC_JFUNCV) { 3102 if (op == BC_JFUNCV) {
3087 dasm_put(Dst, 16652, BC_JLOOP); 3103 dasm_put(Dst, 16693, BC_JLOOP);
3088 } else { 3104 } else {
3089 dasm_put(Dst, 16774, -4+PC2PROTO(k)); 3105 dasm_put(Dst, 16815, -4+PC2PROTO(k));
3090 } 3106 }
3091 dasm_put(Dst, 16796, LJ_TNIL); 3107 dasm_put(Dst, 16837, LJ_TNIL);
3092 break; 3108 break;
3093 3109
3094 case BC_FUNCC: 3110 case BC_FUNCC:
3095 case BC_FUNCCW: 3111 case BC_FUNCCW:
3096 dasm_put(Dst, 16818, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top)); 3112 dasm_put(Dst, 16859, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top));
3097 if (op == BC_FUNCC) { 3113 if (op == BC_FUNCC) {
3098 dasm_put(Dst, 16847); 3114 dasm_put(Dst, 16888);
3099 } else { 3115 } else {
3100 dasm_put(Dst, 16851); 3116 dasm_put(Dst, 16892);
3101 } 3117 }
3102 dasm_put(Dst, 16859, DISPATCH_GL(vmstate), ~LJ_VMST_C); 3118 dasm_put(Dst, 16900, DISPATCH_GL(vmstate), ~LJ_VMST_C);
3103 if (op == BC_FUNCC) { 3119 if (op == BC_FUNCC) {
3104 dasm_put(Dst, 16868); 3120 dasm_put(Dst, 16909);
3105 } else { 3121 } else {
3106 dasm_put(Dst, 16872, DISPATCH_GL(wrapf)); 3122 dasm_put(Dst, 16913, DISPATCH_GL(wrapf));
3107 } 3123 }
3108 dasm_put(Dst, 16877, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top)); 3124 dasm_put(Dst, 16918, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top));
3109 break; 3125 break;
3110 3126
3111 /* ---------------------------------------------------------------------- */ 3127 /* ---------------------------------------------------------------------- */
@@ -3133,7 +3149,7 @@ static int build_backend(BuildCtx *ctx)
3133 3149
3134 build_subroutines(ctx, cmov, sse); 3150 build_subroutines(ctx, cmov, sse);
3135 3151
3136 dasm_put(Dst, 16902); 3152 dasm_put(Dst, 16943);
3137 for (op = 0; op < BC__MAX; op++) 3153 for (op = 0; op < BC__MAX; op++)
3138 build_ins(ctx, (BCOp)op, op, cmov, sse); 3154 build_ins(ctx, (BCOp)op, op, cmov, sse);
3139 3155