aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMike Pall <mike>2011-03-07 20:12:39 +0100
committerMike Pall <mike>2011-03-07 20:12:39 +0100
commita30f58b54ba645ec0b1efe7087f615451033eb38 (patch)
treed5112c8e29e03a4594f2076d8a47890ab7345291 /src
parent8eb09fe820fe8621e5e9684757ec21c633cf557a (diff)
downloadluajit-a30f58b54ba645ec0b1efe7087f615451033eb38.tar.gz
luajit-a30f58b54ba645ec0b1efe7087f615451033eb38.tar.bz2
luajit-a30f58b54ba645ec0b1efe7087f615451033eb38.zip
DUALNUM: Fix x87 code for BC_ISEQN/BC_ISNEN.
Diffstat (limited to 'src')
-rw-r--r--src/buildvm_x64.h781
-rw-r--r--src/buildvm_x64win.h647
-rw-r--r--src/buildvm_x86.dasc5
-rw-r--r--src/buildvm_x86.h1077
4 files changed, 1253 insertions, 1257 deletions
diff --git a/src/buildvm_x64.h b/src/buildvm_x64.h
index 87115fe3..42d435cb 100644
--- a/src/buildvm_x64.h
+++ b/src/buildvm_x64.h
@@ -12,7 +12,7 @@
12#define DASM_SECTION_CODE_OP 0 12#define DASM_SECTION_CODE_OP 0
13#define DASM_SECTION_CODE_SUB 1 13#define DASM_SECTION_CODE_SUB 1
14#define DASM_MAXSECTION 2 14#define DASM_MAXSECTION 2
15static const unsigned char build_actionlist[15908] = { 15static const unsigned char build_actionlist[15911] = {
16 254,1,248,10,252,247,195,237,15,132,244,11,131,227,252,248,41,218,72,141, 16 254,1,248,10,252,247,195,237,15,132,244,11,131,227,252,248,41,218,72,141,
17 76,25,252,248,139,90,252,252,199,68,10,4,237,248,12,131,192,1,137,68,36,4, 17 76,25,252,248,139,90,252,252,199,68,10,4,237,248,12,131,192,1,137,68,36,4,
18 252,247,195,237,15,132,244,13,248,14,129,252,243,239,252,247,195,237,15,133, 18 252,247,195,237,15,132,244,13,248,14,129,252,243,239,252,247,195,237,15,133,
@@ -528,111 +528,111 @@ static const unsigned char build_actionlist[15908] = {
528 4,193,232,16,65,252,255,36,252,238,248,7,15,135,244,249,65,129,124,253,199, 528 4,193,232,16,65,252,255,36,252,238,248,7,15,135,244,249,65,129,124,253,199,
529 4,239,15,130,244,247,255,252,242,65,15,42,4,199,255,65,219,4,199,255,252, 529 4,239,15,130,244,247,255,252,242,65,15,42,4,199,255,65,219,4,199,255,252,
530 233,244,248,248,8,255,252,242,15,42,4,202,102,65,15,46,4,199,255,219,4,202, 530 233,244,248,248,8,255,252,242,15,42,4,202,102,65,15,46,4,199,255,219,4,202,
531 221,4,194,255,129,252,253,239,15,131,244,249,255,248,1,252,242,65,15,16,4, 531 65,221,4,199,255,129,252,253,239,15,131,244,249,255,248,1,252,242,65,15,16,
532 199,248,2,102,15,46,4,202,248,4,255,248,1,65,221,4,199,248,2,221,4,202,255, 532 4,199,248,2,102,15,46,4,202,248,4,255,248,1,65,221,4,199,248,2,221,4,202,
533 72,252,247,208,139,108,202,4,131,195,4,57,197,255,15,133,244,249,15,183,67, 533 248,4,255,72,252,247,208,139,108,202,4,131,195,4,57,197,255,15,133,244,249,
534 15,183,67,252,254,141,156,253,131,233,248,2,139,3,15,182,204,15,182,232,131,
535 195,4,193,232,16,65,252,255,36,252,238,248,3,129,252,253,239,15,133,244,2,
536 252,233,244,46,255,15,132,244,248,129,252,253,239,15,132,244,46,15,183,67,
534 252,254,141,156,253,131,233,248,2,139,3,15,182,204,15,182,232,131,195,4,193, 537 252,254,141,156,253,131,233,248,2,139,3,15,182,204,15,182,232,131,195,4,193,
535 232,16,65,252,255,36,252,238,248,3,129,252,253,239,15,133,244,2,252,233,244, 538 232,16,65,252,255,36,252,238,255,139,108,194,4,131,195,4,129,252,253,239,
536 46,255,15,132,244,248,129,252,253,239,15,132,244,46,15,183,67,252,254,141, 539 255,137,108,202,4,139,44,194,137,44,202,255,72,139,44,194,72,137,44,202,139,
537 156,253,131,233,248,2,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65, 540 3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,255,49,
538 252,255,36,252,238,255,139,108,194,4,131,195,4,129,252,253,239,255,137,108, 541 252,237,129,124,253,194,4,239,129,213,239,137,108,202,4,139,3,15,182,204,
539 202,4,139,44,194,137,44,202,255,72,139,44,194,72,137,44,202,139,3,15,182, 542 15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,255,129,124,253,194,
540 204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,255,49,252,237, 543 4,239,15,133,244,251,139,44,194,252,247,221,15,128,244,250,199,68,202,4,237,
541 129,124,253,194,4,239,129,213,239,137,108,202,4,139,3,15,182,204,15,182,232, 544 137,44,202,248,9,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,
542 131,195,4,193,232,16,65,252,255,36,252,238,255,129,124,253,194,4,239,15,133, 545 255,36,252,238,248,4,199,68,202,4,0,0,224,65,199,4,202,0,0,0,0,252,233,244,
543 244,251,139,44,194,252,247,221,15,128,244,250,199,68,202,4,237,137,44,202, 546 9,248,5,15,135,244,51,255,129,124,253,194,4,239,15,131,244,51,255,252,242,
544 248,9,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252, 547 15,16,4,194,72,184,237,237,102,72,15,110,200,15,87,193,252,242,15,17,4,202,
545 238,248,4,199,68,202,4,0,0,224,65,199,4,202,0,0,0,0,252,233,244,9,248,5,15, 548 255,221,4,194,217,224,221,28,202,255,129,124,253,194,4,239,15,133,244,248,
546 135,244,51,255,129,124,253,194,4,239,15,131,244,51,255,252,242,15,16,4,194, 549 139,4,194,255,139,128,233,248,1,199,68,202,4,237,137,4,202,255,15,87,192,
547 72,184,237,237,102,72,15,110,200,15,87,193,252,242,15,17,4,202,255,221,4, 550 252,242,15,42,128,233,248,1,252,242,15,17,4,202,255,219,128,233,248,1,221,
548 194,217,224,221,28,202,255,129,124,253,194,4,239,15,133,244,248,139,4,194, 551 28,202,255,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,
549 255,139,128,233,248,1,199,68,202,4,237,137,4,202,255,15,87,192,252,242,15, 552 252,238,248,2,129,124,253,194,4,239,15,133,244,54,139,60,194,137,213,232,
550 42,128,233,248,1,252,242,15,17,4,202,255,219,128,233,248,1,221,28,202,255, 553 251,1,20,255,252,242,15,42,192,255,137,252,234,15,182,75,252,253,252,233,
551 139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248, 554 244,1,255,15,182,252,236,15,182,192,255,129,124,253,252,234,4,239,15,133,
552 2,129,124,253,194,4,239,15,133,244,54,139,60,194,137,213,232,251,1,20,255, 555 244,48,65,129,124,253,199,4,239,15,133,244,48,139,44,252,234,65,3,44,199,
553 252,242,15,42,192,255,137,252,234,15,182,75,252,253,252,233,244,1,255,15, 556 15,128,244,47,255,129,124,253,252,234,4,239,15,133,244,50,65,129,124,253,
554 182,252,236,15,182,192,255,129,124,253,252,234,4,239,15,133,244,48,65,129, 557 199,4,239,15,133,244,50,65,139,4,199,3,4,252,234,15,128,244,49,255,129,124,
555 124,253,199,4,239,15,133,244,48,139,44,252,234,65,3,44,199,15,128,244,47, 558 253,252,234,4,239,15,133,244,53,129,124,253,194,4,239,15,133,244,53,139,44,
556 255,129,124,253,252,234,4,239,15,133,244,50,65,129,124,253,199,4,239,15,133, 559 252,234,3,44,194,15,128,244,52,255,199,68,202,4,237,255,129,124,253,252,234,
557 244,50,65,139,4,199,3,4,252,234,15,128,244,49,255,129,124,253,252,234,4,239, 560 4,239,15,131,244,48,255,65,129,124,253,199,4,239,15,131,244,48,255,252,242,
558 15,133,244,53,129,124,253,194,4,239,15,133,244,53,139,44,252,234,3,44,194, 561 15,16,4,252,234,252,242,65,15,88,4,199,255,221,4,252,234,65,220,4,199,255,
559 15,128,244,52,255,199,68,202,4,237,255,129,124,253,252,234,4,239,15,131,244, 562 129,124,253,252,234,4,239,15,131,244,50,255,65,129,124,253,199,4,239,15,131,
560 48,255,65,129,124,253,199,4,239,15,131,244,48,255,252,242,15,16,4,252,234, 563 244,50,255,252,242,65,15,16,4,199,252,242,15,88,4,252,234,255,65,221,4,199,
561 252,242,65,15,88,4,199,255,221,4,252,234,65,220,4,199,255,129,124,253,252, 564 220,4,252,234,255,129,124,253,252,234,4,239,15,131,244,53,129,124,253,194,
562 234,4,239,15,131,244,50,255,65,129,124,253,199,4,239,15,131,244,50,255,252, 565 4,239,15,131,244,53,255,252,242,15,16,4,252,234,252,242,15,88,4,194,255,221,
563 242,65,15,16,4,199,252,242,15,88,4,252,234,255,65,221,4,199,220,4,252,234, 566 4,252,234,220,4,194,255,129,124,253,252,234,4,239,15,133,244,48,65,129,124,
564 255,129,124,253,252,234,4,239,15,131,244,53,129,124,253,194,4,239,15,131, 567 253,199,4,239,15,133,244,48,139,44,252,234,65,43,44,199,15,128,244,47,255,
565 244,53,255,252,242,15,16,4,252,234,252,242,15,88,4,194,255,221,4,252,234, 568 129,124,253,252,234,4,239,15,133,244,50,65,129,124,253,199,4,239,15,133,244,
566 220,4,194,255,129,124,253,252,234,4,239,15,133,244,48,65,129,124,253,199, 569 50,65,139,4,199,43,4,252,234,15,128,244,49,255,129,124,253,252,234,4,239,
567 4,239,15,133,244,48,139,44,252,234,65,43,44,199,15,128,244,47,255,129,124, 570 15,133,244,53,129,124,253,194,4,239,15,133,244,53,139,44,252,234,43,44,194,
568 253,252,234,4,239,15,133,244,50,65,129,124,253,199,4,239,15,133,244,50,65, 571 15,128,244,52,255,252,242,15,16,4,252,234,252,242,65,15,92,4,199,255,221,
569 139,4,199,43,4,252,234,15,128,244,49,255,129,124,253,252,234,4,239,15,133, 572 4,252,234,65,220,36,199,255,252,242,65,15,16,4,199,252,242,15,92,4,252,234,
570 244,53,129,124,253,194,4,239,15,133,244,53,139,44,252,234,43,44,194,15,128, 573 255,65,221,4,199,220,36,252,234,255,252,242,15,16,4,252,234,252,242,15,92,
571 244,52,255,252,242,15,16,4,252,234,252,242,65,15,92,4,199,255,221,4,252,234, 574 4,194,255,221,4,252,234,220,36,194,255,129,124,253,252,234,4,239,15,133,244,
572 65,220,36,199,255,252,242,65,15,16,4,199,252,242,15,92,4,252,234,255,65,221, 575 48,65,129,124,253,199,4,239,15,133,244,48,139,44,252,234,65,15,175,44,199,
573 4,199,220,36,252,234,255,252,242,15,16,4,252,234,252,242,15,92,4,194,255, 576 15,128,244,47,255,129,124,253,252,234,4,239,15,133,244,50,65,129,124,253,
574 221,4,252,234,220,36,194,255,129,124,253,252,234,4,239,15,133,244,48,65,129, 577 199,4,239,15,133,244,50,65,139,4,199,15,175,4,252,234,15,128,244,49,255,129,
575 124,253,199,4,239,15,133,244,48,139,44,252,234,65,15,175,44,199,15,128,244, 578 124,253,252,234,4,239,15,133,244,53,129,124,253,194,4,239,15,133,244,53,139,
576 47,255,129,124,253,252,234,4,239,15,133,244,50,65,129,124,253,199,4,239,15, 579 44,252,234,15,175,44,194,15,128,244,52,255,252,242,15,16,4,252,234,252,242,
577 133,244,50,65,139,4,199,15,175,4,252,234,15,128,244,49,255,129,124,253,252, 580 65,15,89,4,199,255,221,4,252,234,65,220,12,199,255,252,242,65,15,16,4,199,
578 234,4,239,15,133,244,53,129,124,253,194,4,239,15,133,244,53,139,44,252,234, 581 252,242,15,89,4,252,234,255,65,221,4,199,220,12,252,234,255,252,242,15,16,
579 15,175,44,194,15,128,244,52,255,252,242,15,16,4,252,234,252,242,65,15,89, 582 4,252,234,252,242,15,89,4,194,255,221,4,252,234,220,12,194,255,252,242,15,
580 4,199,255,221,4,252,234,65,220,12,199,255,252,242,65,15,16,4,199,252,242, 583 16,4,252,234,252,242,65,15,94,4,199,255,221,4,252,234,65,220,52,199,255,252,
581 15,89,4,252,234,255,65,221,4,199,220,12,252,234,255,252,242,15,16,4,252,234, 584 242,65,15,16,4,199,252,242,15,94,4,252,234,255,65,221,4,199,220,52,252,234,
582 252,242,15,89,4,194,255,221,4,252,234,220,12,194,255,252,242,15,16,4,252, 585 255,252,242,15,16,4,252,234,252,242,15,94,4,194,255,221,4,252,234,220,52,
583 234,252,242,65,15,94,4,199,255,221,4,252,234,65,220,52,199,255,252,242,65, 586 194,255,252,242,15,16,4,252,234,252,242,65,15,16,12,199,255,221,4,252,234,
584 15,16,4,199,252,242,15,94,4,252,234,255,65,221,4,199,220,52,252,234,255,252, 587 65,221,4,199,255,252,242,65,15,16,4,199,252,242,15,16,12,252,234,255,65,221,
585 242,15,16,4,252,234,252,242,15,94,4,194,255,221,4,252,234,220,52,194,255, 588 4,199,221,4,252,234,255,252,242,15,16,4,252,234,252,242,15,16,12,194,255,
586 252,242,15,16,4,252,234,252,242,65,15,16,12,199,255,221,4,252,234,65,221, 589 221,4,252,234,221,4,194,255,248,162,232,244,153,255,252,233,244,162,255,232,
587 4,199,255,252,242,65,15,16,4,199,252,242,15,16,12,252,234,255,65,221,4,199, 590 244,113,255,15,182,252,236,15,182,192,139,124,36,24,137,151,233,141,52,194,
588 221,4,252,234,255,252,242,15,16,4,252,234,252,242,15,16,12,194,255,221,4, 591 137,194,41,252,234,248,33,137,252,253,137,92,36,28,232,251,1,27,139,149,233,
589 252,234,221,4,194,255,248,162,232,244,153,255,252,233,244,162,255,232,244, 592 133,192,15,133,244,42,15,182,107,252,255,15,182,75,252,253,72,139,4,252,234,
590 113,255,15,182,252,236,15,182,192,139,124,36,24,137,151,233,141,52,194,137, 593 72,137,4,202,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,
591 194,41,252,234,248,33,137,252,253,137,92,36,28,232,251,1,27,139,149,233,133, 594 36,252,238,255,72,252,247,208,65,139,4,135,199,68,202,4,237,137,4,202,139,
592 192,15,133,244,42,15,182,107,252,255,15,182,75,252,253,72,139,4,252,234,72, 595 3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,255,15,
593 137,4,202,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36, 596 191,192,199,68,202,4,237,137,4,202,255,15,191,192,252,242,15,42,192,252,242,
594 252,238,255,72,252,247,208,65,139,4,135,199,68,202,4,237,137,4,202,139,3, 597 15,17,4,202,255,223,67,252,254,221,28,202,255,252,242,65,15,16,4,199,252,
595 15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,255,15,191, 598 242,15,17,4,202,255,65,221,4,199,221,28,202,255,72,252,247,208,137,68,202,
596 192,199,68,202,4,237,137,4,202,255,15,191,192,252,242,15,42,192,252,242,15, 599 4,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,
597 17,4,202,255,223,67,252,254,221,28,202,255,252,242,65,15,16,4,199,252,242, 600 255,141,76,202,12,141,68,194,4,189,237,137,105,252,248,248,1,137,41,131,193,
598 15,17,4,202,255,65,221,4,199,221,28,202,255,72,252,247,208,137,68,202,4,139, 601 8,57,193,15,134,244,1,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,
599 3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,255,141, 602 252,255,36,252,238,255,139,106,252,248,139,172,253,133,233,139,173,233,72,
600 76,202,12,141,68,194,4,189,237,137,105,252,248,248,1,137,41,131,193,8,57, 603 139,69,0,72,137,4,202,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,
601 193,15,134,244,1,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252, 604 252,255,36,252,238,255,139,106,252,248,139,172,253,141,233,128,189,233,0,
602 255,36,252,238,255,139,106,252,248,139,172,253,133,233,139,173,233,72,139, 605 139,173,233,139,12,194,139,68,194,4,137,77,0,137,69,4,15,132,244,247,252,
603 69,0,72,137,4,202,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252, 606 246,133,233,235,15,133,244,248,248,1,139,3,15,182,204,15,182,232,131,195,
604 255,36,252,238,255,139,106,252,248,139,172,253,141,233,128,189,233,0,139, 607 4,193,232,16,65,252,255,36,252,238,248,2,129,232,239,129,252,248,239,15,134,
605 173,233,139,12,194,139,68,194,4,137,77,0,137,69,4,15,132,244,247,252,246, 608 244,1,252,246,129,233,235,15,132,244,1,137,252,238,137,213,65,141,190,233,
606 133,233,235,15,133,244,248,248,1,139,3,15,182,204,15,182,232,131,195,4,193, 609 255,232,251,1,28,137,252,234,252,233,244,1,255,72,252,247,208,139,106,252,
607 232,16,65,252,255,36,252,238,248,2,129,232,239,129,252,248,239,15,134,244, 610 248,139,172,253,141,233,65,139,12,135,139,133,233,137,8,199,64,4,237,252,
608 1,252,246,129,233,235,15,132,244,1,137,252,238,137,213,65,141,190,233,255, 611 246,133,233,235,15,133,244,248,248,1,139,3,15,182,204,15,182,232,131,195,
609 232,251,1,28,137,252,234,252,233,244,1,255,72,252,247,208,139,106,252,248, 612 4,193,232,16,65,252,255,36,252,238,248,2,252,246,129,233,235,15,132,244,1,
610 139,172,253,141,233,65,139,12,135,139,133,233,137,8,199,64,4,237,252,246, 613 128,189,233,0,15,132,244,1,137,213,137,198,65,141,190,233,232,251,1,28,137,
611 133,233,235,15,133,244,248,248,1,139,3,15,182,204,15,182,232,131,195,4,193, 614 252,234,252,233,244,1,255,139,106,252,248,255,252,242,65,15,16,4,199,255,
612 232,16,65,252,255,36,252,238,248,2,252,246,129,233,235,15,132,244,1,128,189, 615 139,172,253,141,233,139,141,233,255,252,242,15,17,1,255,221,25,255,72,252,
613 233,0,15,132,244,1,137,213,137,198,65,141,190,233,232,251,1,28,137,252,234, 616 247,208,139,106,252,248,139,172,253,141,233,139,141,233,137,65,4,139,3,15,
614 252,233,244,1,255,139,106,252,248,255,252,242,65,15,16,4,199,255,139,172, 617 182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,255,141,156,
615 253,141,233,139,141,233,255,252,242,15,17,1,255,221,25,255,72,252,247,208, 618 253,131,233,139,108,36,24,131,189,233,0,15,132,244,247,137,149,233,141,52,
616 139,106,252,248,139,172,253,141,233,139,141,233,137,65,4,139,3,15,182,204, 619 202,137,252,239,232,251,1,29,139,149,233,248,1,139,3,15,182,204,15,182,232,
617 15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,255,141,156,253,131, 620 131,195,4,193,232,16,65,252,255,36,252,238,255,72,252,247,208,139,108,36,
618 233,139,108,36,24,131,189,233,0,15,132,244,247,137,149,233,141,52,202,137, 621 24,137,149,233,139,82,252,248,65,139,52,135,137,252,239,137,92,36,28,232,
619 252,239,232,251,1,29,139,149,233,248,1,139,3,15,182,204,15,182,232,131,195, 622 251,1,30,139,149,233,15,182,75,252,253,137,4,202,199,68,202,4,237,139,3,15,
620 4,193,232,16,65,252,255,36,252,238,255,72,252,247,208,139,108,36,24,137,149, 623 182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,255,139,108,
621 233,139,82,252,248,65,139,52,135,137,252,239,137,92,36,28,232,251,1,30,139, 624 36,24,137,149,233,65,139,142,233,65,59,142,233,137,92,36,28,15,131,244,251,
622 149,233,15,182,75,252,253,137,4,202,199,68,202,4,237,139,3,15,182,204,15, 625 248,1,137,194,37,252,255,7,0,0,193,252,234,11,61,252,255,7,0,0,15,132,244,
623 182,232,131,195,4,193,232,16,65,252,255,36,252,238,255,139,108,36,24,137, 626 249,248,2,137,252,239,137,198,232,251,1,31,139,149,233,15,182,75,252,253,
624 149,233,65,139,142,233,65,59,142,233,137,92,36,28,15,131,244,251,248,1,137, 627 137,4,202,199,68,202,4,237,139,3,15,182,204,15,182,232,131,195,4,193,232,
625 194,37,252,255,7,0,0,193,252,234,11,61,252,255,7,0,0,15,132,244,249,248,2, 628 16,65,252,255,36,252,238,248,3,184,1,8,0,0,252,233,244,2,248,5,137,252,239,
626 137,252,239,137,198,232,251,1,31,139,149,233,15,182,75,252,253,137,4,202, 629 232,251,1,32,15,183,67,252,254,252,233,244,1,255,72,252,247,208,139,108,36,
627 199,68,202,4,237,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252, 630 24,65,139,142,233,137,92,36,28,65,59,142,233,137,149,233,15,131,244,249,248,
628 255,36,252,238,248,3,184,1,8,0,0,252,233,244,2,248,5,137,252,239,232,251, 631 2,65,139,52,135,137,252,239,232,251,1,33,139,149,233,15,182,75,252,253,137,
629 1,32,15,183,67,252,254,252,233,244,1,255,72,252,247,208,139,108,36,24,65, 632 4,202,199,68,202,4,237,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,
630 139,142,233,137,92,36,28,65,59,142,233,137,149,233,15,131,244,249,248,2,65, 633 252,255,36,252,238,248,3,137,252,239,232,251,1,32,15,183,67,252,254,72,252,
631 139,52,135,137,252,239,232,251,1,33,139,149,233,15,182,75,252,253,137,4,202, 634 247,208,252,233,244,2,255,72,252,247,208,139,106,252,248,139,173,233,65,139,
632 199,68,202,4,237,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252, 635 4,135,252,233,244,163,255,72,252,247,208,139,106,252,248,139,173,233,65,139,
633 255,36,252,238,248,3,137,252,239,232,251,1,32,15,183,67,252,254,72,252,247,
634 208,252,233,244,2,255,72,252,247,208,139,106,252,248,139,173,233,65,139,4,
635 135,252,233,244,163,255,72,252,247,208,139,106,252,248,139,173,233,65,139,
636 4,135,252,233,244,164,255,15,182,252,236,15,182,192,129,124,253,252,234,4, 636 4,135,252,233,244,164,255,15,182,252,236,15,182,192,129,124,253,252,234,4,
637 239,15,133,244,36,139,44,252,234,255,129,124,253,194,4,239,15,133,244,251, 637 239,15,133,244,36,139,44,252,234,255,129,124,253,194,4,239,15,133,244,251,
638 139,4,194,255,129,124,253,194,4,239,15,131,244,251,255,252,242,15,16,4,194, 638 139,4,194,255,129,124,253,194,4,239,15,131,244,251,255,252,242,15,16,4,194,
@@ -2045,42 +2045,41 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2045 } 2045 }
2046 dasm_put(Dst, 10290); 2046 dasm_put(Dst, 10290);
2047 } else { 2047 } else {
2048 dasm_put(Dst, 10660, LJ_TISNUM); 2048 dasm_put(Dst, 10661, LJ_TISNUM);
2049 } 2049 }
2050 if (sse) { 2050 if (sse) {
2051 dasm_put(Dst, 10669); 2051 dasm_put(Dst, 10670);
2052 } else { 2052 } else {
2053 dasm_put(Dst, 10688); 2053 dasm_put(Dst, 10689);
2054 if (cmov) { 2054 if (cmov) {
2055 dasm_put(Dst, 10087); 2055 dasm_put(Dst, 10087);
2056 } else { 2056 } else {
2057 dasm_put(Dst, 10093); 2057 dasm_put(Dst, 10093);
2058 } 2058 }
2059 dasm_put(Dst, 4611);
2060 } 2059 }
2061 goto iseqne_fp; 2060 goto iseqne_fp;
2062 case BC_ISEQP: case BC_ISNEP: 2061 case BC_ISEQP: case BC_ISNEP:
2063 vk = op == BC_ISEQP; 2062 vk = op == BC_ISEQP;
2064 dasm_put(Dst, 10700); 2063 dasm_put(Dst, 10703);
2065 if (!LJ_HASFFI) goto iseqne_test; 2064 if (!LJ_HASFFI) goto iseqne_test;
2066 if (vk) { 2065 if (vk) {
2067 dasm_put(Dst, 10714, -BCBIAS_J*4, LJ_TCDATA); 2066 dasm_put(Dst, 10717, -BCBIAS_J*4, LJ_TCDATA);
2068 } else { 2067 } else {
2069 dasm_put(Dst, 10765, LJ_TCDATA, -BCBIAS_J*4); 2068 dasm_put(Dst, 10768, LJ_TCDATA, -BCBIAS_J*4);
2070 } 2069 }
2071 break; 2070 break;
2072 2071
2073 /* -- Unary test and copy ops ------------------------------------------- */ 2072 /* -- Unary test and copy ops ------------------------------------------- */
2074 2073
2075 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF: 2074 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF:
2076 dasm_put(Dst, 10810, LJ_TISTRUECOND); 2075 dasm_put(Dst, 10813, LJ_TISTRUECOND);
2077 if (op == BC_IST || op == BC_ISTC) { 2076 if (op == BC_IST || op == BC_ISTC) {
2078 dasm_put(Dst, 10115); 2077 dasm_put(Dst, 10115);
2079 } else { 2078 } else {
2080 dasm_put(Dst, 10110); 2079 dasm_put(Dst, 10110);
2081 } 2080 }
2082 if (op == BC_ISTC || op == BC_ISFC) { 2081 if (op == BC_ISTC || op == BC_ISFC) {
2083 dasm_put(Dst, 10822); 2082 dasm_put(Dst, 10825);
2084 } 2083 }
2085 dasm_put(Dst, 10120, -BCBIAS_J*4); 2084 dasm_put(Dst, 10120, -BCBIAS_J*4);
2086 break; 2085 break;
@@ -2088,21 +2087,21 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2088 /* -- Unary ops --------------------------------------------------------- */ 2087 /* -- Unary ops --------------------------------------------------------- */
2089 2088
2090 case BC_MOV: 2089 case BC_MOV:
2091 dasm_put(Dst, 10833); 2090 dasm_put(Dst, 10836);
2092 break; 2091 break;
2093 case BC_NOT: 2092 case BC_NOT:
2094 dasm_put(Dst, 10862, LJ_TISTRUECOND, LJ_TTRUE); 2093 dasm_put(Dst, 10865, LJ_TISTRUECOND, LJ_TTRUE);
2095 break; 2094 break;
2096 case BC_UNM: 2095 case BC_UNM:
2097 if (LJ_DUALNUM) { 2096 if (LJ_DUALNUM) {
2098 dasm_put(Dst, 10899, LJ_TISNUM, LJ_TISNUM); 2097 dasm_put(Dst, 10902, LJ_TISNUM, LJ_TISNUM);
2099 } else { 2098 } else {
2100 dasm_put(Dst, 10977, LJ_TISNUM); 2099 dasm_put(Dst, 10980, LJ_TISNUM);
2101 } 2100 }
2102 if (sse) { 2101 if (sse) {
2103 dasm_put(Dst, 10988, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32)); 2102 dasm_put(Dst, 10991, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32));
2104 } else { 2103 } else {
2105 dasm_put(Dst, 11013); 2104 dasm_put(Dst, 11016);
2106 } 2105 }
2107 if (LJ_DUALNUM) { 2106 if (LJ_DUALNUM) {
2108 dasm_put(Dst, 10393); 2107 dasm_put(Dst, 10393);
@@ -2111,21 +2110,21 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2111 } 2110 }
2112 break; 2111 break;
2113 case BC_LEN: 2112 case BC_LEN:
2114 dasm_put(Dst, 11022, LJ_TSTR); 2113 dasm_put(Dst, 11025, LJ_TSTR);
2115 if (LJ_DUALNUM) { 2114 if (LJ_DUALNUM) {
2116 dasm_put(Dst, 11036, Dt5(->len), LJ_TISNUM); 2115 dasm_put(Dst, 11039, Dt5(->len), LJ_TISNUM);
2117 } else if (sse) { 2116 } else if (sse) {
2118 dasm_put(Dst, 11050, Dt5(->len)); 2117 dasm_put(Dst, 11053, Dt5(->len));
2119 } else { 2118 } else {
2120 dasm_put(Dst, 11068, Dt5(->len)); 2119 dasm_put(Dst, 11071, Dt5(->len));
2121 } 2120 }
2122 dasm_put(Dst, 11077, LJ_TTAB); 2121 dasm_put(Dst, 11080, LJ_TTAB);
2123 if (LJ_DUALNUM) { 2122 if (LJ_DUALNUM) {
2124 } else if (sse) { 2123 } else if (sse) {
2125 dasm_put(Dst, 11119); 2124 dasm_put(Dst, 11122);
2126 } else { 2125 } else {
2127 } 2126 }
2128 dasm_put(Dst, 11125); 2127 dasm_put(Dst, 11128);
2129 break; 2128 break;
2130 2129
2131 /* -- Binary ops -------------------------------------------------------- */ 2130 /* -- Binary ops -------------------------------------------------------- */
@@ -2133,603 +2132,603 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2133 2132
2134 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV: 2133 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV:
2135 if (LJ_DUALNUM) { 2134 if (LJ_DUALNUM) {
2136 dasm_put(Dst, 11138); 2135 dasm_put(Dst, 11141);
2137 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2136 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2138 switch (vk) { 2137 switch (vk) {
2139 case 0: 2138 case 0:
2140 dasm_put(Dst, 11146, LJ_TISNUM, LJ_TISNUM); 2139 dasm_put(Dst, 11149, LJ_TISNUM, LJ_TISNUM);
2141 break; 2140 break;
2142 case 1: 2141 case 1:
2143 dasm_put(Dst, 11181, LJ_TISNUM, LJ_TISNUM); 2142 dasm_put(Dst, 11184, LJ_TISNUM, LJ_TISNUM);
2144 break; 2143 break;
2145 default: 2144 default:
2146 dasm_put(Dst, 11216, LJ_TISNUM, LJ_TISNUM); 2145 dasm_put(Dst, 11219, LJ_TISNUM, LJ_TISNUM);
2147 break; 2146 break;
2148 } 2147 }
2149 dasm_put(Dst, 11249, LJ_TISNUM); 2148 dasm_put(Dst, 11252, LJ_TISNUM);
2150 if (vk == 1) { 2149 if (vk == 1) {
2151 dasm_put(Dst, 11046); 2150 dasm_put(Dst, 11049);
2152 } else { 2151 } else {
2153 dasm_put(Dst, 10829); 2152 dasm_put(Dst, 10832);
2154 } 2153 }
2155 dasm_put(Dst, 10132); 2154 dasm_put(Dst, 10132);
2156 } else { 2155 } else {
2157 dasm_put(Dst, 11138); 2156 dasm_put(Dst, 11141);
2158 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2157 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2159 switch (vk) { 2158 switch (vk) {
2160 case 0: 2159 case 0:
2161 dasm_put(Dst, 11255, LJ_TISNUM); 2160 dasm_put(Dst, 11258, LJ_TISNUM);
2162 if (LJ_DUALNUM) { 2161 if (LJ_DUALNUM) {
2163 dasm_put(Dst, 11267, LJ_TISNUM); 2162 dasm_put(Dst, 11270, LJ_TISNUM);
2164 } 2163 }
2165 if (sse) { 2164 if (sse) {
2166 dasm_put(Dst, 11279); 2165 dasm_put(Dst, 11282);
2167 } else { 2166 } else {
2168 dasm_put(Dst, 11294); 2167 dasm_put(Dst, 11297);
2169 } 2168 }
2170 break; 2169 break;
2171 case 1: 2170 case 1:
2172 dasm_put(Dst, 11303, LJ_TISNUM); 2171 dasm_put(Dst, 11306, LJ_TISNUM);
2173 if (LJ_DUALNUM) { 2172 if (LJ_DUALNUM) {
2174 dasm_put(Dst, 11315, LJ_TISNUM); 2173 dasm_put(Dst, 11318, LJ_TISNUM);
2175 } 2174 }
2176 if (sse) { 2175 if (sse) {
2177 dasm_put(Dst, 11327); 2176 dasm_put(Dst, 11330);
2178 } else { 2177 } else {
2179 dasm_put(Dst, 11342); 2178 dasm_put(Dst, 11345);
2180 } 2179 }
2181 break; 2180 break;
2182 default: 2181 default:
2183 dasm_put(Dst, 11351, LJ_TISNUM, LJ_TISNUM); 2182 dasm_put(Dst, 11354, LJ_TISNUM, LJ_TISNUM);
2184 if (sse) { 2183 if (sse) {
2185 dasm_put(Dst, 11373); 2184 dasm_put(Dst, 11376);
2186 } else { 2185 } else {
2187 dasm_put(Dst, 11387); 2186 dasm_put(Dst, 11390);
2188 } 2187 }
2189 break; 2188 break;
2190 } 2189 }
2191 if (sse) { 2190 if (sse) {
2192 dasm_put(Dst, 11006); 2191 dasm_put(Dst, 11009);
2193 } else { 2192 } else {
2194 dasm_put(Dst, 11018); 2193 dasm_put(Dst, 11021);
2195 } 2194 }
2196 dasm_put(Dst, 10132); 2195 dasm_put(Dst, 10132);
2197 } 2196 }
2198 break; 2197 break;
2199 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV: 2198 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV:
2200 if (LJ_DUALNUM) { 2199 if (LJ_DUALNUM) {
2201 dasm_put(Dst, 11138); 2200 dasm_put(Dst, 11141);
2202 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2201 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2203 switch (vk) { 2202 switch (vk) {
2204 case 0: 2203 case 0:
2205 dasm_put(Dst, 11395, LJ_TISNUM, LJ_TISNUM); 2204 dasm_put(Dst, 11398, LJ_TISNUM, LJ_TISNUM);
2206 break; 2205 break;
2207 case 1: 2206 case 1:
2208 dasm_put(Dst, 11430, LJ_TISNUM, LJ_TISNUM); 2207 dasm_put(Dst, 11433, LJ_TISNUM, LJ_TISNUM);
2209 break; 2208 break;
2210 default: 2209 default:
2211 dasm_put(Dst, 11465, LJ_TISNUM, LJ_TISNUM); 2210 dasm_put(Dst, 11468, LJ_TISNUM, LJ_TISNUM);
2212 break; 2211 break;
2213 } 2212 }
2214 dasm_put(Dst, 11249, LJ_TISNUM); 2213 dasm_put(Dst, 11252, LJ_TISNUM);
2215 if (vk == 1) { 2214 if (vk == 1) {
2216 dasm_put(Dst, 11046); 2215 dasm_put(Dst, 11049);
2217 } else { 2216 } else {
2218 dasm_put(Dst, 10829); 2217 dasm_put(Dst, 10832);
2219 } 2218 }
2220 dasm_put(Dst, 10132); 2219 dasm_put(Dst, 10132);
2221 } else { 2220 } else {
2222 dasm_put(Dst, 11138); 2221 dasm_put(Dst, 11141);
2223 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2222 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2224 switch (vk) { 2223 switch (vk) {
2225 case 0: 2224 case 0:
2226 dasm_put(Dst, 11255, LJ_TISNUM); 2225 dasm_put(Dst, 11258, LJ_TISNUM);
2227 if (LJ_DUALNUM) { 2226 if (LJ_DUALNUM) {
2228 dasm_put(Dst, 11267, LJ_TISNUM); 2227 dasm_put(Dst, 11270, LJ_TISNUM);
2229 } 2228 }
2230 if (sse) { 2229 if (sse) {
2231 dasm_put(Dst, 11498); 2230 dasm_put(Dst, 11501);
2232 } else { 2231 } else {
2233 dasm_put(Dst, 11513); 2232 dasm_put(Dst, 11516);
2234 } 2233 }
2235 break; 2234 break;
2236 case 1: 2235 case 1:
2237 dasm_put(Dst, 11303, LJ_TISNUM); 2236 dasm_put(Dst, 11306, LJ_TISNUM);
2238 if (LJ_DUALNUM) { 2237 if (LJ_DUALNUM) {
2239 dasm_put(Dst, 11315, LJ_TISNUM); 2238 dasm_put(Dst, 11318, LJ_TISNUM);
2240 } 2239 }
2241 if (sse) { 2240 if (sse) {
2242 dasm_put(Dst, 11522); 2241 dasm_put(Dst, 11525);
2243 } else { 2242 } else {
2244 dasm_put(Dst, 11537); 2243 dasm_put(Dst, 11540);
2245 } 2244 }
2246 break; 2245 break;
2247 default: 2246 default:
2248 dasm_put(Dst, 11351, LJ_TISNUM, LJ_TISNUM); 2247 dasm_put(Dst, 11354, LJ_TISNUM, LJ_TISNUM);
2249 if (sse) { 2248 if (sse) {
2250 dasm_put(Dst, 11546); 2249 dasm_put(Dst, 11549);
2251 } else { 2250 } else {
2252 dasm_put(Dst, 11560); 2251 dasm_put(Dst, 11563);
2253 } 2252 }
2254 break; 2253 break;
2255 } 2254 }
2256 if (sse) { 2255 if (sse) {
2257 dasm_put(Dst, 11006); 2256 dasm_put(Dst, 11009);
2258 } else { 2257 } else {
2259 dasm_put(Dst, 11018); 2258 dasm_put(Dst, 11021);
2260 } 2259 }
2261 dasm_put(Dst, 10132); 2260 dasm_put(Dst, 10132);
2262 } 2261 }
2263 break; 2262 break;
2264 case BC_MULVN: case BC_MULNV: case BC_MULVV: 2263 case BC_MULVN: case BC_MULNV: case BC_MULVV:
2265 if (LJ_DUALNUM) { 2264 if (LJ_DUALNUM) {
2266 dasm_put(Dst, 11138); 2265 dasm_put(Dst, 11141);
2267 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2266 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2268 switch (vk) { 2267 switch (vk) {
2269 case 0: 2268 case 0:
2270 dasm_put(Dst, 11568, LJ_TISNUM, LJ_TISNUM); 2269 dasm_put(Dst, 11571, LJ_TISNUM, LJ_TISNUM);
2271 break; 2270 break;
2272 case 1: 2271 case 1:
2273 dasm_put(Dst, 11604, LJ_TISNUM, LJ_TISNUM); 2272 dasm_put(Dst, 11607, LJ_TISNUM, LJ_TISNUM);
2274 break; 2273 break;
2275 default: 2274 default:
2276 dasm_put(Dst, 11640, LJ_TISNUM, LJ_TISNUM); 2275 dasm_put(Dst, 11643, LJ_TISNUM, LJ_TISNUM);
2277 break; 2276 break;
2278 } 2277 }
2279 dasm_put(Dst, 11249, LJ_TISNUM); 2278 dasm_put(Dst, 11252, LJ_TISNUM);
2280 if (vk == 1) { 2279 if (vk == 1) {
2281 dasm_put(Dst, 11046); 2280 dasm_put(Dst, 11049);
2282 } else { 2281 } else {
2283 dasm_put(Dst, 10829); 2282 dasm_put(Dst, 10832);
2284 } 2283 }
2285 dasm_put(Dst, 10132); 2284 dasm_put(Dst, 10132);
2286 } else { 2285 } else {
2287 dasm_put(Dst, 11138); 2286 dasm_put(Dst, 11141);
2288 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2287 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2289 switch (vk) { 2288 switch (vk) {
2290 case 0: 2289 case 0:
2291 dasm_put(Dst, 11255, LJ_TISNUM); 2290 dasm_put(Dst, 11258, LJ_TISNUM);
2292 if (LJ_DUALNUM) { 2291 if (LJ_DUALNUM) {
2293 dasm_put(Dst, 11267, LJ_TISNUM); 2292 dasm_put(Dst, 11270, LJ_TISNUM);
2294 } 2293 }
2295 if (sse) { 2294 if (sse) {
2296 dasm_put(Dst, 11674); 2295 dasm_put(Dst, 11677);
2297 } else { 2296 } else {
2298 dasm_put(Dst, 11689); 2297 dasm_put(Dst, 11692);
2299 } 2298 }
2300 break; 2299 break;
2301 case 1: 2300 case 1:
2302 dasm_put(Dst, 11303, LJ_TISNUM); 2301 dasm_put(Dst, 11306, LJ_TISNUM);
2303 if (LJ_DUALNUM) { 2302 if (LJ_DUALNUM) {
2304 dasm_put(Dst, 11315, LJ_TISNUM); 2303 dasm_put(Dst, 11318, LJ_TISNUM);
2305 } 2304 }
2306 if (sse) { 2305 if (sse) {
2307 dasm_put(Dst, 11698); 2306 dasm_put(Dst, 11701);
2308 } else { 2307 } else {
2309 dasm_put(Dst, 11713); 2308 dasm_put(Dst, 11716);
2310 } 2309 }
2311 break; 2310 break;
2312 default: 2311 default:
2313 dasm_put(Dst, 11351, LJ_TISNUM, LJ_TISNUM); 2312 dasm_put(Dst, 11354, LJ_TISNUM, LJ_TISNUM);
2314 if (sse) { 2313 if (sse) {
2315 dasm_put(Dst, 11722); 2314 dasm_put(Dst, 11725);
2316 } else { 2315 } else {
2317 dasm_put(Dst, 11736); 2316 dasm_put(Dst, 11739);
2318 } 2317 }
2319 break; 2318 break;
2320 } 2319 }
2321 if (sse) { 2320 if (sse) {
2322 dasm_put(Dst, 11006); 2321 dasm_put(Dst, 11009);
2323 } else { 2322 } else {
2324 dasm_put(Dst, 11018); 2323 dasm_put(Dst, 11021);
2325 } 2324 }
2326 dasm_put(Dst, 10132); 2325 dasm_put(Dst, 10132);
2327 } 2326 }
2328 break; 2327 break;
2329 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV: 2328 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV:
2330 dasm_put(Dst, 11138); 2329 dasm_put(Dst, 11141);
2331 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2330 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2332 switch (vk) { 2331 switch (vk) {
2333 case 0: 2332 case 0:
2334 dasm_put(Dst, 11255, LJ_TISNUM); 2333 dasm_put(Dst, 11258, LJ_TISNUM);
2335 if (LJ_DUALNUM) { 2334 if (LJ_DUALNUM) {
2336 dasm_put(Dst, 11267, LJ_TISNUM); 2335 dasm_put(Dst, 11270, LJ_TISNUM);
2337 } 2336 }
2338 if (sse) { 2337 if (sse) {
2339 dasm_put(Dst, 11744); 2338 dasm_put(Dst, 11747);
2340 } else { 2339 } else {
2341 dasm_put(Dst, 11759); 2340 dasm_put(Dst, 11762);
2342 } 2341 }
2343 break; 2342 break;
2344 case 1: 2343 case 1:
2345 dasm_put(Dst, 11303, LJ_TISNUM); 2344 dasm_put(Dst, 11306, LJ_TISNUM);
2346 if (LJ_DUALNUM) { 2345 if (LJ_DUALNUM) {
2347 dasm_put(Dst, 11315, LJ_TISNUM); 2346 dasm_put(Dst, 11318, LJ_TISNUM);
2348 } 2347 }
2349 if (sse) { 2348 if (sse) {
2350 dasm_put(Dst, 11768); 2349 dasm_put(Dst, 11771);
2351 } else { 2350 } else {
2352 dasm_put(Dst, 11783); 2351 dasm_put(Dst, 11786);
2353 } 2352 }
2354 break; 2353 break;
2355 default: 2354 default:
2356 dasm_put(Dst, 11351, LJ_TISNUM, LJ_TISNUM); 2355 dasm_put(Dst, 11354, LJ_TISNUM, LJ_TISNUM);
2357 if (sse) { 2356 if (sse) {
2358 dasm_put(Dst, 11792); 2357 dasm_put(Dst, 11795);
2359 } else { 2358 } else {
2360 dasm_put(Dst, 11806); 2359 dasm_put(Dst, 11809);
2361 } 2360 }
2362 break; 2361 break;
2363 } 2362 }
2364 if (sse) { 2363 if (sse) {
2365 dasm_put(Dst, 11006); 2364 dasm_put(Dst, 11009);
2366 } else { 2365 } else {
2367 dasm_put(Dst, 11018); 2366 dasm_put(Dst, 11021);
2368 } 2367 }
2369 dasm_put(Dst, 10132); 2368 dasm_put(Dst, 10132);
2370 break; 2369 break;
2371 case BC_MODVN: 2370 case BC_MODVN:
2372 dasm_put(Dst, 11138); 2371 dasm_put(Dst, 11141);
2373 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2372 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2374 switch (vk) { 2373 switch (vk) {
2375 case 0: 2374 case 0:
2376 dasm_put(Dst, 11255, LJ_TISNUM); 2375 dasm_put(Dst, 11258, LJ_TISNUM);
2377 if (LJ_DUALNUM) { 2376 if (LJ_DUALNUM) {
2378 dasm_put(Dst, 11267, LJ_TISNUM); 2377 dasm_put(Dst, 11270, LJ_TISNUM);
2379 } 2378 }
2380 if (sse) { 2379 if (sse) {
2381 dasm_put(Dst, 11814); 2380 dasm_put(Dst, 11817);
2382 } else { 2381 } else {
2383 dasm_put(Dst, 11829); 2382 dasm_put(Dst, 11832);
2384 } 2383 }
2385 break; 2384 break;
2386 case 1: 2385 case 1:
2387 dasm_put(Dst, 11303, LJ_TISNUM); 2386 dasm_put(Dst, 11306, LJ_TISNUM);
2388 if (LJ_DUALNUM) { 2387 if (LJ_DUALNUM) {
2389 dasm_put(Dst, 11315, LJ_TISNUM); 2388 dasm_put(Dst, 11318, LJ_TISNUM);
2390 } 2389 }
2391 if (sse) { 2390 if (sse) {
2392 dasm_put(Dst, 11838); 2391 dasm_put(Dst, 11841);
2393 } else { 2392 } else {
2394 dasm_put(Dst, 11853); 2393 dasm_put(Dst, 11856);
2395 } 2394 }
2396 break; 2395 break;
2397 default: 2396 default:
2398 dasm_put(Dst, 11351, LJ_TISNUM, LJ_TISNUM); 2397 dasm_put(Dst, 11354, LJ_TISNUM, LJ_TISNUM);
2399 if (sse) { 2398 if (sse) {
2400 dasm_put(Dst, 11862); 2399 dasm_put(Dst, 11865);
2401 } else { 2400 } else {
2402 dasm_put(Dst, 11876); 2401 dasm_put(Dst, 11879);
2403 } 2402 }
2404 break; 2403 break;
2405 } 2404 }
2406 dasm_put(Dst, 11884); 2405 dasm_put(Dst, 11887);
2407 if (sse) { 2406 if (sse) {
2408 dasm_put(Dst, 11006); 2407 dasm_put(Dst, 11009);
2409 } else { 2408 } else {
2410 dasm_put(Dst, 11018); 2409 dasm_put(Dst, 11021);
2411 } 2410 }
2412 dasm_put(Dst, 10132); 2411 dasm_put(Dst, 10132);
2413 break; 2412 break;
2414 case BC_MODNV: case BC_MODVV: 2413 case BC_MODNV: case BC_MODVV:
2415 dasm_put(Dst, 11138); 2414 dasm_put(Dst, 11141);
2416 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2415 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2417 switch (vk) { 2416 switch (vk) {
2418 case 0: 2417 case 0:
2419 dasm_put(Dst, 11255, LJ_TISNUM); 2418 dasm_put(Dst, 11258, LJ_TISNUM);
2420 if (LJ_DUALNUM) { 2419 if (LJ_DUALNUM) {
2421 dasm_put(Dst, 11267, LJ_TISNUM); 2420 dasm_put(Dst, 11270, LJ_TISNUM);
2422 } 2421 }
2423 if (sse) { 2422 if (sse) {
2424 dasm_put(Dst, 11814); 2423 dasm_put(Dst, 11817);
2425 } else { 2424 } else {
2426 dasm_put(Dst, 11829); 2425 dasm_put(Dst, 11832);
2427 } 2426 }
2428 break; 2427 break;
2429 case 1: 2428 case 1:
2430 dasm_put(Dst, 11303, LJ_TISNUM); 2429 dasm_put(Dst, 11306, LJ_TISNUM);
2431 if (LJ_DUALNUM) { 2430 if (LJ_DUALNUM) {
2432 dasm_put(Dst, 11315, LJ_TISNUM); 2431 dasm_put(Dst, 11318, LJ_TISNUM);
2433 } 2432 }
2434 if (sse) { 2433 if (sse) {
2435 dasm_put(Dst, 11838); 2434 dasm_put(Dst, 11841);
2436 } else { 2435 } else {
2437 dasm_put(Dst, 11853); 2436 dasm_put(Dst, 11856);
2438 } 2437 }
2439 break; 2438 break;
2440 default: 2439 default:
2441 dasm_put(Dst, 11351, LJ_TISNUM, LJ_TISNUM); 2440 dasm_put(Dst, 11354, LJ_TISNUM, LJ_TISNUM);
2442 if (sse) { 2441 if (sse) {
2443 dasm_put(Dst, 11862); 2442 dasm_put(Dst, 11865);
2444 } else { 2443 } else {
2445 dasm_put(Dst, 11876); 2444 dasm_put(Dst, 11879);
2446 } 2445 }
2447 break; 2446 break;
2448 } 2447 }
2449 dasm_put(Dst, 11890); 2448 dasm_put(Dst, 11893);
2450 break; 2449 break;
2451 case BC_POW: 2450 case BC_POW:
2452 dasm_put(Dst, 11138); 2451 dasm_put(Dst, 11141);
2453 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2452 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2454 switch (vk) { 2453 switch (vk) {
2455 case 0: 2454 case 0:
2456 dasm_put(Dst, 11255, LJ_TISNUM); 2455 dasm_put(Dst, 11258, LJ_TISNUM);
2457 if (LJ_DUALNUM) { 2456 if (LJ_DUALNUM) {
2458 dasm_put(Dst, 11267, LJ_TISNUM); 2457 dasm_put(Dst, 11270, LJ_TISNUM);
2459 } 2458 }
2460 if (sse) { 2459 if (sse) {
2461 dasm_put(Dst, 11814); 2460 dasm_put(Dst, 11817);
2462 } else { 2461 } else {
2463 dasm_put(Dst, 11829); 2462 dasm_put(Dst, 11832);
2464 } 2463 }
2465 break; 2464 break;
2466 case 1: 2465 case 1:
2467 dasm_put(Dst, 11303, LJ_TISNUM); 2466 dasm_put(Dst, 11306, LJ_TISNUM);
2468 if (LJ_DUALNUM) { 2467 if (LJ_DUALNUM) {
2469 dasm_put(Dst, 11315, LJ_TISNUM); 2468 dasm_put(Dst, 11318, LJ_TISNUM);
2470 } 2469 }
2471 if (sse) { 2470 if (sse) {
2472 dasm_put(Dst, 11838); 2471 dasm_put(Dst, 11841);
2473 } else { 2472 } else {
2474 dasm_put(Dst, 11853); 2473 dasm_put(Dst, 11856);
2475 } 2474 }
2476 break; 2475 break;
2477 default: 2476 default:
2478 dasm_put(Dst, 11351, LJ_TISNUM, LJ_TISNUM); 2477 dasm_put(Dst, 11354, LJ_TISNUM, LJ_TISNUM);
2479 if (sse) { 2478 if (sse) {
2480 dasm_put(Dst, 11862); 2479 dasm_put(Dst, 11865);
2481 } else { 2480 } else {
2482 dasm_put(Dst, 11876); 2481 dasm_put(Dst, 11879);
2483 } 2482 }
2484 break; 2483 break;
2485 } 2484 }
2486 dasm_put(Dst, 11895); 2485 dasm_put(Dst, 11898);
2487 if (sse) { 2486 if (sse) {
2488 dasm_put(Dst, 11006); 2487 dasm_put(Dst, 11009);
2489 } else { 2488 } else {
2490 dasm_put(Dst, 11018); 2489 dasm_put(Dst, 11021);
2491 } 2490 }
2492 dasm_put(Dst, 10132); 2491 dasm_put(Dst, 10132);
2493 break; 2492 break;
2494 2493
2495 case BC_CAT: 2494 case BC_CAT:
2496 dasm_put(Dst, 11899, Dt1(->base), Dt1(->base)); 2495 dasm_put(Dst, 11902, Dt1(->base), Dt1(->base));
2497 break; 2496 break;
2498 2497
2499 /* -- Constant ops ------------------------------------------------------ */ 2498 /* -- Constant ops ------------------------------------------------------ */
2500 2499
2501 case BC_KSTR: 2500 case BC_KSTR:
2502 dasm_put(Dst, 11983, LJ_TSTR); 2501 dasm_put(Dst, 11986, LJ_TSTR);
2503 break; 2502 break;
2504 case BC_KCDATA: 2503 case BC_KCDATA:
2505#if LJ_HASFFI 2504#if LJ_HASFFI
2506 dasm_put(Dst, 11983, LJ_TCDATA); 2505 dasm_put(Dst, 11986, LJ_TCDATA);
2507#endif 2506#endif
2508 break; 2507 break;
2509 case BC_KSHORT: 2508 case BC_KSHORT:
2510 if (LJ_DUALNUM) { 2509 if (LJ_DUALNUM) {
2511 dasm_put(Dst, 12020, LJ_TISNUM); 2510 dasm_put(Dst, 12023, LJ_TISNUM);
2512 } else if (sse) { 2511 } else if (sse) {
2513 dasm_put(Dst, 12032); 2512 dasm_put(Dst, 12035);
2514 } else { 2513 } else {
2515 dasm_put(Dst, 12047); 2514 dasm_put(Dst, 12050);
2516 } 2515 }
2517 dasm_put(Dst, 10132); 2516 dasm_put(Dst, 10132);
2518 break; 2517 break;
2519 case BC_KNUM: 2518 case BC_KNUM:
2520 if (sse) { 2519 if (sse) {
2521 dasm_put(Dst, 12055); 2520 dasm_put(Dst, 12058);
2522 } else { 2521 } else {
2523 dasm_put(Dst, 12069); 2522 dasm_put(Dst, 12072);
2524 } 2523 }
2525 dasm_put(Dst, 10132); 2524 dasm_put(Dst, 10132);
2526 break; 2525 break;
2527 case BC_KPRI: 2526 case BC_KPRI:
2528 dasm_put(Dst, 12077); 2527 dasm_put(Dst, 12080);
2529 break; 2528 break;
2530 case BC_KNIL: 2529 case BC_KNIL:
2531 dasm_put(Dst, 12106, LJ_TNIL); 2530 dasm_put(Dst, 12109, LJ_TNIL);
2532 break; 2531 break;
2533 2532
2534 /* -- Upvalue and function ops ------------------------------------------ */ 2533 /* -- Upvalue and function ops ------------------------------------------ */
2535 2534
2536 case BC_UGET: 2535 case BC_UGET:
2537 dasm_put(Dst, 12154, offsetof(GCfuncL, uvptr), DtA(->v)); 2536 dasm_put(Dst, 12157, offsetof(GCfuncL, uvptr), DtA(->v));
2538 break; 2537 break;
2539 case BC_USETV: 2538 case BC_USETV:
2540#define TV2MARKOFS \ 2539#define TV2MARKOFS \
2541 ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv)) 2540 ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv))
2542 dasm_put(Dst, 12195, 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); 2541 dasm_put(Dst, 12198, 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);
2543 dasm_put(Dst, 12291); 2542 dasm_put(Dst, 12294);
2544 break; 2543 break;
2545#undef TV2MARKOFS 2544#undef TV2MARKOFS
2546 case BC_USETS: 2545 case BC_USETS:
2547 dasm_put(Dst, 12303, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G); 2546 dasm_put(Dst, 12306, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G);
2548 break; 2547 break;
2549 case BC_USETN: 2548 case BC_USETN:
2550 dasm_put(Dst, 12399); 2549 dasm_put(Dst, 12402);
2551 if (sse) { 2550 if (sse) {
2552 dasm_put(Dst, 12404); 2551 dasm_put(Dst, 12407);
2553 } else { 2552 } else {
2554 dasm_put(Dst, 11833); 2553 dasm_put(Dst, 10656);
2555 } 2554 }
2556 dasm_put(Dst, 12412, offsetof(GCfuncL, uvptr), DtA(->v)); 2555 dasm_put(Dst, 12415, offsetof(GCfuncL, uvptr), DtA(->v));
2557 if (sse) { 2556 if (sse) {
2558 dasm_put(Dst, 12421); 2557 dasm_put(Dst, 12424);
2559 } else { 2558 } else {
2560 dasm_put(Dst, 12427); 2559 dasm_put(Dst, 12430);
2561 } 2560 }
2562 dasm_put(Dst, 10132); 2561 dasm_put(Dst, 10132);
2563 break; 2562 break;
2564 case BC_USETP: 2563 case BC_USETP:
2565 dasm_put(Dst, 12430, offsetof(GCfuncL, uvptr), DtA(->v)); 2564 dasm_put(Dst, 12433, offsetof(GCfuncL, uvptr), DtA(->v));
2566 break; 2565 break;
2567 case BC_UCLO: 2566 case BC_UCLO:
2568 dasm_put(Dst, 12470, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base)); 2567 dasm_put(Dst, 12473, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base));
2569 break; 2568 break;
2570 2569
2571 case BC_FNEW: 2570 case BC_FNEW:
2572 dasm_put(Dst, 12526, Dt1(->base), Dt1(->base), LJ_TFUNC); 2571 dasm_put(Dst, 12529, Dt1(->base), Dt1(->base), LJ_TFUNC);
2573 break; 2572 break;
2574 2573
2575 /* -- Table ops --------------------------------------------------------- */ 2574 /* -- Table ops --------------------------------------------------------- */
2576 2575
2577 case BC_TNEW: 2576 case BC_TNEW:
2578 dasm_put(Dst, 12593, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB); 2577 dasm_put(Dst, 12596, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB);
2579 break; 2578 break;
2580 case BC_TDUP: 2579 case BC_TDUP:
2581 dasm_put(Dst, 12717, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB); 2580 dasm_put(Dst, 12720, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB);
2582 break; 2581 break;
2583 2582
2584 case BC_GGET: 2583 case BC_GGET:
2585 dasm_put(Dst, 12816, Dt7(->env)); 2584 dasm_put(Dst, 12819, Dt7(->env));
2586 break; 2585 break;
2587 case BC_GSET: 2586 case BC_GSET:
2588 dasm_put(Dst, 12836, Dt7(->env)); 2587 dasm_put(Dst, 12839, Dt7(->env));
2589 break; 2588 break;
2590 2589
2591 case BC_TGETV: 2590 case BC_TGETV:
2592 dasm_put(Dst, 12856, LJ_TTAB); 2591 dasm_put(Dst, 12859, LJ_TTAB);
2593 if (LJ_DUALNUM) { 2592 if (LJ_DUALNUM) {
2594 dasm_put(Dst, 12879, LJ_TISNUM); 2593 dasm_put(Dst, 12882, LJ_TISNUM);
2595 } else { 2594 } else {
2596 dasm_put(Dst, 12893, LJ_TISNUM); 2595 dasm_put(Dst, 12896, LJ_TISNUM);
2597 if (sse) { 2596 if (sse) {
2598 dasm_put(Dst, 12904); 2597 dasm_put(Dst, 12907);
2599 } else { 2598 } else {
2600 } 2599 }
2601 dasm_put(Dst, 12925); 2600 dasm_put(Dst, 12928);
2602 } 2601 }
2603 dasm_put(Dst, 12930, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index, LJ_TNIL); 2602 dasm_put(Dst, 12933, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index, LJ_TNIL);
2604 dasm_put(Dst, 13022, LJ_TSTR); 2603 dasm_put(Dst, 13025, LJ_TSTR);
2605 break; 2604 break;
2606 case BC_TGETS: 2605 case BC_TGETS:
2607 dasm_put(Dst, 13040, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); 2606 dasm_put(Dst, 13043, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
2608 dasm_put(Dst, 13125, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 2607 dasm_put(Dst, 13128, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
2609 break; 2608 break;
2610 case BC_TGETB: 2609 case BC_TGETB:
2611 dasm_put(Dst, 13197, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 2610 dasm_put(Dst, 13200, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
2612 dasm_put(Dst, 13293, LJ_TNIL); 2611 dasm_put(Dst, 13296, LJ_TNIL);
2613 break; 2612 break;
2614 2613
2615 case BC_TSETV: 2614 case BC_TSETV:
2616 dasm_put(Dst, 13310, LJ_TTAB); 2615 dasm_put(Dst, 13313, LJ_TTAB);
2617 if (LJ_DUALNUM) { 2616 if (LJ_DUALNUM) {
2618 dasm_put(Dst, 12879, LJ_TISNUM); 2617 dasm_put(Dst, 12882, LJ_TISNUM);
2619 } else { 2618 } else {
2620 dasm_put(Dst, 12893, LJ_TISNUM); 2619 dasm_put(Dst, 12896, LJ_TISNUM);
2621 if (sse) { 2620 if (sse) {
2622 dasm_put(Dst, 12904); 2621 dasm_put(Dst, 12907);
2623 } else { 2622 } else {
2624 } 2623 }
2625 dasm_put(Dst, 13333); 2624 dasm_put(Dst, 13336);
2626 } 2625 }
2627 dasm_put(Dst, 13338, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex); 2626 dasm_put(Dst, 13341, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex);
2628 dasm_put(Dst, 13419, LJ_TSTR, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 2627 dasm_put(Dst, 13422, LJ_TSTR, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
2629 break; 2628 break;
2630 case BC_TSETS: 2629 case BC_TSETS:
2631 dasm_put(Dst, 13478, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); 2630 dasm_put(Dst, 13481, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
2632 dasm_put(Dst, 13555, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next)); 2631 dasm_put(Dst, 13558, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next));
2633 dasm_put(Dst, 13642, 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)); 2632 dasm_put(Dst, 13645, 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));
2634 break; 2633 break;
2635 case BC_TSETB: 2634 case BC_TSETB:
2636 dasm_put(Dst, 13734, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable)); 2635 dasm_put(Dst, 13737, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable));
2637 dasm_put(Dst, 13829, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 2636 dasm_put(Dst, 13832, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
2638 break; 2637 break;
2639 2638
2640 case BC_TSETM: 2639 case BC_TSETM:
2641 dasm_put(Dst, 13877, Dt6(->marked), LJ_GC_BLACK, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base)); 2640 dasm_put(Dst, 13880, Dt6(->marked), LJ_GC_BLACK, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base));
2642 dasm_put(Dst, 14027, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 2641 dasm_put(Dst, 14030, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
2643 break; 2642 break;
2644 2643
2645 /* -- Calls and vararg handling ----------------------------------------- */ 2644 /* -- Calls and vararg handling ----------------------------------------- */
2646 2645
2647 case BC_CALL: case BC_CALLM: 2646 case BC_CALL: case BC_CALLM:
2648 dasm_put(Dst, 11142); 2647 dasm_put(Dst, 11145);
2649 if (op == BC_CALLM) { 2648 if (op == BC_CALLM) {
2650 dasm_put(Dst, 14047); 2649 dasm_put(Dst, 14050);
2651 } 2650 }
2652 dasm_put(Dst, 14052, LJ_TFUNC, Dt7(->pc)); 2651 dasm_put(Dst, 14055, LJ_TFUNC, Dt7(->pc));
2653 break; 2652 break;
2654 2653
2655 case BC_CALLMT: 2654 case BC_CALLMT:
2656 dasm_put(Dst, 14047); 2655 dasm_put(Dst, 14050);
2657 break; 2656 break;
2658 case BC_CALLT: 2657 case BC_CALLT:
2659 dasm_put(Dst, 14095, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc)); 2658 dasm_put(Dst, 14098, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc));
2660 dasm_put(Dst, 14213, FRAME_TYPE, Dt7(->pc), PC2PROTO(k), FRAME_VARG, FRAME_TYPEP, FRAME_VARG); 2659 dasm_put(Dst, 14216, FRAME_TYPE, Dt7(->pc), PC2PROTO(k), FRAME_VARG, FRAME_TYPEP, FRAME_VARG);
2661 break; 2660 break;
2662 2661
2663 case BC_ITERC: 2662 case BC_ITERC:
2664 dasm_put(Dst, 14287, LJ_TFUNC, 2+1, Dt7(->pc)); 2663 dasm_put(Dst, 14290, LJ_TFUNC, 2+1, Dt7(->pc));
2665 break; 2664 break;
2666 2665
2667 case BC_ITERN: 2666 case BC_ITERN:
2668#if LJ_HASJIT 2667#if LJ_HASJIT
2669#endif 2668#endif
2670 dasm_put(Dst, 14359, Dt6(->asize), Dt6(->array), LJ_TNIL); 2669 dasm_put(Dst, 14362, Dt6(->asize), Dt6(->array), LJ_TNIL);
2671 if (LJ_DUALNUM) { 2670 if (LJ_DUALNUM) {
2672 dasm_put(Dst, 11041, LJ_TISNUM); 2671 dasm_put(Dst, 11044, LJ_TISNUM);
2673 } else if (sse) { 2672 } else if (sse) {
2674 dasm_put(Dst, 11119); 2673 dasm_put(Dst, 11122);
2675 } else { 2674 } else {
2676 dasm_put(Dst, 14411); 2675 dasm_put(Dst, 14414);
2677 } 2676 }
2678 dasm_put(Dst, 14417); 2677 dasm_put(Dst, 14420);
2679 if (LJ_DUALNUM) { 2678 if (LJ_DUALNUM) {
2680 } else if (sse) { 2679 } else if (sse) {
2681 dasm_put(Dst, 11006); 2680 dasm_put(Dst, 11009);
2682 } else { 2681 } else {
2683 dasm_put(Dst, 11018); 2682 dasm_put(Dst, 11021);
2684 } 2683 }
2685 dasm_put(Dst, 14430, -BCBIAS_J*4); 2684 dasm_put(Dst, 14433, -BCBIAS_J*4);
2686 if (!LJ_DUALNUM && !sse) { 2685 if (!LJ_DUALNUM && !sse) {
2687 dasm_put(Dst, 14484); 2686 dasm_put(Dst, 14487);
2688 } 2687 }
2689 dasm_put(Dst, 14490, Dt6(->hmask), sizeof(Node), Dt6(->node), DtB(->val.it), LJ_TNIL, DtB(->key), DtB(->val)); 2688 dasm_put(Dst, 14493, Dt6(->hmask), sizeof(Node), Dt6(->node), DtB(->val.it), LJ_TNIL, DtB(->key), DtB(->val));
2690 break; 2689 break;
2691 2690
2692 case BC_ISNEXT: 2691 case BC_ISNEXT:
2693 dasm_put(Dst, 14569, LJ_TFUNC, LJ_TTAB, LJ_TNIL, Dt8(->ffid), FF_next_N, -BCBIAS_J*4, BC_JMP, -BCBIAS_J*4, BC_ITERC); 2692 dasm_put(Dst, 14572, LJ_TFUNC, LJ_TTAB, LJ_TNIL, Dt8(->ffid), FF_next_N, -BCBIAS_J*4, BC_JMP, -BCBIAS_J*4, BC_ITERC);
2694 break; 2693 break;
2695 2694
2696 case BC_VARG: 2695 case BC_VARG:
2697 dasm_put(Dst, 14670, (8+FRAME_VARG), LJ_TNIL, Dt1(->maxstack)); 2696 dasm_put(Dst, 14673, (8+FRAME_VARG), LJ_TNIL, Dt1(->maxstack));
2698 dasm_put(Dst, 14837, Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top)); 2697 dasm_put(Dst, 14840, Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top));
2699 break; 2698 break;
2700 2699
2701 /* -- Returns ----------------------------------------------------------- */ 2700 /* -- Returns ----------------------------------------------------------- */
2702 2701
2703 case BC_RETM: 2702 case BC_RETM:
2704 dasm_put(Dst, 14047); 2703 dasm_put(Dst, 14050);
2705 break; 2704 break;
2706 2705
2707 case BC_RET: case BC_RET0: case BC_RET1: 2706 case BC_RET: case BC_RET0: case BC_RET1:
2708 if (op != BC_RET0) { 2707 if (op != BC_RET0) {
2709 dasm_put(Dst, 14907); 2708 dasm_put(Dst, 14910);
2710 } 2709 }
2711 dasm_put(Dst, 14911, FRAME_TYPE); 2710 dasm_put(Dst, 14914, FRAME_TYPE);
2712 switch (op) { 2711 switch (op) {
2713 case BC_RET: 2712 case BC_RET:
2714 dasm_put(Dst, 14930); 2713 dasm_put(Dst, 14933);
2715 break; 2714 break;
2716 case BC_RET1: 2715 case BC_RET1:
2717 dasm_put(Dst, 14984); 2716 dasm_put(Dst, 14987);
2718 /* fallthrough */ 2717 /* fallthrough */
2719 case BC_RET0: 2718 case BC_RET0:
2720 dasm_put(Dst, 14994); 2719 dasm_put(Dst, 14997);
2721 default: 2720 default:
2722 break; 2721 break;
2723 } 2722 }
2724 dasm_put(Dst, 15005, Dt7(->pc), PC2PROTO(k)); 2723 dasm_put(Dst, 15008, Dt7(->pc), PC2PROTO(k));
2725 if (op == BC_RET) { 2724 if (op == BC_RET) {
2726 dasm_put(Dst, 15053, LJ_TNIL); 2725 dasm_put(Dst, 15056, LJ_TNIL);
2727 } else { 2726 } else {
2728 dasm_put(Dst, 15064, LJ_TNIL); 2727 dasm_put(Dst, 15067, LJ_TNIL);
2729 } 2728 }
2730 dasm_put(Dst, 15071, -FRAME_VARG, FRAME_TYPEP); 2729 dasm_put(Dst, 15074, -FRAME_VARG, FRAME_TYPEP);
2731 if (op != BC_RET0) { 2730 if (op != BC_RET0) {
2732 dasm_put(Dst, 15095); 2731 dasm_put(Dst, 15098);
2733 } 2732 }
2734 dasm_put(Dst, 4669); 2733 dasm_put(Dst, 4669);
2735 break; 2734 break;
@@ -2739,7 +2738,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2739 2738
2740 case BC_FORL: 2739 case BC_FORL:
2741#if LJ_HASJIT 2740#if LJ_HASJIT
2742 dasm_put(Dst, 15099, HOTCOUNT_PCMASK, GG_DISP2HOT); 2741 dasm_put(Dst, 15102, HOTCOUNT_PCMASK, GG_DISP2HOT);
2743#endif 2742#endif
2744 break; 2743 break;
2745 2744
@@ -2751,104 +2750,104 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2751 case BC_FORI: 2750 case BC_FORI:
2752 case BC_IFORL: 2751 case BC_IFORL:
2753 vk = (op == BC_IFORL || op == BC_JFORL); 2752 vk = (op == BC_IFORL || op == BC_JFORL);
2754 dasm_put(Dst, 15120); 2753 dasm_put(Dst, 15123);
2755 if (LJ_DUALNUM) { 2754 if (LJ_DUALNUM) {
2756 dasm_put(Dst, 15124, LJ_TISNUM); 2755 dasm_put(Dst, 15127, LJ_TISNUM);
2757 if (!vk) { 2756 if (!vk) {
2758 dasm_put(Dst, 15134, LJ_TISNUM, LJ_TISNUM); 2757 dasm_put(Dst, 15137, LJ_TISNUM, LJ_TISNUM);
2759 } else { 2758 } else {
2760 dasm_put(Dst, 15163); 2759 dasm_put(Dst, 15166);
2761 } 2760 }
2762 dasm_put(Dst, 15182, LJ_TISNUM); 2761 dasm_put(Dst, 15185, LJ_TISNUM);
2763 if (op == BC_FORI) { 2762 if (op == BC_FORI) {
2764 dasm_put(Dst, 15193, -BCBIAS_J*4); 2763 dasm_put(Dst, 15196, -BCBIAS_J*4);
2765 } else if (op == BC_JFORI) { 2764 } else if (op == BC_JFORI) {
2766 dasm_put(Dst, 15207, -BCBIAS_J*4, BC_JLOOP); 2765 dasm_put(Dst, 15210, -BCBIAS_J*4, BC_JLOOP);
2767 } else if (op == BC_IFORL) { 2766 } else if (op == BC_IFORL) {
2768 dasm_put(Dst, 15225, -BCBIAS_J*4); 2767 dasm_put(Dst, 15228, -BCBIAS_J*4);
2769 } else { 2768 } else {
2770 dasm_put(Dst, 15217, BC_JLOOP); 2769 dasm_put(Dst, 15220, BC_JLOOP);
2771 } 2770 }
2772 dasm_put(Dst, 15239); 2771 dasm_put(Dst, 15242);
2773 if (vk) { 2772 if (vk) {
2774 dasm_put(Dst, 15264); 2773 dasm_put(Dst, 15267);
2775 } 2774 }
2776 dasm_put(Dst, 15182, LJ_TISNUM); 2775 dasm_put(Dst, 15185, LJ_TISNUM);
2777 if (op == BC_FORI) { 2776 if (op == BC_FORI) {
2778 dasm_put(Dst, 15273); 2777 dasm_put(Dst, 15276);
2779 } else if (op == BC_JFORI) { 2778 } else if (op == BC_JFORI) {
2780 dasm_put(Dst, 15278, -BCBIAS_J*4, BC_JLOOP); 2779 dasm_put(Dst, 15281, -BCBIAS_J*4, BC_JLOOP);
2781 } else if (op == BC_IFORL) { 2780 } else if (op == BC_IFORL) {
2782 dasm_put(Dst, 15292); 2781 dasm_put(Dst, 15295);
2783 } else { 2782 } else {
2784 dasm_put(Dst, 15288, BC_JLOOP); 2783 dasm_put(Dst, 15291, BC_JLOOP);
2785 } 2784 }
2786 dasm_put(Dst, 15297); 2785 dasm_put(Dst, 15300);
2787 } else if (!vk) { 2786 } else if (!vk) {
2788 dasm_put(Dst, 15304, LJ_TISNUM); 2787 dasm_put(Dst, 15307, LJ_TISNUM);
2789 } 2788 }
2790 if (!vk) { 2789 if (!vk) {
2791 dasm_put(Dst, 15310, LJ_TISNUM); 2790 dasm_put(Dst, 15313, LJ_TISNUM);
2792 } 2791 }
2793 dasm_put(Dst, 15324); 2792 dasm_put(Dst, 15327);
2794 if (!vk) { 2793 if (!vk) {
2795 dasm_put(Dst, 15328, LJ_TISNUM); 2794 dasm_put(Dst, 15331, LJ_TISNUM);
2796 } 2795 }
2797 if (sse) { 2796 if (sse) {
2798 dasm_put(Dst, 15337); 2797 dasm_put(Dst, 15340);
2799 if (vk) { 2798 if (vk) {
2800 dasm_put(Dst, 15349); 2799 dasm_put(Dst, 15352);
2801 } else { 2800 } else {
2802 dasm_put(Dst, 15368); 2801 dasm_put(Dst, 15371);
2803 } 2802 }
2804 dasm_put(Dst, 15373); 2803 dasm_put(Dst, 15376);
2805 } else { 2804 } else {
2806 dasm_put(Dst, 15386); 2805 dasm_put(Dst, 15389);
2807 if (vk) { 2806 if (vk) {
2808 dasm_put(Dst, 15392); 2807 dasm_put(Dst, 15395);
2809 } else { 2808 } else {
2810 dasm_put(Dst, 15408); 2809 dasm_put(Dst, 15411);
2811 } 2810 }
2812 dasm_put(Dst, 15416); 2811 dasm_put(Dst, 15419);
2813 if (cmov) { 2812 if (cmov) {
2814 dasm_put(Dst, 10087); 2813 dasm_put(Dst, 10087);
2815 } else { 2814 } else {
2816 dasm_put(Dst, 10093); 2815 dasm_put(Dst, 10093);
2817 } 2816 }
2818 if (!cmov) { 2817 if (!cmov) {
2819 dasm_put(Dst, 15421); 2818 dasm_put(Dst, 15424);
2820 } 2819 }
2821 } 2820 }
2822 if (op == BC_FORI) { 2821 if (op == BC_FORI) {
2823 if (LJ_DUALNUM) { 2822 if (LJ_DUALNUM) {
2824 dasm_put(Dst, 15427); 2823 dasm_put(Dst, 15430);
2825 } else { 2824 } else {
2826 dasm_put(Dst, 15432, -BCBIAS_J*4); 2825 dasm_put(Dst, 15435, -BCBIAS_J*4);
2827 } 2826 }
2828 } else if (op == BC_JFORI) { 2827 } else if (op == BC_JFORI) {
2829 dasm_put(Dst, 15442, -BCBIAS_J*4, BC_JLOOP); 2828 dasm_put(Dst, 15445, -BCBIAS_J*4, BC_JLOOP);
2830 } else if (op == BC_IFORL) { 2829 } else if (op == BC_IFORL) {
2831 if (LJ_DUALNUM) { 2830 if (LJ_DUALNUM) {
2832 dasm_put(Dst, 15456); 2831 dasm_put(Dst, 15459);
2833 } else { 2832 } else {
2834 dasm_put(Dst, 15461, -BCBIAS_J*4); 2833 dasm_put(Dst, 15464, -BCBIAS_J*4);
2835 } 2834 }
2836 } else { 2835 } else {
2837 dasm_put(Dst, 15452, BC_JLOOP); 2836 dasm_put(Dst, 15455, BC_JLOOP);
2838 } 2837 }
2839 if (LJ_DUALNUM) { 2838 if (LJ_DUALNUM) {
2840 dasm_put(Dst, 10016); 2839 dasm_put(Dst, 10016);
2841 } else { 2840 } else {
2842 dasm_put(Dst, 10787); 2841 dasm_put(Dst, 10790);
2843 } 2842 }
2844 if (sse) { 2843 if (sse) {
2845 dasm_put(Dst, 15471); 2844 dasm_put(Dst, 15474);
2846 } 2845 }
2847 break; 2846 break;
2848 2847
2849 case BC_ITERL: 2848 case BC_ITERL:
2850#if LJ_HASJIT 2849#if LJ_HASJIT
2851 dasm_put(Dst, 15099, HOTCOUNT_PCMASK, GG_DISP2HOT); 2850 dasm_put(Dst, 15102, HOTCOUNT_PCMASK, GG_DISP2HOT);
2852#endif 2851#endif
2853 break; 2852 break;
2854 2853
@@ -2857,18 +2856,18 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2857 break; 2856 break;
2858#endif 2857#endif
2859 case BC_IITERL: 2858 case BC_IITERL:
2860 dasm_put(Dst, 15482, LJ_TNIL); 2859 dasm_put(Dst, 15485, LJ_TNIL);
2861 if (op == BC_JITERL) { 2860 if (op == BC_JITERL) {
2862 dasm_put(Dst, 15497, BC_JLOOP); 2861 dasm_put(Dst, 15500, BC_JLOOP);
2863 } else { 2862 } else {
2864 dasm_put(Dst, 15511, -BCBIAS_J*4); 2863 dasm_put(Dst, 15514, -BCBIAS_J*4);
2865 } 2864 }
2866 dasm_put(Dst, 10130); 2865 dasm_put(Dst, 10130);
2867 break; 2866 break;
2868 2867
2869 case BC_LOOP: 2868 case BC_LOOP:
2870#if LJ_HASJIT 2869#if LJ_HASJIT
2871 dasm_put(Dst, 15099, HOTCOUNT_PCMASK, GG_DISP2HOT); 2870 dasm_put(Dst, 15102, HOTCOUNT_PCMASK, GG_DISP2HOT);
2872#endif 2871#endif
2873 break; 2872 break;
2874 2873
@@ -2878,12 +2877,12 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2878 2877
2879 case BC_JLOOP: 2878 case BC_JLOOP:
2880#if LJ_HASJIT 2879#if LJ_HASJIT
2881 dasm_put(Dst, 15527, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L)); 2880 dasm_put(Dst, 15530, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L));
2882#endif 2881#endif
2883 break; 2882 break;
2884 2883
2885 case BC_JMP: 2884 case BC_JMP:
2886 dasm_put(Dst, 15568, -BCBIAS_J*4); 2885 dasm_put(Dst, 15571, -BCBIAS_J*4);
2887 break; 2886 break;
2888 2887
2889 /* -- Function headers -------------------------------------------------- */ 2888 /* -- Function headers -------------------------------------------------- */
@@ -2897,7 +2896,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2897 2896
2898 case BC_FUNCF: 2897 case BC_FUNCF:
2899#if LJ_HASJIT 2898#if LJ_HASJIT
2900 dasm_put(Dst, 15594, HOTCOUNT_PCMASK, GG_DISP2HOT); 2899 dasm_put(Dst, 15597, HOTCOUNT_PCMASK, GG_DISP2HOT);
2901#endif 2900#endif
2902 case BC_FUNCV: /* NYI: compiled vararg functions. */ 2901 case BC_FUNCV: /* NYI: compiled vararg functions. */
2903 break; 2902 break;
@@ -2907,13 +2906,13 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2907 break; 2906 break;
2908#endif 2907#endif
2909 case BC_IFUNCF: 2908 case BC_IFUNCF:
2910 dasm_put(Dst, 15615, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams)); 2909 dasm_put(Dst, 15618, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams));
2911 if (op == BC_JFUNCF) { 2910 if (op == BC_JFUNCF) {
2912 dasm_put(Dst, 15646, BC_JLOOP); 2911 dasm_put(Dst, 15649, BC_JLOOP);
2913 } else { 2912 } else {
2914 dasm_put(Dst, 10132); 2913 dasm_put(Dst, 10132);
2915 } 2914 }
2916 dasm_put(Dst, 15655, LJ_TNIL); 2915 dasm_put(Dst, 15658, LJ_TNIL);
2917 break; 2916 break;
2918 2917
2919 case BC_JFUNCV: 2918 case BC_JFUNCV:
@@ -2924,30 +2923,30 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2924 break; /* NYI: compiled vararg functions. */ 2923 break; /* NYI: compiled vararg functions. */
2925 2924
2926 case BC_IFUNCV: 2925 case BC_IFUNCV:
2927 dasm_put(Dst, 15677, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL); 2926 dasm_put(Dst, 15680, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL);
2928 if (op == BC_JFUNCV) { 2927 if (op == BC_JFUNCV) {
2929 dasm_put(Dst, 15646, BC_JLOOP); 2928 dasm_put(Dst, 15649, BC_JLOOP);
2930 } else { 2929 } else {
2931 dasm_put(Dst, 15774, -4+PC2PROTO(k)); 2930 dasm_put(Dst, 15777, -4+PC2PROTO(k));
2932 } 2931 }
2933 dasm_put(Dst, 15799, LJ_TNIL); 2932 dasm_put(Dst, 15802, LJ_TNIL);
2934 break; 2933 break;
2935 2934
2936 case BC_FUNCC: 2935 case BC_FUNCC:
2937 case BC_FUNCCW: 2936 case BC_FUNCCW:
2938 dasm_put(Dst, 15821, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top)); 2937 dasm_put(Dst, 15824, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top));
2939 if (op == BC_FUNCC) { 2938 if (op == BC_FUNCC) {
2940 dasm_put(Dst, 2341); 2939 dasm_put(Dst, 2341);
2941 } else { 2940 } else {
2942 dasm_put(Dst, 15851); 2941 dasm_put(Dst, 15854);
2943 } 2942 }
2944 dasm_put(Dst, 15859, DISPATCH_GL(vmstate), ~LJ_VMST_C); 2943 dasm_put(Dst, 15862, DISPATCH_GL(vmstate), ~LJ_VMST_C);
2945 if (op == BC_FUNCC) { 2944 if (op == BC_FUNCC) {
2946 dasm_put(Dst, 15869); 2945 dasm_put(Dst, 15872);
2947 } else { 2946 } else {
2948 dasm_put(Dst, 15874, DISPATCH_GL(wrapf)); 2947 dasm_put(Dst, 15877, DISPATCH_GL(wrapf));
2949 } 2948 }
2950 dasm_put(Dst, 15880, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top)); 2949 dasm_put(Dst, 15883, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top));
2951 break; 2950 break;
2952 2951
2953 /* ---------------------------------------------------------------------- */ 2952 /* ---------------------------------------------------------------------- */
@@ -2975,7 +2974,7 @@ static int build_backend(BuildCtx *ctx)
2975 2974
2976 build_subroutines(ctx, cmov, sse); 2975 build_subroutines(ctx, cmov, sse);
2977 2976
2978 dasm_put(Dst, 15906); 2977 dasm_put(Dst, 15909);
2979 for (op = 0; op < BC__MAX; op++) 2978 for (op = 0; op < BC__MAX; op++)
2980 build_ins(ctx, (BCOp)op, op, cmov, sse); 2979 build_ins(ctx, (BCOp)op, op, cmov, sse);
2981 2980
diff --git a/src/buildvm_x64win.h b/src/buildvm_x64win.h
index e4de09ee..2e51c32b 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[15785] = { 15static const unsigned char build_actionlist[15787] = {
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,
@@ -528,46 +528,46 @@ static const unsigned char build_actionlist[15785] = {
528 182,232,131,198,4,193,232,16,252,255,36,252,235,248,7,15,135,244,249,129, 528 182,232,131,198,4,193,232,16,252,255,36,252,235,248,7,15,135,244,249,129,
529 124,253,199,4,239,15,130,244,247,255,252,242,15,42,4,199,255,219,4,199,255, 529 124,253,199,4,239,15,130,244,247,255,252,242,15,42,4,199,255,219,4,199,255,
530 252,233,244,248,248,8,255,252,242,15,42,4,202,102,15,46,4,199,255,219,4,202, 530 252,233,244,248,248,8,255,252,242,15,42,4,202,102,15,46,4,199,255,219,4,202,
531 221,4,194,255,129,252,253,239,15,131,244,249,255,248,1,252,242,15,16,4,199, 531 221,4,199,255,129,252,253,239,15,131,244,249,255,248,1,252,242,15,16,4,199,
532 248,2,102,15,46,4,202,248,4,255,248,1,221,4,199,248,2,221,4,202,255,72,252, 532 248,2,102,15,46,4,202,248,4,255,248,1,221,4,199,248,2,221,4,202,248,4,255,
533 247,208,139,108,202,4,131,198,4,57,197,255,15,133,244,249,15,183,70,252,254, 533 72,252,247,208,139,108,202,4,131,198,4,57,197,255,15,133,244,249,15,183,70,
534 141,180,253,134,233,248,2,139,6,15,182,204,15,182,232,131,198,4,193,232,16, 534 252,254,141,180,253,134,233,248,2,139,6,15,182,204,15,182,232,131,198,4,193,
535 252,255,36,252,235,248,3,129,252,253,239,15,133,244,2,252,233,244,46,255, 535 232,16,252,255,36,252,235,248,3,129,252,253,239,15,133,244,2,252,233,244,
536 15,132,244,248,129,252,253,239,15,132,244,46,15,183,70,252,254,141,180,253, 536 46,255,15,132,244,248,129,252,253,239,15,132,244,46,15,183,70,252,254,141,
537 134,233,248,2,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36, 537 180,253,134,233,248,2,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,
538 252,235,255,139,108,194,4,131,198,4,129,252,253,239,255,137,108,202,4,139, 538 255,36,252,235,255,139,108,194,4,131,198,4,129,252,253,239,255,137,108,202,
539 44,194,137,44,202,255,72,139,44,194,72,137,44,202,139,6,15,182,204,15,182, 539 4,139,44,194,137,44,202,255,72,139,44,194,72,137,44,202,139,6,15,182,204,
540 232,131,198,4,193,232,16,252,255,36,252,235,255,49,252,237,129,124,253,194, 540 15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,49,252,237,129,124,
541 4,239,129,213,239,137,108,202,4,139,6,15,182,204,15,182,232,131,198,4,193, 541 253,194,4,239,129,213,239,137,108,202,4,139,6,15,182,204,15,182,232,131,198,
542 232,16,252,255,36,252,235,255,129,124,253,194,4,239,15,133,244,251,139,44, 542 4,193,232,16,252,255,36,252,235,255,129,124,253,194,4,239,15,133,244,251,
543 194,252,247,221,15,128,244,250,199,68,202,4,237,137,44,202,248,9,139,6,15, 543 139,44,194,252,247,221,15,128,244,250,199,68,202,4,237,137,44,202,248,9,139,
544 182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,4,199,68,202, 544 6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,4,199,
545 4,0,0,224,65,199,4,202,0,0,0,0,252,233,244,9,248,5,15,135,244,51,255,129, 545 68,202,4,0,0,224,65,199,4,202,0,0,0,0,252,233,244,9,248,5,15,135,244,51,255,
546 124,253,194,4,239,15,131,244,51,255,252,242,15,16,4,194,72,184,237,237,102, 546 129,124,253,194,4,239,15,131,244,51,255,252,242,15,16,4,194,72,184,237,237,
547 72,15,110,200,15,87,193,252,242,15,17,4,202,255,221,4,194,217,224,221,28, 547 102,72,15,110,200,15,87,193,252,242,15,17,4,202,255,221,4,194,217,224,221,
548 202,255,129,124,253,194,4,239,15,133,244,248,139,4,194,255,139,128,233,248, 548 28,202,255,129,124,253,194,4,239,15,133,244,248,139,4,194,255,139,128,233,
549 1,199,68,202,4,237,137,4,202,255,15,87,192,252,242,15,42,128,233,248,1,252, 549 248,1,199,68,202,4,237,137,4,202,255,15,87,192,252,242,15,42,128,233,248,
550 242,15,17,4,202,255,219,128,233,248,1,221,28,202,255,139,6,15,182,204,15, 550 1,252,242,15,17,4,202,255,219,128,233,248,1,221,28,202,255,139,6,15,182,204,
551 182,232,131,198,4,193,232,16,252,255,36,252,235,248,2,129,124,253,194,4,239, 551 15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,2,129,124,253,194,
552 15,133,244,54,139,12,194,137,213,232,251,1,20,255,252,242,15,42,192,255,137, 552 4,239,15,133,244,54,139,12,194,137,213,232,251,1,20,255,252,242,15,42,192,
553 252,234,15,182,78,252,253,252,233,244,1,255,15,182,252,236,15,182,192,255, 553 255,137,252,234,15,182,78,252,253,252,233,244,1,255,15,182,252,236,15,182,
554 129,124,253,252,234,4,239,15,133,244,48,129,124,253,199,4,239,15,133,244, 554 192,255,129,124,253,252,234,4,239,15,133,244,48,129,124,253,199,4,239,15,
555 48,139,44,252,234,3,44,199,15,128,244,47,255,129,124,253,252,234,4,239,15, 555 133,244,48,139,44,252,234,3,44,199,15,128,244,47,255,129,124,253,252,234,
556 133,244,50,129,124,253,199,4,239,15,133,244,50,139,4,199,3,4,252,234,15,128, 556 4,239,15,133,244,50,129,124,253,199,4,239,15,133,244,50,139,4,199,3,4,252,
557 244,49,255,129,124,253,252,234,4,239,15,133,244,53,129,124,253,194,4,239, 557 234,15,128,244,49,255,129,124,253,252,234,4,239,15,133,244,53,129,124,253,
558 15,133,244,53,139,44,252,234,3,44,194,15,128,244,52,255,199,68,202,4,237, 558 194,4,239,15,133,244,53,139,44,252,234,3,44,194,15,128,244,52,255,199,68,
559 255,129,124,253,252,234,4,239,15,131,244,48,255,129,124,253,199,4,239,15, 559 202,4,237,255,129,124,253,252,234,4,239,15,131,244,48,255,129,124,253,199,
560 131,244,48,255,252,242,15,16,4,252,234,252,242,15,88,4,199,255,221,4,252, 560 4,239,15,131,244,48,255,252,242,15,16,4,252,234,252,242,15,88,4,199,255,221,
561 234,220,4,199,255,129,124,253,252,234,4,239,15,131,244,50,255,129,124,253, 561 4,252,234,220,4,199,255,129,124,253,252,234,4,239,15,131,244,50,255,129,124,
562 199,4,239,15,131,244,50,255,252,242,15,16,4,199,252,242,15,88,4,252,234,255, 562 253,199,4,239,15,131,244,50,255,252,242,15,16,4,199,252,242,15,88,4,252,234,
563 221,4,199,220,4,252,234,255,129,124,253,252,234,4,239,15,131,244,53,129,124, 563 255,221,4,199,220,4,252,234,255,129,124,253,252,234,4,239,15,131,244,53,129,
564 253,194,4,239,15,131,244,53,255,252,242,15,16,4,252,234,252,242,15,88,4,194, 564 124,253,194,4,239,15,131,244,53,255,252,242,15,16,4,252,234,252,242,15,88,
565 255,221,4,252,234,220,4,194,255,129,124,253,252,234,4,239,15,133,244,48,129, 565 4,194,255,221,4,252,234,220,4,194,255,129,124,253,252,234,4,239,15,133,244,
566 124,253,199,4,239,15,133,244,48,139,44,252,234,43,44,199,15,128,244,47,255, 566 48,129,124,253,199,4,239,15,133,244,48,139,44,252,234,43,44,199,15,128,244,
567 129,124,253,252,234,4,239,15,133,244,50,129,124,253,199,4,239,15,133,244, 567 47,255,129,124,253,252,234,4,239,15,133,244,50,129,124,253,199,4,239,15,133,
568 50,139,4,199,43,4,252,234,15,128,244,49,255,129,124,253,252,234,4,239,15, 568 244,50,139,4,199,43,4,252,234,15,128,244,49,255,129,124,253,252,234,4,239,
569 133,244,53,129,124,253,194,4,239,15,133,244,53,139,44,252,234,43,44,194,15, 569 15,133,244,53,129,124,253,194,4,239,15,133,244,53,139,44,252,234,43,44,194,
570 128,244,52,255,252,242,15,16,4,252,234,252,242,15,92,4,199,255,221,4,252, 570 15,128,244,52,255,252,242,15,16,4,252,234,252,242,15,92,4,199,255,221,4,252,
571 234,220,36,199,255,252,242,15,16,4,199,252,242,15,92,4,252,234,255,221,4, 571 234,220,36,199,255,252,242,15,16,4,199,252,242,15,92,4,252,234,255,221,4,
572 199,220,36,252,234,255,252,242,15,16,4,252,234,252,242,15,92,4,194,255,221, 572 199,220,36,252,234,255,252,242,15,16,4,252,234,252,242,15,92,4,194,255,221,
573 4,252,234,220,36,194,255,129,124,253,252,234,4,239,15,133,244,48,129,124, 573 4,252,234,220,36,194,255,129,124,253,252,234,4,239,15,133,244,48,129,124,
@@ -2055,31 +2055,30 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2055 } else { 2055 } else {
2056 dasm_put(Dst, 10063); 2056 dasm_put(Dst, 10063);
2057 } 2057 }
2058 dasm_put(Dst, 4586);
2059 } 2058 }
2060 goto iseqne_fp; 2059 goto iseqne_fp;
2061 case BC_ISEQP: case BC_ISNEP: 2060 case BC_ISEQP: case BC_ISNEP:
2062 vk = op == BC_ISEQP; 2061 vk = op == BC_ISEQP;
2063 dasm_put(Dst, 10655); 2062 dasm_put(Dst, 10657);
2064 if (!LJ_HASFFI) goto iseqne_test; 2063 if (!LJ_HASFFI) goto iseqne_test;
2065 if (vk) { 2064 if (vk) {
2066 dasm_put(Dst, 10669, -BCBIAS_J*4, LJ_TCDATA); 2065 dasm_put(Dst, 10671, -BCBIAS_J*4, LJ_TCDATA);
2067 } else { 2066 } else {
2068 dasm_put(Dst, 10719, LJ_TCDATA, -BCBIAS_J*4); 2067 dasm_put(Dst, 10721, LJ_TCDATA, -BCBIAS_J*4);
2069 } 2068 }
2070 break; 2069 break;
2071 2070
2072 /* -- Unary test and copy ops ------------------------------------------- */ 2071 /* -- Unary test and copy ops ------------------------------------------- */
2073 2072
2074 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF: 2073 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF:
2075 dasm_put(Dst, 10763, LJ_TISTRUECOND); 2074 dasm_put(Dst, 10765, LJ_TISTRUECOND);
2076 if (op == BC_IST || op == BC_ISTC) { 2075 if (op == BC_IST || op == BC_ISTC) {
2077 dasm_put(Dst, 10085); 2076 dasm_put(Dst, 10085);
2078 } else { 2077 } else {
2079 dasm_put(Dst, 10080); 2078 dasm_put(Dst, 10080);
2080 } 2079 }
2081 if (op == BC_ISTC || op == BC_ISFC) { 2080 if (op == BC_ISTC || op == BC_ISFC) {
2082 dasm_put(Dst, 10775); 2081 dasm_put(Dst, 10777);
2083 } 2082 }
2084 dasm_put(Dst, 10090, -BCBIAS_J*4); 2083 dasm_put(Dst, 10090, -BCBIAS_J*4);
2085 break; 2084 break;
@@ -2087,21 +2086,21 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2087 /* -- Unary ops --------------------------------------------------------- */ 2086 /* -- Unary ops --------------------------------------------------------- */
2088 2087
2089 case BC_MOV: 2088 case BC_MOV:
2090 dasm_put(Dst, 10786); 2089 dasm_put(Dst, 10788);
2091 break; 2090 break;
2092 case BC_NOT: 2091 case BC_NOT:
2093 dasm_put(Dst, 10814, LJ_TISTRUECOND, LJ_TTRUE); 2092 dasm_put(Dst, 10816, LJ_TISTRUECOND, LJ_TTRUE);
2094 break; 2093 break;
2095 case BC_UNM: 2094 case BC_UNM:
2096 if (LJ_DUALNUM) { 2095 if (LJ_DUALNUM) {
2097 dasm_put(Dst, 10850, LJ_TISNUM, LJ_TISNUM); 2096 dasm_put(Dst, 10852, LJ_TISNUM, LJ_TISNUM);
2098 } else { 2097 } else {
2099 dasm_put(Dst, 10927, LJ_TISNUM); 2098 dasm_put(Dst, 10929, LJ_TISNUM);
2100 } 2099 }
2101 if (sse) { 2100 if (sse) {
2102 dasm_put(Dst, 10938, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32)); 2101 dasm_put(Dst, 10940, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32));
2103 } else { 2102 } else {
2104 dasm_put(Dst, 10963); 2103 dasm_put(Dst, 10965);
2105 } 2104 }
2106 if (LJ_DUALNUM) { 2105 if (LJ_DUALNUM) {
2107 dasm_put(Dst, 10361); 2106 dasm_put(Dst, 10361);
@@ -2110,21 +2109,21 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2110 } 2109 }
2111 break; 2110 break;
2112 case BC_LEN: 2111 case BC_LEN:
2113 dasm_put(Dst, 10972, LJ_TSTR); 2112 dasm_put(Dst, 10974, LJ_TSTR);
2114 if (LJ_DUALNUM) { 2113 if (LJ_DUALNUM) {
2115 dasm_put(Dst, 10986, Dt5(->len), LJ_TISNUM); 2114 dasm_put(Dst, 10988, Dt5(->len), LJ_TISNUM);
2116 } else if (sse) { 2115 } else if (sse) {
2117 dasm_put(Dst, 11000, Dt5(->len)); 2116 dasm_put(Dst, 11002, Dt5(->len));
2118 } else { 2117 } else {
2119 dasm_put(Dst, 11018, Dt5(->len)); 2118 dasm_put(Dst, 11020, Dt5(->len));
2120 } 2119 }
2121 dasm_put(Dst, 11027, LJ_TTAB); 2120 dasm_put(Dst, 11029, LJ_TTAB);
2122 if (LJ_DUALNUM) { 2121 if (LJ_DUALNUM) {
2123 } else if (sse) { 2122 } else if (sse) {
2124 dasm_put(Dst, 11068); 2123 dasm_put(Dst, 11070);
2125 } else { 2124 } else {
2126 } 2125 }
2127 dasm_put(Dst, 11074); 2126 dasm_put(Dst, 11076);
2128 break; 2127 break;
2129 2128
2130 /* -- Binary ops -------------------------------------------------------- */ 2129 /* -- Binary ops -------------------------------------------------------- */
@@ -2132,603 +2131,603 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2132 2131
2133 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV: 2132 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV:
2134 if (LJ_DUALNUM) { 2133 if (LJ_DUALNUM) {
2135 dasm_put(Dst, 11087); 2134 dasm_put(Dst, 11089);
2136 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2135 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2137 switch (vk) { 2136 switch (vk) {
2138 case 0: 2137 case 0:
2139 dasm_put(Dst, 11095, LJ_TISNUM, LJ_TISNUM); 2138 dasm_put(Dst, 11097, LJ_TISNUM, LJ_TISNUM);
2140 break; 2139 break;
2141 case 1: 2140 case 1:
2142 dasm_put(Dst, 11128, LJ_TISNUM, LJ_TISNUM); 2141 dasm_put(Dst, 11130, LJ_TISNUM, LJ_TISNUM);
2143 break; 2142 break;
2144 default: 2143 default:
2145 dasm_put(Dst, 11161, LJ_TISNUM, LJ_TISNUM); 2144 dasm_put(Dst, 11163, LJ_TISNUM, LJ_TISNUM);
2146 break; 2145 break;
2147 } 2146 }
2148 dasm_put(Dst, 11194, LJ_TISNUM); 2147 dasm_put(Dst, 11196, LJ_TISNUM);
2149 if (vk == 1) { 2148 if (vk == 1) {
2150 dasm_put(Dst, 10996); 2149 dasm_put(Dst, 10998);
2151 } else { 2150 } else {
2152 dasm_put(Dst, 10782); 2151 dasm_put(Dst, 10784);
2153 } 2152 }
2154 dasm_put(Dst, 10102); 2153 dasm_put(Dst, 10102);
2155 } else { 2154 } else {
2156 dasm_put(Dst, 11087); 2155 dasm_put(Dst, 11089);
2157 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2156 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2158 switch (vk) { 2157 switch (vk) {
2159 case 0: 2158 case 0:
2160 dasm_put(Dst, 11200, LJ_TISNUM); 2159 dasm_put(Dst, 11202, LJ_TISNUM);
2161 if (LJ_DUALNUM) { 2160 if (LJ_DUALNUM) {
2162 dasm_put(Dst, 11212, LJ_TISNUM); 2161 dasm_put(Dst, 11214, LJ_TISNUM);
2163 } 2162 }
2164 if (sse) { 2163 if (sse) {
2165 dasm_put(Dst, 11223); 2164 dasm_put(Dst, 11225);
2166 } else { 2165 } else {
2167 dasm_put(Dst, 11237); 2166 dasm_put(Dst, 11239);
2168 } 2167 }
2169 break; 2168 break;
2170 case 1: 2169 case 1:
2171 dasm_put(Dst, 11245, LJ_TISNUM); 2170 dasm_put(Dst, 11247, LJ_TISNUM);
2172 if (LJ_DUALNUM) { 2171 if (LJ_DUALNUM) {
2173 dasm_put(Dst, 11257, LJ_TISNUM); 2172 dasm_put(Dst, 11259, LJ_TISNUM);
2174 } 2173 }
2175 if (sse) { 2174 if (sse) {
2176 dasm_put(Dst, 11268); 2175 dasm_put(Dst, 11270);
2177 } else { 2176 } else {
2178 dasm_put(Dst, 11282); 2177 dasm_put(Dst, 11284);
2179 } 2178 }
2180 break; 2179 break;
2181 default: 2180 default:
2182 dasm_put(Dst, 11290, LJ_TISNUM, LJ_TISNUM); 2181 dasm_put(Dst, 11292, LJ_TISNUM, LJ_TISNUM);
2183 if (sse) { 2182 if (sse) {
2184 dasm_put(Dst, 11312); 2183 dasm_put(Dst, 11314);
2185 } else { 2184 } else {
2186 dasm_put(Dst, 11326); 2185 dasm_put(Dst, 11328);
2187 } 2186 }
2188 break; 2187 break;
2189 } 2188 }
2190 if (sse) { 2189 if (sse) {
2191 dasm_put(Dst, 10956); 2190 dasm_put(Dst, 10958);
2192 } else { 2191 } else {
2193 dasm_put(Dst, 10968); 2192 dasm_put(Dst, 10970);
2194 } 2193 }
2195 dasm_put(Dst, 10102); 2194 dasm_put(Dst, 10102);
2196 } 2195 }
2197 break; 2196 break;
2198 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV: 2197 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV:
2199 if (LJ_DUALNUM) { 2198 if (LJ_DUALNUM) {
2200 dasm_put(Dst, 11087); 2199 dasm_put(Dst, 11089);
2201 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2200 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2202 switch (vk) { 2201 switch (vk) {
2203 case 0: 2202 case 0:
2204 dasm_put(Dst, 11334, LJ_TISNUM, LJ_TISNUM); 2203 dasm_put(Dst, 11336, LJ_TISNUM, LJ_TISNUM);
2205 break; 2204 break;
2206 case 1: 2205 case 1:
2207 dasm_put(Dst, 11367, LJ_TISNUM, LJ_TISNUM); 2206 dasm_put(Dst, 11369, LJ_TISNUM, LJ_TISNUM);
2208 break; 2207 break;
2209 default: 2208 default:
2210 dasm_put(Dst, 11400, LJ_TISNUM, LJ_TISNUM); 2209 dasm_put(Dst, 11402, LJ_TISNUM, LJ_TISNUM);
2211 break; 2210 break;
2212 } 2211 }
2213 dasm_put(Dst, 11194, LJ_TISNUM); 2212 dasm_put(Dst, 11196, LJ_TISNUM);
2214 if (vk == 1) { 2213 if (vk == 1) {
2215 dasm_put(Dst, 10996); 2214 dasm_put(Dst, 10998);
2216 } else { 2215 } else {
2217 dasm_put(Dst, 10782); 2216 dasm_put(Dst, 10784);
2218 } 2217 }
2219 dasm_put(Dst, 10102); 2218 dasm_put(Dst, 10102);
2220 } else { 2219 } else {
2221 dasm_put(Dst, 11087); 2220 dasm_put(Dst, 11089);
2222 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2221 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2223 switch (vk) { 2222 switch (vk) {
2224 case 0: 2223 case 0:
2225 dasm_put(Dst, 11200, LJ_TISNUM); 2224 dasm_put(Dst, 11202, LJ_TISNUM);
2226 if (LJ_DUALNUM) { 2225 if (LJ_DUALNUM) {
2227 dasm_put(Dst, 11212, LJ_TISNUM); 2226 dasm_put(Dst, 11214, LJ_TISNUM);
2228 } 2227 }
2229 if (sse) { 2228 if (sse) {
2230 dasm_put(Dst, 11433); 2229 dasm_put(Dst, 11435);
2231 } else { 2230 } else {
2232 dasm_put(Dst, 11447); 2231 dasm_put(Dst, 11449);
2233 } 2232 }
2234 break; 2233 break;
2235 case 1: 2234 case 1:
2236 dasm_put(Dst, 11245, LJ_TISNUM); 2235 dasm_put(Dst, 11247, LJ_TISNUM);
2237 if (LJ_DUALNUM) { 2236 if (LJ_DUALNUM) {
2238 dasm_put(Dst, 11257, LJ_TISNUM); 2237 dasm_put(Dst, 11259, LJ_TISNUM);
2239 } 2238 }
2240 if (sse) { 2239 if (sse) {
2241 dasm_put(Dst, 11455); 2240 dasm_put(Dst, 11457);
2242 } else { 2241 } else {
2243 dasm_put(Dst, 11469); 2242 dasm_put(Dst, 11471);
2244 } 2243 }
2245 break; 2244 break;
2246 default: 2245 default:
2247 dasm_put(Dst, 11290, LJ_TISNUM, LJ_TISNUM); 2246 dasm_put(Dst, 11292, LJ_TISNUM, LJ_TISNUM);
2248 if (sse) { 2247 if (sse) {
2249 dasm_put(Dst, 11477); 2248 dasm_put(Dst, 11479);
2250 } else { 2249 } else {
2251 dasm_put(Dst, 11491); 2250 dasm_put(Dst, 11493);
2252 } 2251 }
2253 break; 2252 break;
2254 } 2253 }
2255 if (sse) { 2254 if (sse) {
2256 dasm_put(Dst, 10956); 2255 dasm_put(Dst, 10958);
2257 } else { 2256 } else {
2258 dasm_put(Dst, 10968); 2257 dasm_put(Dst, 10970);
2259 } 2258 }
2260 dasm_put(Dst, 10102); 2259 dasm_put(Dst, 10102);
2261 } 2260 }
2262 break; 2261 break;
2263 case BC_MULVN: case BC_MULNV: case BC_MULVV: 2262 case BC_MULVN: case BC_MULNV: case BC_MULVV:
2264 if (LJ_DUALNUM) { 2263 if (LJ_DUALNUM) {
2265 dasm_put(Dst, 11087); 2264 dasm_put(Dst, 11089);
2266 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2265 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2267 switch (vk) { 2266 switch (vk) {
2268 case 0: 2267 case 0:
2269 dasm_put(Dst, 11499, LJ_TISNUM, LJ_TISNUM); 2268 dasm_put(Dst, 11501, LJ_TISNUM, LJ_TISNUM);
2270 break; 2269 break;
2271 case 1: 2270 case 1:
2272 dasm_put(Dst, 11533, LJ_TISNUM, LJ_TISNUM); 2271 dasm_put(Dst, 11535, LJ_TISNUM, LJ_TISNUM);
2273 break; 2272 break;
2274 default: 2273 default:
2275 dasm_put(Dst, 11567, LJ_TISNUM, LJ_TISNUM); 2274 dasm_put(Dst, 11569, LJ_TISNUM, LJ_TISNUM);
2276 break; 2275 break;
2277 } 2276 }
2278 dasm_put(Dst, 11194, LJ_TISNUM); 2277 dasm_put(Dst, 11196, LJ_TISNUM);
2279 if (vk == 1) { 2278 if (vk == 1) {
2280 dasm_put(Dst, 10996); 2279 dasm_put(Dst, 10998);
2281 } else { 2280 } else {
2282 dasm_put(Dst, 10782); 2281 dasm_put(Dst, 10784);
2283 } 2282 }
2284 dasm_put(Dst, 10102); 2283 dasm_put(Dst, 10102);
2285 } else { 2284 } else {
2286 dasm_put(Dst, 11087); 2285 dasm_put(Dst, 11089);
2287 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2286 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2288 switch (vk) { 2287 switch (vk) {
2289 case 0: 2288 case 0:
2290 dasm_put(Dst, 11200, LJ_TISNUM); 2289 dasm_put(Dst, 11202, LJ_TISNUM);
2291 if (LJ_DUALNUM) { 2290 if (LJ_DUALNUM) {
2292 dasm_put(Dst, 11212, LJ_TISNUM); 2291 dasm_put(Dst, 11214, LJ_TISNUM);
2293 } 2292 }
2294 if (sse) { 2293 if (sse) {
2295 dasm_put(Dst, 11601); 2294 dasm_put(Dst, 11603);
2296 } else { 2295 } else {
2297 dasm_put(Dst, 11615); 2296 dasm_put(Dst, 11617);
2298 } 2297 }
2299 break; 2298 break;
2300 case 1: 2299 case 1:
2301 dasm_put(Dst, 11245, LJ_TISNUM); 2300 dasm_put(Dst, 11247, LJ_TISNUM);
2302 if (LJ_DUALNUM) { 2301 if (LJ_DUALNUM) {
2303 dasm_put(Dst, 11257, LJ_TISNUM); 2302 dasm_put(Dst, 11259, LJ_TISNUM);
2304 } 2303 }
2305 if (sse) { 2304 if (sse) {
2306 dasm_put(Dst, 11623); 2305 dasm_put(Dst, 11625);
2307 } else { 2306 } else {
2308 dasm_put(Dst, 11637); 2307 dasm_put(Dst, 11639);
2309 } 2308 }
2310 break; 2309 break;
2311 default: 2310 default:
2312 dasm_put(Dst, 11290, LJ_TISNUM, LJ_TISNUM); 2311 dasm_put(Dst, 11292, LJ_TISNUM, LJ_TISNUM);
2313 if (sse) { 2312 if (sse) {
2314 dasm_put(Dst, 11645); 2313 dasm_put(Dst, 11647);
2315 } else { 2314 } else {
2316 dasm_put(Dst, 11659); 2315 dasm_put(Dst, 11661);
2317 } 2316 }
2318 break; 2317 break;
2319 } 2318 }
2320 if (sse) { 2319 if (sse) {
2321 dasm_put(Dst, 10956); 2320 dasm_put(Dst, 10958);
2322 } else { 2321 } else {
2323 dasm_put(Dst, 10968); 2322 dasm_put(Dst, 10970);
2324 } 2323 }
2325 dasm_put(Dst, 10102); 2324 dasm_put(Dst, 10102);
2326 } 2325 }
2327 break; 2326 break;
2328 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV: 2327 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV:
2329 dasm_put(Dst, 11087); 2328 dasm_put(Dst, 11089);
2330 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2329 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2331 switch (vk) { 2330 switch (vk) {
2332 case 0: 2331 case 0:
2333 dasm_put(Dst, 11200, LJ_TISNUM); 2332 dasm_put(Dst, 11202, LJ_TISNUM);
2334 if (LJ_DUALNUM) { 2333 if (LJ_DUALNUM) {
2335 dasm_put(Dst, 11212, LJ_TISNUM); 2334 dasm_put(Dst, 11214, LJ_TISNUM);
2336 } 2335 }
2337 if (sse) { 2336 if (sse) {
2338 dasm_put(Dst, 11667); 2337 dasm_put(Dst, 11669);
2339 } else { 2338 } else {
2340 dasm_put(Dst, 11681); 2339 dasm_put(Dst, 11683);
2341 } 2340 }
2342 break; 2341 break;
2343 case 1: 2342 case 1:
2344 dasm_put(Dst, 11245, LJ_TISNUM); 2343 dasm_put(Dst, 11247, LJ_TISNUM);
2345 if (LJ_DUALNUM) { 2344 if (LJ_DUALNUM) {
2346 dasm_put(Dst, 11257, LJ_TISNUM); 2345 dasm_put(Dst, 11259, LJ_TISNUM);
2347 } 2346 }
2348 if (sse) { 2347 if (sse) {
2349 dasm_put(Dst, 11689); 2348 dasm_put(Dst, 11691);
2350 } else { 2349 } else {
2351 dasm_put(Dst, 11703); 2350 dasm_put(Dst, 11705);
2352 } 2351 }
2353 break; 2352 break;
2354 default: 2353 default:
2355 dasm_put(Dst, 11290, LJ_TISNUM, LJ_TISNUM); 2354 dasm_put(Dst, 11292, LJ_TISNUM, LJ_TISNUM);
2356 if (sse) { 2355 if (sse) {
2357 dasm_put(Dst, 11711); 2356 dasm_put(Dst, 11713);
2358 } else { 2357 } else {
2359 dasm_put(Dst, 11725); 2358 dasm_put(Dst, 11727);
2360 } 2359 }
2361 break; 2360 break;
2362 } 2361 }
2363 if (sse) { 2362 if (sse) {
2364 dasm_put(Dst, 10956); 2363 dasm_put(Dst, 10958);
2365 } else { 2364 } else {
2366 dasm_put(Dst, 10968); 2365 dasm_put(Dst, 10970);
2367 } 2366 }
2368 dasm_put(Dst, 10102); 2367 dasm_put(Dst, 10102);
2369 break; 2368 break;
2370 case BC_MODVN: 2369 case BC_MODVN:
2371 dasm_put(Dst, 11087); 2370 dasm_put(Dst, 11089);
2372 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2371 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2373 switch (vk) { 2372 switch (vk) {
2374 case 0: 2373 case 0:
2375 dasm_put(Dst, 11200, LJ_TISNUM); 2374 dasm_put(Dst, 11202, LJ_TISNUM);
2376 if (LJ_DUALNUM) { 2375 if (LJ_DUALNUM) {
2377 dasm_put(Dst, 11212, LJ_TISNUM); 2376 dasm_put(Dst, 11214, LJ_TISNUM);
2378 } 2377 }
2379 if (sse) { 2378 if (sse) {
2380 dasm_put(Dst, 11733); 2379 dasm_put(Dst, 11735);
2381 } else { 2380 } else {
2382 dasm_put(Dst, 11747); 2381 dasm_put(Dst, 11749);
2383 } 2382 }
2384 break; 2383 break;
2385 case 1: 2384 case 1:
2386 dasm_put(Dst, 11245, LJ_TISNUM); 2385 dasm_put(Dst, 11247, LJ_TISNUM);
2387 if (LJ_DUALNUM) { 2386 if (LJ_DUALNUM) {
2388 dasm_put(Dst, 11257, LJ_TISNUM); 2387 dasm_put(Dst, 11259, LJ_TISNUM);
2389 } 2388 }
2390 if (sse) { 2389 if (sse) {
2391 dasm_put(Dst, 11755); 2390 dasm_put(Dst, 11757);
2392 } else { 2391 } else {
2393 dasm_put(Dst, 11769); 2392 dasm_put(Dst, 11771);
2394 } 2393 }
2395 break; 2394 break;
2396 default: 2395 default:
2397 dasm_put(Dst, 11290, LJ_TISNUM, LJ_TISNUM); 2396 dasm_put(Dst, 11292, LJ_TISNUM, LJ_TISNUM);
2398 if (sse) { 2397 if (sse) {
2399 dasm_put(Dst, 11777); 2398 dasm_put(Dst, 11779);
2400 } else { 2399 } else {
2401 dasm_put(Dst, 11791); 2400 dasm_put(Dst, 11793);
2402 } 2401 }
2403 break; 2402 break;
2404 } 2403 }
2405 dasm_put(Dst, 11799); 2404 dasm_put(Dst, 11801);
2406 if (sse) { 2405 if (sse) {
2407 dasm_put(Dst, 10956); 2406 dasm_put(Dst, 10958);
2408 } else { 2407 } else {
2409 dasm_put(Dst, 10968); 2408 dasm_put(Dst, 10970);
2410 } 2409 }
2411 dasm_put(Dst, 10102); 2410 dasm_put(Dst, 10102);
2412 break; 2411 break;
2413 case BC_MODNV: case BC_MODVV: 2412 case BC_MODNV: case BC_MODVV:
2414 dasm_put(Dst, 11087); 2413 dasm_put(Dst, 11089);
2415 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2414 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2416 switch (vk) { 2415 switch (vk) {
2417 case 0: 2416 case 0:
2418 dasm_put(Dst, 11200, LJ_TISNUM); 2417 dasm_put(Dst, 11202, LJ_TISNUM);
2419 if (LJ_DUALNUM) { 2418 if (LJ_DUALNUM) {
2420 dasm_put(Dst, 11212, LJ_TISNUM); 2419 dasm_put(Dst, 11214, LJ_TISNUM);
2421 } 2420 }
2422 if (sse) { 2421 if (sse) {
2423 dasm_put(Dst, 11733); 2422 dasm_put(Dst, 11735);
2424 } else { 2423 } else {
2425 dasm_put(Dst, 11747); 2424 dasm_put(Dst, 11749);
2426 } 2425 }
2427 break; 2426 break;
2428 case 1: 2427 case 1:
2429 dasm_put(Dst, 11245, LJ_TISNUM); 2428 dasm_put(Dst, 11247, LJ_TISNUM);
2430 if (LJ_DUALNUM) { 2429 if (LJ_DUALNUM) {
2431 dasm_put(Dst, 11257, LJ_TISNUM); 2430 dasm_put(Dst, 11259, LJ_TISNUM);
2432 } 2431 }
2433 if (sse) { 2432 if (sse) {
2434 dasm_put(Dst, 11755); 2433 dasm_put(Dst, 11757);
2435 } else { 2434 } else {
2436 dasm_put(Dst, 11769); 2435 dasm_put(Dst, 11771);
2437 } 2436 }
2438 break; 2437 break;
2439 default: 2438 default:
2440 dasm_put(Dst, 11290, LJ_TISNUM, LJ_TISNUM); 2439 dasm_put(Dst, 11292, LJ_TISNUM, LJ_TISNUM);
2441 if (sse) { 2440 if (sse) {
2442 dasm_put(Dst, 11777); 2441 dasm_put(Dst, 11779);
2443 } else { 2442 } else {
2444 dasm_put(Dst, 11791); 2443 dasm_put(Dst, 11793);
2445 } 2444 }
2446 break; 2445 break;
2447 } 2446 }
2448 dasm_put(Dst, 11805); 2447 dasm_put(Dst, 11807);
2449 break; 2448 break;
2450 case BC_POW: 2449 case BC_POW:
2451 dasm_put(Dst, 11087); 2450 dasm_put(Dst, 11089);
2452 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2451 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2453 switch (vk) { 2452 switch (vk) {
2454 case 0: 2453 case 0:
2455 dasm_put(Dst, 11200, LJ_TISNUM); 2454 dasm_put(Dst, 11202, LJ_TISNUM);
2456 if (LJ_DUALNUM) { 2455 if (LJ_DUALNUM) {
2457 dasm_put(Dst, 11212, LJ_TISNUM); 2456 dasm_put(Dst, 11214, LJ_TISNUM);
2458 } 2457 }
2459 if (sse) { 2458 if (sse) {
2460 dasm_put(Dst, 11733); 2459 dasm_put(Dst, 11735);
2461 } else { 2460 } else {
2462 dasm_put(Dst, 11747); 2461 dasm_put(Dst, 11749);
2463 } 2462 }
2464 break; 2463 break;
2465 case 1: 2464 case 1:
2466 dasm_put(Dst, 11245, LJ_TISNUM); 2465 dasm_put(Dst, 11247, LJ_TISNUM);
2467 if (LJ_DUALNUM) { 2466 if (LJ_DUALNUM) {
2468 dasm_put(Dst, 11257, LJ_TISNUM); 2467 dasm_put(Dst, 11259, LJ_TISNUM);
2469 } 2468 }
2470 if (sse) { 2469 if (sse) {
2471 dasm_put(Dst, 11755); 2470 dasm_put(Dst, 11757);
2472 } else { 2471 } else {
2473 dasm_put(Dst, 11769); 2472 dasm_put(Dst, 11771);
2474 } 2473 }
2475 break; 2474 break;
2476 default: 2475 default:
2477 dasm_put(Dst, 11290, LJ_TISNUM, LJ_TISNUM); 2476 dasm_put(Dst, 11292, LJ_TISNUM, LJ_TISNUM);
2478 if (sse) { 2477 if (sse) {
2479 dasm_put(Dst, 11777); 2478 dasm_put(Dst, 11779);
2480 } else { 2479 } else {
2481 dasm_put(Dst, 11791); 2480 dasm_put(Dst, 11793);
2482 } 2481 }
2483 break; 2482 break;
2484 } 2483 }
2485 dasm_put(Dst, 11810); 2484 dasm_put(Dst, 11812);
2486 if (sse) { 2485 if (sse) {
2487 dasm_put(Dst, 10956); 2486 dasm_put(Dst, 10958);
2488 } else { 2487 } else {
2489 dasm_put(Dst, 10968); 2488 dasm_put(Dst, 10970);
2490 } 2489 }
2491 dasm_put(Dst, 10102); 2490 dasm_put(Dst, 10102);
2492 break; 2491 break;
2493 2492
2494 case BC_CAT: 2493 case BC_CAT:
2495 dasm_put(Dst, 11814, Dt1(->base), Dt1(->base)); 2494 dasm_put(Dst, 11816, Dt1(->base), Dt1(->base));
2496 break; 2495 break;
2497 2496
2498 /* -- Constant ops ------------------------------------------------------ */ 2497 /* -- Constant ops ------------------------------------------------------ */
2499 2498
2500 case BC_KSTR: 2499 case BC_KSTR:
2501 dasm_put(Dst, 11897, LJ_TSTR); 2500 dasm_put(Dst, 11899, LJ_TSTR);
2502 break; 2501 break;
2503 case BC_KCDATA: 2502 case BC_KCDATA:
2504#if LJ_HASFFI 2503#if LJ_HASFFI
2505 dasm_put(Dst, 11897, LJ_TCDATA); 2504 dasm_put(Dst, 11899, LJ_TCDATA);
2506#endif 2505#endif
2507 break; 2506 break;
2508 case BC_KSHORT: 2507 case BC_KSHORT:
2509 if (LJ_DUALNUM) { 2508 if (LJ_DUALNUM) {
2510 dasm_put(Dst, 11932, LJ_TISNUM); 2509 dasm_put(Dst, 11934, LJ_TISNUM);
2511 } else if (sse) { 2510 } else if (sse) {
2512 dasm_put(Dst, 11944); 2511 dasm_put(Dst, 11946);
2513 } else { 2512 } else {
2514 dasm_put(Dst, 11959); 2513 dasm_put(Dst, 11961);
2515 } 2514 }
2516 dasm_put(Dst, 10102); 2515 dasm_put(Dst, 10102);
2517 break; 2516 break;
2518 case BC_KNUM: 2517 case BC_KNUM:
2519 if (sse) { 2518 if (sse) {
2520 dasm_put(Dst, 11967); 2519 dasm_put(Dst, 11969);
2521 } else { 2520 } else {
2522 dasm_put(Dst, 11980); 2521 dasm_put(Dst, 11982);
2523 } 2522 }
2524 dasm_put(Dst, 10102); 2523 dasm_put(Dst, 10102);
2525 break; 2524 break;
2526 case BC_KPRI: 2525 case BC_KPRI:
2527 dasm_put(Dst, 11987); 2526 dasm_put(Dst, 11989);
2528 break; 2527 break;
2529 case BC_KNIL: 2528 case BC_KNIL:
2530 dasm_put(Dst, 12015, LJ_TNIL); 2529 dasm_put(Dst, 12017, LJ_TNIL);
2531 break; 2530 break;
2532 2531
2533 /* -- Upvalue and function ops ------------------------------------------ */ 2532 /* -- Upvalue and function ops ------------------------------------------ */
2534 2533
2535 case BC_UGET: 2534 case BC_UGET:
2536 dasm_put(Dst, 12062, offsetof(GCfuncL, uvptr), DtA(->v)); 2535 dasm_put(Dst, 12064, offsetof(GCfuncL, uvptr), DtA(->v));
2537 break; 2536 break;
2538 case BC_USETV: 2537 case BC_USETV:
2539#define TV2MARKOFS \ 2538#define TV2MARKOFS \
2540 ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv)) 2539 ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv))
2541 dasm_put(Dst, 12102, 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); 2540 dasm_put(Dst, 12104, 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);
2542 dasm_put(Dst, 12193); 2541 dasm_put(Dst, 12195);
2543 break; 2542 break;
2544#undef TV2MARKOFS 2543#undef TV2MARKOFS
2545 case BC_USETS: 2544 case BC_USETS:
2546 dasm_put(Dst, 12205, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G); 2545 dasm_put(Dst, 12207, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G);
2547 break; 2546 break;
2548 case BC_USETN: 2547 case BC_USETN:
2549 dasm_put(Dst, 12298); 2548 dasm_put(Dst, 12300);
2550 if (sse) { 2549 if (sse) {
2551 dasm_put(Dst, 12303); 2550 dasm_put(Dst, 12305);
2552 } else { 2551 } else {
2553 dasm_put(Dst, 11751); 2552 dasm_put(Dst, 10613);
2554 } 2553 }
2555 dasm_put(Dst, 12310, offsetof(GCfuncL, uvptr), DtA(->v)); 2554 dasm_put(Dst, 12312, offsetof(GCfuncL, uvptr), DtA(->v));
2556 if (sse) { 2555 if (sse) {
2557 dasm_put(Dst, 12319); 2556 dasm_put(Dst, 12321);
2558 } else { 2557 } else {
2559 dasm_put(Dst, 12325); 2558 dasm_put(Dst, 12327);
2560 } 2559 }
2561 dasm_put(Dst, 10102); 2560 dasm_put(Dst, 10102);
2562 break; 2561 break;
2563 case BC_USETP: 2562 case BC_USETP:
2564 dasm_put(Dst, 12328, offsetof(GCfuncL, uvptr), DtA(->v)); 2563 dasm_put(Dst, 12330, offsetof(GCfuncL, uvptr), DtA(->v));
2565 break; 2564 break;
2566 case BC_UCLO: 2565 case BC_UCLO:
2567 dasm_put(Dst, 12367, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base)); 2566 dasm_put(Dst, 12369, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base));
2568 break; 2567 break;
2569 2568
2570 case BC_FNEW: 2569 case BC_FNEW:
2571 dasm_put(Dst, 12422, Dt1(->base), Dt1(->base), LJ_TFUNC); 2570 dasm_put(Dst, 12424, Dt1(->base), Dt1(->base), LJ_TFUNC);
2572 break; 2571 break;
2573 2572
2574 /* -- Table ops --------------------------------------------------------- */ 2573 /* -- Table ops --------------------------------------------------------- */
2575 2574
2576 case BC_TNEW: 2575 case BC_TNEW:
2577 dasm_put(Dst, 12488, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB); 2576 dasm_put(Dst, 12490, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB);
2578 break; 2577 break;
2579 case BC_TDUP: 2578 case BC_TDUP:
2580 dasm_put(Dst, 12610, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB); 2579 dasm_put(Dst, 12612, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB);
2581 break; 2580 break;
2582 2581
2583 case BC_GGET: 2582 case BC_GGET:
2584 dasm_put(Dst, 12705, Dt7(->env)); 2583 dasm_put(Dst, 12707, Dt7(->env));
2585 break; 2584 break;
2586 case BC_GSET: 2585 case BC_GSET:
2587 dasm_put(Dst, 12724, Dt7(->env)); 2586 dasm_put(Dst, 12726, Dt7(->env));
2588 break; 2587 break;
2589 2588
2590 case BC_TGETV: 2589 case BC_TGETV:
2591 dasm_put(Dst, 12743, LJ_TTAB); 2590 dasm_put(Dst, 12745, LJ_TTAB);
2592 if (LJ_DUALNUM) { 2591 if (LJ_DUALNUM) {
2593 dasm_put(Dst, 12766, LJ_TISNUM); 2592 dasm_put(Dst, 12768, LJ_TISNUM);
2594 } else { 2593 } else {
2595 dasm_put(Dst, 12780, LJ_TISNUM); 2594 dasm_put(Dst, 12782, LJ_TISNUM);
2596 if (sse) { 2595 if (sse) {
2597 dasm_put(Dst, 12791); 2596 dasm_put(Dst, 12793);
2598 } else { 2597 } else {
2599 } 2598 }
2600 dasm_put(Dst, 12812); 2599 dasm_put(Dst, 12814);
2601 } 2600 }
2602 dasm_put(Dst, 12817, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index, LJ_TNIL); 2601 dasm_put(Dst, 12819, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index, LJ_TNIL);
2603 dasm_put(Dst, 12908, LJ_TSTR); 2602 dasm_put(Dst, 12910, LJ_TSTR);
2604 break; 2603 break;
2605 case BC_TGETS: 2604 case BC_TGETS:
2606 dasm_put(Dst, 12926, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); 2605 dasm_put(Dst, 12928, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
2607 dasm_put(Dst, 13010, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 2606 dasm_put(Dst, 13012, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
2608 break; 2607 break;
2609 case BC_TGETB: 2608 case BC_TGETB:
2610 dasm_put(Dst, 13081, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 2609 dasm_put(Dst, 13083, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
2611 dasm_put(Dst, 13176, LJ_TNIL); 2610 dasm_put(Dst, 13178, LJ_TNIL);
2612 break; 2611 break;
2613 2612
2614 case BC_TSETV: 2613 case BC_TSETV:
2615 dasm_put(Dst, 13193, LJ_TTAB); 2614 dasm_put(Dst, 13195, LJ_TTAB);
2616 if (LJ_DUALNUM) { 2615 if (LJ_DUALNUM) {
2617 dasm_put(Dst, 12766, LJ_TISNUM); 2616 dasm_put(Dst, 12768, LJ_TISNUM);
2618 } else { 2617 } else {
2619 dasm_put(Dst, 12780, LJ_TISNUM); 2618 dasm_put(Dst, 12782, LJ_TISNUM);
2620 if (sse) { 2619 if (sse) {
2621 dasm_put(Dst, 12791); 2620 dasm_put(Dst, 12793);
2622 } else { 2621 } else {
2623 } 2622 }
2624 dasm_put(Dst, 13216); 2623 dasm_put(Dst, 13218);
2625 } 2624 }
2626 dasm_put(Dst, 13221, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex); 2625 dasm_put(Dst, 13223, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex);
2627 dasm_put(Dst, 13301, LJ_TSTR, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 2626 dasm_put(Dst, 13303, LJ_TSTR, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
2628 break; 2627 break;
2629 case BC_TSETS: 2628 case BC_TSETS:
2630 dasm_put(Dst, 13358, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); 2629 dasm_put(Dst, 13360, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
2631 dasm_put(Dst, 13434, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next)); 2630 dasm_put(Dst, 13436, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next));
2632 dasm_put(Dst, 13522, 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)); 2631 dasm_put(Dst, 13524, 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));
2633 break; 2632 break;
2634 case BC_TSETB: 2633 case BC_TSETB:
2635 dasm_put(Dst, 13613, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable)); 2634 dasm_put(Dst, 13615, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable));
2636 dasm_put(Dst, 13707, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 2635 dasm_put(Dst, 13709, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
2637 break; 2636 break;
2638 2637
2639 case BC_TSETM: 2638 case BC_TSETM:
2640 dasm_put(Dst, 13753, Dt6(->marked), LJ_GC_BLACK, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base)); 2639 dasm_put(Dst, 13755, Dt6(->marked), LJ_GC_BLACK, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base));
2641 dasm_put(Dst, 13896, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 2640 dasm_put(Dst, 13898, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
2642 break; 2641 break;
2643 2642
2644 /* -- Calls and vararg handling ----------------------------------------- */ 2643 /* -- Calls and vararg handling ----------------------------------------- */
2645 2644
2646 case BC_CALL: case BC_CALLM: 2645 case BC_CALL: case BC_CALLM:
2647 dasm_put(Dst, 11091); 2646 dasm_put(Dst, 11093);
2648 if (op == BC_CALLM) { 2647 if (op == BC_CALLM) {
2649 dasm_put(Dst, 13914); 2648 dasm_put(Dst, 13916);
2650 } 2649 }
2651 dasm_put(Dst, 13919, LJ_TFUNC, Dt7(->pc)); 2650 dasm_put(Dst, 13921, LJ_TFUNC, Dt7(->pc));
2652 break; 2651 break;
2653 2652
2654 case BC_CALLMT: 2653 case BC_CALLMT:
2655 dasm_put(Dst, 13914); 2654 dasm_put(Dst, 13916);
2656 break; 2655 break;
2657 case BC_CALLT: 2656 case BC_CALLT:
2658 dasm_put(Dst, 13961, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc)); 2657 dasm_put(Dst, 13963, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc));
2659 dasm_put(Dst, 14076, FRAME_TYPE, Dt7(->pc), PC2PROTO(k), FRAME_VARG, FRAME_TYPEP, FRAME_VARG); 2658 dasm_put(Dst, 14078, FRAME_TYPE, Dt7(->pc), PC2PROTO(k), FRAME_VARG, FRAME_TYPEP, FRAME_VARG);
2660 break; 2659 break;
2661 2660
2662 case BC_ITERC: 2661 case BC_ITERC:
2663 dasm_put(Dst, 14147, LJ_TFUNC, 2+1, Dt7(->pc)); 2662 dasm_put(Dst, 14149, LJ_TFUNC, 2+1, Dt7(->pc));
2664 break; 2663 break;
2665 2664
2666 case BC_ITERN: 2665 case BC_ITERN:
2667#if LJ_HASJIT 2666#if LJ_HASJIT
2668#endif 2667#endif
2669 dasm_put(Dst, 14218, Dt6(->asize), Dt6(->array), LJ_TNIL); 2668 dasm_put(Dst, 14220, Dt6(->asize), Dt6(->array), LJ_TNIL);
2670 if (LJ_DUALNUM) { 2669 if (LJ_DUALNUM) {
2671 dasm_put(Dst, 10991, LJ_TISNUM); 2670 dasm_put(Dst, 10993, LJ_TISNUM);
2672 } else if (sse) { 2671 } else if (sse) {
2673 dasm_put(Dst, 11068); 2672 dasm_put(Dst, 11070);
2674 } else { 2673 } else {
2675 dasm_put(Dst, 14264); 2674 dasm_put(Dst, 14266);
2676 } 2675 }
2677 dasm_put(Dst, 14270); 2676 dasm_put(Dst, 14272);
2678 if (LJ_DUALNUM) { 2677 if (LJ_DUALNUM) {
2679 } else if (sse) { 2678 } else if (sse) {
2680 dasm_put(Dst, 10956); 2679 dasm_put(Dst, 10958);
2681 } else { 2680 } else {
2682 dasm_put(Dst, 10968); 2681 dasm_put(Dst, 10970);
2683 } 2682 }
2684 dasm_put(Dst, 14283, -BCBIAS_J*4); 2683 dasm_put(Dst, 14285, -BCBIAS_J*4);
2685 if (!LJ_DUALNUM && !sse) { 2684 if (!LJ_DUALNUM && !sse) {
2686 dasm_put(Dst, 14335); 2685 dasm_put(Dst, 14337);
2687 } 2686 }
2688 dasm_put(Dst, 14341, Dt6(->hmask), sizeof(Node), Dt6(->node), DtB(->val.it), LJ_TNIL, DtB(->key), DtB(->val)); 2687 dasm_put(Dst, 14343, Dt6(->hmask), sizeof(Node), Dt6(->node), DtB(->val.it), LJ_TNIL, DtB(->key), DtB(->val));
2689 break; 2688 break;
2690 2689
2691 case BC_ISNEXT: 2690 case BC_ISNEXT:
2692 dasm_put(Dst, 14413, LJ_TFUNC, LJ_TTAB, LJ_TNIL, Dt8(->ffid), FF_next_N, -BCBIAS_J*4, BC_JMP, -BCBIAS_J*4, BC_ITERC); 2691 dasm_put(Dst, 14415, LJ_TFUNC, LJ_TTAB, LJ_TNIL, Dt8(->ffid), FF_next_N, -BCBIAS_J*4, BC_JMP, -BCBIAS_J*4, BC_ITERC);
2693 break; 2692 break;
2694 2693
2695 case BC_VARG: 2694 case BC_VARG:
2696 dasm_put(Dst, 14513, (8+FRAME_VARG), LJ_TNIL, Dt1(->maxstack)); 2695 dasm_put(Dst, 14515, (8+FRAME_VARG), LJ_TNIL, Dt1(->maxstack));
2697 dasm_put(Dst, 14673, Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top)); 2696 dasm_put(Dst, 14675, Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top));
2698 break; 2697 break;
2699 2698
2700 /* -- Returns ----------------------------------------------------------- */ 2699 /* -- Returns ----------------------------------------------------------- */
2701 2700
2702 case BC_RETM: 2701 case BC_RETM:
2703 dasm_put(Dst, 13914); 2702 dasm_put(Dst, 13916);
2704 break; 2703 break;
2705 2704
2706 case BC_RET: case BC_RET0: case BC_RET1: 2705 case BC_RET: case BC_RET0: case BC_RET1:
2707 if (op != BC_RET0) { 2706 if (op != BC_RET0) {
2708 dasm_put(Dst, 14739); 2707 dasm_put(Dst, 14741);
2709 } 2708 }
2710 dasm_put(Dst, 14743, FRAME_TYPE); 2709 dasm_put(Dst, 14745, FRAME_TYPE);
2711 switch (op) { 2710 switch (op) {
2712 case BC_RET: 2711 case BC_RET:
2713 dasm_put(Dst, 14762); 2712 dasm_put(Dst, 14764);
2714 break; 2713 break;
2715 case BC_RET1: 2714 case BC_RET1:
2716 dasm_put(Dst, 14814); 2715 dasm_put(Dst, 14816);
2717 /* fallthrough */ 2716 /* fallthrough */
2718 case BC_RET0: 2717 case BC_RET0:
2719 dasm_put(Dst, 14824); 2718 dasm_put(Dst, 14826);
2720 default: 2719 default:
2721 break; 2720 break;
2722 } 2721 }
2723 dasm_put(Dst, 14835, Dt7(->pc), PC2PROTO(k)); 2722 dasm_put(Dst, 14837, Dt7(->pc), PC2PROTO(k));
2724 if (op == BC_RET) { 2723 if (op == BC_RET) {
2725 dasm_put(Dst, 14879, LJ_TNIL); 2724 dasm_put(Dst, 14881, LJ_TNIL);
2726 } else { 2725 } else {
2727 dasm_put(Dst, 14888, LJ_TNIL); 2726 dasm_put(Dst, 14890, LJ_TNIL);
2728 } 2727 }
2729 dasm_put(Dst, 14895, -FRAME_VARG, FRAME_TYPEP); 2728 dasm_put(Dst, 14897, -FRAME_VARG, FRAME_TYPEP);
2730 if (op != BC_RET0) { 2729 if (op != BC_RET0) {
2731 dasm_put(Dst, 14919); 2730 dasm_put(Dst, 14921);
2732 } 2731 }
2733 dasm_put(Dst, 4646); 2732 dasm_put(Dst, 4646);
2734 break; 2733 break;
@@ -2738,7 +2737,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2738 2737
2739 case BC_FORL: 2738 case BC_FORL:
2740#if LJ_HASJIT 2739#if LJ_HASJIT
2741 dasm_put(Dst, 14923, HOTCOUNT_PCMASK, GG_DISP2HOT); 2740 dasm_put(Dst, 14925, HOTCOUNT_PCMASK, GG_DISP2HOT);
2742#endif 2741#endif
2743 break; 2742 break;
2744 2743
@@ -2750,104 +2749,104 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2750 case BC_FORI: 2749 case BC_FORI:
2751 case BC_IFORL: 2750 case BC_IFORL:
2752 vk = (op == BC_IFORL || op == BC_JFORL); 2751 vk = (op == BC_IFORL || op == BC_JFORL);
2753 dasm_put(Dst, 14944); 2752 dasm_put(Dst, 14946);
2754 if (LJ_DUALNUM) { 2753 if (LJ_DUALNUM) {
2755 dasm_put(Dst, 14948, LJ_TISNUM); 2754 dasm_put(Dst, 14950, LJ_TISNUM);
2756 if (!vk) { 2755 if (!vk) {
2757 dasm_put(Dst, 14958, LJ_TISNUM, LJ_TISNUM); 2756 dasm_put(Dst, 14960, LJ_TISNUM, LJ_TISNUM);
2758 } else { 2757 } else {
2759 dasm_put(Dst, 14987); 2758 dasm_put(Dst, 14989);
2760 } 2759 }
2761 dasm_put(Dst, 15006, LJ_TISNUM); 2760 dasm_put(Dst, 15008, LJ_TISNUM);
2762 if (op == BC_FORI) { 2761 if (op == BC_FORI) {
2763 dasm_put(Dst, 15017, -BCBIAS_J*4); 2762 dasm_put(Dst, 15019, -BCBIAS_J*4);
2764 } else if (op == BC_JFORI) { 2763 } else if (op == BC_JFORI) {
2765 dasm_put(Dst, 15031, -BCBIAS_J*4, BC_JLOOP); 2764 dasm_put(Dst, 15033, -BCBIAS_J*4, BC_JLOOP);
2766 } else if (op == BC_IFORL) { 2765 } else if (op == BC_IFORL) {
2767 dasm_put(Dst, 15049, -BCBIAS_J*4); 2766 dasm_put(Dst, 15051, -BCBIAS_J*4);
2768 } else { 2767 } else {
2769 dasm_put(Dst, 15041, BC_JLOOP); 2768 dasm_put(Dst, 15043, BC_JLOOP);
2770 } 2769 }
2771 dasm_put(Dst, 15063); 2770 dasm_put(Dst, 15065);
2772 if (vk) { 2771 if (vk) {
2773 dasm_put(Dst, 15087); 2772 dasm_put(Dst, 15089);
2774 } 2773 }
2775 dasm_put(Dst, 15006, LJ_TISNUM); 2774 dasm_put(Dst, 15008, LJ_TISNUM);
2776 if (op == BC_FORI) { 2775 if (op == BC_FORI) {
2777 dasm_put(Dst, 15096); 2776 dasm_put(Dst, 15098);
2778 } else if (op == BC_JFORI) { 2777 } else if (op == BC_JFORI) {
2779 dasm_put(Dst, 15101, -BCBIAS_J*4, BC_JLOOP); 2778 dasm_put(Dst, 15103, -BCBIAS_J*4, BC_JLOOP);
2780 } else if (op == BC_IFORL) { 2779 } else if (op == BC_IFORL) {
2781 dasm_put(Dst, 15115); 2780 dasm_put(Dst, 15117);
2782 } else { 2781 } else {
2783 dasm_put(Dst, 15111, BC_JLOOP); 2782 dasm_put(Dst, 15113, BC_JLOOP);
2784 } 2783 }
2785 dasm_put(Dst, 15120); 2784 dasm_put(Dst, 15122);
2786 } else if (!vk) { 2785 } else if (!vk) {
2787 dasm_put(Dst, 15127, LJ_TISNUM); 2786 dasm_put(Dst, 15129, LJ_TISNUM);
2788 } 2787 }
2789 if (!vk) { 2788 if (!vk) {
2790 dasm_put(Dst, 15133, LJ_TISNUM); 2789 dasm_put(Dst, 15135, LJ_TISNUM);
2791 } 2790 }
2792 dasm_put(Dst, 15147); 2791 dasm_put(Dst, 15149);
2793 if (!vk) { 2792 if (!vk) {
2794 dasm_put(Dst, 15151, LJ_TISNUM); 2793 dasm_put(Dst, 15153, LJ_TISNUM);
2795 } 2794 }
2796 if (sse) { 2795 if (sse) {
2797 dasm_put(Dst, 15160); 2796 dasm_put(Dst, 15162);
2798 if (vk) { 2797 if (vk) {
2799 dasm_put(Dst, 15172); 2798 dasm_put(Dst, 15174);
2800 } else { 2799 } else {
2801 dasm_put(Dst, 15191); 2800 dasm_put(Dst, 15193);
2802 } 2801 }
2803 dasm_put(Dst, 15196); 2802 dasm_put(Dst, 15198);
2804 } else { 2803 } else {
2805 dasm_put(Dst, 15209); 2804 dasm_put(Dst, 15211);
2806 if (vk) { 2805 if (vk) {
2807 dasm_put(Dst, 15215); 2806 dasm_put(Dst, 15217);
2808 } else { 2807 } else {
2809 dasm_put(Dst, 15231); 2808 dasm_put(Dst, 15233);
2810 } 2809 }
2811 dasm_put(Dst, 15239); 2810 dasm_put(Dst, 15241);
2812 if (cmov) { 2811 if (cmov) {
2813 dasm_put(Dst, 10057); 2812 dasm_put(Dst, 10057);
2814 } else { 2813 } else {
2815 dasm_put(Dst, 10063); 2814 dasm_put(Dst, 10063);
2816 } 2815 }
2817 if (!cmov) { 2816 if (!cmov) {
2818 dasm_put(Dst, 15244); 2817 dasm_put(Dst, 15246);
2819 } 2818 }
2820 } 2819 }
2821 if (op == BC_FORI) { 2820 if (op == BC_FORI) {
2822 if (LJ_DUALNUM) { 2821 if (LJ_DUALNUM) {
2823 dasm_put(Dst, 15250); 2822 dasm_put(Dst, 15252);
2824 } else { 2823 } else {
2825 dasm_put(Dst, 15255, -BCBIAS_J*4); 2824 dasm_put(Dst, 15257, -BCBIAS_J*4);
2826 } 2825 }
2827 } else if (op == BC_JFORI) { 2826 } else if (op == BC_JFORI) {
2828 dasm_put(Dst, 15265, -BCBIAS_J*4, BC_JLOOP); 2827 dasm_put(Dst, 15267, -BCBIAS_J*4, BC_JLOOP);
2829 } else if (op == BC_IFORL) { 2828 } else if (op == BC_IFORL) {
2830 if (LJ_DUALNUM) { 2829 if (LJ_DUALNUM) {
2831 dasm_put(Dst, 15279); 2830 dasm_put(Dst, 15281);
2832 } else { 2831 } else {
2833 dasm_put(Dst, 15284, -BCBIAS_J*4); 2832 dasm_put(Dst, 15286, -BCBIAS_J*4);
2834 } 2833 }
2835 } else { 2834 } else {
2836 dasm_put(Dst, 15275, BC_JLOOP); 2835 dasm_put(Dst, 15277, BC_JLOOP);
2837 } 2836 }
2838 if (LJ_DUALNUM) { 2837 if (LJ_DUALNUM) {
2839 dasm_put(Dst, 9986); 2838 dasm_put(Dst, 9986);
2840 } else { 2839 } else {
2841 dasm_put(Dst, 10741); 2840 dasm_put(Dst, 10743);
2842 } 2841 }
2843 if (sse) { 2842 if (sse) {
2844 dasm_put(Dst, 15294); 2843 dasm_put(Dst, 15296);
2845 } 2844 }
2846 break; 2845 break;
2847 2846
2848 case BC_ITERL: 2847 case BC_ITERL:
2849#if LJ_HASJIT 2848#if LJ_HASJIT
2850 dasm_put(Dst, 14923, HOTCOUNT_PCMASK, GG_DISP2HOT); 2849 dasm_put(Dst, 14925, HOTCOUNT_PCMASK, GG_DISP2HOT);
2851#endif 2850#endif
2852 break; 2851 break;
2853 2852
@@ -2856,18 +2855,18 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2856 break; 2855 break;
2857#endif 2856#endif
2858 case BC_IITERL: 2857 case BC_IITERL:
2859 dasm_put(Dst, 15305, LJ_TNIL); 2858 dasm_put(Dst, 15307, LJ_TNIL);
2860 if (op == BC_JITERL) { 2859 if (op == BC_JITERL) {
2861 dasm_put(Dst, 15320, BC_JLOOP); 2860 dasm_put(Dst, 15322, BC_JLOOP);
2862 } else { 2861 } else {
2863 dasm_put(Dst, 15334, -BCBIAS_J*4); 2862 dasm_put(Dst, 15336, -BCBIAS_J*4);
2864 } 2863 }
2865 dasm_put(Dst, 10100); 2864 dasm_put(Dst, 10100);
2866 break; 2865 break;
2867 2866
2868 case BC_LOOP: 2867 case BC_LOOP:
2869#if LJ_HASJIT 2868#if LJ_HASJIT
2870 dasm_put(Dst, 14923, HOTCOUNT_PCMASK, GG_DISP2HOT); 2869 dasm_put(Dst, 14925, HOTCOUNT_PCMASK, GG_DISP2HOT);
2871#endif 2870#endif
2872 break; 2871 break;
2873 2872
@@ -2877,12 +2876,12 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2877 2876
2878 case BC_JLOOP: 2877 case BC_JLOOP:
2879#if LJ_HASJIT 2878#if LJ_HASJIT
2880 dasm_put(Dst, 15350, 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); 2879 dasm_put(Dst, 15352, 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);
2881#endif 2880#endif
2882 break; 2881 break;
2883 2882
2884 case BC_JMP: 2883 case BC_JMP:
2885 dasm_put(Dst, 15459, -BCBIAS_J*4); 2884 dasm_put(Dst, 15461, -BCBIAS_J*4);
2886 break; 2885 break;
2887 2886
2888 /* -- Function headers -------------------------------------------------- */ 2887 /* -- Function headers -------------------------------------------------- */
@@ -2896,7 +2895,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2896 2895
2897 case BC_FUNCF: 2896 case BC_FUNCF:
2898#if LJ_HASJIT 2897#if LJ_HASJIT
2899 dasm_put(Dst, 15484, HOTCOUNT_PCMASK, GG_DISP2HOT); 2898 dasm_put(Dst, 15486, HOTCOUNT_PCMASK, GG_DISP2HOT);
2900#endif 2899#endif
2901 case BC_FUNCV: /* NYI: compiled vararg functions. */ 2900 case BC_FUNCV: /* NYI: compiled vararg functions. */
2902 break; 2901 break;
@@ -2906,13 +2905,13 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2906 break; 2905 break;
2907#endif 2906#endif
2908 case BC_IFUNCF: 2907 case BC_IFUNCF:
2909 dasm_put(Dst, 15505, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams)); 2908 dasm_put(Dst, 15507, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams));
2910 if (op == BC_JFUNCF) { 2909 if (op == BC_JFUNCF) {
2911 dasm_put(Dst, 15535, BC_JLOOP); 2910 dasm_put(Dst, 15537, BC_JLOOP);
2912 } else { 2911 } else {
2913 dasm_put(Dst, 10102); 2912 dasm_put(Dst, 10102);
2914 } 2913 }
2915 dasm_put(Dst, 15544, LJ_TNIL); 2914 dasm_put(Dst, 15546, LJ_TNIL);
2916 break; 2915 break;
2917 2916
2918 case BC_JFUNCV: 2917 case BC_JFUNCV:
@@ -2923,30 +2922,30 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2923 break; /* NYI: compiled vararg functions. */ 2922 break; /* NYI: compiled vararg functions. */
2924 2923
2925 case BC_IFUNCV: 2924 case BC_IFUNCV:
2926 dasm_put(Dst, 15566, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL); 2925 dasm_put(Dst, 15568, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL);
2927 if (op == BC_JFUNCV) { 2926 if (op == BC_JFUNCV) {
2928 dasm_put(Dst, 15535, BC_JLOOP); 2927 dasm_put(Dst, 15537, BC_JLOOP);
2929 } else { 2928 } else {
2930 dasm_put(Dst, 15657, -4+PC2PROTO(k)); 2929 dasm_put(Dst, 15659, -4+PC2PROTO(k));
2931 } 2930 }
2932 dasm_put(Dst, 15680, LJ_TNIL); 2931 dasm_put(Dst, 15682, LJ_TNIL);
2933 break; 2932 break;
2934 2933
2935 case BC_FUNCC: 2934 case BC_FUNCC:
2936 case BC_FUNCCW: 2935 case BC_FUNCCW:
2937 dasm_put(Dst, 15702, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top)); 2936 dasm_put(Dst, 15704, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top));
2938 if (op == BC_FUNCC) { 2937 if (op == BC_FUNCC) {
2939 dasm_put(Dst, 2310); 2938 dasm_put(Dst, 2310);
2940 } else { 2939 } else {
2941 dasm_put(Dst, 15732); 2940 dasm_put(Dst, 15734);
2942 } 2941 }
2943 dasm_put(Dst, 15740, DISPATCH_GL(vmstate), ~LJ_VMST_C); 2942 dasm_put(Dst, 15742, DISPATCH_GL(vmstate), ~LJ_VMST_C);
2944 if (op == BC_FUNCC) { 2943 if (op == BC_FUNCC) {
2945 dasm_put(Dst, 15749); 2944 dasm_put(Dst, 15751);
2946 } else { 2945 } else {
2947 dasm_put(Dst, 15753, DISPATCH_GL(wrapf)); 2946 dasm_put(Dst, 15755, DISPATCH_GL(wrapf));
2948 } 2947 }
2949 dasm_put(Dst, 15758, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top)); 2948 dasm_put(Dst, 15760, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top));
2950 break; 2949 break;
2951 2950
2952 /* ---------------------------------------------------------------------- */ 2951 /* ---------------------------------------------------------------------- */
@@ -2974,7 +2973,7 @@ static int build_backend(BuildCtx *ctx)
2974 2973
2975 build_subroutines(ctx, cmov, sse); 2974 build_subroutines(ctx, cmov, sse);
2976 2975
2977 dasm_put(Dst, 15783); 2976 dasm_put(Dst, 15785);
2978 for (op = 0; op < BC__MAX; op++) 2977 for (op = 0; op < BC__MAX; op++)
2979 build_ins(ctx, (BCOp)op, op, cmov, sse); 2978 build_ins(ctx, (BCOp)op, op, cmov, sse);
2980 2979
diff --git a/src/buildvm_x86.dasc b/src/buildvm_x86.dasc
index 4d96423c..f7631d62 100644
--- a/src/buildvm_x86.dasc
+++ b/src/buildvm_x86.dasc
@@ -4055,10 +4055,9 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
4055 | ucomisd xmm0, qword [KBASE+RD*8] 4055 | ucomisd xmm0, qword [KBASE+RD*8]
4056 } else { 4056 } else {
4057 | fild dword [BASE+RA*8] 4057 | fild dword [BASE+RA*8]
4058 | fld qword [BASE+RD*8] 4058 | fld qword [KBASE+RD*8]
4059 } 4059 }
4060 | jmp >4 4060 | jmp >4
4061 |
4062 } else { 4061 } else {
4063 | cmp RB, LJ_TISNUM; jae >3 4062 | cmp RB, LJ_TISNUM; jae >3
4064 } 4063 }
@@ -4073,8 +4072,8 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
4073 | fld qword [KBASE+RD*8] 4072 | fld qword [KBASE+RD*8]
4074 |2: 4073 |2:
4075 | fld qword [BASE+RA*8] 4074 | fld qword [BASE+RA*8]
4076 | fcomparepp // eax (RD) modified!
4077 |4: 4075 |4:
4076 | fcomparepp // eax (RD) modified!
4078 } 4077 }
4079 goto iseqne_fp; 4078 goto iseqne_fp;
4080 case BC_ISEQP: case BC_ISNEP: 4079 case BC_ISEQP: case BC_ISNEP:
diff --git a/src/buildvm_x86.h b/src/buildvm_x86.h
index 75627697..0ce64f41 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[16902] = { 15static const unsigned char build_actionlist[16904] = {
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,
@@ -577,257 +577,257 @@ static const unsigned char build_actionlist[16902] = {
577 15,182,232,131,198,4,193,232,16,252,255,36,171,248,7,15,135,244,249,129,124, 577 15,182,232,131,198,4,193,232,16,252,255,36,171,248,7,15,135,244,249,129,124,
578 253,199,4,239,15,130,244,247,255,252,242,15,42,4,199,255,219,4,199,255,252, 578 253,199,4,239,15,130,244,247,255,252,242,15,42,4,199,255,219,4,199,255,252,
579 233,244,248,248,8,255,252,242,15,42,4,202,102,15,46,4,199,255,219,4,202,221, 579 233,244,248,248,8,255,252,242,15,42,4,202,102,15,46,4,199,255,219,4,202,221,
580 4,194,255,129,252,253,239,15,131,244,249,255,248,1,252,242,15,16,4,199,248, 580 4,199,255,129,252,253,239,15,131,244,249,255,248,1,252,242,15,16,4,199,248,
581 2,102,15,46,4,202,248,4,255,248,1,221,4,199,248,2,221,4,202,255,252,247,208, 581 2,102,15,46,4,202,248,4,255,248,1,221,4,199,248,2,221,4,202,248,4,255,252,
582 139,108,202,4,131,198,4,57,197,255,15,133,244,249,15,183,70,252,254,141,180, 582 247,208,139,108,202,4,131,198,4,57,197,255,15,133,244,249,15,183,70,252,254,
583 253,134,233,248,2,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255, 583 141,180,253,134,233,248,2,139,6,15,182,204,15,182,232,131,198,4,193,232,16,
584 36,171,248,3,129,252,253,239,15,133,244,2,252,233,244,46,255,15,132,244,248, 584 252,255,36,171,248,3,129,252,253,239,15,133,244,2,252,233,244,46,255,15,132,
585 129,252,253,239,15,132,244,46,15,183,70,252,254,141,180,253,134,233,248,2, 585 244,248,129,252,253,239,15,132,244,46,15,183,70,252,254,141,180,253,134,233,
586 139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,139,108, 586 248,2,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,
587 194,4,131,198,4,129,252,253,239,255,137,108,202,4,139,44,194,137,44,202,255, 587 139,108,194,4,131,198,4,129,252,253,239,255,137,108,202,4,139,44,194,137,
588 139,108,194,4,139,4,194,137,108,202,4,137,4,202,139,6,15,182,204,15,182,232, 588 44,202,255,139,108,194,4,139,4,194,137,108,202,4,137,4,202,139,6,15,182,204,
589 131,198,4,193,232,16,252,255,36,171,255,49,252,237,129,124,253,194,4,239, 589 15,182,232,131,198,4,193,232,16,252,255,36,171,255,49,252,237,129,124,253,
590 129,213,239,137,108,202,4,139,6,15,182,204,15,182,232,131,198,4,193,232,16, 590 194,4,239,129,213,239,137,108,202,4,139,6,15,182,204,15,182,232,131,198,4,
591 252,255,36,171,255,129,124,253,194,4,239,15,133,244,251,139,44,194,252,247, 591 193,232,16,252,255,36,171,255,129,124,253,194,4,239,15,133,244,251,139,44,
592 221,15,128,244,250,199,68,202,4,237,137,44,202,248,9,139,6,15,182,204,15, 592 194,252,247,221,15,128,244,250,199,68,202,4,237,137,44,202,248,9,139,6,15,
593 182,232,131,198,4,193,232,16,252,255,36,171,248,4,199,68,202,4,0,0,224,65, 593 182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,4,199,68,202,4,
594 199,4,202,0,0,0,0,252,233,244,9,248,5,15,135,244,51,255,129,124,253,194,4, 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,
595 239,15,131,244,51,255,252,242,15,16,4,194,184,0,0,0,128,102,15,110,200,102, 595 253,194,4,239,15,131,244,51,255,252,242,15,16,4,194,184,0,0,0,128,102,15,
596 15,112,201,81,15,87,193,252,242,15,17,4,202,255,221,4,194,217,224,221,28, 596 110,200,102,15,112,201,81,15,87,193,252,242,15,17,4,202,255,221,4,194,217,
597 202,255,129,124,253,194,4,239,15,133,244,248,139,4,194,255,139,128,233,248, 597 224,221,28,202,255,129,124,253,194,4,239,15,133,244,248,139,4,194,255,139,
598 1,199,68,202,4,237,137,4,202,255,15,87,192,252,242,15,42,128,233,248,1,252, 598 128,233,248,1,199,68,202,4,237,137,4,202,255,15,87,192,252,242,15,42,128,
599 242,15,17,4,202,255,219,128,233,248,1,221,28,202,255,139,6,15,182,204,15, 599 233,248,1,252,242,15,17,4,202,255,219,128,233,248,1,221,28,202,255,139,6,
600 182,232,131,198,4,193,232,16,252,255,36,171,248,2,129,124,253,194,4,239,15, 600 15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,2,129,124,253,
601 133,244,54,139,12,194,137,213,232,251,1,20,255,252,242,15,42,192,255,137, 601 194,4,239,15,133,244,54,139,12,194,137,213,232,251,1,20,255,252,242,15,42,
602 4,36,219,4,36,255,137,252,234,15,182,78,252,253,252,233,244,1,255,15,182, 602 192,255,137,4,36,219,4,36,255,137,252,234,15,182,78,252,253,252,233,244,1,
603 252,236,15,182,192,255,129,124,253,252,234,4,239,15,133,244,48,129,124,253, 603 255,15,182,252,236,15,182,192,255,129,124,253,252,234,4,239,15,133,244,48,
604 199,4,239,15,133,244,48,139,44,252,234,3,44,199,15,128,244,47,255,129,124, 604 129,124,253,199,4,239,15,133,244,48,139,44,252,234,3,44,199,15,128,244,47,
605 253,252,234,4,239,15,133,244,50,129,124,253,199,4,239,15,133,244,50,139,4, 605 255,129,124,253,252,234,4,239,15,133,244,50,129,124,253,199,4,239,15,133,
606 199,3,4,252,234,15,128,244,49,255,129,124,253,252,234,4,239,15,133,244,53, 606 244,50,139,4,199,3,4,252,234,15,128,244,49,255,129,124,253,252,234,4,239,
607 129,124,253,194,4,239,15,133,244,53,139,44,252,234,3,44,194,15,128,244,52, 607 15,133,244,53,129,124,253,194,4,239,15,133,244,53,139,44,252,234,3,44,194,
608 255,199,68,202,4,237,255,129,124,253,252,234,4,239,15,131,244,48,255,129, 608 15,128,244,52,255,199,68,202,4,237,255,129,124,253,252,234,4,239,15,131,244,
609 124,253,199,4,239,15,131,244,48,255,252,242,15,16,4,252,234,252,242,15,88, 609 48,255,129,124,253,199,4,239,15,131,244,48,255,252,242,15,16,4,252,234,252,
610 4,199,255,221,4,252,234,220,4,199,255,129,124,253,252,234,4,239,15,131,244, 610 242,15,88,4,199,255,221,4,252,234,220,4,199,255,129,124,253,252,234,4,239,
611 50,255,129,124,253,199,4,239,15,131,244,50,255,252,242,15,16,4,199,252,242, 611 15,131,244,50,255,129,124,253,199,4,239,15,131,244,50,255,252,242,15,16,4,
612 15,88,4,252,234,255,221,4,199,220,4,252,234,255,129,124,253,252,234,4,239, 612 199,252,242,15,88,4,252,234,255,221,4,199,220,4,252,234,255,129,124,253,252,
613 15,131,244,53,129,124,253,194,4,239,15,131,244,53,255,252,242,15,16,4,252, 613 234,4,239,15,131,244,53,129,124,253,194,4,239,15,131,244,53,255,252,242,15,
614 234,252,242,15,88,4,194,255,221,4,252,234,220,4,194,255,129,124,253,252,234, 614 16,4,252,234,252,242,15,88,4,194,255,221,4,252,234,220,4,194,255,129,124,
615 4,239,15,133,244,48,129,124,253,199,4,239,15,133,244,48,139,44,252,234,43, 615 253,252,234,4,239,15,133,244,48,129,124,253,199,4,239,15,133,244,48,139,44,
616 44,199,15,128,244,47,255,129,124,253,252,234,4,239,15,133,244,50,129,124, 616 252,234,43,44,199,15,128,244,47,255,129,124,253,252,234,4,239,15,133,244,
617 253,199,4,239,15,133,244,50,139,4,199,43,4,252,234,15,128,244,49,255,129, 617 50,129,124,253,199,4,239,15,133,244,50,139,4,199,43,4,252,234,15,128,244,
618 124,253,252,234,4,239,15,133,244,53,129,124,253,194,4,239,15,133,244,53,139, 618 49,255,129,124,253,252,234,4,239,15,133,244,53,129,124,253,194,4,239,15,133,
619 44,252,234,43,44,194,15,128,244,52,255,252,242,15,16,4,252,234,252,242,15, 619 244,53,139,44,252,234,43,44,194,15,128,244,52,255,252,242,15,16,4,252,234,
620 92,4,199,255,221,4,252,234,220,36,199,255,252,242,15,16,4,199,252,242,15, 620 252,242,15,92,4,199,255,221,4,252,234,220,36,199,255,252,242,15,16,4,199,
621 92,4,252,234,255,221,4,199,220,36,252,234,255,252,242,15,16,4,252,234,252, 621 252,242,15,92,4,252,234,255,221,4,199,220,36,252,234,255,252,242,15,16,4,
622 242,15,92,4,194,255,221,4,252,234,220,36,194,255,129,124,253,252,234,4,239, 622 252,234,252,242,15,92,4,194,255,221,4,252,234,220,36,194,255,129,124,253,
623 15,133,244,48,129,124,253,199,4,239,15,133,244,48,139,44,252,234,15,175,44, 623 252,234,4,239,15,133,244,48,129,124,253,199,4,239,15,133,244,48,139,44,252,
624 199,15,128,244,47,255,129,124,253,252,234,4,239,15,133,244,50,129,124,253, 624 234,15,175,44,199,15,128,244,47,255,129,124,253,252,234,4,239,15,133,244,
625 199,4,239,15,133,244,50,139,4,199,15,175,4,252,234,15,128,244,49,255,129, 625 50,129,124,253,199,4,239,15,133,244,50,139,4,199,15,175,4,252,234,15,128,
626 124,253,252,234,4,239,15,133,244,53,129,124,253,194,4,239,15,133,244,53,139, 626 244,49,255,129,124,253,252,234,4,239,15,133,244,53,129,124,253,194,4,239,
627 44,252,234,15,175,44,194,15,128,244,52,255,252,242,15,16,4,252,234,252,242, 627 15,133,244,53,139,44,252,234,15,175,44,194,15,128,244,52,255,252,242,15,16,
628 15,89,4,199,255,221,4,252,234,220,12,199,255,252,242,15,16,4,199,252,242, 628 4,252,234,252,242,15,89,4,199,255,221,4,252,234,220,12,199,255,252,242,15,
629 15,89,4,252,234,255,221,4,199,220,12,252,234,255,252,242,15,16,4,252,234, 629 16,4,199,252,242,15,89,4,252,234,255,221,4,199,220,12,252,234,255,252,242,
630 252,242,15,89,4,194,255,221,4,252,234,220,12,194,255,252,242,15,16,4,252, 630 15,16,4,252,234,252,242,15,89,4,194,255,221,4,252,234,220,12,194,255,252,
631 234,252,242,15,94,4,199,255,221,4,252,234,220,52,199,255,252,242,15,16,4, 631 242,15,16,4,252,234,252,242,15,94,4,199,255,221,4,252,234,220,52,199,255,
632 199,252,242,15,94,4,252,234,255,221,4,199,220,52,252,234,255,252,242,15,16, 632 252,242,15,16,4,199,252,242,15,94,4,252,234,255,221,4,199,220,52,252,234,
633 4,252,234,252,242,15,94,4,194,255,221,4,252,234,220,52,194,255,252,242,15, 633 255,252,242,15,16,4,252,234,252,242,15,94,4,194,255,221,4,252,234,220,52,
634 16,4,252,234,252,242,15,16,12,199,255,221,4,252,234,221,4,199,255,252,242, 634 194,255,252,242,15,16,4,252,234,252,242,15,16,12,199,255,221,4,252,234,221,
635 15,16,4,199,252,242,15,16,12,252,234,255,221,4,199,221,4,252,234,255,252, 635 4,199,255,252,242,15,16,4,199,252,242,15,16,12,252,234,255,221,4,199,221,
636 242,15,16,4,252,234,252,242,15,16,12,194,255,221,4,252,234,221,4,194,255, 636 4,252,234,255,252,242,15,16,4,252,234,252,242,15,16,12,194,255,221,4,252,
637 248,162,232,244,153,255,252,233,244,162,255,232,244,113,255,15,182,252,236, 637 234,221,4,194,255,248,162,232,244,153,255,252,233,244,162,255,232,244,113,
638 15,182,192,141,12,194,41,232,137,76,36,4,137,68,36,8,248,33,139,108,36,48, 638 255,15,182,252,236,15,182,192,141,12,194,41,232,137,76,36,4,137,68,36,8,248,
639 137,44,36,137,149,233,137,116,36,24,232,251,1,27,139,149,233,133,192,15,133, 639 33,139,108,36,48,137,44,36,137,149,233,137,116,36,24,232,251,1,27,139,149,
640 244,42,15,182,110,252,255,15,182,78,252,253,139,68,252,234,4,139,44,252,234, 640 233,133,192,15,133,244,42,15,182,110,252,255,15,182,78,252,253,139,68,252,
641 137,68,202,4,137,44,202,139,6,15,182,204,15,182,232,131,198,4,193,232,16, 641 234,4,139,44,252,234,137,68,202,4,137,44,202,139,6,15,182,204,15,182,232,
642 252,255,36,171,255,252,247,208,139,4,135,199,68,202,4,237,137,4,202,139,6, 642 131,198,4,193,232,16,252,255,36,171,255,252,247,208,139,4,135,199,68,202,
643 15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,15,191,192, 643 4,237,137,4,202,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,
644 199,68,202,4,237,137,4,202,255,15,191,192,252,242,15,42,192,252,242,15,17, 644 36,171,255,15,191,192,199,68,202,4,237,137,4,202,255,15,191,192,252,242,15,
645 4,202,255,223,70,252,254,221,28,202,255,252,242,15,16,4,199,252,242,15,17, 645 42,192,252,242,15,17,4,202,255,223,70,252,254,221,28,202,255,252,242,15,16,
646 4,202,255,221,4,199,221,28,202,255,252,247,208,137,68,202,4,139,6,15,182, 646 4,199,252,242,15,17,4,202,255,221,4,199,221,28,202,255,252,247,208,137,68,
647 204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,141,76,202,12,141, 647 202,4,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,
648 68,194,4,189,237,137,105,252,248,248,1,137,41,131,193,8,57,193,15,134,244, 648 141,76,202,12,141,68,194,4,189,237,137,105,252,248,248,1,137,41,131,193,8,
649 1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,139, 649 57,193,15,134,244,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,
650 106,252,248,139,172,253,133,233,139,173,233,139,69,4,139,109,0,137,68,202, 650 255,36,171,255,139,106,252,248,139,172,253,133,233,139,173,233,139,69,4,139,
651 4,137,44,202,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36, 651 109,0,137,68,202,4,137,44,202,139,6,15,182,204,15,182,232,131,198,4,193,232,
652 171,255,139,106,252,248,139,172,253,141,233,128,189,233,0,139,173,233,139, 652 16,252,255,36,171,255,139,106,252,248,139,172,253,141,233,128,189,233,0,139,
653 12,194,139,68,194,4,137,77,0,137,69,4,15,132,244,247,252,246,133,233,235, 653 173,233,139,12,194,139,68,194,4,137,77,0,137,69,4,15,132,244,247,252,246,
654 15,133,244,248,248,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252, 654 133,233,235,15,133,244,248,248,1,139,6,15,182,204,15,182,232,131,198,4,193,
655 255,36,171,248,2,129,232,239,129,252,248,239,15,134,244,1,252,246,129,233, 655 232,16,252,255,36,171,248,2,129,232,239,129,252,248,239,15,134,244,1,252,
656 235,15,132,244,1,135,213,141,139,233,255,232,251,1,28,137,252,234,252,233, 656 246,129,233,235,15,132,244,1,135,213,141,139,233,255,232,251,1,28,137,252,
657 244,1,255,252,247,208,139,106,252,248,139,172,253,141,233,139,12,135,139, 657 234,252,233,244,1,255,252,247,208,139,106,252,248,139,172,253,141,233,139,
658 133,233,137,8,199,64,4,237,252,246,133,233,235,15,133,244,248,248,1,139,6, 658 12,135,139,133,233,137,8,199,64,4,237,252,246,133,233,235,15,133,244,248,
659 15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,2,252,246,129, 659 248,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,
660 233,235,15,132,244,1,128,189,233,0,15,132,244,1,137,213,137,194,141,139,233, 660 2,252,246,129,233,235,15,132,244,1,128,189,233,0,15,132,244,1,137,213,137,
661 232,251,1,28,137,252,234,252,233,244,1,255,139,106,252,248,255,252,242,15, 661 194,141,139,233,232,251,1,28,137,252,234,252,233,244,1,255,139,106,252,248,
662 16,4,199,255,139,172,253,141,233,139,141,233,255,252,242,15,17,1,255,221, 662 255,252,242,15,16,4,199,255,139,172,253,141,233,139,141,233,255,252,242,15,
663 25,255,252,247,208,139,106,252,248,139,172,253,141,233,139,141,233,137,65, 663 17,1,255,221,25,255,252,247,208,139,106,252,248,139,172,253,141,233,139,141,
664 4,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,141, 664 233,137,65,4,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,
665 180,253,134,233,139,108,36,48,131,189,233,0,15,132,244,247,137,149,233,141, 665 171,255,141,180,253,134,233,139,108,36,48,131,189,233,0,15,132,244,247,137,
666 20,202,137,252,233,232,251,1,29,139,149,233,248,1,139,6,15,182,204,15,182, 666 149,233,141,20,202,137,252,233,232,251,1,29,139,149,233,248,1,139,6,15,182,
667 232,131,198,4,193,232,16,252,255,36,171,255,252,247,208,139,74,252,248,139, 667 204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,252,247,208,139,74,
668 4,135,139,108,36,48,137,76,36,8,137,68,36,4,137,44,36,137,149,233,137,116, 668 252,248,139,4,135,139,108,36,48,137,76,36,8,137,68,36,4,137,44,36,137,149,
669 36,24,232,251,1,30,139,149,233,15,182,78,252,253,137,4,202,199,68,202,4,237, 669 233,137,116,36,24,232,251,1,30,139,149,233,15,182,78,252,253,137,4,202,199,
670 139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,139,108,
671 36,48,137,149,233,139,139,233,59,139,233,137,116,36,24,15,131,244,251,248,
672 1,137,193,37,252,255,7,0,0,193,252,233,11,137,76,36,8,61,252,255,7,0,0,15,
673 132,244,249,248,2,137,44,36,137,68,36,4,232,251,1,31,139,149,233,15,182,78,
674 252,253,137,4,202,199,68,202,4,237,139,6,15,182,204,15,182,232,131,198,4,
675 193,232,16,252,255,36,171,248,3,184,1,8,0,0,252,233,244,2,248,5,137,252,233,
676 232,251,1,32,15,183,70,252,254,252,233,244,1,255,252,247,208,139,108,36,48,
677 139,139,233,137,116,36,24,59,139,233,137,149,233,15,131,244,249,248,2,139,
678 20,135,137,252,233,232,251,1,33,139,149,233,15,182,78,252,253,137,4,202,199,
679 68,202,4,237,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36, 670 68,202,4,237,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,
680 171,248,3,137,252,233,232,251,1,32,15,183,70,252,254,252,247,208,252,233, 671 171,255,139,108,36,48,137,149,233,139,139,233,59,139,233,137,116,36,24,15,
681 244,2,255,252,247,208,139,106,252,248,139,173,233,139,4,135,252,233,244,163, 672 131,244,251,248,1,137,193,37,252,255,7,0,0,193,252,233,11,137,76,36,8,61,
682 255,252,247,208,139,106,252,248,139,173,233,139,4,135,252,233,244,164,255, 673 252,255,7,0,0,15,132,244,249,248,2,137,44,36,137,68,36,4,232,251,1,31,139,
683 15,182,252,236,15,182,192,129,124,253,252,234,4,239,15,133,244,36,139,44, 674 149,233,15,182,78,252,253,137,4,202,199,68,202,4,237,139,6,15,182,204,15,
684 252,234,255,129,124,253,194,4,239,15,133,244,251,139,4,194,255,129,124,253, 675 182,232,131,198,4,193,232,16,252,255,36,171,248,3,184,1,8,0,0,252,233,244,
685 194,4,239,15,131,244,251,255,252,242,15,16,4,194,252,242,15,45,192,252,242, 676 2,248,5,137,252,233,232,251,1,32,15,183,70,252,254,252,233,244,1,255,252,
686 15,42,200,102,15,46,193,255,221,4,194,219,20,36,219,4,36,255,15,133,244,36, 677 247,208,139,108,36,48,139,139,233,137,116,36,24,59,139,233,137,149,233,15,
687 255,59,133,233,15,131,244,36,193,224,3,3,133,233,129,120,253,4,239,15,132, 678 131,244,249,248,2,139,20,135,137,252,233,232,251,1,33,139,149,233,15,182,
688 244,248,139,40,139,64,4,137,44,202,137,68,202,4,248,1,139,6,15,182,204,15, 679 78,252,253,137,4,202,199,68,202,4,237,139,6,15,182,204,15,182,232,131,198,
689 182,232,131,198,4,193,232,16,252,255,36,171,248,2,131,189,233,0,15,132,244, 680 4,193,232,16,252,255,36,171,248,3,137,252,233,232,251,1,32,15,183,70,252,
690 249,139,141,233,252,246,129,233,235,15,132,244,36,15,182,78,252,253,248,3, 681 254,252,247,208,252,233,244,2,255,252,247,208,139,106,252,248,139,173,233,
691 199,68,202,4,237,252,233,244,1,248,5,255,129,124,253,194,4,239,15,133,244, 682 139,4,135,252,233,244,163,255,252,247,208,139,106,252,248,139,173,233,139,
692 36,139,4,194,252,233,244,163,255,15,182,252,236,15,182,192,252,247,208,139, 683 4,135,252,233,244,164,255,15,182,252,236,15,182,192,129,124,253,252,234,4,
693 4,135,129,124,253,252,234,4,239,15,133,244,34,139,44,252,234,248,163,139, 684 239,15,133,244,36,139,44,252,234,255,129,124,253,194,4,239,15,133,244,251,
694 141,233,35,136,233,105,201,239,3,141,233,248,1,129,185,233,239,15,133,244, 685 139,4,194,255,129,124,253,194,4,239,15,131,244,251,255,252,242,15,16,4,194,
695 250,57,129,233,15,133,244,250,129,121,253,4,239,15,132,244,251,15,182,70, 686 252,242,15,45,192,252,242,15,42,200,102,15,46,193,255,221,4,194,219,20,36,
696 252,253,139,41,139,73,4,137,44,194,137,76,194,4,248,2,255,139,6,15,182,204, 687 219,4,36,255,15,133,244,36,255,59,133,233,15,131,244,36,193,224,3,3,133,233,
697 15,182,232,131,198,4,193,232,16,252,255,36,171,248,3,15,182,70,252,253,199, 688 129,120,253,4,239,15,132,244,248,139,40,139,64,4,137,44,202,137,68,202,4,
698 68,194,4,237,252,233,244,2,248,4,139,137,233,133,201,15,133,244,1,248,5,139, 689 248,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,
699 141,233,133,201,15,132,244,3,252,246,129,233,235,15,133,244,3,252,233,244, 690 2,131,189,233,0,15,132,244,249,139,141,233,252,246,129,233,235,15,132,244,
700 34,255,15,182,252,236,15,182,192,129,124,253,252,234,4,239,15,133,244,35, 691 36,15,182,78,252,253,248,3,199,68,202,4,237,252,233,244,1,248,5,255,129,124,
701 139,44,252,234,59,133,233,15,131,244,35,193,224,3,3,133,233,129,120,253,4, 692 253,194,4,239,15,133,244,36,139,4,194,252,233,244,163,255,15,182,252,236,
702 239,15,132,244,248,139,40,139,64,4,137,44,202,137,68,202,4,248,1,139,6,15, 693 15,182,192,252,247,208,139,4,135,129,124,253,252,234,4,239,15,133,244,34,
703 182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,2,131,189,233, 694 139,44,252,234,248,163,139,141,233,35,136,233,105,201,239,3,141,233,248,1,
704 0,15,132,244,249,139,141,233,252,246,129,233,235,15,132,244,35,255,15,182, 695 129,185,233,239,15,133,244,250,57,129,233,15,133,244,250,129,121,253,4,239,
705 78,252,253,248,3,199,68,202,4,237,252,233,244,1,255,15,182,252,236,15,182, 696 15,132,244,251,15,182,70,252,253,139,41,139,73,4,137,44,194,137,76,194,4,
706 192,129,124,253,252,234,4,239,15,133,244,39,139,44,252,234,255,15,133,244, 697 248,2,255,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,
707 39,255,59,133,233,15,131,244,39,193,224,3,3,133,233,129,120,253,4,239,15, 698 248,3,15,182,70,252,253,199,68,194,4,237,252,233,244,2,248,4,139,137,233,
708 132,244,249,248,1,252,246,133,233,235,15,133,244,253,248,2,139,108,202,4, 699 133,201,15,133,244,1,248,5,139,141,233,133,201,15,132,244,3,252,246,129,233,
709 139,12,202,137,104,4,137,8,139,6,15,182,204,15,182,232,131,198,4,193,232, 700 235,15,133,244,3,252,233,244,34,255,15,182,252,236,15,182,192,129,124,253,
710 16,252,255,36,171,248,3,131,189,233,0,15,132,244,1,139,141,233,252,246,129, 701 252,234,4,239,15,133,244,35,139,44,252,234,59,133,233,15,131,244,35,193,224,
711 233,235,255,15,132,244,39,15,182,78,252,253,252,233,244,1,248,5,129,124,253, 702 3,3,133,233,129,120,253,4,239,15,132,244,248,139,40,139,64,4,137,44,202,137,
712 194,4,239,15,133,244,39,139,4,194,252,233,244,164,248,7,128,165,233,235,139, 703 68,202,4,248,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,
713 139,233,137,171,233,137,141,233,15,182,78,252,253,252,233,244,2,255,15,182, 704 171,248,2,131,189,233,0,15,132,244,249,139,141,233,252,246,129,233,235,15,
714 252,236,15,182,192,252,247,208,139,4,135,129,124,253,252,234,4,239,15,133, 705 132,244,35,255,15,182,78,252,253,248,3,199,68,202,4,237,252,233,244,1,255,
715 244,37,139,44,252,234,248,164,139,141,233,35,136,233,105,201,239,198,133, 706 15,182,252,236,15,182,192,129,124,253,252,234,4,239,15,133,244,39,139,44,
716 233,0,3,141,233,248,1,129,185,233,239,15,133,244,251,57,129,233,15,133,244, 707 252,234,255,15,133,244,39,255,59,133,233,15,131,244,39,193,224,3,3,133,233,
717 251,129,121,253,4,239,15,132,244,250,248,2,255,252,246,133,233,235,15,133, 708 129,120,253,4,239,15,132,244,249,248,1,252,246,133,233,235,15,133,244,253,
718 244,253,248,3,15,182,70,252,253,139,108,194,4,139,4,194,137,105,4,137,1,139, 709 248,2,139,108,202,4,139,12,202,137,104,4,137,8,139,6,15,182,204,15,182,232,
719 6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,4,131,189, 710 131,198,4,193,232,16,252,255,36,171,248,3,131,189,233,0,15,132,244,1,139,
720 233,0,15,132,244,2,137,76,36,16,139,141,233,252,246,129,233,235,15,132,244, 711 141,233,252,246,129,233,235,255,15,132,244,39,15,182,78,252,253,252,233,244,
721 37,139,76,36,16,252,233,244,2,248,5,139,137,233,133,201,15,133,244,1,255, 712 1,248,5,129,124,253,194,4,239,15,133,244,39,139,4,194,252,233,244,164,248,
722 139,141,233,133,201,15,132,244,252,252,246,129,233,235,15,132,244,37,248, 713 7,128,165,233,235,139,139,233,137,171,233,137,141,233,15,182,78,252,253,252,
723 6,137,68,36,16,199,68,36,20,237,137,108,36,12,141,68,36,16,137,108,36,4,139, 714 233,244,2,255,15,182,252,236,15,182,192,252,247,208,139,4,135,129,124,253,
724 108,36,48,137,68,36,8,137,44,36,137,149,233,137,116,36,24,232,251,1,34,139, 715 252,234,4,239,15,133,244,37,139,44,252,234,248,164,139,141,233,35,136,233,
725 149,233,139,108,36,12,137,193,252,233,244,2,248,7,128,165,233,235,139,131, 716 105,201,239,198,133,233,0,3,141,233,248,1,129,185,233,239,15,133,244,251,
726 233,137,171,233,137,133,233,252,233,244,3,255,15,182,252,236,15,182,192,129, 717 57,129,233,15,133,244,251,129,121,253,4,239,15,132,244,250,248,2,255,252,
727 124,253,252,234,4,239,15,133,244,38,139,44,252,234,59,133,233,15,131,244, 718 246,133,233,235,15,133,244,253,248,3,15,182,70,252,253,139,108,194,4,139,
728 38,193,224,3,3,133,233,129,120,253,4,239,15,132,244,249,248,1,252,246,133, 719 4,194,137,105,4,137,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,
729 233,235,15,133,244,253,248,2,139,108,202,4,139,12,202,137,104,4,137,8,139, 720 255,36,171,248,4,131,189,233,0,15,132,244,2,137,76,36,16,139,141,233,252,
730 6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,3,131,189, 721 246,129,233,235,15,132,244,37,139,76,36,16,252,233,244,2,248,5,139,137,233,
731 233,0,15,132,244,1,255,139,141,233,252,246,129,233,235,15,132,244,38,15,182, 722 133,201,15,133,244,1,255,139,141,233,133,201,15,132,244,252,252,246,129,233,
732 78,252,253,252,233,244,1,248,7,128,165,233,235,139,139,233,137,171,233,137, 723 235,15,132,244,37,248,6,137,68,36,16,199,68,36,20,237,137,108,36,12,141,68,
733 141,233,15,182,78,252,253,252,233,244,2,255,137,124,36,16,139,60,199,248, 724 36,16,137,108,36,4,139,108,36,48,137,68,36,8,137,44,36,137,149,233,137,116,
734 1,141,12,202,139,105,252,248,252,246,133,233,235,15,133,244,253,248,2,139, 725 36,24,232,251,1,34,139,149,233,139,108,36,12,137,193,252,233,244,2,248,7,
735 68,36,20,131,232,1,15,132,244,250,1,252,248,59,133,233,15,135,244,251,41, 726 128,165,233,235,139,131,233,137,171,233,137,133,233,252,233,244,3,255,15,
736 252,248,193,231,3,3,189,233,248,3,139,41,137,47,139,105,4,131,193,8,137,111, 727 182,252,236,15,182,192,129,124,253,252,234,4,239,15,133,244,38,139,44,252,
737 4,131,199,8,131,232,1,15,133,244,3,248,4,139,124,36,16,139,6,15,182,204,15, 728 234,59,133,233,15,131,244,38,193,224,3,3,133,233,129,120,253,4,239,15,132,
738 182,232,131,198,4,193,232,16,252,255,36,171,248,5,137,108,36,4,139,108,36, 729 244,249,248,1,252,246,133,233,235,15,133,244,253,248,2,139,108,202,4,139,
739 48,137,149,233,137,68,36,8,137,44,36,137,116,36,24,232,251,1,35,139,149,233, 730 12,202,137,104,4,137,8,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,
740 15,182,78,252,253,252,233,244,1,248,7,255,128,165,233,235,139,131,233,137, 731 255,36,171,248,3,131,189,233,0,15,132,244,1,255,139,141,233,252,246,129,233,
741 171,233,137,133,233,252,233,244,2,255,3,68,36,20,255,129,124,253,202,4,239, 732 235,15,132,244,38,15,182,78,252,253,252,233,244,1,248,7,128,165,233,235,139,
742 139,44,202,15,133,244,55,141,84,202,8,137,114,252,252,139,181,233,139,14, 733 139,233,137,171,233,137,141,233,15,182,78,252,253,252,233,244,2,255,137,124,
743 15,182,252,233,15,182,205,131,198,4,252,255,36,171,255,141,76,202,8,137,215, 734 36,16,139,60,199,248,1,141,12,202,139,105,252,248,252,246,133,233,235,15,
744 139,105,252,248,129,121,253,252,252,239,15,133,244,28,248,56,139,114,252, 735 133,244,253,248,2,139,68,36,20,131,232,1,15,132,244,250,1,252,248,59,133,
745 252,252,247,198,237,15,133,244,253,248,1,137,106,252,248,137,68,36,20,131, 736 233,15,135,244,251,41,252,248,193,231,3,3,189,233,248,3,139,41,137,47,139,
746 232,1,15,132,244,249,248,2,139,41,137,47,139,105,4,131,193,8,137,111,4,131, 737 105,4,131,193,8,137,111,4,131,199,8,131,232,1,15,133,244,3,248,4,139,124,
747 199,8,131,232,1,15,133,244,2,139,106,252,248,248,3,139,68,36,20,128,189,233, 738 36,16,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,
748 1,15,135,244,251,248,4,139,181,233,139,14,15,182,252,233,15,182,205,131,198, 739 5,137,108,36,4,139,108,36,48,137,149,233,137,68,36,8,137,44,36,137,116,36,
749 4,252,255,36,171,248,5,255,252,247,198,237,15,133,244,4,15,182,78,252,253, 740 24,232,251,1,35,139,149,233,15,182,78,252,253,252,233,244,1,248,7,255,128,
750 252,247,209,141,12,202,139,121,252,248,139,191,233,139,191,233,252,233,244, 741 165,233,235,139,131,233,137,171,233,137,133,233,252,233,244,2,255,3,68,36,
751 4,248,7,129,252,238,239,252,247,198,237,15,133,244,254,41,252,242,137,215, 742 20,255,129,124,253,202,4,239,139,44,202,15,133,244,55,141,84,202,8,137,114,
752 139,114,252,252,252,233,244,1,248,8,129,198,239,252,233,244,1,255,141,76, 743 252,252,139,181,233,139,14,15,182,252,233,15,182,205,131,198,4,252,255,36,
753 202,8,139,105,232,139,65,252,236,137,41,137,65,4,139,105,252,240,139,65,252, 744 171,255,141,76,202,8,137,215,139,105,252,248,129,121,253,252,252,239,15,133,
754 244,137,105,8,137,65,12,139,105,224,139,65,228,137,105,252,248,137,65,252, 745 244,28,248,56,139,114,252,252,252,247,198,237,15,133,244,253,248,1,137,106,
755 252,129,252,248,239,184,237,15,133,244,28,137,202,137,114,252,252,139,181, 746 252,248,137,68,36,20,131,232,1,15,132,244,249,248,2,139,41,137,47,139,105,
756 233,139,14,15,182,252,233,15,182,205,131,198,4,252,255,36,171,255,137,124, 747 4,131,193,8,137,111,4,131,199,8,131,232,1,15,133,244,2,139,106,252,248,248,
757 36,16,137,92,36,20,139,108,202,252,240,139,68,202,252,248,139,157,233,131, 748 3,139,68,36,20,128,189,233,1,15,135,244,251,248,4,139,181,233,139,14,15,182,
758 198,4,139,189,233,248,1,57,216,15,131,244,251,129,124,253,199,4,239,15,132, 749 252,233,15,182,205,131,198,4,252,255,36,171,248,5,255,252,247,198,237,15,
759 244,250,255,219,68,202,252,248,255,139,108,199,4,137,108,202,12,139,44,199, 750 133,244,4,15,182,78,252,253,252,247,209,141,12,202,139,121,252,248,139,191,
760 137,108,202,8,131,192,1,255,137,68,202,252,248,248,2,15,183,70,252,254,141, 751 233,139,191,233,252,233,244,4,248,7,129,252,238,239,252,247,198,237,15,133,
761 180,253,134,233,248,3,139,92,36,20,139,124,36,16,139,6,15,182,204,15,182, 752 244,254,41,252,242,137,215,139,114,252,252,252,233,244,1,248,8,129,198,239,
762 232,131,198,4,193,232,16,252,255,36,171,248,4,131,192,1,255,137,68,202,252, 753 252,233,244,1,255,141,76,202,8,139,105,232,139,65,252,236,137,41,137,65,4,
763 248,255,252,233,244,1,248,5,41,216,248,6,59,133,233,15,135,244,3,105,252, 754 139,105,252,240,139,65,252,244,137,105,8,137,65,12,139,105,224,139,65,228,
764 248,239,3,189,233,129,191,233,239,15,132,244,253,141,92,24,1,139,175,233, 755 137,105,252,248,137,65,252,252,129,252,248,239,184,237,15,133,244,28,137,
765 139,135,233,137,44,202,137,68,202,4,139,175,233,139,135,233,137,108,202,8, 756 202,137,114,252,252,139,181,233,139,14,15,182,252,233,15,182,205,131,198,
766 137,68,202,12,137,92,202,252,248,252,233,244,2,248,7,255,131,192,1,252,233, 757 4,252,255,36,171,255,137,124,36,16,137,92,36,20,139,108,202,252,240,139,68,
767 244,6,255,129,124,253,202,252,236,239,15,133,244,251,139,108,202,232,129, 758 202,252,248,139,157,233,131,198,4,139,189,233,248,1,57,216,15,131,244,251,
768 124,253,202,252,244,239,15,133,244,251,129,124,253,202,252,252,239,15,133, 759 129,124,253,199,4,239,15,132,244,250,255,219,68,202,252,248,255,139,108,199,
769 244,251,128,189,233,235,15,133,244,251,141,180,253,134,233,199,68,202,252, 760 4,137,108,202,12,139,44,199,137,108,202,8,131,192,1,255,137,68,202,252,248,
770 248,0,0,0,0,248,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255, 761 248,2,15,183,70,252,254,141,180,253,134,233,248,3,139,92,36,20,139,124,36,
771 36,171,248,5,198,70,252,252,235,141,180,253,134,233,198,6,235,252,233,244, 762 16,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,4,
772 1,255,15,182,252,236,15,182,192,137,124,36,16,141,188,253,194,233,141,12, 763 131,192,1,255,137,68,202,252,248,255,252,233,244,1,248,5,41,216,248,6,59,
773 202,43,122,252,252,133,252,237,15,132,244,251,141,108,252,233,252,248,57, 764 133,233,15,135,244,3,105,252,248,239,3,189,233,129,191,233,239,15,132,244,
774 215,15,131,244,248,248,1,139,71,252,248,137,1,139,71,252,252,131,199,8,137, 765 253,141,92,24,1,139,175,233,139,135,233,137,44,202,137,68,202,4,139,175,233,
775 65,4,131,193,8,57,252,233,15,131,244,249,57,215,15,130,244,1,248,2,199,65, 766 139,135,233,137,108,202,8,137,68,202,12,137,92,202,252,248,252,233,244,2,
776 4,237,131,193,8,57,252,233,15,130,244,2,248,3,139,124,36,16,139,6,15,182, 767 248,7,255,131,192,1,252,233,244,6,255,129,124,253,202,252,236,239,15,133,
777 204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,5,199,68,36,20,1,0, 768 244,251,139,108,202,232,129,124,253,202,252,244,239,15,133,244,251,129,124,
778 0,0,137,208,41,252,248,15,134,244,3,137,197,193,252,237,3,131,197,1,137,108, 769 253,202,252,252,239,15,133,244,251,128,189,233,235,15,133,244,251,141,180,
779 36,20,139,108,36,48,1,200,59,133,233,15,135,244,253,248,6,255,139,71,252, 770 253,134,233,199,68,202,252,248,0,0,0,0,248,1,139,6,15,182,204,15,182,232,
780 248,137,1,139,71,252,252,131,199,8,137,65,4,131,193,8,57,215,15,130,244,6, 771 131,198,4,193,232,16,252,255,36,171,248,5,198,70,252,252,235,141,180,253,
781 252,233,244,3,248,7,137,149,233,137,141,233,137,116,36,24,41,215,139,84,36, 772 134,233,198,6,235,252,233,244,1,255,15,182,252,236,15,182,192,137,124,36,
782 20,131,252,234,1,137,252,233,232,251,1,0,139,149,233,139,141,233,1,215,252, 773 16,141,188,253,194,233,141,12,202,43,122,252,252,133,252,237,15,132,244,251,
783 233,244,6,255,193,225,3,255,248,1,139,114,252,252,137,68,36,20,252,247,198, 774 141,108,252,233,252,248,57,215,15,131,244,248,248,1,139,71,252,248,137,1,
784 237,15,133,244,253,255,248,13,137,215,131,232,1,15,132,244,249,248,2,139, 775 139,71,252,252,131,199,8,137,65,4,131,193,8,57,252,233,15,131,244,249,57,
785 44,15,137,111,252,248,139,108,15,4,137,111,252,252,131,199,8,131,232,1,15, 776 215,15,130,244,1,248,2,199,65,4,237,131,193,8,57,252,233,15,130,244,2,248,
786 133,244,2,248,3,139,68,36,20,15,182,110,252,255,248,5,57,197,15,135,244,252, 777 3,139,124,36,16,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,
787 255,139,108,10,4,137,106,252,252,139,44,10,137,106,252,248,255,248,5,56,70, 778 36,171,248,5,199,68,36,20,1,0,0,0,137,208,41,252,248,15,134,244,3,137,197,
788 252,255,15,135,244,252,255,15,182,78,252,253,252,247,209,141,20,202,139,122, 779 193,252,237,3,131,197,1,137,108,36,20,139,108,36,48,1,200,59,133,233,15,135,
789 252,248,139,191,233,139,191,233,139,6,15,182,204,15,182,232,131,198,4,193, 780 244,253,248,6,255,139,71,252,248,137,1,139,71,252,252,131,199,8,137,65,4,
790 232,16,252,255,36,171,248,6,255,199,71,252,252,237,131,199,8,255,199,68,194, 781 131,193,8,57,215,15,130,244,6,252,233,244,3,248,7,137,149,233,137,141,233,
791 252,244,237,255,131,192,1,252,233,244,5,248,7,141,174,233,252,247,197,237, 782 137,116,36,24,41,215,139,84,36,20,131,252,234,1,137,252,233,232,251,1,0,139,
792 15,133,244,14,41,252,234,255,1,252,233,255,137,252,245,209,252,237,129,229, 783 149,233,139,141,233,1,215,252,233,244,6,255,193,225,3,255,248,1,139,114,252,
793 239,102,131,172,253,43,233,1,15,132,244,145,255,141,12,202,255,129,121,253, 784 252,137,68,36,20,252,247,198,237,15,133,244,253,255,248,13,137,215,131,232,
794 4,239,15,133,244,255,255,129,121,253,12,239,15,133,244,57,129,121,253,20, 785 1,15,132,244,249,248,2,139,44,15,137,111,252,248,139,108,15,4,137,111,252,
795 239,15,133,244,57,139,41,131,121,16,0,15,140,244,251,255,139,105,16,133,252, 786 252,131,199,8,131,232,1,15,133,244,2,248,3,139,68,36,20,15,182,110,252,255,
796 237,15,136,244,251,3,41,15,128,244,247,137,41,255,59,105,8,199,65,28,237, 787 248,5,57,197,15,135,244,252,255,139,108,10,4,137,106,252,252,139,44,10,137,
797 137,105,24,255,15,142,244,253,248,1,248,6,141,180,253,134,233,255,141,180, 788 106,252,248,255,248,5,56,70,252,255,15,135,244,252,255,15,182,78,252,253,
798 253,134,233,15,183,70,252,254,15,142,245,248,1,248,6,255,15,143,244,253,248, 789 252,247,209,141,20,202,139,122,252,248,139,191,233,139,191,233,139,6,15,182,
799 6,141,180,253,134,233,248,1,255,248,7,139,6,15,182,204,15,182,232,131,198, 790 204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,6,255,199,71,252,252,
800 4,193,232,16,252,255,36,171,248,5,255,3,41,15,128,244,1,137,41,255,15,141, 791 237,131,199,8,255,199,68,194,252,244,237,255,131,192,1,252,233,244,5,248,
801 244,7,255,141,180,253,134,233,15,183,70,252,254,15,141,245,255,15,140,244, 792 7,141,174,233,252,247,197,237,15,133,244,14,41,252,234,255,1,252,233,255,
802 7,255,252,233,244,6,248,9,255,129,121,253,4,239,255,15,131,244,57,129,121, 793 137,252,245,209,252,237,129,229,239,102,131,172,253,43,233,1,15,132,244,145,
803 253,12,239,15,131,244,57,255,139,105,20,255,129,252,253,239,15,131,244,57, 794 255,141,12,202,255,129,121,253,4,239,15,133,244,255,255,129,121,253,12,239,
804 255,252,242,15,16,1,252,242,15,16,73,8,255,252,242,15,88,65,16,252,242,15, 795 15,133,244,57,129,121,253,20,239,15,133,244,57,139,41,131,121,16,0,15,140,
805 17,1,133,252,237,15,136,244,249,255,15,140,244,249,255,102,15,46,200,248, 796 244,251,255,139,105,16,133,252,237,15,136,244,251,3,41,15,128,244,247,137,
806 1,252,242,15,17,65,24,255,221,65,8,221,1,255,220,65,16,221,17,221,81,24,133, 797 41,255,59,105,8,199,65,28,237,137,105,24,255,15,142,244,253,248,1,248,6,141,
807 252,237,15,136,244,247,255,221,81,24,15,140,244,247,255,217,201,248,1,255, 798 180,253,134,233,255,141,180,253,134,233,15,183,70,252,254,15,142,245,248,
808 15,183,70,252,254,255,15,131,244,7,255,15,131,244,248,141,180,253,134,233, 799 1,248,6,255,15,143,244,253,248,6,141,180,253,134,233,248,1,255,248,7,139,
809 255,141,180,253,134,233,15,183,70,252,254,15,131,245,255,15,130,244,7,255, 800 6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,5,255,3,41,
810 15,130,244,248,141,180,253,134,233,255,248,3,102,15,46,193,252,233,244,1, 801 15,128,244,1,137,41,255,15,141,244,7,255,141,180,253,134,233,15,183,70,252,
811 255,141,12,202,139,105,4,129,252,253,239,15,132,244,247,255,137,105,252,252, 802 254,15,141,245,255,15,140,244,7,255,252,233,244,6,248,9,255,129,121,253,4,
812 139,41,137,105,252,248,252,233,245,255,141,180,253,134,233,139,1,137,105, 803 239,255,15,131,244,57,129,121,253,12,239,15,131,244,57,255,139,105,20,255,
813 252,252,137,65,252,248,255,139,139,233,139,4,129,139,128,233,139,108,36,48, 804 129,252,253,239,15,131,244,57,255,252,242,15,16,1,252,242,15,16,73,8,255,
814 137,147,233,137,171,233,252,255,224,255,141,180,253,134,233,139,6,15,182, 805 252,242,15,88,65,16,252,242,15,17,1,133,252,237,15,136,244,249,255,15,140,
815 204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,137,252,245,209,252, 806 244,249,255,102,15,46,200,248,1,252,242,15,17,65,24,255,221,65,8,221,1,255,
816 237,129,229,239,102,131,172,253,43,233,1,15,132,244,147,255,139,190,233,139, 807 220,65,16,221,17,221,81,24,133,252,237,15,136,244,247,255,221,81,24,15,140,
817 108,36,48,141,12,202,59,141,233,15,135,244,23,15,182,142,233,57,200,15,134, 808 244,247,255,217,201,248,1,255,15,183,70,252,254,255,15,131,244,7,255,15,131,
818 244,249,248,2,255,15,183,70,252,254,252,233,245,255,248,3,199,68,194,252, 809 244,248,141,180,253,134,233,255,141,180,253,134,233,15,183,70,252,254,15,
819 252,237,131,192,1,57,200,15,134,244,3,252,233,244,2,255,141,44,197,237,141, 810 131,245,255,15,130,244,7,255,15,130,244,248,141,180,253,134,233,255,248,3,
820 4,194,139,122,252,248,137,104,252,252,137,120,252,248,139,108,36,48,141,12, 811 102,15,46,193,252,233,244,1,255,141,12,202,139,105,4,129,252,253,239,15,132,
821 200,59,141,233,15,135,244,22,137,209,137,194,15,182,174,233,133,252,237,15, 812 244,247,255,137,105,252,252,139,41,137,105,252,248,252,233,245,255,141,180,
822 132,244,248,248,1,131,193,8,57,209,15,131,244,249,139,121,252,248,137,56, 813 253,134,233,139,1,137,105,252,252,137,65,252,248,255,139,139,233,139,4,129,
823 139,121,252,252,137,120,4,131,192,8,199,65,252,252,237,131,252,237,1,15,133, 814 139,128,233,139,108,36,48,137,147,233,137,171,233,252,255,224,255,141,180,
824 244,1,248,2,255,139,190,233,139,6,15,182,204,15,182,232,131,198,4,193,232, 815 253,134,233,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,
825 16,252,255,36,171,255,248,3,199,64,4,237,131,192,8,131,252,237,1,15,133,244, 816 255,137,252,245,209,252,237,129,229,239,102,131,172,253,43,233,1,15,132,244,
826 3,252,233,244,2,255,139,106,252,248,139,189,233,139,108,36,48,141,68,194, 817 147,255,139,190,233,139,108,36,48,141,12,202,59,141,233,15,135,244,23,15,
827 252,248,137,149,233,141,136,233,59,141,233,137,133,233,255,137,44,36,255, 818 182,142,233,57,200,15,134,244,249,248,2,255,15,183,70,252,254,252,233,245,
828 137,124,36,4,137,44,36,255,15,135,244,21,199,131,233,237,255,252,255,215, 819 255,248,3,199,68,194,252,252,237,131,192,1,57,200,15,134,244,3,252,233,244,
829 255,252,255,147,233,255,199,131,233,237,139,149,233,141,12,194,252,247,217, 820 2,255,141,44,197,237,141,4,194,139,122,252,248,137,104,252,252,137,120,252,
830 3,141,233,139,114,252,252,252,233,244,12,255,254,0 821 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,
823 249,139,121,252,248,137,56,139,121,252,252,137,120,4,131,192,8,199,65,252,
824 252,237,131,252,237,1,15,133,244,1,248,2,255,139,190,233,139,6,15,182,204,
825 15,182,232,131,198,4,193,232,16,252,255,36,171,255,248,3,199,64,4,237,131,
826 192,8,131,252,237,1,15,133,244,3,252,233,244,2,255,139,106,252,248,139,189,
827 233,139,108,36,48,141,68,194,252,248,137,149,233,141,136,233,59,141,233,137,
828 133,233,255,137,44,36,255,137,124,36,4,137,44,36,255,15,135,244,21,199,131,
829 233,237,255,252,255,215,255,252,255,147,233,255,199,131,233,237,139,149,233,
830 141,12,194,252,247,217,3,141,233,139,114,252,252,252,233,244,12,255,254,0
831}; 831};
832 832
833enum { 833enum {
@@ -2199,31 +2199,30 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2199 } else { 2199 } else {
2200 dasm_put(Dst, 3905); 2200 dasm_put(Dst, 3905);
2201 } 2201 }
2202 dasm_put(Dst, 4818);
2203 } 2202 }
2204 goto iseqne_fp; 2203 goto iseqne_fp;
2205 case BC_ISEQP: case BC_ISNEP: 2204 case BC_ISEQP: case BC_ISNEP:
2206 vk = op == BC_ISEQP; 2205 vk = op == BC_ISEQP;
2207 dasm_put(Dst, 11752); 2206 dasm_put(Dst, 11754);
2208 if (!LJ_HASFFI) goto iseqne_test; 2207 if (!LJ_HASFFI) goto iseqne_test;
2209 if (vk) { 2208 if (vk) {
2210 dasm_put(Dst, 11765, -BCBIAS_J*4, LJ_TCDATA); 2209 dasm_put(Dst, 11767, -BCBIAS_J*4, LJ_TCDATA);
2211 } else { 2210 } else {
2212 dasm_put(Dst, 11814, LJ_TCDATA, -BCBIAS_J*4); 2211 dasm_put(Dst, 11816, LJ_TCDATA, -BCBIAS_J*4);
2213 } 2212 }
2214 break; 2213 break;
2215 2214
2216 /* -- Unary test and copy ops ------------------------------------------- */ 2215 /* -- Unary test and copy ops ------------------------------------------- */
2217 2216
2218 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF: 2217 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF:
2219 dasm_put(Dst, 11857, LJ_TISTRUECOND); 2218 dasm_put(Dst, 11859, LJ_TISTRUECOND);
2220 if (op == BC_IST || op == BC_ISTC) { 2219 if (op == BC_IST || op == BC_ISTC) {
2221 dasm_put(Dst, 11183); 2220 dasm_put(Dst, 11183);
2222 } else { 2221 } else {
2223 dasm_put(Dst, 11178); 2222 dasm_put(Dst, 11178);
2224 } 2223 }
2225 if (op == BC_ISTC || op == BC_ISFC) { 2224 if (op == BC_ISTC || op == BC_ISFC) {
2226 dasm_put(Dst, 11869); 2225 dasm_put(Dst, 11871);
2227 } 2226 }
2228 dasm_put(Dst, 11188, -BCBIAS_J*4); 2227 dasm_put(Dst, 11188, -BCBIAS_J*4);
2229 break; 2228 break;
@@ -2231,21 +2230,21 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2231 /* -- Unary ops --------------------------------------------------------- */ 2230 /* -- Unary ops --------------------------------------------------------- */
2232 2231
2233 case BC_MOV: 2232 case BC_MOV:
2234 dasm_put(Dst, 11880); 2233 dasm_put(Dst, 11882);
2235 break; 2234 break;
2236 case BC_NOT: 2235 case BC_NOT:
2237 dasm_put(Dst, 11913, LJ_TISTRUECOND, LJ_TTRUE); 2236 dasm_put(Dst, 11915, LJ_TISTRUECOND, LJ_TTRUE);
2238 break; 2237 break;
2239 case BC_UNM: 2238 case BC_UNM:
2240 if (LJ_DUALNUM) { 2239 if (LJ_DUALNUM) {
2241 dasm_put(Dst, 11948, LJ_TISNUM, LJ_TISNUM); 2240 dasm_put(Dst, 11950, LJ_TISNUM, LJ_TISNUM);
2242 } else { 2241 } else {
2243 dasm_put(Dst, 12024, LJ_TISNUM); 2242 dasm_put(Dst, 12026, LJ_TISNUM);
2244 } 2243 }
2245 if (sse) { 2244 if (sse) {
2246 dasm_put(Dst, 12035); 2245 dasm_put(Dst, 12037);
2247 } else { 2246 } else {
2248 dasm_put(Dst, 12065); 2247 dasm_put(Dst, 12067);
2249 } 2248 }
2250 if (LJ_DUALNUM) { 2249 if (LJ_DUALNUM) {
2251 dasm_put(Dst, 11457); 2250 dasm_put(Dst, 11457);
@@ -2254,22 +2253,22 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2254 } 2253 }
2255 break; 2254 break;
2256 case BC_LEN: 2255 case BC_LEN:
2257 dasm_put(Dst, 12074, LJ_TSTR); 2256 dasm_put(Dst, 12076, LJ_TSTR);
2258 if (LJ_DUALNUM) { 2257 if (LJ_DUALNUM) {
2259 dasm_put(Dst, 12088, Dt5(->len), LJ_TISNUM); 2258 dasm_put(Dst, 12090, Dt5(->len), LJ_TISNUM);
2260 } else if (sse) { 2259 } else if (sse) {
2261 dasm_put(Dst, 12102, Dt5(->len)); 2260 dasm_put(Dst, 12104, Dt5(->len));
2262 } else { 2261 } else {
2263 dasm_put(Dst, 12120, Dt5(->len)); 2262 dasm_put(Dst, 12122, Dt5(->len));
2264 } 2263 }
2265 dasm_put(Dst, 12129, LJ_TTAB); 2264 dasm_put(Dst, 12131, LJ_TTAB);
2266 if (LJ_DUALNUM) { 2265 if (LJ_DUALNUM) {
2267 } else if (sse) { 2266 } else if (sse) {
2268 dasm_put(Dst, 12169); 2267 dasm_put(Dst, 12171);
2269 } else { 2268 } else {
2270 dasm_put(Dst, 12175); 2269 dasm_put(Dst, 12177);
2271 } 2270 }
2272 dasm_put(Dst, 12182); 2271 dasm_put(Dst, 12184);
2273 break; 2272 break;
2274 2273
2275 /* -- Binary ops -------------------------------------------------------- */ 2274 /* -- Binary ops -------------------------------------------------------- */
@@ -2277,471 +2276,471 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2277 2276
2278 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV: 2277 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV:
2279 if (LJ_DUALNUM) { 2278 if (LJ_DUALNUM) {
2280 dasm_put(Dst, 12195); 2279 dasm_put(Dst, 12197);
2281 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2280 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2282 switch (vk) { 2281 switch (vk) {
2283 case 0: 2282 case 0:
2284 dasm_put(Dst, 12203, LJ_TISNUM, LJ_TISNUM); 2283 dasm_put(Dst, 12205, LJ_TISNUM, LJ_TISNUM);
2285 break; 2284 break;
2286 case 1: 2285 case 1:
2287 dasm_put(Dst, 12236, LJ_TISNUM, LJ_TISNUM); 2286 dasm_put(Dst, 12238, LJ_TISNUM, LJ_TISNUM);
2288 break; 2287 break;
2289 default: 2288 default:
2290 dasm_put(Dst, 12269, LJ_TISNUM, LJ_TISNUM); 2289 dasm_put(Dst, 12271, LJ_TISNUM, LJ_TISNUM);
2291 break; 2290 break;
2292 } 2291 }
2293 dasm_put(Dst, 12302, LJ_TISNUM); 2292 dasm_put(Dst, 12304, LJ_TISNUM);
2294 if (vk == 1) { 2293 if (vk == 1) {
2295 dasm_put(Dst, 12098); 2294 dasm_put(Dst, 12100);
2296 } else { 2295 } else {
2297 dasm_put(Dst, 11876); 2296 dasm_put(Dst, 11878);
2298 } 2297 }
2299 dasm_put(Dst, 11200); 2298 dasm_put(Dst, 11200);
2300 } else { 2299 } else {
2301 dasm_put(Dst, 12195); 2300 dasm_put(Dst, 12197);
2302 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2301 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2303 switch (vk) { 2302 switch (vk) {
2304 case 0: 2303 case 0:
2305 dasm_put(Dst, 12308, LJ_TISNUM); 2304 dasm_put(Dst, 12310, LJ_TISNUM);
2306 if (LJ_DUALNUM) { 2305 if (LJ_DUALNUM) {
2307 dasm_put(Dst, 12320, LJ_TISNUM); 2306 dasm_put(Dst, 12322, LJ_TISNUM);
2308 } 2307 }
2309 if (sse) { 2308 if (sse) {
2310 dasm_put(Dst, 12331); 2309 dasm_put(Dst, 12333);
2311 } else { 2310 } else {
2312 dasm_put(Dst, 12345); 2311 dasm_put(Dst, 12347);
2313 } 2312 }
2314 break; 2313 break;
2315 case 1: 2314 case 1:
2316 dasm_put(Dst, 12353, LJ_TISNUM); 2315 dasm_put(Dst, 12355, LJ_TISNUM);
2317 if (LJ_DUALNUM) { 2316 if (LJ_DUALNUM) {
2318 dasm_put(Dst, 12365, LJ_TISNUM); 2317 dasm_put(Dst, 12367, LJ_TISNUM);
2319 } 2318 }
2320 if (sse) { 2319 if (sse) {
2321 dasm_put(Dst, 12376); 2320 dasm_put(Dst, 12378);
2322 } else { 2321 } else {
2323 dasm_put(Dst, 12390); 2322 dasm_put(Dst, 12392);
2324 } 2323 }
2325 break; 2324 break;
2326 default: 2325 default:
2327 dasm_put(Dst, 12398, LJ_TISNUM, LJ_TISNUM); 2326 dasm_put(Dst, 12400, LJ_TISNUM, LJ_TISNUM);
2328 if (sse) { 2327 if (sse) {
2329 dasm_put(Dst, 12420); 2328 dasm_put(Dst, 12422);
2330 } else { 2329 } else {
2331 dasm_put(Dst, 12434); 2330 dasm_put(Dst, 12436);
2332 } 2331 }
2333 break; 2332 break;
2334 } 2333 }
2335 if (sse) { 2334 if (sse) {
2336 dasm_put(Dst, 12058); 2335 dasm_put(Dst, 12060);
2337 } else { 2336 } else {
2338 dasm_put(Dst, 12070); 2337 dasm_put(Dst, 12072);
2339 } 2338 }
2340 dasm_put(Dst, 11200); 2339 dasm_put(Dst, 11200);
2341 } 2340 }
2342 break; 2341 break;
2343 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV: 2342 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV:
2344 if (LJ_DUALNUM) { 2343 if (LJ_DUALNUM) {
2345 dasm_put(Dst, 12195); 2344 dasm_put(Dst, 12197);
2346 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2345 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2347 switch (vk) { 2346 switch (vk) {
2348 case 0: 2347 case 0:
2349 dasm_put(Dst, 12442, LJ_TISNUM, LJ_TISNUM); 2348 dasm_put(Dst, 12444, LJ_TISNUM, LJ_TISNUM);
2350 break; 2349 break;
2351 case 1: 2350 case 1:
2352 dasm_put(Dst, 12475, LJ_TISNUM, LJ_TISNUM); 2351 dasm_put(Dst, 12477, LJ_TISNUM, LJ_TISNUM);
2353 break; 2352 break;
2354 default: 2353 default:
2355 dasm_put(Dst, 12508, LJ_TISNUM, LJ_TISNUM); 2354 dasm_put(Dst, 12510, LJ_TISNUM, LJ_TISNUM);
2356 break; 2355 break;
2357 } 2356 }
2358 dasm_put(Dst, 12302, LJ_TISNUM); 2357 dasm_put(Dst, 12304, LJ_TISNUM);
2359 if (vk == 1) { 2358 if (vk == 1) {
2360 dasm_put(Dst, 12098); 2359 dasm_put(Dst, 12100);
2361 } else { 2360 } else {
2362 dasm_put(Dst, 11876); 2361 dasm_put(Dst, 11878);
2363 } 2362 }
2364 dasm_put(Dst, 11200); 2363 dasm_put(Dst, 11200);
2365 } else { 2364 } else {
2366 dasm_put(Dst, 12195); 2365 dasm_put(Dst, 12197);
2367 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2366 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2368 switch (vk) { 2367 switch (vk) {
2369 case 0: 2368 case 0:
2370 dasm_put(Dst, 12308, LJ_TISNUM); 2369 dasm_put(Dst, 12310, LJ_TISNUM);
2371 if (LJ_DUALNUM) { 2370 if (LJ_DUALNUM) {
2372 dasm_put(Dst, 12320, LJ_TISNUM); 2371 dasm_put(Dst, 12322, LJ_TISNUM);
2373 } 2372 }
2374 if (sse) { 2373 if (sse) {
2375 dasm_put(Dst, 12541); 2374 dasm_put(Dst, 12543);
2376 } else { 2375 } else {
2377 dasm_put(Dst, 12555); 2376 dasm_put(Dst, 12557);
2378 } 2377 }
2379 break; 2378 break;
2380 case 1: 2379 case 1:
2381 dasm_put(Dst, 12353, LJ_TISNUM); 2380 dasm_put(Dst, 12355, LJ_TISNUM);
2382 if (LJ_DUALNUM) { 2381 if (LJ_DUALNUM) {
2383 dasm_put(Dst, 12365, LJ_TISNUM); 2382 dasm_put(Dst, 12367, LJ_TISNUM);
2384 } 2383 }
2385 if (sse) { 2384 if (sse) {
2386 dasm_put(Dst, 12563); 2385 dasm_put(Dst, 12565);
2387 } else { 2386 } else {
2388 dasm_put(Dst, 12577); 2387 dasm_put(Dst, 12579);
2389 } 2388 }
2390 break; 2389 break;
2391 default: 2390 default:
2392 dasm_put(Dst, 12398, LJ_TISNUM, LJ_TISNUM); 2391 dasm_put(Dst, 12400, LJ_TISNUM, LJ_TISNUM);
2393 if (sse) { 2392 if (sse) {
2394 dasm_put(Dst, 12585); 2393 dasm_put(Dst, 12587);
2395 } else { 2394 } else {
2396 dasm_put(Dst, 12599); 2395 dasm_put(Dst, 12601);
2397 } 2396 }
2398 break; 2397 break;
2399 } 2398 }
2400 if (sse) { 2399 if (sse) {
2401 dasm_put(Dst, 12058); 2400 dasm_put(Dst, 12060);
2402 } else { 2401 } else {
2403 dasm_put(Dst, 12070); 2402 dasm_put(Dst, 12072);
2404 } 2403 }
2405 dasm_put(Dst, 11200); 2404 dasm_put(Dst, 11200);
2406 } 2405 }
2407 break; 2406 break;
2408 case BC_MULVN: case BC_MULNV: case BC_MULVV: 2407 case BC_MULVN: case BC_MULNV: case BC_MULVV:
2409 if (LJ_DUALNUM) { 2408 if (LJ_DUALNUM) {
2410 dasm_put(Dst, 12195); 2409 dasm_put(Dst, 12197);
2411 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2410 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2412 switch (vk) { 2411 switch (vk) {
2413 case 0: 2412 case 0:
2414 dasm_put(Dst, 12607, LJ_TISNUM, LJ_TISNUM); 2413 dasm_put(Dst, 12609, LJ_TISNUM, LJ_TISNUM);
2415 break; 2414 break;
2416 case 1: 2415 case 1:
2417 dasm_put(Dst, 12641, LJ_TISNUM, LJ_TISNUM); 2416 dasm_put(Dst, 12643, LJ_TISNUM, LJ_TISNUM);
2418 break; 2417 break;
2419 default: 2418 default:
2420 dasm_put(Dst, 12675, LJ_TISNUM, LJ_TISNUM); 2419 dasm_put(Dst, 12677, LJ_TISNUM, LJ_TISNUM);
2421 break; 2420 break;
2422 } 2421 }
2423 dasm_put(Dst, 12302, LJ_TISNUM); 2422 dasm_put(Dst, 12304, LJ_TISNUM);
2424 if (vk == 1) { 2423 if (vk == 1) {
2425 dasm_put(Dst, 12098); 2424 dasm_put(Dst, 12100);
2426 } else { 2425 } else {
2427 dasm_put(Dst, 11876); 2426 dasm_put(Dst, 11878);
2428 } 2427 }
2429 dasm_put(Dst, 11200); 2428 dasm_put(Dst, 11200);
2430 } else { 2429 } else {
2431 dasm_put(Dst, 12195); 2430 dasm_put(Dst, 12197);
2432 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2431 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2433 switch (vk) { 2432 switch (vk) {
2434 case 0: 2433 case 0:
2435 dasm_put(Dst, 12308, LJ_TISNUM); 2434 dasm_put(Dst, 12310, LJ_TISNUM);
2436 if (LJ_DUALNUM) { 2435 if (LJ_DUALNUM) {
2437 dasm_put(Dst, 12320, LJ_TISNUM); 2436 dasm_put(Dst, 12322, LJ_TISNUM);
2438 } 2437 }
2439 if (sse) { 2438 if (sse) {
2440 dasm_put(Dst, 12709); 2439 dasm_put(Dst, 12711);
2441 } else { 2440 } else {
2442 dasm_put(Dst, 12723); 2441 dasm_put(Dst, 12725);
2443 } 2442 }
2444 break; 2443 break;
2445 case 1: 2444 case 1:
2446 dasm_put(Dst, 12353, LJ_TISNUM); 2445 dasm_put(Dst, 12355, LJ_TISNUM);
2447 if (LJ_DUALNUM) { 2446 if (LJ_DUALNUM) {
2448 dasm_put(Dst, 12365, LJ_TISNUM); 2447 dasm_put(Dst, 12367, LJ_TISNUM);
2449 } 2448 }
2450 if (sse) { 2449 if (sse) {
2451 dasm_put(Dst, 12731); 2450 dasm_put(Dst, 12733);
2452 } else { 2451 } else {
2453 dasm_put(Dst, 12745); 2452 dasm_put(Dst, 12747);
2454 } 2453 }
2455 break; 2454 break;
2456 default: 2455 default:
2457 dasm_put(Dst, 12398, LJ_TISNUM, LJ_TISNUM); 2456 dasm_put(Dst, 12400, LJ_TISNUM, LJ_TISNUM);
2458 if (sse) { 2457 if (sse) {
2459 dasm_put(Dst, 12753); 2458 dasm_put(Dst, 12755);
2460 } else { 2459 } else {
2461 dasm_put(Dst, 12767); 2460 dasm_put(Dst, 12769);
2462 } 2461 }
2463 break; 2462 break;
2464 } 2463 }
2465 if (sse) { 2464 if (sse) {
2466 dasm_put(Dst, 12058); 2465 dasm_put(Dst, 12060);
2467 } else { 2466 } else {
2468 dasm_put(Dst, 12070); 2467 dasm_put(Dst, 12072);
2469 } 2468 }
2470 dasm_put(Dst, 11200); 2469 dasm_put(Dst, 11200);
2471 } 2470 }
2472 break; 2471 break;
2473 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV: 2472 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV:
2474 dasm_put(Dst, 12195); 2473 dasm_put(Dst, 12197);
2475 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2474 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2476 switch (vk) { 2475 switch (vk) {
2477 case 0: 2476 case 0:
2478 dasm_put(Dst, 12308, LJ_TISNUM); 2477 dasm_put(Dst, 12310, LJ_TISNUM);
2479 if (LJ_DUALNUM) { 2478 if (LJ_DUALNUM) {
2480 dasm_put(Dst, 12320, LJ_TISNUM); 2479 dasm_put(Dst, 12322, LJ_TISNUM);
2481 } 2480 }
2482 if (sse) { 2481 if (sse) {
2483 dasm_put(Dst, 12775); 2482 dasm_put(Dst, 12777);
2484 } else { 2483 } else {
2485 dasm_put(Dst, 12789); 2484 dasm_put(Dst, 12791);
2486 } 2485 }
2487 break; 2486 break;
2488 case 1: 2487 case 1:
2489 dasm_put(Dst, 12353, LJ_TISNUM); 2488 dasm_put(Dst, 12355, LJ_TISNUM);
2490 if (LJ_DUALNUM) { 2489 if (LJ_DUALNUM) {
2491 dasm_put(Dst, 12365, LJ_TISNUM); 2490 dasm_put(Dst, 12367, LJ_TISNUM);
2492 } 2491 }
2493 if (sse) { 2492 if (sse) {
2494 dasm_put(Dst, 12797); 2493 dasm_put(Dst, 12799);
2495 } else { 2494 } else {
2496 dasm_put(Dst, 12811); 2495 dasm_put(Dst, 12813);
2497 } 2496 }
2498 break; 2497 break;
2499 default: 2498 default:
2500 dasm_put(Dst, 12398, LJ_TISNUM, LJ_TISNUM); 2499 dasm_put(Dst, 12400, LJ_TISNUM, LJ_TISNUM);
2501 if (sse) { 2500 if (sse) {
2502 dasm_put(Dst, 12819); 2501 dasm_put(Dst, 12821);
2503 } else { 2502 } else {
2504 dasm_put(Dst, 12833); 2503 dasm_put(Dst, 12835);
2505 } 2504 }
2506 break; 2505 break;
2507 } 2506 }
2508 if (sse) { 2507 if (sse) {
2509 dasm_put(Dst, 12058); 2508 dasm_put(Dst, 12060);
2510 } else { 2509 } else {
2511 dasm_put(Dst, 12070); 2510 dasm_put(Dst, 12072);
2512 } 2511 }
2513 dasm_put(Dst, 11200); 2512 dasm_put(Dst, 11200);
2514 break; 2513 break;
2515 case BC_MODVN: 2514 case BC_MODVN:
2516 dasm_put(Dst, 12195); 2515 dasm_put(Dst, 12197);
2517 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2516 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2518 switch (vk) { 2517 switch (vk) {
2519 case 0: 2518 case 0:
2520 dasm_put(Dst, 12308, LJ_TISNUM); 2519 dasm_put(Dst, 12310, LJ_TISNUM);
2521 if (LJ_DUALNUM) { 2520 if (LJ_DUALNUM) {
2522 dasm_put(Dst, 12320, LJ_TISNUM); 2521 dasm_put(Dst, 12322, LJ_TISNUM);
2523 } 2522 }
2524 if (sse) { 2523 if (sse) {
2525 dasm_put(Dst, 12841); 2524 dasm_put(Dst, 12843);
2526 } else { 2525 } else {
2527 dasm_put(Dst, 12855); 2526 dasm_put(Dst, 12857);
2528 } 2527 }
2529 break; 2528 break;
2530 case 1: 2529 case 1:
2531 dasm_put(Dst, 12353, LJ_TISNUM); 2530 dasm_put(Dst, 12355, LJ_TISNUM);
2532 if (LJ_DUALNUM) { 2531 if (LJ_DUALNUM) {
2533 dasm_put(Dst, 12365, LJ_TISNUM); 2532 dasm_put(Dst, 12367, LJ_TISNUM);
2534 } 2533 }
2535 if (sse) { 2534 if (sse) {
2536 dasm_put(Dst, 12863); 2535 dasm_put(Dst, 12865);
2537 } else { 2536 } else {
2538 dasm_put(Dst, 12877); 2537 dasm_put(Dst, 12879);
2539 } 2538 }
2540 break; 2539 break;
2541 default: 2540 default:
2542 dasm_put(Dst, 12398, LJ_TISNUM, LJ_TISNUM); 2541 dasm_put(Dst, 12400, LJ_TISNUM, LJ_TISNUM);
2543 if (sse) { 2542 if (sse) {
2544 dasm_put(Dst, 12885); 2543 dasm_put(Dst, 12887);
2545 } else { 2544 } else {
2546 dasm_put(Dst, 12899); 2545 dasm_put(Dst, 12901);
2547 } 2546 }
2548 break; 2547 break;
2549 } 2548 }
2550 dasm_put(Dst, 12907); 2549 dasm_put(Dst, 12909);
2551 if (sse) { 2550 if (sse) {
2552 dasm_put(Dst, 12058); 2551 dasm_put(Dst, 12060);
2553 } else { 2552 } else {
2554 dasm_put(Dst, 12070); 2553 dasm_put(Dst, 12072);
2555 } 2554 }
2556 dasm_put(Dst, 11200); 2555 dasm_put(Dst, 11200);
2557 break; 2556 break;
2558 case BC_MODNV: case BC_MODVV: 2557 case BC_MODNV: case BC_MODVV:
2559 dasm_put(Dst, 12195); 2558 dasm_put(Dst, 12197);
2560 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2559 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2561 switch (vk) { 2560 switch (vk) {
2562 case 0: 2561 case 0:
2563 dasm_put(Dst, 12308, LJ_TISNUM); 2562 dasm_put(Dst, 12310, LJ_TISNUM);
2564 if (LJ_DUALNUM) { 2563 if (LJ_DUALNUM) {
2565 dasm_put(Dst, 12320, LJ_TISNUM); 2564 dasm_put(Dst, 12322, LJ_TISNUM);
2566 } 2565 }
2567 if (sse) { 2566 if (sse) {
2568 dasm_put(Dst, 12841); 2567 dasm_put(Dst, 12843);
2569 } else { 2568 } else {
2570 dasm_put(Dst, 12855); 2569 dasm_put(Dst, 12857);
2571 } 2570 }
2572 break; 2571 break;
2573 case 1: 2572 case 1:
2574 dasm_put(Dst, 12353, LJ_TISNUM); 2573 dasm_put(Dst, 12355, LJ_TISNUM);
2575 if (LJ_DUALNUM) { 2574 if (LJ_DUALNUM) {
2576 dasm_put(Dst, 12365, LJ_TISNUM); 2575 dasm_put(Dst, 12367, LJ_TISNUM);
2577 } 2576 }
2578 if (sse) { 2577 if (sse) {
2579 dasm_put(Dst, 12863); 2578 dasm_put(Dst, 12865);
2580 } else { 2579 } else {
2581 dasm_put(Dst, 12877); 2580 dasm_put(Dst, 12879);
2582 } 2581 }
2583 break; 2582 break;
2584 default: 2583 default:
2585 dasm_put(Dst, 12398, LJ_TISNUM, LJ_TISNUM); 2584 dasm_put(Dst, 12400, LJ_TISNUM, LJ_TISNUM);
2586 if (sse) { 2585 if (sse) {
2587 dasm_put(Dst, 12885); 2586 dasm_put(Dst, 12887);
2588 } else { 2587 } else {
2589 dasm_put(Dst, 12899); 2588 dasm_put(Dst, 12901);
2590 } 2589 }
2591 break; 2590 break;
2592 } 2591 }
2593 dasm_put(Dst, 12913); 2592 dasm_put(Dst, 12915);
2594 break; 2593 break;
2595 case BC_POW: 2594 case BC_POW:
2596 dasm_put(Dst, 12195); 2595 dasm_put(Dst, 12197);
2597 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2596 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2598 switch (vk) { 2597 switch (vk) {
2599 case 0: 2598 case 0:
2600 dasm_put(Dst, 12308, LJ_TISNUM); 2599 dasm_put(Dst, 12310, LJ_TISNUM);
2601 if (LJ_DUALNUM) { 2600 if (LJ_DUALNUM) {
2602 dasm_put(Dst, 12320, LJ_TISNUM); 2601 dasm_put(Dst, 12322, LJ_TISNUM);
2603 } 2602 }
2604 if (sse) { 2603 if (sse) {
2605 dasm_put(Dst, 12841); 2604 dasm_put(Dst, 12843);
2606 } else { 2605 } else {
2607 dasm_put(Dst, 12855); 2606 dasm_put(Dst, 12857);
2608 } 2607 }
2609 break; 2608 break;
2610 case 1: 2609 case 1:
2611 dasm_put(Dst, 12353, LJ_TISNUM); 2610 dasm_put(Dst, 12355, LJ_TISNUM);
2612 if (LJ_DUALNUM) { 2611 if (LJ_DUALNUM) {
2613 dasm_put(Dst, 12365, LJ_TISNUM); 2612 dasm_put(Dst, 12367, LJ_TISNUM);
2614 } 2613 }
2615 if (sse) { 2614 if (sse) {
2616 dasm_put(Dst, 12863); 2615 dasm_put(Dst, 12865);
2617 } else { 2616 } else {
2618 dasm_put(Dst, 12877); 2617 dasm_put(Dst, 12879);
2619 } 2618 }
2620 break; 2619 break;
2621 default: 2620 default:
2622 dasm_put(Dst, 12398, LJ_TISNUM, LJ_TISNUM); 2621 dasm_put(Dst, 12400, LJ_TISNUM, LJ_TISNUM);
2623 if (sse) { 2622 if (sse) {
2624 dasm_put(Dst, 12885); 2623 dasm_put(Dst, 12887);
2625 } else { 2624 } else {
2626 dasm_put(Dst, 12899); 2625 dasm_put(Dst, 12901);
2627 } 2626 }
2628 break; 2627 break;
2629 } 2628 }
2630 dasm_put(Dst, 12918); 2629 dasm_put(Dst, 12920);
2631 if (sse) { 2630 if (sse) {
2632 dasm_put(Dst, 12058); 2631 dasm_put(Dst, 12060);
2633 } else { 2632 } else {
2634 dasm_put(Dst, 12070); 2633 dasm_put(Dst, 12072);
2635 } 2634 }
2636 dasm_put(Dst, 11200); 2635 dasm_put(Dst, 11200);
2637 break; 2636 break;
2638 2637
2639 case BC_CAT: 2638 case BC_CAT:
2640 dasm_put(Dst, 12922, Dt1(->base), Dt1(->base)); 2639 dasm_put(Dst, 12924, Dt1(->base), Dt1(->base));
2641 break; 2640 break;
2642 2641
2643 /* -- Constant ops ------------------------------------------------------ */ 2642 /* -- Constant ops ------------------------------------------------------ */
2644 2643
2645 case BC_KSTR: 2644 case BC_KSTR:
2646 dasm_put(Dst, 13016, LJ_TSTR); 2645 dasm_put(Dst, 13018, LJ_TSTR);
2647 break; 2646 break;
2648 case BC_KCDATA: 2647 case BC_KCDATA:
2649#if LJ_HASFFI 2648#if LJ_HASFFI
2650 dasm_put(Dst, 13016, LJ_TCDATA); 2649 dasm_put(Dst, 13018, LJ_TCDATA);
2651#endif 2650#endif
2652 break; 2651 break;
2653 case BC_KSHORT: 2652 case BC_KSHORT:
2654 if (LJ_DUALNUM) { 2653 if (LJ_DUALNUM) {
2655 dasm_put(Dst, 13049, LJ_TISNUM); 2654 dasm_put(Dst, 13051, LJ_TISNUM);
2656 } else if (sse) { 2655 } else if (sse) {
2657 dasm_put(Dst, 13061); 2656 dasm_put(Dst, 13063);
2658 } else { 2657 } else {
2659 dasm_put(Dst, 13076); 2658 dasm_put(Dst, 13078);
2660 } 2659 }
2661 dasm_put(Dst, 11200); 2660 dasm_put(Dst, 11200);
2662 break; 2661 break;
2663 case BC_KNUM: 2662 case BC_KNUM:
2664 if (sse) { 2663 if (sse) {
2665 dasm_put(Dst, 13084); 2664 dasm_put(Dst, 13086);
2666 } else { 2665 } else {
2667 dasm_put(Dst, 13097); 2666 dasm_put(Dst, 13099);
2668 } 2667 }
2669 dasm_put(Dst, 11200); 2668 dasm_put(Dst, 11200);
2670 break; 2669 break;
2671 case BC_KPRI: 2670 case BC_KPRI:
2672 dasm_put(Dst, 13104); 2671 dasm_put(Dst, 13106);
2673 break; 2672 break;
2674 case BC_KNIL: 2673 case BC_KNIL:
2675 dasm_put(Dst, 13130, LJ_TNIL); 2674 dasm_put(Dst, 13132, LJ_TNIL);
2676 break; 2675 break;
2677 2676
2678 /* -- Upvalue and function ops ------------------------------------------ */ 2677 /* -- Upvalue and function ops ------------------------------------------ */
2679 2678
2680 case BC_UGET: 2679 case BC_UGET:
2681 dasm_put(Dst, 13176, offsetof(GCfuncL, uvptr), DtA(->v)); 2680 dasm_put(Dst, 13178, offsetof(GCfuncL, uvptr), DtA(->v));
2682 break; 2681 break;
2683 case BC_USETV: 2682 case BC_USETV:
2684#define TV2MARKOFS \ 2683#define TV2MARKOFS \
2685 ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv)) 2684 ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv))
2686 dasm_put(Dst, 13220, 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); 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);
2687 dasm_put(Dst, 13310); 2686 dasm_put(Dst, 13312);
2688 break; 2687 break;
2689#undef TV2MARKOFS 2688#undef TV2MARKOFS
2690 case BC_USETS: 2689 case BC_USETS:
2691 dasm_put(Dst, 13322, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G); 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);
2692 break; 2691 break;
2693 case BC_USETN: 2692 case BC_USETN:
2694 dasm_put(Dst, 13413); 2693 dasm_put(Dst, 13415);
2695 if (sse) { 2694 if (sse) {
2696 dasm_put(Dst, 13418); 2695 dasm_put(Dst, 13420);
2697 } else { 2696 } else {
2698 dasm_put(Dst, 12859); 2697 dasm_put(Dst, 11710);
2699 } 2698 }
2700 dasm_put(Dst, 13425, offsetof(GCfuncL, uvptr), DtA(->v)); 2699 dasm_put(Dst, 13427, offsetof(GCfuncL, uvptr), DtA(->v));
2701 if (sse) { 2700 if (sse) {
2702 dasm_put(Dst, 13434); 2701 dasm_put(Dst, 13436);
2703 } else { 2702 } else {
2704 dasm_put(Dst, 13440); 2703 dasm_put(Dst, 13442);
2705 } 2704 }
2706 dasm_put(Dst, 11200); 2705 dasm_put(Dst, 11200);
2707 break; 2706 break;
2708 case BC_USETP: 2707 case BC_USETP:
2709 dasm_put(Dst, 13443, offsetof(GCfuncL, uvptr), DtA(->v)); 2708 dasm_put(Dst, 13445, offsetof(GCfuncL, uvptr), DtA(->v));
2710 break; 2709 break;
2711 case BC_UCLO: 2710 case BC_UCLO:
2712 dasm_put(Dst, 13480, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base)); 2711 dasm_put(Dst, 13482, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base));
2713 break; 2712 break;
2714 2713
2715 case BC_FNEW: 2714 case BC_FNEW:
2716 dasm_put(Dst, 13534, Dt1(->base), Dt1(->base), LJ_TFUNC); 2715 dasm_put(Dst, 13536, Dt1(->base), Dt1(->base), LJ_TFUNC);
2717 break; 2716 break;
2718 2717
2719 /* -- Table ops --------------------------------------------------------- */ 2718 /* -- Table ops --------------------------------------------------------- */
2720 2719
2721 case BC_TNEW: 2720 case BC_TNEW:
2722 dasm_put(Dst, 13605, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB); 2721 dasm_put(Dst, 13607, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB);
2723 break; 2722 break;
2724 case BC_TDUP: 2723 case BC_TDUP:
2725 dasm_put(Dst, 13731, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB); 2724 dasm_put(Dst, 13733, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB);
2726 break; 2725 break;
2727 2726
2728 case BC_GGET: 2727 case BC_GGET:
2729 dasm_put(Dst, 13823, Dt7(->env)); 2728 dasm_put(Dst, 13825, Dt7(->env));
2730 break; 2729 break;
2731 case BC_GSET: 2730 case BC_GSET:
2732 dasm_put(Dst, 13841, Dt7(->env)); 2731 dasm_put(Dst, 13843, Dt7(->env));
2733 break; 2732 break;
2734 2733
2735 case BC_TGETV: 2734 case BC_TGETV:
2736 dasm_put(Dst, 13859, LJ_TTAB); 2735 dasm_put(Dst, 13861, LJ_TTAB);
2737 if (LJ_DUALNUM) { 2736 if (LJ_DUALNUM) {
2738 dasm_put(Dst, 13882, LJ_TISNUM); 2737 dasm_put(Dst, 13884, LJ_TISNUM);
2739 } else { 2738 } else {
2740 dasm_put(Dst, 13896, LJ_TISNUM); 2739 dasm_put(Dst, 13898, LJ_TISNUM);
2741 if (sse) { 2740 if (sse) {
2742 dasm_put(Dst, 13907); 2741 dasm_put(Dst, 13909);
2743 } else { 2742 } else {
2744 dasm_put(Dst, 13928); 2743 dasm_put(Dst, 13930);
2745 if (cmov) { 2744 if (cmov) {
2746 dasm_put(Dst, 3899); 2745 dasm_put(Dst, 3899);
2747 } else { 2746 } else {
@@ -2749,30 +2748,30 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2749 } 2748 }
2750 dasm_put(Dst, 2635); 2749 dasm_put(Dst, 2635);
2751 } 2750 }
2752 dasm_put(Dst, 13938); 2751 dasm_put(Dst, 13940);
2753 } 2752 }
2754 dasm_put(Dst, 13943, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index, LJ_TNIL); 2753 dasm_put(Dst, 13945, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index, LJ_TNIL);
2755 dasm_put(Dst, 14038, LJ_TSTR); 2754 dasm_put(Dst, 14040, LJ_TSTR);
2756 break; 2755 break;
2757 case BC_TGETS: 2756 case BC_TGETS:
2758 dasm_put(Dst, 14056, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); 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);
2759 dasm_put(Dst, 14144, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 2758 dasm_put(Dst, 14146, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
2760 break; 2759 break;
2761 case BC_TGETB: 2760 case BC_TGETB:
2762 dasm_put(Dst, 14214, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 2761 dasm_put(Dst, 14216, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
2763 dasm_put(Dst, 14313, LJ_TNIL); 2762 dasm_put(Dst, 14315, LJ_TNIL);
2764 break; 2763 break;
2765 2764
2766 case BC_TSETV: 2765 case BC_TSETV:
2767 dasm_put(Dst, 14330, LJ_TTAB); 2766 dasm_put(Dst, 14332, LJ_TTAB);
2768 if (LJ_DUALNUM) { 2767 if (LJ_DUALNUM) {
2769 dasm_put(Dst, 13882, LJ_TISNUM); 2768 dasm_put(Dst, 13884, LJ_TISNUM);
2770 } else { 2769 } else {
2771 dasm_put(Dst, 13896, LJ_TISNUM); 2770 dasm_put(Dst, 13898, LJ_TISNUM);
2772 if (sse) { 2771 if (sse) {
2773 dasm_put(Dst, 13907); 2772 dasm_put(Dst, 13909);
2774 } else { 2773 } else {
2775 dasm_put(Dst, 13928); 2774 dasm_put(Dst, 13930);
2776 if (cmov) { 2775 if (cmov) {
2777 dasm_put(Dst, 3899); 2776 dasm_put(Dst, 3899);
2778 } else { 2777 } else {
@@ -2780,115 +2779,115 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2780 } 2779 }
2781 dasm_put(Dst, 2635); 2780 dasm_put(Dst, 2635);
2782 } 2781 }
2783 dasm_put(Dst, 14353); 2782 dasm_put(Dst, 14355);
2784 } 2783 }
2785 dasm_put(Dst, 14358, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex); 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);
2786 dasm_put(Dst, 14442, LJ_TSTR, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 2785 dasm_put(Dst, 14444, LJ_TSTR, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
2787 break; 2786 break;
2788 case BC_TSETS: 2787 case BC_TSETS:
2789 dasm_put(Dst, 14499, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); 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);
2790 dasm_put(Dst, 14574, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next)); 2789 dasm_put(Dst, 14576, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next));
2791 dasm_put(Dst, 14666, 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)); 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));
2792 break; 2791 break;
2793 case BC_TSETB: 2792 case BC_TSETB:
2794 dasm_put(Dst, 14762, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable)); 2793 dasm_put(Dst, 14764, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable));
2795 dasm_put(Dst, 14860, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 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));
2796 break; 2795 break;
2797 2796
2798 case BC_TSETM: 2797 case BC_TSETM:
2799 dasm_put(Dst, 14906, Dt6(->marked), LJ_GC_BLACK, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base)); 2798 dasm_put(Dst, 14908, Dt6(->marked), LJ_GC_BLACK, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base));
2800 dasm_put(Dst, 15055, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 2799 dasm_put(Dst, 15057, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
2801 break; 2800 break;
2802 2801
2803 /* -- Calls and vararg handling ----------------------------------------- */ 2802 /* -- Calls and vararg handling ----------------------------------------- */
2804 2803
2805 case BC_CALL: case BC_CALLM: 2804 case BC_CALL: case BC_CALLM:
2806 dasm_put(Dst, 12199); 2805 dasm_put(Dst, 12201);
2807 if (op == BC_CALLM) { 2806 if (op == BC_CALLM) {
2808 dasm_put(Dst, 15073); 2807 dasm_put(Dst, 15075);
2809 } 2808 }
2810 dasm_put(Dst, 15078, LJ_TFUNC, Dt7(->pc)); 2809 dasm_put(Dst, 15080, LJ_TFUNC, Dt7(->pc));
2811 break; 2810 break;
2812 2811
2813 case BC_CALLMT: 2812 case BC_CALLMT:
2814 dasm_put(Dst, 15073); 2813 dasm_put(Dst, 15075);
2815 break; 2814 break;
2816 case BC_CALLT: 2815 case BC_CALLT:
2817 dasm_put(Dst, 15119, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc)); 2816 dasm_put(Dst, 15121, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc));
2818 dasm_put(Dst, 15237, FRAME_TYPE, Dt7(->pc), PC2PROTO(k), FRAME_VARG, FRAME_TYPEP, FRAME_VARG); 2817 dasm_put(Dst, 15239, FRAME_TYPE, Dt7(->pc), PC2PROTO(k), FRAME_VARG, FRAME_TYPEP, FRAME_VARG);
2819 break; 2818 break;
2820 2819
2821 case BC_ITERC: 2820 case BC_ITERC:
2822 dasm_put(Dst, 15307, LJ_TFUNC, 2+1, Dt7(->pc)); 2821 dasm_put(Dst, 15309, LJ_TFUNC, 2+1, Dt7(->pc));
2823 break; 2822 break;
2824 2823
2825 case BC_ITERN: 2824 case BC_ITERN:
2826#if LJ_HASJIT 2825#if LJ_HASJIT
2827#endif 2826#endif
2828 dasm_put(Dst, 15387, Dt6(->asize), Dt6(->array), LJ_TNIL); 2827 dasm_put(Dst, 15389, Dt6(->asize), Dt6(->array), LJ_TNIL);
2829 if (LJ_DUALNUM) { 2828 if (LJ_DUALNUM) {
2830 dasm_put(Dst, 12093, LJ_TISNUM); 2829 dasm_put(Dst, 12095, LJ_TISNUM);
2831 } else if (sse) { 2830 } else if (sse) {
2832 dasm_put(Dst, 12169); 2831 dasm_put(Dst, 12171);
2833 } else { 2832 } else {
2834 dasm_put(Dst, 15433); 2833 dasm_put(Dst, 15435);
2835 } 2834 }
2836 dasm_put(Dst, 15439); 2835 dasm_put(Dst, 15441);
2837 if (LJ_DUALNUM) { 2836 if (LJ_DUALNUM) {
2838 } else if (sse) { 2837 } else if (sse) {
2839 dasm_put(Dst, 12058); 2838 dasm_put(Dst, 12060);
2840 } else { 2839 } else {
2841 dasm_put(Dst, 12070); 2840 dasm_put(Dst, 12072);
2842 } 2841 }
2843 dasm_put(Dst, 15458, -BCBIAS_J*4); 2842 dasm_put(Dst, 15460, -BCBIAS_J*4);
2844 if (!LJ_DUALNUM && !sse) { 2843 if (!LJ_DUALNUM && !sse) {
2845 dasm_put(Dst, 15509); 2844 dasm_put(Dst, 15511);
2846 } 2845 }
2847 dasm_put(Dst, 15515, Dt6(->hmask), sizeof(Node), Dt6(->node), DtB(->val.it), LJ_TNIL, DtB(->key.gcr), DtB(->key.it), DtB(->val.gcr), DtB(->val.it)); 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));
2848 dasm_put(Dst, 15590); 2847 dasm_put(Dst, 15592);
2849 break; 2848 break;
2850 2849
2851 case BC_ISNEXT: 2850 case BC_ISNEXT:
2852 dasm_put(Dst, 15598, LJ_TFUNC, LJ_TTAB, LJ_TNIL, Dt8(->ffid), FF_next_N, -BCBIAS_J*4, BC_JMP, -BCBIAS_J*4, BC_ITERC); 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);
2853 break; 2852 break;
2854 2853
2855 case BC_VARG: 2854 case BC_VARG:
2856 dasm_put(Dst, 15697, (8+FRAME_VARG), LJ_TNIL, Dt1(->maxstack)); 2855 dasm_put(Dst, 15699, (8+FRAME_VARG), LJ_TNIL, Dt1(->maxstack));
2857 dasm_put(Dst, 15861, Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top)); 2856 dasm_put(Dst, 15863, Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top));
2858 break; 2857 break;
2859 2858
2860 /* -- Returns ----------------------------------------------------------- */ 2859 /* -- Returns ----------------------------------------------------------- */
2861 2860
2862 case BC_RETM: 2861 case BC_RETM:
2863 dasm_put(Dst, 15073); 2862 dasm_put(Dst, 15075);
2864 break; 2863 break;
2865 2864
2866 case BC_RET: case BC_RET0: case BC_RET1: 2865 case BC_RET: case BC_RET0: case BC_RET1:
2867 if (op != BC_RET0) { 2866 if (op != BC_RET0) {
2868 dasm_put(Dst, 15932); 2867 dasm_put(Dst, 15934);
2869 } 2868 }
2870 dasm_put(Dst, 15936, FRAME_TYPE); 2869 dasm_put(Dst, 15938, FRAME_TYPE);
2871 switch (op) { 2870 switch (op) {
2872 case BC_RET: 2871 case BC_RET:
2873 dasm_put(Dst, 15955); 2872 dasm_put(Dst, 15957);
2874 break; 2873 break;
2875 case BC_RET1: 2874 case BC_RET1:
2876 dasm_put(Dst, 16013); 2875 dasm_put(Dst, 16015);
2877 /* fallthrough */ 2876 /* fallthrough */
2878 case BC_RET0: 2877 case BC_RET0:
2879 dasm_put(Dst, 16029); 2878 dasm_put(Dst, 16031);
2880 default: 2879 default:
2881 break; 2880 break;
2882 } 2881 }
2883 dasm_put(Dst, 16040, Dt7(->pc), PC2PROTO(k)); 2882 dasm_put(Dst, 16042, Dt7(->pc), PC2PROTO(k));
2884 if (op == BC_RET) { 2883 if (op == BC_RET) {
2885 dasm_put(Dst, 16082, LJ_TNIL); 2884 dasm_put(Dst, 16084, LJ_TNIL);
2886 } else { 2885 } else {
2887 dasm_put(Dst, 16091, LJ_TNIL); 2886 dasm_put(Dst, 16093, LJ_TNIL);
2888 } 2887 }
2889 dasm_put(Dst, 16098, -FRAME_VARG, FRAME_TYPEP); 2888 dasm_put(Dst, 16100, -FRAME_VARG, FRAME_TYPEP);
2890 if (op != BC_RET0) { 2889 if (op != BC_RET0) {
2891 dasm_put(Dst, 16122); 2890 dasm_put(Dst, 16124);
2892 } 2891 }
2893 dasm_put(Dst, 4883); 2892 dasm_put(Dst, 4883);
2894 break; 2893 break;
@@ -2898,7 +2897,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2898 2897
2899 case BC_FORL: 2898 case BC_FORL:
2900#if LJ_HASJIT 2899#if LJ_HASJIT
2901 dasm_put(Dst, 16126, HOTCOUNT_PCMASK, GG_DISP2HOT); 2900 dasm_put(Dst, 16128, HOTCOUNT_PCMASK, GG_DISP2HOT);
2902#endif 2901#endif
2903 break; 2902 break;
2904 2903
@@ -2910,104 +2909,104 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2910 case BC_FORI: 2909 case BC_FORI:
2911 case BC_IFORL: 2910 case BC_IFORL:
2912 vk = (op == BC_IFORL || op == BC_JFORL); 2911 vk = (op == BC_IFORL || op == BC_JFORL);
2913 dasm_put(Dst, 16147); 2912 dasm_put(Dst, 16149);
2914 if (LJ_DUALNUM) { 2913 if (LJ_DUALNUM) {
2915 dasm_put(Dst, 16151, LJ_TISNUM); 2914 dasm_put(Dst, 16153, LJ_TISNUM);
2916 if (!vk) { 2915 if (!vk) {
2917 dasm_put(Dst, 16161, LJ_TISNUM, LJ_TISNUM); 2916 dasm_put(Dst, 16163, LJ_TISNUM, LJ_TISNUM);
2918 } else { 2917 } else {
2919 dasm_put(Dst, 16190); 2918 dasm_put(Dst, 16192);
2920 } 2919 }
2921 dasm_put(Dst, 16209, LJ_TISNUM); 2920 dasm_put(Dst, 16211, LJ_TISNUM);
2922 if (op == BC_FORI) { 2921 if (op == BC_FORI) {
2923 dasm_put(Dst, 16220, -BCBIAS_J*4); 2922 dasm_put(Dst, 16222, -BCBIAS_J*4);
2924 } else if (op == BC_JFORI) { 2923 } else if (op == BC_JFORI) {
2925 dasm_put(Dst, 16234, -BCBIAS_J*4, BC_JLOOP); 2924 dasm_put(Dst, 16236, -BCBIAS_J*4, BC_JLOOP);
2926 } else if (op == BC_IFORL) { 2925 } else if (op == BC_IFORL) {
2927 dasm_put(Dst, 16252, -BCBIAS_J*4); 2926 dasm_put(Dst, 16254, -BCBIAS_J*4);
2928 } else { 2927 } else {
2929 dasm_put(Dst, 16244, BC_JLOOP); 2928 dasm_put(Dst, 16246, BC_JLOOP);
2930 } 2929 }
2931 dasm_put(Dst, 16266); 2930 dasm_put(Dst, 16268);
2932 if (vk) { 2931 if (vk) {
2933 dasm_put(Dst, 16289); 2932 dasm_put(Dst, 16291);
2934 } 2933 }
2935 dasm_put(Dst, 16209, LJ_TISNUM); 2934 dasm_put(Dst, 16211, LJ_TISNUM);
2936 if (op == BC_FORI) { 2935 if (op == BC_FORI) {
2937 dasm_put(Dst, 16298); 2936 dasm_put(Dst, 16300);
2938 } else if (op == BC_JFORI) { 2937 } else if (op == BC_JFORI) {
2939 dasm_put(Dst, 16303, -BCBIAS_J*4, BC_JLOOP); 2938 dasm_put(Dst, 16305, -BCBIAS_J*4, BC_JLOOP);
2940 } else if (op == BC_IFORL) { 2939 } else if (op == BC_IFORL) {
2941 dasm_put(Dst, 16317); 2940 dasm_put(Dst, 16319);
2942 } else { 2941 } else {
2943 dasm_put(Dst, 16313, BC_JLOOP); 2942 dasm_put(Dst, 16315, BC_JLOOP);
2944 } 2943 }
2945 dasm_put(Dst, 16322); 2944 dasm_put(Dst, 16324);
2946 } else if (!vk) { 2945 } else if (!vk) {
2947 dasm_put(Dst, 16329, LJ_TISNUM); 2946 dasm_put(Dst, 16331, LJ_TISNUM);
2948 } 2947 }
2949 if (!vk) { 2948 if (!vk) {
2950 dasm_put(Dst, 16335, LJ_TISNUM); 2949 dasm_put(Dst, 16337, LJ_TISNUM);
2951 } 2950 }
2952 dasm_put(Dst, 16349); 2951 dasm_put(Dst, 16351);
2953 if (!vk) { 2952 if (!vk) {
2954 dasm_put(Dst, 16353, LJ_TISNUM); 2953 dasm_put(Dst, 16355, LJ_TISNUM);
2955 } 2954 }
2956 if (sse) { 2955 if (sse) {
2957 dasm_put(Dst, 16362); 2956 dasm_put(Dst, 16364);
2958 if (vk) { 2957 if (vk) {
2959 dasm_put(Dst, 16374); 2958 dasm_put(Dst, 16376);
2960 } else { 2959 } else {
2961 dasm_put(Dst, 16393); 2960 dasm_put(Dst, 16395);
2962 } 2961 }
2963 dasm_put(Dst, 16398); 2962 dasm_put(Dst, 16400);
2964 } else { 2963 } else {
2965 dasm_put(Dst, 16411); 2964 dasm_put(Dst, 16413);
2966 if (vk) { 2965 if (vk) {
2967 dasm_put(Dst, 16417); 2966 dasm_put(Dst, 16419);
2968 } else { 2967 } else {
2969 dasm_put(Dst, 16433); 2968 dasm_put(Dst, 16435);
2970 } 2969 }
2971 dasm_put(Dst, 16441); 2970 dasm_put(Dst, 16443);
2972 if (cmov) { 2971 if (cmov) {
2973 dasm_put(Dst, 3899); 2972 dasm_put(Dst, 3899);
2974 } else { 2973 } else {
2975 dasm_put(Dst, 3905); 2974 dasm_put(Dst, 3905);
2976 } 2975 }
2977 if (!cmov) { 2976 if (!cmov) {
2978 dasm_put(Dst, 16446); 2977 dasm_put(Dst, 16448);
2979 } 2978 }
2980 } 2979 }
2981 if (op == BC_FORI) { 2980 if (op == BC_FORI) {
2982 if (LJ_DUALNUM) { 2981 if (LJ_DUALNUM) {
2983 dasm_put(Dst, 16452); 2982 dasm_put(Dst, 16454);
2984 } else { 2983 } else {
2985 dasm_put(Dst, 16457, -BCBIAS_J*4); 2984 dasm_put(Dst, 16459, -BCBIAS_J*4);
2986 } 2985 }
2987 } else if (op == BC_JFORI) { 2986 } else if (op == BC_JFORI) {
2988 dasm_put(Dst, 16467, -BCBIAS_J*4, BC_JLOOP); 2987 dasm_put(Dst, 16469, -BCBIAS_J*4, BC_JLOOP);
2989 } else if (op == BC_IFORL) { 2988 } else if (op == BC_IFORL) {
2990 if (LJ_DUALNUM) { 2989 if (LJ_DUALNUM) {
2991 dasm_put(Dst, 16481); 2990 dasm_put(Dst, 16483);
2992 } else { 2991 } else {
2993 dasm_put(Dst, 16486, -BCBIAS_J*4); 2992 dasm_put(Dst, 16488, -BCBIAS_J*4);
2994 } 2993 }
2995 } else { 2994 } else {
2996 dasm_put(Dst, 16477, BC_JLOOP); 2995 dasm_put(Dst, 16479, BC_JLOOP);
2997 } 2996 }
2998 if (LJ_DUALNUM) { 2997 if (LJ_DUALNUM) {
2999 dasm_put(Dst, 11097); 2998 dasm_put(Dst, 11097);
3000 } else { 2999 } else {
3001 dasm_put(Dst, 11836); 3000 dasm_put(Dst, 11838);
3002 } 3001 }
3003 if (sse) { 3002 if (sse) {
3004 dasm_put(Dst, 16496); 3003 dasm_put(Dst, 16498);
3005 } 3004 }
3006 break; 3005 break;
3007 3006
3008 case BC_ITERL: 3007 case BC_ITERL:
3009#if LJ_HASJIT 3008#if LJ_HASJIT
3010 dasm_put(Dst, 16126, HOTCOUNT_PCMASK, GG_DISP2HOT); 3009 dasm_put(Dst, 16128, HOTCOUNT_PCMASK, GG_DISP2HOT);
3011#endif 3010#endif
3012 break; 3011 break;
3013 3012
@@ -3016,18 +3015,18 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
3016 break; 3015 break;
3017#endif 3016#endif
3018 case BC_IITERL: 3017 case BC_IITERL:
3019 dasm_put(Dst, 16507, LJ_TNIL); 3018 dasm_put(Dst, 16509, LJ_TNIL);
3020 if (op == BC_JITERL) { 3019 if (op == BC_JITERL) {
3021 dasm_put(Dst, 16522, BC_JLOOP); 3020 dasm_put(Dst, 16524, BC_JLOOP);
3022 } else { 3021 } else {
3023 dasm_put(Dst, 16536, -BCBIAS_J*4); 3022 dasm_put(Dst, 16538, -BCBIAS_J*4);
3024 } 3023 }
3025 dasm_put(Dst, 11198); 3024 dasm_put(Dst, 11198);
3026 break; 3025 break;
3027 3026
3028 case BC_LOOP: 3027 case BC_LOOP:
3029#if LJ_HASJIT 3028#if LJ_HASJIT
3030 dasm_put(Dst, 16126, HOTCOUNT_PCMASK, GG_DISP2HOT); 3029 dasm_put(Dst, 16128, HOTCOUNT_PCMASK, GG_DISP2HOT);
3031#endif 3030#endif
3032 break; 3031 break;
3033 3032
@@ -3037,12 +3036,12 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
3037 3036
3038 case BC_JLOOP: 3037 case BC_JLOOP:
3039#if LJ_HASJIT 3038#if LJ_HASJIT
3040 dasm_put(Dst, 16552, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L)); 3039 dasm_put(Dst, 16554, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L));
3041#endif 3040#endif
3042 break; 3041 break;
3043 3042
3044 case BC_JMP: 3043 case BC_JMP:
3045 dasm_put(Dst, 16575, -BCBIAS_J*4); 3044 dasm_put(Dst, 16577, -BCBIAS_J*4);
3046 break; 3045 break;
3047 3046
3048 /* -- Function headers -------------------------------------------------- */ 3047 /* -- Function headers -------------------------------------------------- */
@@ -3056,7 +3055,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
3056 3055
3057 case BC_FUNCF: 3056 case BC_FUNCF:
3058#if LJ_HASJIT 3057#if LJ_HASJIT
3059 dasm_put(Dst, 16599, HOTCOUNT_PCMASK, GG_DISP2HOT); 3058 dasm_put(Dst, 16601, HOTCOUNT_PCMASK, GG_DISP2HOT);
3060#endif 3059#endif
3061 case BC_FUNCV: /* NYI: compiled vararg functions. */ 3060 case BC_FUNCV: /* NYI: compiled vararg functions. */
3062 break; 3061 break;
@@ -3066,13 +3065,13 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
3066 break; 3065 break;
3067#endif 3066#endif
3068 case BC_IFUNCF: 3067 case BC_IFUNCF:
3069 dasm_put(Dst, 16620, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams)); 3068 dasm_put(Dst, 16622, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams));
3070 if (op == BC_JFUNCF) { 3069 if (op == BC_JFUNCF) {
3071 dasm_put(Dst, 16650, BC_JLOOP); 3070 dasm_put(Dst, 16652, BC_JLOOP);
3072 } else { 3071 } else {
3073 dasm_put(Dst, 11200); 3072 dasm_put(Dst, 11200);
3074 } 3073 }
3075 dasm_put(Dst, 16659, LJ_TNIL); 3074 dasm_put(Dst, 16661, LJ_TNIL);
3076 break; 3075 break;
3077 3076
3078 case BC_JFUNCV: 3077 case BC_JFUNCV:
@@ -3083,30 +3082,30 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
3083 break; /* NYI: compiled vararg functions. */ 3082 break; /* NYI: compiled vararg functions. */
3084 3083
3085 case BC_IFUNCV: 3084 case BC_IFUNCV:
3086 dasm_put(Dst, 16681, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL); 3085 dasm_put(Dst, 16683, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL);
3087 if (op == BC_JFUNCV) { 3086 if (op == BC_JFUNCV) {
3088 dasm_put(Dst, 16650, BC_JLOOP); 3087 dasm_put(Dst, 16652, BC_JLOOP);
3089 } else { 3088 } else {
3090 dasm_put(Dst, 16772, -4+PC2PROTO(k)); 3089 dasm_put(Dst, 16774, -4+PC2PROTO(k));
3091 } 3090 }
3092 dasm_put(Dst, 16794, LJ_TNIL); 3091 dasm_put(Dst, 16796, LJ_TNIL);
3093 break; 3092 break;
3094 3093
3095 case BC_FUNCC: 3094 case BC_FUNCC:
3096 case BC_FUNCCW: 3095 case BC_FUNCCW:
3097 dasm_put(Dst, 16816, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top)); 3096 dasm_put(Dst, 16818, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top));
3098 if (op == BC_FUNCC) { 3097 if (op == BC_FUNCC) {
3099 dasm_put(Dst, 16845); 3098 dasm_put(Dst, 16847);
3100 } else { 3099 } else {
3101 dasm_put(Dst, 16849); 3100 dasm_put(Dst, 16851);
3102 } 3101 }
3103 dasm_put(Dst, 16857, DISPATCH_GL(vmstate), ~LJ_VMST_C); 3102 dasm_put(Dst, 16859, DISPATCH_GL(vmstate), ~LJ_VMST_C);
3104 if (op == BC_FUNCC) { 3103 if (op == BC_FUNCC) {
3105 dasm_put(Dst, 16866); 3104 dasm_put(Dst, 16868);
3106 } else { 3105 } else {
3107 dasm_put(Dst, 16870, DISPATCH_GL(wrapf)); 3106 dasm_put(Dst, 16872, DISPATCH_GL(wrapf));
3108 } 3107 }
3109 dasm_put(Dst, 16875, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top)); 3108 dasm_put(Dst, 16877, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top));
3110 break; 3109 break;
3111 3110
3112 /* ---------------------------------------------------------------------- */ 3111 /* ---------------------------------------------------------------------- */
@@ -3134,7 +3133,7 @@ static int build_backend(BuildCtx *ctx)
3134 3133
3135 build_subroutines(ctx, cmov, sse); 3134 build_subroutines(ctx, cmov, sse);
3136 3135
3137 dasm_put(Dst, 16900); 3136 dasm_put(Dst, 16902);
3138 for (op = 0; op < BC__MAX; op++) 3137 for (op = 0; op < BC__MAX; op++)
3139 build_ins(ctx, (BCOp)op, op, cmov, sse); 3138 build_ins(ctx, (BCOp)op, op, cmov, sse);
3140 3139