aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMike Pall <mike>2011-03-09 22:38:53 +0100
committerMike Pall <mike>2011-03-09 22:38:53 +0100
commit0125ee821188fea1778a70fbd1f9b1dc6c2a1e2a (patch)
tree867f5cfff5020f183f1e868cd5c8a23bd51b89f3 /src
parent449cee405c96fc478be6e091133f3197e13f9799 (diff)
downloadluajit-0125ee821188fea1778a70fbd1f9b1dc6c2a1e2a.tar.gz
luajit-0125ee821188fea1778a70fbd1f9b1dc6c2a1e2a.tar.bz2
luajit-0125ee821188fea1778a70fbd1f9b1dc6c2a1e2a.zip
DUALNUM: Add extra assertions to interpreter.
Diffstat (limited to 'src')
-rw-r--r--src/buildvm_x64.h1374
-rw-r--r--src/buildvm_x64win.h904
-rw-r--r--src/buildvm_x86.dasc19
-rw-r--r--src/buildvm_x86.h1112
4 files changed, 1738 insertions, 1671 deletions
diff --git a/src/buildvm_x64.h b/src/buildvm_x64.h
index 42d435cb..801345d5 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[15911] = { 15static const unsigned char build_actionlist[15952] = {
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,
@@ -488,299 +488,301 @@ static const unsigned char build_actionlist[15911] = {
488 133,192,15,132,244,251,15,40,131,233,15,40,139,233,255,15,40,147,233,15,40, 488 133,192,15,132,244,251,15,40,131,233,15,40,139,233,255,15,40,147,233,15,40,
489 155,233,131,252,248,4,15,134,244,251,15,40,163,233,15,40,171,233,15,40,179, 489 155,233,131,252,248,4,15,134,244,251,15,40,163,233,15,40,171,233,15,40,179,
490 233,15,40,187,233,248,5,252,255,147,233,72,137,131,233,15,41,131,233,72,137, 490 233,15,40,187,233,248,5,252,255,147,233,72,137,131,233,15,41,131,233,72,137,
491 147,233,15,41,139,233,255,72,139,93,252,248,201,195,255,249,255,129,124,253, 491 147,233,15,41,139,233,255,72,139,93,252,248,201,195,255,248,162,255,249,255,
492 202,4,239,15,133,244,253,129,124,253,194,4,239,15,133,244,254,139,44,202, 492 129,124,253,202,4,239,15,133,244,253,129,124,253,194,4,239,15,133,244,254,
493 131,195,4,59,44,194,255,15,141,244,255,255,15,140,244,255,255,15,143,244, 493 139,44,202,131,195,4,59,44,194,255,15,141,244,255,255,15,140,244,255,255,
494 255,255,15,142,244,255,255,248,6,15,183,67,252,254,141,156,253,131,233,248, 494 15,143,244,255,255,15,142,244,255,255,248,6,15,183,67,252,254,141,156,253,
495 9,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238, 495 131,233,248,9,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,
496 248,7,15,135,244,41,129,124,253,194,4,239,15,130,244,247,15,133,244,41,255, 496 36,252,238,248,7,15,135,244,41,129,124,253,194,4,239,15,130,244,247,15,133,
497 252,242,15,42,4,194,252,233,244,248,255,221,4,202,219,4,194,252,233,244,249, 497 244,41,255,252,242,15,42,4,194,252,233,244,248,255,221,4,202,219,4,194,252,
498 255,248,8,15,135,244,41,255,252,242,15,42,12,202,252,242,15,16,4,194,131, 498 233,244,249,255,248,8,15,135,244,41,255,252,242,15,42,12,202,252,242,15,16,
499 195,4,102,15,46,193,255,15,134,244,9,255,15,135,244,9,255,15,130,244,9,255, 499 4,194,131,195,4,102,15,46,193,255,15,134,244,9,255,15,135,244,9,255,15,130,
500 15,131,244,9,255,252,233,244,6,255,219,4,202,252,233,244,248,255,129,124, 500 244,9,255,15,131,244,9,255,252,233,244,6,255,219,4,202,252,233,244,248,255,
501 253,202,4,239,15,131,244,41,129,124,253,194,4,239,15,131,244,41,255,248,1, 501 129,124,253,202,4,239,15,131,244,41,129,124,253,194,4,239,15,131,244,41,255,
502 252,242,15,16,4,194,248,2,131,195,4,102,15,46,4,202,248,3,255,248,1,221,4, 502 248,1,252,242,15,16,4,194,248,2,131,195,4,102,15,46,4,202,248,3,255,248,1,
503 202,248,2,221,4,194,248,3,131,195,4,255,223,252,233,221,216,255,218,252,233, 503 221,4,202,248,2,221,4,194,248,3,131,195,4,255,223,252,233,221,216,255,218,
504 223,224,158,255,15,134,244,247,255,15,135,244,247,255,15,130,244,247,255, 504 252,233,223,224,158,255,15,134,244,247,255,15,135,244,247,255,15,130,244,
505 15,131,244,247,255,15,183,67,252,254,141,156,253,131,233,248,1,139,3,15,182, 505 247,255,15,131,244,247,255,15,183,67,252,254,141,156,253,131,233,248,1,139,
506 204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,255,139,108,194, 506 3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,255,139,
507 4,131,195,4,255,129,252,253,239,15,133,244,253,129,124,253,202,4,239,15,133, 507 108,194,4,131,195,4,255,129,252,253,239,15,133,244,253,129,124,253,202,4,
508 244,254,139,44,194,59,44,202,255,15,133,244,255,255,15,132,244,255,255,15, 508 239,15,133,244,254,139,44,194,59,44,202,255,15,133,244,255,255,15,132,244,
509 183,67,252,254,141,156,253,131,233,248,9,139,3,15,182,204,15,182,232,131, 509 255,255,15,183,67,252,254,141,156,253,131,233,248,9,139,3,15,182,204,15,182,
510 195,4,193,232,16,65,252,255,36,252,238,248,7,15,135,244,251,129,124,253,202, 510 232,131,195,4,193,232,16,65,252,255,36,252,238,248,7,15,135,244,251,129,124,
511 4,239,15,130,244,247,15,133,244,251,255,252,242,15,42,4,202,255,219,4,202, 511 253,202,4,239,15,130,244,247,15,133,244,251,255,252,242,15,42,4,202,255,219,
512 255,252,233,244,248,248,8,15,135,244,251,255,252,242,15,42,4,194,102,15,46, 512 4,202,255,252,233,244,248,248,8,15,135,244,251,255,252,242,15,42,4,194,102,
513 4,202,255,219,4,194,221,4,202,255,252,233,244,250,255,129,252,253,239,15, 513 15,46,4,202,255,219,4,194,221,4,202,255,252,233,244,250,255,129,252,253,239,
514 131,244,251,129,124,253,202,4,239,15,131,244,251,255,248,1,252,242,15,16, 514 15,131,244,251,129,124,253,202,4,239,15,131,244,251,255,248,1,252,242,15,
515 4,202,248,2,102,15,46,4,194,248,4,255,248,1,221,4,202,248,2,221,4,194,248, 515 16,4,202,248,2,102,15,46,4,194,248,4,255,248,1,221,4,202,248,2,221,4,194,
516 4,255,15,138,244,248,15,133,244,248,255,15,138,244,248,15,132,244,247,255, 516 248,4,255,15,138,244,248,15,133,244,248,255,15,138,244,248,15,132,244,247,
517 248,1,15,183,67,252,254,141,156,253,131,233,248,2,255,248,2,15,183,67,252, 517 255,248,1,15,183,67,252,254,141,156,253,131,233,248,2,255,248,2,15,183,67,
518 254,141,156,253,131,233,248,1,255,252,233,244,9,255,248,5,255,129,252,253, 518 252,254,141,156,253,131,233,248,1,255,252,233,244,9,255,248,5,255,129,252,
519 239,15,132,244,46,129,124,253,202,4,239,15,132,244,46,255,57,108,202,4,15, 519 253,239,15,132,244,46,129,124,253,202,4,239,15,132,244,46,255,57,108,202,
520 133,244,2,129,252,253,239,15,131,244,1,139,12,202,139,4,194,57,193,15,132, 520 4,15,133,244,2,129,252,253,239,15,131,244,1,139,12,202,139,4,194,57,193,15,
521 244,1,129,252,253,239,15,135,244,2,139,169,233,133,252,237,15,132,244,2,252, 521 132,244,1,129,252,253,239,15,135,244,2,139,169,233,133,252,237,15,132,244,
522 246,133,233,235,15,133,244,2,255,49,252,237,255,189,1,0,0,0,255,252,233,244, 522 2,252,246,133,233,235,15,133,244,2,255,49,252,237,255,189,1,0,0,0,255,252,
523 45,255,248,3,129,252,253,239,255,15,133,244,9,255,252,233,244,46,255,72,252, 523 233,244,45,255,248,3,129,252,253,239,255,15,133,244,9,255,252,233,244,46,
524 247,208,139,108,202,4,131,195,4,129,252,253,239,15,133,244,249,139,12,202, 524 255,72,252,247,208,139,108,202,4,131,195,4,129,252,253,239,15,133,244,249,
525 65,59,12,135,255,139,108,202,4,131,195,4,255,129,252,253,239,15,133,244,253, 525 139,12,202,65,59,12,135,255,139,108,202,4,131,195,4,255,129,252,253,239,15,
526 65,129,124,253,199,4,239,15,133,244,254,65,139,44,199,59,44,202,255,15,183, 526 133,244,253,65,129,124,253,199,4,239,15,133,244,254,65,139,44,199,59,44,202,
527 67,252,254,141,156,253,131,233,248,9,139,3,15,182,204,15,182,232,131,195, 527 255,15,183,67,252,254,141,156,253,131,233,248,9,139,3,15,182,204,15,182,232,
528 4,193,232,16,65,252,255,36,252,238,248,7,15,135,244,249,65,129,124,253,199, 528 131,195,4,193,232,16,65,252,255,36,252,238,248,7,15,135,244,249,65,129,124,
529 4,239,15,130,244,247,255,252,242,65,15,42,4,199,255,65,219,4,199,255,252, 529 253,199,4,239,15,130,244,247,255,252,242,65,15,42,4,199,255,65,219,4,199,
530 233,244,248,248,8,255,252,242,15,42,4,202,102,65,15,46,4,199,255,219,4,202, 530 255,252,233,244,248,248,8,255,252,242,15,42,4,202,102,65,15,46,4,199,255,
531 65,221,4,199,255,129,252,253,239,15,131,244,249,255,248,1,252,242,65,15,16, 531 219,4,202,65,221,4,199,255,129,252,253,239,15,131,244,249,255,248,1,252,242,
532 4,199,248,2,102,15,46,4,202,248,4,255,248,1,65,221,4,199,248,2,221,4,202, 532 65,15,16,4,199,248,2,102,15,46,4,202,248,4,255,248,1,65,221,4,199,248,2,221,
533 248,4,255,72,252,247,208,139,108,202,4,131,195,4,57,197,255,15,133,244,249, 533 4,202,248,4,255,72,252,247,208,139,108,202,4,131,195,4,57,197,255,15,133,
534 15,183,67,252,254,141,156,253,131,233,248,2,139,3,15,182,204,15,182,232,131, 534 244,249,15,183,67,252,254,141,156,253,131,233,248,2,139,3,15,182,204,15,182,
535 195,4,193,232,16,65,252,255,36,252,238,248,3,129,252,253,239,15,133,244,2, 535 232,131,195,4,193,232,16,65,252,255,36,252,238,248,3,129,252,253,239,15,133,
536 252,233,244,46,255,15,132,244,248,129,252,253,239,15,132,244,46,15,183,67, 536 244,2,252,233,244,46,255,15,132,244,248,129,252,253,239,15,132,244,46,15,
537 252,254,141,156,253,131,233,248,2,139,3,15,182,204,15,182,232,131,195,4,193, 537 183,67,252,254,141,156,253,131,233,248,2,139,3,15,182,204,15,182,232,131,
538 232,16,65,252,255,36,252,238,255,139,108,194,4,131,195,4,129,252,253,239, 538 195,4,193,232,16,65,252,255,36,252,238,255,139,108,194,4,131,195,4,129,252,
539 255,137,108,202,4,139,44,194,137,44,202,255,72,139,44,194,72,137,44,202,139, 539 253,239,255,137,108,202,4,139,44,194,137,44,202,255,72,139,44,194,72,137,
540 3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,255,49, 540 44,202,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,
541 252,237,129,124,253,194,4,239,129,213,239,137,108,202,4,139,3,15,182,204, 541 238,255,49,252,237,129,124,253,194,4,239,129,213,239,137,108,202,4,139,3,
542 15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,255,129,124,253,194, 542 15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,255,129,
543 4,239,15,133,244,251,139,44,194,252,247,221,15,128,244,250,199,68,202,4,237, 543 124,253,194,4,239,15,133,244,251,139,44,194,252,247,221,15,128,244,250,199,
544 137,44,202,248,9,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252, 544 68,202,4,237,137,44,202,248,9,139,3,15,182,204,15,182,232,131,195,4,193,232,
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, 545 16,65,252,255,36,252,238,248,4,199,68,202,4,0,0,224,65,199,4,202,0,0,0,0,
546 9,248,5,15,135,244,51,255,129,124,253,194,4,239,15,131,244,51,255,252,242, 546 252,233,244,9,248,5,15,135,244,51,255,129,124,253,194,4,239,15,131,244,51,
547 15,16,4,194,72,184,237,237,102,72,15,110,200,15,87,193,252,242,15,17,4,202, 547 255,252,242,15,16,4,194,72,184,237,237,102,72,15,110,200,15,87,193,252,242,
548 255,221,4,194,217,224,221,28,202,255,129,124,253,194,4,239,15,133,244,248, 548 15,17,4,202,255,221,4,194,217,224,221,28,202,255,129,124,253,194,4,239,15,
549 139,4,194,255,139,128,233,248,1,199,68,202,4,237,137,4,202,255,15,87,192, 549 133,244,248,139,4,194,255,139,128,233,248,1,199,68,202,4,237,137,4,202,255,
550 252,242,15,42,128,233,248,1,252,242,15,17,4,202,255,219,128,233,248,1,221, 550 15,87,192,252,242,15,42,128,233,248,1,252,242,15,17,4,202,255,219,128,233,
551 28,202,255,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36, 551 248,1,221,28,202,255,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,
552 252,238,248,2,129,124,253,194,4,239,15,133,244,54,139,60,194,137,213,232, 552 252,255,36,252,238,248,2,129,124,253,194,4,239,15,133,244,54,139,60,194,137,
553 251,1,20,255,252,242,15,42,192,255,137,252,234,15,182,75,252,253,252,233, 553 213,232,251,1,20,255,252,242,15,42,192,255,137,252,234,15,182,75,252,253,
554 244,1,255,15,182,252,236,15,182,192,255,129,124,253,252,234,4,239,15,133, 554 252,233,244,1,255,15,182,252,236,15,182,192,255,129,124,253,252,234,4,239,
555 244,48,65,129,124,253,199,4,239,15,133,244,48,139,44,252,234,65,3,44,199, 555 15,133,244,48,65,129,124,253,199,4,239,15,133,244,48,139,44,252,234,65,3,
556 15,128,244,47,255,129,124,253,252,234,4,239,15,133,244,50,65,129,124,253, 556 44,199,15,128,244,47,255,129,124,253,252,234,4,239,15,133,244,50,65,129,124,
557 199,4,239,15,133,244,50,65,139,4,199,3,4,252,234,15,128,244,49,255,129,124, 557 253,199,4,239,15,133,244,50,65,139,4,199,3,4,252,234,15,128,244,49,255,129,
558 253,252,234,4,239,15,133,244,53,129,124,253,194,4,239,15,133,244,53,139,44,
559 252,234,3,44,194,15,128,244,52,255,199,68,202,4,237,255,129,124,253,252,234,
560 4,239,15,131,244,48,255,65,129,124,253,199,4,239,15,131,244,48,255,252,242,
561 15,16,4,252,234,252,242,65,15,88,4,199,255,221,4,252,234,65,220,4,199,255,
562 129,124,253,252,234,4,239,15,131,244,50,255,65,129,124,253,199,4,239,15,131,
563 244,50,255,252,242,65,15,16,4,199,252,242,15,88,4,252,234,255,65,221,4,199,
564 220,4,252,234,255,129,124,253,252,234,4,239,15,131,244,53,129,124,253,194,
565 4,239,15,131,244,53,255,252,242,15,16,4,252,234,252,242,15,88,4,194,255,221,
566 4,252,234,220,4,194,255,129,124,253,252,234,4,239,15,133,244,48,65,129,124,
567 253,199,4,239,15,133,244,48,139,44,252,234,65,43,44,199,15,128,244,47,255,
568 129,124,253,252,234,4,239,15,133,244,50,65,129,124,253,199,4,239,15,133,244,
569 50,65,139,4,199,43,4,252,234,15,128,244,49,255,129,124,253,252,234,4,239,
570 15,133,244,53,129,124,253,194,4,239,15,133,244,53,139,44,252,234,43,44,194,
571 15,128,244,52,255,252,242,15,16,4,252,234,252,242,65,15,92,4,199,255,221,
572 4,252,234,65,220,36,199,255,252,242,65,15,16,4,199,252,242,15,92,4,252,234,
573 255,65,221,4,199,220,36,252,234,255,252,242,15,16,4,252,234,252,242,15,92,
574 4,194,255,221,4,252,234,220,36,194,255,129,124,253,252,234,4,239,15,133,244,
575 48,65,129,124,253,199,4,239,15,133,244,48,139,44,252,234,65,15,175,44,199,
576 15,128,244,47,255,129,124,253,252,234,4,239,15,133,244,50,65,129,124,253,
577 199,4,239,15,133,244,50,65,139,4,199,15,175,4,252,234,15,128,244,49,255,129,
578 124,253,252,234,4,239,15,133,244,53,129,124,253,194,4,239,15,133,244,53,139, 558 124,253,252,234,4,239,15,133,244,53,129,124,253,194,4,239,15,133,244,53,139,
579 44,252,234,15,175,44,194,15,128,244,52,255,252,242,15,16,4,252,234,252,242, 559 44,252,234,3,44,194,15,128,244,52,255,199,68,202,4,237,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, 560 234,4,239,15,131,244,48,255,65,129,124,253,199,4,239,15,131,244,48,255,252,
581 252,242,15,89,4,252,234,255,65,221,4,199,220,12,252,234,255,252,242,15,16, 561 242,15,16,4,252,234,252,242,65,15,88,4,199,255,221,4,252,234,65,220,4,199,
582 4,252,234,252,242,15,89,4,194,255,221,4,252,234,220,12,194,255,252,242,15, 562 255,129,124,253,252,234,4,239,15,131,244,50,255,65,129,124,253,199,4,239,
583 16,4,252,234,252,242,65,15,94,4,199,255,221,4,252,234,65,220,52,199,255,252, 563 15,131,244,50,255,252,242,65,15,16,4,199,252,242,15,88,4,252,234,255,65,221,
584 242,65,15,16,4,199,252,242,15,94,4,252,234,255,65,221,4,199,220,52,252,234, 564 4,199,220,4,252,234,255,129,124,253,252,234,4,239,15,131,244,53,129,124,253,
585 255,252,242,15,16,4,252,234,252,242,15,94,4,194,255,221,4,252,234,220,52, 565 194,4,239,15,131,244,53,255,252,242,15,16,4,252,234,252,242,15,88,4,194,255,
586 194,255,252,242,15,16,4,252,234,252,242,65,15,16,12,199,255,221,4,252,234, 566 221,4,252,234,220,4,194,255,129,124,253,252,234,4,239,15,133,244,48,65,129,
587 65,221,4,199,255,252,242,65,15,16,4,199,252,242,15,16,12,252,234,255,65,221, 567 124,253,199,4,239,15,133,244,48,139,44,252,234,65,43,44,199,15,128,244,47,
588 4,199,221,4,252,234,255,252,242,15,16,4,252,234,252,242,15,16,12,194,255, 568 255,129,124,253,252,234,4,239,15,133,244,50,65,129,124,253,199,4,239,15,133,
589 221,4,252,234,221,4,194,255,248,162,232,244,153,255,252,233,244,162,255,232, 569 244,50,65,139,4,199,43,4,252,234,15,128,244,49,255,129,124,253,252,234,4,
590 244,113,255,15,182,252,236,15,182,192,139,124,36,24,137,151,233,141,52,194, 570 239,15,133,244,53,129,124,253,194,4,239,15,133,244,53,139,44,252,234,43,44,
591 137,194,41,252,234,248,33,137,252,253,137,92,36,28,232,251,1,27,139,149,233, 571 194,15,128,244,52,255,252,242,15,16,4,252,234,252,242,65,15,92,4,199,255,
592 133,192,15,133,244,42,15,182,107,252,255,15,182,75,252,253,72,139,4,252,234, 572 221,4,252,234,65,220,36,199,255,252,242,65,15,16,4,199,252,242,15,92,4,252,
593 72,137,4,202,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255, 573 234,255,65,221,4,199,220,36,252,234,255,252,242,15,16,4,252,234,252,242,15,
594 36,252,238,255,72,252,247,208,65,139,4,135,199,68,202,4,237,137,4,202,139, 574 92,4,194,255,221,4,252,234,220,36,194,255,129,124,253,252,234,4,239,15,133,
595 3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,255,15, 575 244,48,65,129,124,253,199,4,239,15,133,244,48,139,44,252,234,65,15,175,44,
596 191,192,199,68,202,4,237,137,4,202,255,15,191,192,252,242,15,42,192,252,242, 576 199,15,128,244,47,255,129,124,253,252,234,4,239,15,133,244,50,65,129,124,
597 15,17,4,202,255,223,67,252,254,221,28,202,255,252,242,65,15,16,4,199,252, 577 253,199,4,239,15,133,244,50,65,139,4,199,15,175,4,252,234,15,128,244,49,255,
598 242,15,17,4,202,255,65,221,4,199,221,28,202,255,72,252,247,208,137,68,202, 578 129,124,253,252,234,4,239,15,133,244,53,129,124,253,194,4,239,15,133,244,
599 4,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238, 579 53,139,44,252,234,15,175,44,194,15,128,244,52,255,252,242,15,16,4,252,234,
600 255,141,76,202,12,141,68,194,4,189,237,137,105,252,248,248,1,137,41,131,193, 580 252,242,65,15,89,4,199,255,221,4,252,234,65,220,12,199,255,252,242,65,15,
601 8,57,193,15,134,244,1,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65, 581 16,4,199,252,242,15,89,4,252,234,255,65,221,4,199,220,12,252,234,255,252,
602 252,255,36,252,238,255,139,106,252,248,139,172,253,133,233,139,173,233,72, 582 242,15,16,4,252,234,252,242,15,89,4,194,255,221,4,252,234,220,12,194,255,
603 139,69,0,72,137,4,202,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65, 583 252,242,15,16,4,252,234,252,242,65,15,94,4,199,255,221,4,252,234,65,220,52,
604 252,255,36,252,238,255,139,106,252,248,139,172,253,141,233,128,189,233,0, 584 199,255,252,242,65,15,16,4,199,252,242,15,94,4,252,234,255,65,221,4,199,220,
605 139,173,233,139,12,194,139,68,194,4,137,77,0,137,69,4,15,132,244,247,252, 585 52,252,234,255,252,242,15,16,4,252,234,252,242,15,94,4,194,255,221,4,252,
606 246,133,233,235,15,133,244,248,248,1,139,3,15,182,204,15,182,232,131,195, 586 234,220,52,194,255,252,242,15,16,4,252,234,252,242,65,15,16,12,199,255,221,
607 4,193,232,16,65,252,255,36,252,238,248,2,129,232,239,129,252,248,239,15,134, 587 4,252,234,65,221,4,199,255,252,242,65,15,16,4,199,252,242,15,16,12,252,234,
608 244,1,252,246,129,233,235,15,132,244,1,137,252,238,137,213,65,141,190,233, 588 255,65,221,4,199,221,4,252,234,255,252,242,15,16,4,252,234,252,242,15,16,
609 255,232,251,1,28,137,252,234,252,233,244,1,255,72,252,247,208,139,106,252, 589 12,194,255,221,4,252,234,221,4,194,255,248,163,232,244,153,255,252,233,244,
610 248,139,172,253,141,233,65,139,12,135,139,133,233,137,8,199,64,4,237,252, 590 163,255,232,244,113,255,15,182,252,236,15,182,192,139,124,36,24,137,151,233,
611 246,133,233,235,15,133,244,248,248,1,139,3,15,182,204,15,182,232,131,195, 591 141,52,194,137,194,41,252,234,248,33,137,252,253,137,92,36,28,232,251,1,27,
612 4,193,232,16,65,252,255,36,252,238,248,2,252,246,129,233,235,15,132,244,1, 592 139,149,233,133,192,15,133,244,42,15,182,107,252,255,15,182,75,252,253,72,
613 128,189,233,0,15,132,244,1,137,213,137,198,65,141,190,233,232,251,1,28,137, 593 139,4,252,234,72,137,4,202,139,3,15,182,204,15,182,232,131,195,4,193,232,
614 252,234,252,233,244,1,255,139,106,252,248,255,252,242,65,15,16,4,199,255, 594 16,65,252,255,36,252,238,255,72,252,247,208,65,139,4,135,199,68,202,4,237,
615 139,172,253,141,233,139,141,233,255,252,242,15,17,1,255,221,25,255,72,252, 595 137,4,202,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,
616 247,208,139,106,252,248,139,172,253,141,233,139,141,233,137,65,4,139,3,15, 596 252,238,255,15,191,192,199,68,202,4,237,137,4,202,255,15,191,192,252,242,
617 182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,255,141,156, 597 15,42,192,252,242,15,17,4,202,255,223,67,252,254,221,28,202,255,252,242,65,
618 253,131,233,139,108,36,24,131,189,233,0,15,132,244,247,137,149,233,141,52, 598 15,16,4,199,252,242,15,17,4,202,255,65,221,4,199,221,28,202,255,72,252,247,
619 202,137,252,239,232,251,1,29,139,149,233,248,1,139,3,15,182,204,15,182,232, 599 208,137,68,202,4,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,
620 131,195,4,193,232,16,65,252,255,36,252,238,255,72,252,247,208,139,108,36, 600 255,36,252,238,255,141,76,202,12,141,68,194,4,189,237,137,105,252,248,248,
621 24,137,149,233,139,82,252,248,65,139,52,135,137,252,239,137,92,36,28,232, 601 1,137,41,131,193,8,57,193,15,134,244,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, 602 4,193,232,16,65,252,255,36,252,238,255,139,106,252,248,139,172,253,133,233,
623 182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,255,139,108, 603 139,173,233,72,139,69,0,72,137,4,202,139,3,15,182,204,15,182,232,131,195,
624 36,24,137,149,233,65,139,142,233,65,59,142,233,137,92,36,28,15,131,244,251, 604 4,193,232,16,65,252,255,36,252,238,255,139,106,252,248,139,172,253,141,233,
625 248,1,137,194,37,252,255,7,0,0,193,252,234,11,61,252,255,7,0,0,15,132,244, 605 128,189,233,0,139,173,233,139,12,194,139,68,194,4,137,77,0,137,69,4,15,132,
626 249,248,2,137,252,239,137,198,232,251,1,31,139,149,233,15,182,75,252,253, 606 244,247,252,246,133,233,235,15,133,244,248,248,1,139,3,15,182,204,15,182,
627 137,4,202,199,68,202,4,237,139,3,15,182,204,15,182,232,131,195,4,193,232, 607 232,131,195,4,193,232,16,65,252,255,36,252,238,248,2,129,232,239,129,252,
628 16,65,252,255,36,252,238,248,3,184,1,8,0,0,252,233,244,2,248,5,137,252,239, 608 248,239,15,134,244,1,252,246,129,233,235,15,132,244,1,137,252,238,137,213,
629 232,251,1,32,15,183,67,252,254,252,233,244,1,255,72,252,247,208,139,108,36, 609 65,141,190,233,255,232,251,1,28,137,252,234,252,233,244,1,255,72,252,247,
630 24,65,139,142,233,137,92,36,28,65,59,142,233,137,149,233,15,131,244,249,248, 610 208,139,106,252,248,139,172,253,141,233,65,139,12,135,139,133,233,137,8,199,
631 2,65,139,52,135,137,252,239,232,251,1,33,139,149,233,15,182,75,252,253,137, 611 64,4,237,252,246,133,233,235,15,133,244,248,248,1,139,3,15,182,204,15,182,
632 4,202,199,68,202,4,237,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65, 612 232,131,195,4,193,232,16,65,252,255,36,252,238,248,2,252,246,129,233,235,
633 252,255,36,252,238,248,3,137,252,239,232,251,1,32,15,183,67,252,254,72,252, 613 15,132,244,1,128,189,233,0,15,132,244,1,137,213,137,198,65,141,190,233,232,
634 247,208,252,233,244,2,255,72,252,247,208,139,106,252,248,139,173,233,65,139, 614 251,1,28,137,252,234,252,233,244,1,255,139,106,252,248,255,252,242,65,15,
635 4,135,252,233,244,163,255,72,252,247,208,139,106,252,248,139,173,233,65,139, 615 16,4,199,255,139,172,253,141,233,139,141,233,255,252,242,15,17,1,255,221,
636 4,135,252,233,244,164,255,15,182,252,236,15,182,192,129,124,253,252,234,4, 616 25,255,72,252,247,208,139,106,252,248,139,172,253,141,233,139,141,233,137,
637 239,15,133,244,36,139,44,252,234,255,129,124,253,194,4,239,15,133,244,251, 617 65,4,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,
638 139,4,194,255,129,124,253,194,4,239,15,131,244,251,255,252,242,15,16,4,194, 618 255,141,156,253,131,233,139,108,36,24,131,189,233,0,15,132,244,247,137,149,
639 252,242,15,45,192,252,242,15,42,200,102,15,46,193,255,15,133,244,36,255,59, 619 233,141,52,202,137,252,239,232,251,1,29,139,149,233,248,1,139,3,15,182,204,
640 133,233,15,131,244,36,193,224,3,3,133,233,129,120,253,4,239,15,132,244,248, 620 15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,255,72,252,247,208,
641 72,139,40,72,137,44,202,248,1,139,3,15,182,204,15,182,232,131,195,4,193,232, 621 139,108,36,24,137,149,233,139,82,252,248,65,139,52,135,137,252,239,137,92,
642 16,65,252,255,36,252,238,248,2,131,189,233,0,15,132,244,249,139,141,233,252, 622 36,28,232,251,1,30,139,149,233,15,182,75,252,253,137,4,202,199,68,202,4,237,
643 246,129,233,235,15,132,244,36,15,182,75,252,253,248,3,199,68,202,4,237,252,
644 233,244,1,248,5,255,129,124,253,194,4,239,15,133,244,36,139,4,194,252,233,
645 244,163,255,15,182,252,236,15,182,192,72,252,247,208,65,139,4,135,129,124,
646 253,252,234,4,239,15,133,244,34,139,44,252,234,248,163,139,141,233,35,136,
647 233,105,201,239,3,141,233,248,1,129,185,233,239,15,133,244,250,57,129,233,
648 15,133,244,250,129,121,253,4,239,15,132,244,251,15,182,67,252,253,72,139,
649 41,72,137,44,194,248,2,255,139,3,15,182,204,15,182,232,131,195,4,193,232,
650 16,65,252,255,36,252,238,248,3,15,182,67,252,253,199,68,194,4,237,252,233,
651 244,2,248,4,139,137,233,133,201,15,133,244,1,248,5,139,141,233,133,201,15,
652 132,244,3,252,246,129,233,235,15,133,244,3,252,233,244,34,255,15,182,252,
653 236,15,182,192,129,124,253,252,234,4,239,15,133,244,35,139,44,252,234,59,
654 133,233,15,131,244,35,193,224,3,3,133,233,129,120,253,4,239,15,132,244,248,
655 72,139,40,72,137,44,202,248,1,139,3,15,182,204,15,182,232,131,195,4,193,232,
656 16,65,252,255,36,252,238,248,2,131,189,233,0,15,132,244,249,139,141,233,252,
657 246,129,233,235,15,132,244,35,255,15,182,75,252,253,248,3,199,68,202,4,237,
658 252,233,244,1,255,15,182,252,236,15,182,192,129,124,253,252,234,4,239,15,
659 133,244,39,139,44,252,234,255,15,133,244,39,255,59,133,233,15,131,244,39,
660 193,224,3,3,133,233,129,120,253,4,239,15,132,244,249,248,1,252,246,133,233,
661 235,15,133,244,253,248,2,72,139,44,202,72,137,40,139,3,15,182,204,15,182,
662 232,131,195,4,193,232,16,65,252,255,36,252,238,248,3,131,189,233,0,15,132,
663 244,1,139,141,233,252,246,129,233,235,255,15,132,244,39,15,182,75,252,253,
664 252,233,244,1,248,5,129,124,253,194,4,239,15,133,244,39,139,4,194,252,233,
665 244,164,248,7,128,165,233,235,65,139,142,233,65,137,174,233,137,141,233,15,
666 182,75,252,253,252,233,244,2,255,15,182,252,236,15,182,192,72,252,247,208,
667 65,139,4,135,129,124,253,252,234,4,239,15,133,244,37,139,44,252,234,248,164,
668 139,141,233,35,136,233,105,201,239,198,133,233,0,3,141,233,248,1,129,185,
669 233,239,15,133,244,251,57,129,233,15,133,244,251,129,121,253,4,239,15,132,
670 244,250,248,2,255,252,246,133,233,235,15,133,244,253,248,3,15,182,67,252,
671 253,72,139,44,194,72,137,41,139,3,15,182,204,15,182,232,131,195,4,193,232,
672 16,65,252,255,36,252,238,248,4,131,189,233,0,15,132,244,2,137,12,36,139,141,
673 233,252,246,129,233,235,15,132,244,37,139,12,36,252,233,244,2,248,5,139,137,
674 233,133,201,15,133,244,1,255,139,141,233,133,201,15,132,244,252,252,246,129,
675 233,235,15,132,244,37,248,6,137,4,36,199,68,36,4,237,137,108,36,8,139,124,
676 36,24,137,151,233,72,141,20,36,137,252,238,137,252,253,137,92,36,28,232,251,
677 1,34,139,149,233,139,108,36,8,137,193,252,233,244,2,248,7,128,165,233,235,
678 65,139,134,233,65,137,174,233,137,133,233,252,233,244,3,255,15,182,252,236,
679 15,182,192,129,124,253,252,234,4,239,15,133,244,38,139,44,252,234,59,133,
680 233,15,131,244,38,193,224,3,3,133,233,129,120,253,4,239,15,132,244,249,248,
681 1,252,246,133,233,235,15,133,244,253,248,2,72,139,12,202,72,137,8,139,3,15,
682 182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,3,131,189,
683 233,0,15,132,244,1,255,139,141,233,252,246,129,233,235,15,132,244,38,15,182,
684 75,252,253,252,233,244,1,248,7,128,165,233,235,65,139,142,233,65,137,174,
685 233,137,141,233,15,182,75,252,253,252,233,244,2,255,68,137,60,36,69,139,60,
686 199,248,1,141,12,202,139,105,252,248,252,246,133,233,235,15,133,244,253,248,
687 2,139,68,36,4,131,232,1,15,132,244,250,68,1,252,248,59,133,233,15,135,244,
688 251,68,41,252,248,65,193,231,3,68,3,189,233,248,3,72,139,41,131,193,8,73,
689 137,47,65,131,199,8,131,232,1,15,133,244,3,248,4,68,139,60,36,139,3,15,182,
690 204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,5,139,124,36,
691 24,137,151,233,137,252,238,137,194,137,252,253,137,92,36,28,232,251,1,35,
692 139,149,233,15,182,75,252,253,252,233,244,1,248,7,255,128,165,233,235,65,
693 139,134,233,65,137,174,233,137,133,233,252,233,244,2,255,3,68,36,4,255,129,
694 124,253,202,4,239,139,44,202,15,133,244,55,141,84,202,8,137,90,252,252,139,
695 157,233,139,11,15,182,252,233,15,182,205,131,195,4,65,252,255,36,252,238,
696 255,141,76,202,8,65,137,215,139,105,252,248,129,121,253,252,252,239,15,133,
697 244,28,248,56,139,90,252,252,252,247,195,237,15,133,244,253,248,1,137,106,
698 252,248,137,68,36,4,131,232,1,15,132,244,249,248,2,72,139,41,131,193,8,73,
699 137,47,65,131,199,8,131,232,1,15,133,244,2,139,106,252,248,248,3,139,68,36,
700 4,128,189,233,1,15,135,244,251,248,4,139,157,233,139,11,15,182,252,233,15,
701 182,205,131,195,4,65,252,255,36,252,238,248,5,255,252,247,195,237,15,133,
702 244,4,15,182,75,252,253,72,252,247,209,141,12,202,68,139,121,252,248,69,139,
703 191,233,69,139,191,233,252,233,244,4,248,7,129,252,235,239,252,247,195,237,
704 15,133,244,254,41,218,65,137,215,139,90,252,252,252,233,244,1,248,8,129,195,
705 239,252,233,244,1,255,141,76,202,8,72,139,105,232,72,139,65,252,240,72,137,
706 41,72,137,65,8,139,105,224,139,65,228,137,105,252,248,137,65,252,252,129,
707 252,248,239,184,237,15,133,244,28,137,202,137,90,252,252,139,157,233,139,
708 11,15,182,252,233,15,182,205,131,195,4,65,252,255,36,252,238,255,68,137,60,
709 36,68,137,116,36,4,139,108,202,252,240,139,68,202,252,248,68,139,181,233,
710 131,195,4,68,139,189,233,248,1,68,57,252,240,15,131,244,251,65,129,124,253,
711 199,4,239,15,132,244,250,255,219,68,202,252,248,255,73,139,44,199,72,137,
712 108,202,8,131,192,1,255,137,68,202,252,248,248,2,15,183,67,252,254,141,156,
713 253,131,233,248,3,68,139,116,36,4,68,139,60,36,139,3,15,182,204,15,182,232,
714 131,195,4,193,232,16,65,252,255,36,252,238,248,4,131,192,1,255,137,68,202,
715 252,248,255,252,233,244,1,248,5,68,41,252,240,248,6,59,133,233,15,135,244,
716 3,68,105,252,248,239,68,3,189,233,65,129,191,233,239,15,132,244,253,70,141,
717 116,48,1,73,139,175,233,73,139,135,233,72,137,44,202,72,137,68,202,8,68,137,
718 116,202,252,248,252,233,244,2,248,7,131,192,1,252,233,244,6,255,129,124,253,
719 202,252,236,239,15,133,244,251,139,108,202,232,129,124,253,202,252,244,239,
720 15,133,244,251,129,124,253,202,252,252,239,15,133,244,251,128,189,233,235,
721 15,133,244,251,141,156,253,131,233,199,68,202,252,248,0,0,0,0,248,1,139,3,
722 15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,5,198,
723 67,252,252,235,141,156,253,131,233,198,3,235,252,233,244,1,255,15,182,252,
724 236,15,182,192,68,137,60,36,68,141,188,253,194,233,141,12,202,68,43,122,252,
725 252,133,252,237,15,132,244,251,141,108,252,233,252,248,65,57,215,15,131,244,
726 248,248,1,73,139,71,252,248,65,131,199,8,72,137,1,131,193,8,57,252,233,15,
727 131,244,249,65,57,215,15,130,244,1,248,2,199,65,4,237,131,193,8,57,252,233,
728 15,130,244,2,248,3,68,139,60,36,139,3,15,182,204,15,182,232,131,195,4,193,
729 232,16,65,252,255,36,252,238,248,5,199,68,36,4,1,0,0,0,137,208,68,41,252,
730 248,15,134,244,3,137,197,193,252,237,3,131,197,1,137,108,36,4,139,108,36,
731 24,1,200,59,133,233,15,135,244,253,248,6,255,73,139,71,252,248,65,131,199,
732 8,72,137,1,131,193,8,65,57,215,15,130,244,6,252,233,244,3,248,7,137,149,233,
733 137,141,233,137,92,36,28,65,41,215,139,116,36,4,131,252,238,1,137,252,239,
734 232,251,1,0,139,149,233,139,141,233,65,1,215,252,233,244,6,255,193,225,3,
735 255,248,1,139,90,252,252,137,68,36,4,252,247,195,237,15,133,244,253,255,248,
736 13,65,137,215,131,232,1,15,132,244,249,248,2,73,139,44,15,73,137,111,252,
737 248,65,131,199,8,131,232,1,15,133,244,2,248,3,139,68,36,4,15,182,107,252,
738 255,248,5,57,197,15,135,244,252,255,72,139,44,10,72,137,106,252,248,255,248,
739 5,56,67,252,255,15,135,244,252,255,15,182,75,252,253,72,252,247,209,141,20,
740 202,68,139,122,252,248,69,139,191,233,69,139,191,233,139,3,15,182,204,15,
741 182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,6,255,65,199,71,252,
742 252,237,65,131,199,8,255,199,68,194,252,244,237,255,131,192,1,252,233,244,
743 5,248,7,141,171,233,252,247,197,237,15,133,244,14,41,252,234,255,1,252,233,
744 255,137,221,209,252,237,129,229,239,102,65,131,172,253,46,233,1,15,132,244,
745 145,255,141,12,202,255,129,121,253,4,239,15,133,244,255,255,129,121,253,12,
746 239,15,133,244,57,129,121,253,20,239,15,133,244,57,139,41,131,121,16,0,15,
747 140,244,251,255,139,105,16,133,252,237,15,136,244,251,3,41,15,128,244,247,
748 137,41,255,59,105,8,199,65,28,237,137,105,24,255,15,142,244,253,248,1,248,
749 6,141,156,253,131,233,255,141,156,253,131,233,15,183,67,252,254,15,142,245,
750 248,1,248,6,255,15,143,244,253,248,6,141,156,253,131,233,248,1,255,248,7,
751 139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,
752 5,255,3,41,15,128,244,1,137,41,255,15,141,244,7,255,141,156,253,131,233,15,
753 183,67,252,254,15,141,245,255,15,140,244,7,255,252,233,244,6,248,9,255,129,
754 121,253,4,239,255,15,131,244,57,129,121,253,12,239,15,131,244,57,255,139,
755 105,20,255,129,252,253,239,15,131,244,57,255,252,242,15,16,1,252,242,15,16,
756 73,8,255,252,242,15,88,65,16,252,242,15,17,1,133,252,237,15,136,244,249,255,
757 15,140,244,249,255,102,15,46,200,248,1,252,242,15,17,65,24,255,221,65,8,221,
758 1,255,220,65,16,221,17,221,81,24,133,252,237,15,136,244,247,255,221,81,24,
759 15,140,244,247,255,217,201,248,1,255,15,183,67,252,254,255,15,131,244,7,255,
760 15,131,244,248,141,156,253,131,233,255,141,156,253,131,233,15,183,67,252,
761 254,15,131,245,255,15,130,244,7,255,15,130,244,248,141,156,253,131,233,255,
762 248,3,102,15,46,193,252,233,244,1,255,141,12,202,139,105,4,129,252,253,239,
763 15,132,244,247,255,137,105,252,252,139,41,137,105,252,248,252,233,245,255,
764 141,156,253,131,233,139,1,137,105,252,252,137,65,252,248,255,65,139,142,233,
765 139,4,129,72,139,128,233,139,108,36,24,65,137,150,233,65,137,174,233,76,137,
766 36,36,76,137,108,36,8,72,131,252,236,16,252,255,224,255,141,156,253,131,233,
767 139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,255,
768 137,221,209,252,237,129,229,239,102,65,131,172,253,46,233,1,15,132,244,147,
769 255,68,139,187,233,139,108,36,24,141,12,202,59,141,233,15,135,244,23,15,182,
770 139,233,57,200,15,134,244,249,248,2,255,15,183,67,252,254,252,233,245,255,
771 248,3,199,68,194,252,252,237,131,192,1,57,200,15,134,244,3,252,233,244,2,
772 255,141,44,197,237,141,4,194,68,139,122,252,248,137,104,252,252,68,137,120,
773 252,248,139,108,36,24,141,12,200,59,141,233,15,135,244,22,137,209,137,194,
774 15,182,171,233,133,252,237,15,132,244,248,248,1,131,193,8,57,209,15,131,244,
775 249,68,139,121,252,248,68,137,56,68,139,121,252,252,68,137,120,4,131,192,
776 8,199,65,252,252,237,131,252,237,1,15,133,244,1,248,2,255,68,139,187,233,
777 139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,255, 623 139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,255,
778 248,3,199,64,4,237,131,192,8,131,252,237,1,15,133,244,3,252,233,244,2,255, 624 139,108,36,24,137,149,233,65,139,142,233,65,59,142,233,137,92,36,28,15,131,
779 139,106,252,248,76,139,189,233,139,108,36,24,141,68,194,252,248,137,149,233, 625 244,251,248,1,137,194,37,252,255,7,0,0,193,252,234,11,61,252,255,7,0,0,15,
780 141,136,233,59,141,233,137,133,233,255,76,137,252,254,137,252,239,255,15, 626 132,244,249,248,2,137,252,239,137,198,232,251,1,31,139,149,233,15,182,75,
781 135,244,21,65,199,134,233,237,255,65,252,255,215,255,65,252,255,150,233,255, 627 252,253,137,4,202,199,68,202,4,237,139,3,15,182,204,15,182,232,131,195,4,
782 65,199,134,233,237,139,149,233,141,12,194,252,247,217,3,141,233,139,90,252, 628 193,232,16,65,252,255,36,252,238,248,3,184,1,8,0,0,252,233,244,2,248,5,137,
783 252,252,233,244,12,255,254,0 629 252,239,232,251,1,32,15,183,67,252,254,252,233,244,1,255,72,252,247,208,139,
630 108,36,24,65,139,142,233,137,92,36,28,65,59,142,233,137,149,233,15,131,244,
631 249,248,2,65,139,52,135,137,252,239,232,251,1,33,139,149,233,15,182,75,252,
632 253,137,4,202,199,68,202,4,237,139,3,15,182,204,15,182,232,131,195,4,193,
633 232,16,65,252,255,36,252,238,248,3,137,252,239,232,251,1,32,15,183,67,252,
634 254,72,252,247,208,252,233,244,2,255,72,252,247,208,139,106,252,248,139,173,
635 233,65,139,4,135,252,233,244,164,255,72,252,247,208,139,106,252,248,139,173,
636 233,65,139,4,135,252,233,244,165,255,15,182,252,236,15,182,192,129,124,253,
637 252,234,4,239,15,133,244,36,139,44,252,234,255,129,124,253,194,4,239,15,133,
638 244,251,139,4,194,255,129,124,253,194,4,239,15,131,244,251,255,252,242,15,
639 16,4,194,252,242,15,45,192,252,242,15,42,200,102,15,46,193,255,15,133,244,
640 36,255,59,133,233,15,131,244,36,193,224,3,3,133,233,129,120,253,4,239,15,
641 132,244,248,72,139,40,72,137,44,202,248,1,139,3,15,182,204,15,182,232,131,
642 195,4,193,232,16,65,252,255,36,252,238,248,2,131,189,233,0,15,132,244,249,
643 139,141,233,252,246,129,233,235,15,132,244,36,15,182,75,252,253,248,3,199,
644 68,202,4,237,252,233,244,1,248,5,255,129,124,253,194,4,239,15,133,244,36,
645 139,4,194,252,233,244,164,255,15,182,252,236,15,182,192,72,252,247,208,65,
646 139,4,135,129,124,253,252,234,4,239,15,133,244,34,139,44,252,234,248,164,
647 139,141,233,35,136,233,105,201,239,3,141,233,248,1,129,185,233,239,15,133,
648 244,250,57,129,233,15,133,244,250,129,121,253,4,239,15,132,244,251,15,182,
649 67,252,253,72,139,41,72,137,44,194,248,2,255,139,3,15,182,204,15,182,232,
650 131,195,4,193,232,16,65,252,255,36,252,238,248,3,15,182,67,252,253,199,68,
651 194,4,237,252,233,244,2,248,4,139,137,233,133,201,15,133,244,1,248,5,139,
652 141,233,133,201,15,132,244,3,252,246,129,233,235,15,133,244,3,252,233,244,
653 34,255,15,182,252,236,15,182,192,129,124,253,252,234,4,239,15,133,244,35,
654 139,44,252,234,59,133,233,15,131,244,35,193,224,3,3,133,233,129,120,253,4,
655 239,15,132,244,248,72,139,40,72,137,44,202,248,1,139,3,15,182,204,15,182,
656 232,131,195,4,193,232,16,65,252,255,36,252,238,248,2,131,189,233,0,15,132,
657 244,249,139,141,233,252,246,129,233,235,15,132,244,35,255,15,182,75,252,253,
658 248,3,199,68,202,4,237,252,233,244,1,255,15,182,252,236,15,182,192,129,124,
659 253,252,234,4,239,15,133,244,39,139,44,252,234,255,15,133,244,39,255,59,133,
660 233,15,131,244,39,193,224,3,3,133,233,129,120,253,4,239,15,132,244,249,248,
661 1,252,246,133,233,235,15,133,244,253,248,2,72,139,44,202,72,137,40,139,3,
662 15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,3,131,
663 189,233,0,15,132,244,1,139,141,233,252,246,129,233,235,255,15,132,244,39,
664 15,182,75,252,253,252,233,244,1,248,5,129,124,253,194,4,239,15,133,244,39,
665 139,4,194,252,233,244,165,248,7,128,165,233,235,65,139,142,233,65,137,174,
666 233,137,141,233,15,182,75,252,253,252,233,244,2,255,15,182,252,236,15,182,
667 192,72,252,247,208,65,139,4,135,129,124,253,252,234,4,239,15,133,244,37,139,
668 44,252,234,248,165,139,141,233,35,136,233,105,201,239,198,133,233,0,3,141,
669 233,248,1,129,185,233,239,15,133,244,251,57,129,233,15,133,244,251,129,121,
670 253,4,239,15,132,244,250,248,2,255,252,246,133,233,235,15,133,244,253,248,
671 3,15,182,67,252,253,72,139,44,194,72,137,41,139,3,15,182,204,15,182,232,131,
672 195,4,193,232,16,65,252,255,36,252,238,248,4,131,189,233,0,15,132,244,2,137,
673 12,36,139,141,233,252,246,129,233,235,15,132,244,37,139,12,36,252,233,244,
674 2,248,5,139,137,233,133,201,15,133,244,1,255,139,141,233,133,201,15,132,244,
675 252,252,246,129,233,235,15,132,244,37,248,6,137,4,36,199,68,36,4,237,137,
676 108,36,8,139,124,36,24,137,151,233,72,141,20,36,137,252,238,137,252,253,137,
677 92,36,28,232,251,1,34,139,149,233,139,108,36,8,137,193,252,233,244,2,248,
678 7,128,165,233,235,65,139,134,233,65,137,174,233,137,133,233,252,233,244,3,
679 255,15,182,252,236,15,182,192,129,124,253,252,234,4,239,15,133,244,38,139,
680 44,252,234,59,133,233,15,131,244,38,193,224,3,3,133,233,129,120,253,4,239,
681 15,132,244,249,248,1,252,246,133,233,235,15,133,244,253,248,2,72,139,12,202,
682 72,137,8,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,
683 238,248,3,131,189,233,0,15,132,244,1,255,139,141,233,252,246,129,233,235,
684 15,132,244,38,15,182,75,252,253,252,233,244,1,248,7,128,165,233,235,65,139,
685 142,233,65,137,174,233,137,141,233,15,182,75,252,253,252,233,244,2,255,68,
686 137,60,36,69,139,60,199,248,1,141,12,202,139,105,252,248,252,246,133,233,
687 235,15,133,244,253,248,2,139,68,36,4,131,232,1,15,132,244,250,68,1,252,248,
688 59,133,233,15,135,244,251,68,41,252,248,65,193,231,3,68,3,189,233,248,3,72,
689 139,41,131,193,8,73,137,47,65,131,199,8,131,232,1,15,133,244,3,248,4,68,139,
690 60,36,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,
691 238,248,5,139,124,36,24,137,151,233,137,252,238,137,194,137,252,253,137,92,
692 36,28,232,251,1,35,139,149,233,15,182,75,252,253,252,233,244,1,248,7,255,
693 128,165,233,235,65,139,134,233,65,137,174,233,137,133,233,252,233,244,2,255,
694 3,68,36,4,255,129,124,253,202,4,239,139,44,202,15,133,244,55,141,84,202,8,
695 137,90,252,252,139,157,233,139,11,15,182,252,233,15,182,205,131,195,4,65,
696 252,255,36,252,238,255,141,76,202,8,65,137,215,139,105,252,248,129,121,253,
697 252,252,239,15,133,244,28,248,56,139,90,252,252,252,247,195,237,15,133,244,
698 253,248,1,137,106,252,248,137,68,36,4,131,232,1,15,132,244,249,248,2,72,139,
699 41,131,193,8,73,137,47,65,131,199,8,131,232,1,15,133,244,2,139,106,252,248,
700 248,3,139,68,36,4,128,189,233,1,15,135,244,251,248,4,139,157,233,139,11,15,
701 182,252,233,15,182,205,131,195,4,65,252,255,36,252,238,248,5,255,252,247,
702 195,237,15,133,244,4,15,182,75,252,253,72,252,247,209,141,12,202,68,139,121,
703 252,248,69,139,191,233,69,139,191,233,252,233,244,4,248,7,129,252,235,239,
704 252,247,195,237,15,133,244,254,41,218,65,137,215,139,90,252,252,252,233,244,
705 1,248,8,129,195,239,252,233,244,1,255,141,76,202,8,72,139,105,232,72,139,
706 65,252,240,72,137,41,72,137,65,8,139,105,224,139,65,228,137,105,252,248,137,
707 65,252,252,129,252,248,239,184,237,15,133,244,28,137,202,137,90,252,252,139,
708 157,233,139,11,15,182,252,233,15,182,205,131,195,4,65,252,255,36,252,238,
709 255,68,137,60,36,68,137,116,36,4,139,108,202,252,240,139,68,202,252,248,68,
710 139,181,233,131,195,4,68,139,189,233,248,1,68,57,252,240,15,131,244,251,65,
711 129,124,253,199,4,239,15,132,244,250,255,219,68,202,252,248,255,73,139,44,
712 199,72,137,108,202,8,131,192,1,255,137,68,202,252,248,248,2,15,183,67,252,
713 254,141,156,253,131,233,248,3,68,139,116,36,4,68,139,60,36,139,3,15,182,204,
714 15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,4,131,192,1,255,
715 137,68,202,252,248,255,252,233,244,1,248,5,68,41,252,240,248,6,59,133,233,
716 15,135,244,3,68,105,252,248,239,68,3,189,233,65,129,191,233,239,15,132,244,
717 253,70,141,116,48,1,73,139,175,233,73,139,135,233,72,137,44,202,72,137,68,
718 202,8,68,137,116,202,252,248,252,233,244,2,248,7,131,192,1,252,233,244,6,
719 255,129,124,253,202,252,236,239,15,133,244,251,139,108,202,232,129,124,253,
720 202,252,244,239,15,133,244,251,129,124,253,202,252,252,239,15,133,244,251,
721 128,189,233,235,15,133,244,251,141,156,253,131,233,199,68,202,252,248,0,0,
722 0,0,248,1,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,
723 252,238,248,5,198,67,252,252,235,141,156,253,131,233,198,3,235,252,233,244,
724 1,255,15,182,252,236,15,182,192,68,137,60,36,68,141,188,253,194,233,141,12,
725 202,68,43,122,252,252,133,252,237,15,132,244,251,141,108,252,233,252,248,
726 65,57,215,15,131,244,248,248,1,73,139,71,252,248,65,131,199,8,72,137,1,131,
727 193,8,57,252,233,15,131,244,249,65,57,215,15,130,244,1,248,2,199,65,4,237,
728 131,193,8,57,252,233,15,130,244,2,248,3,68,139,60,36,139,3,15,182,204,15,
729 182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,5,199,68,36,4,1,0,
730 0,0,137,208,68,41,252,248,15,134,244,3,137,197,193,252,237,3,131,197,1,137,
731 108,36,4,139,108,36,24,1,200,59,133,233,15,135,244,253,248,6,255,73,139,71,
732 252,248,65,131,199,8,72,137,1,131,193,8,65,57,215,15,130,244,6,252,233,244,
733 3,248,7,137,149,233,137,141,233,137,92,36,28,65,41,215,139,116,36,4,131,252,
734 238,1,137,252,239,232,251,1,0,139,149,233,139,141,233,65,1,215,252,233,244,
735 6,255,193,225,3,255,248,1,139,90,252,252,137,68,36,4,252,247,195,237,15,133,
736 244,253,255,248,13,65,137,215,131,232,1,15,132,244,249,248,2,73,139,44,15,
737 73,137,111,252,248,65,131,199,8,131,232,1,15,133,244,2,248,3,139,68,36,4,
738 15,182,107,252,255,248,5,57,197,15,135,244,252,255,72,139,44,10,72,137,106,
739 252,248,255,248,5,56,67,252,255,15,135,244,252,255,15,182,75,252,253,72,252,
740 247,209,141,20,202,68,139,122,252,248,69,139,191,233,69,139,191,233,139,3,
741 15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,6,255,
742 65,199,71,252,252,237,65,131,199,8,255,199,68,194,252,244,237,255,131,192,
743 1,252,233,244,5,248,7,141,171,233,252,247,197,237,15,133,244,14,41,252,234,
744 255,1,252,233,255,137,221,209,252,237,129,229,239,102,65,131,172,253,46,233,
745 1,15,132,244,145,255,141,12,202,255,129,121,253,4,239,15,133,244,255,255,
746 129,121,253,12,239,15,133,244,57,129,121,253,20,239,15,133,244,57,139,41,
747 131,121,16,0,15,140,244,251,255,129,121,253,12,239,15,133,244,162,129,121,
748 253,20,239,15,133,244,162,255,139,105,16,133,252,237,15,136,244,251,3,41,
749 15,128,244,247,137,41,255,59,105,8,199,65,28,237,137,105,24,255,15,142,244,
750 253,248,1,248,6,141,156,253,131,233,255,141,156,253,131,233,15,183,67,252,
751 254,15,142,245,248,1,248,6,255,15,143,244,253,248,6,141,156,253,131,233,248,
752 1,255,248,7,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,
753 252,238,248,5,255,3,41,15,128,244,1,137,41,255,15,141,244,7,255,141,156,253,
754 131,233,15,183,67,252,254,15,141,245,255,15,140,244,7,255,252,233,244,6,248,
755 9,255,129,121,253,4,239,255,15,131,244,57,129,121,253,12,239,15,131,244,57,
756 255,129,121,253,12,239,15,131,244,162,129,121,253,20,239,15,131,244,162,255,
757 139,105,20,255,129,252,253,239,15,131,244,57,255,252,242,15,16,1,252,242,
758 15,16,73,8,255,252,242,15,88,65,16,252,242,15,17,1,133,252,237,15,136,244,
759 249,255,15,140,244,249,255,102,15,46,200,248,1,252,242,15,17,65,24,255,221,
760 65,8,221,1,255,220,65,16,221,17,221,81,24,133,252,237,15,136,244,247,255,
761 221,81,24,15,140,244,247,255,217,201,248,1,255,15,183,67,252,254,255,15,131,
762 244,7,255,15,131,244,248,141,156,253,131,233,255,141,156,253,131,233,15,183,
763 67,252,254,15,131,245,255,15,130,244,7,255,15,130,244,248,141,156,253,131,
764 233,255,248,3,102,15,46,193,252,233,244,1,255,141,12,202,139,105,4,129,252,
765 253,239,15,132,244,247,255,137,105,252,252,139,41,137,105,252,248,252,233,
766 245,255,141,156,253,131,233,139,1,137,105,252,252,137,65,252,248,255,65,139,
767 142,233,139,4,129,72,139,128,233,139,108,36,24,65,137,150,233,65,137,174,
768 233,76,137,36,36,76,137,108,36,8,72,131,252,236,16,252,255,224,255,141,156,
769 253,131,233,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,
770 252,238,255,137,221,209,252,237,129,229,239,102,65,131,172,253,46,233,1,15,
771 132,244,147,255,68,139,187,233,139,108,36,24,141,12,202,59,141,233,15,135,
772 244,23,15,182,139,233,57,200,15,134,244,249,248,2,255,15,183,67,252,254,252,
773 233,245,255,248,3,199,68,194,252,252,237,131,192,1,57,200,15,134,244,3,252,
774 233,244,2,255,141,44,197,237,141,4,194,68,139,122,252,248,137,104,252,252,
775 68,137,120,252,248,139,108,36,24,141,12,200,59,141,233,15,135,244,22,137,
776 209,137,194,15,182,171,233,133,252,237,15,132,244,248,248,1,131,193,8,57,
777 209,15,131,244,249,68,139,121,252,248,68,137,56,68,139,121,252,252,68,137,
778 120,4,131,192,8,199,65,252,252,237,131,252,237,1,15,133,244,1,248,2,255,68,
779 139,187,233,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,
780 252,238,255,248,3,199,64,4,237,131,192,8,131,252,237,1,15,133,244,3,252,233,
781 244,2,255,139,106,252,248,76,139,189,233,139,108,36,24,141,68,194,252,248,
782 137,149,233,141,136,233,59,141,233,137,133,233,255,76,137,252,254,137,252,
783 239,255,15,135,244,21,65,199,134,233,237,255,65,252,255,215,255,65,252,255,
784 150,233,255,65,199,134,233,237,139,149,233,141,12,194,252,247,217,3,141,233,
785 139,90,252,252,252,233,244,12,255,254,0
784}; 786};
785 787
786enum { 788enum {
@@ -936,6 +938,7 @@ enum {
936 GLOB_vm_foldarith, 938 GLOB_vm_foldarith,
937 GLOB_vm_cpuid, 939 GLOB_vm_cpuid,
938 GLOB_vm_ffi_call, 940 GLOB_vm_ffi_call,
941 GLOB_assert_bad_for_arg_type,
939 GLOB_BC_MODVN_Z, 942 GLOB_BC_MODVN_Z,
940 GLOB_BC_TGETS_Z, 943 GLOB_BC_TGETS_Z,
941 GLOB_BC_TSETS_Z, 944 GLOB_BC_TSETS_Z,
@@ -1094,6 +1097,7 @@ static const char *const globnames[] = {
1094 "vm_foldarith", 1097 "vm_foldarith",
1095 "vm_cpuid", 1098 "vm_cpuid",
1096 "vm_ffi_call@4", 1099 "vm_ffi_call@4",
1100 "assert_bad_for_arg_type",
1097 "BC_MODVN_Z", 1101 "BC_MODVN_Z",
1098 "BC_TGETS_Z", 1102 "BC_TGETS_Z",
1099 "BC_TSETS_Z", 1103 "BC_TSETS_Z",
@@ -1818,13 +1822,18 @@ static void build_subroutines(BuildCtx *ctx, int cmov, int sse)
1818#endif 1822#endif
1819 dasm_put(Dst, 9832); 1823 dasm_put(Dst, 9832);
1820#endif 1824#endif
1825 dasm_put(Dst, 9840);
1826#ifdef LUA_USE_ASSERT
1827 dasm_put(Dst, 9242);
1828#endif
1829 dasm_put(Dst, 9242);
1821} 1830}
1822 1831
1823/* Generate the code for a single instruction. */ 1832/* Generate the code for a single instruction. */
1824static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse) 1833static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
1825{ 1834{
1826 int vk = 0; 1835 int vk = 0;
1827 dasm_put(Dst, 9840, defop); 1836 dasm_put(Dst, 9843, defop);
1828 1837
1829 switch (op) { 1838 switch (op) {
1830 1839
@@ -1835,145 +1844,145 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
1835 1844
1836 case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT: 1845 case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT:
1837 if (LJ_DUALNUM) { 1846 if (LJ_DUALNUM) {
1838 dasm_put(Dst, 9842, LJ_TISNUM, LJ_TISNUM); 1847 dasm_put(Dst, 9845, LJ_TISNUM, LJ_TISNUM);
1839 switch (op) { 1848 switch (op) {
1840 case BC_ISLT: 1849 case BC_ISLT:
1841 dasm_put(Dst, 9872); 1850 dasm_put(Dst, 9875);
1842 break; 1851 break;
1843 case BC_ISGE: 1852 case BC_ISGE:
1844 dasm_put(Dst, 9877); 1853 dasm_put(Dst, 9880);
1845 break; 1854 break;
1846 case BC_ISLE: 1855 case BC_ISLE:
1847 dasm_put(Dst, 9882); 1856 dasm_put(Dst, 9885);
1848 break; 1857 break;
1849 case BC_ISGT: 1858 case BC_ISGT:
1850 dasm_put(Dst, 9887); 1859 dasm_put(Dst, 9890);
1851 break; 1860 break;
1852 default: break; /* Shut up GCC. */ 1861 default: break; /* Shut up GCC. */
1853 } 1862 }
1854 dasm_put(Dst, 9892, -BCBIAS_J*4, LJ_TISNUM); 1863 dasm_put(Dst, 9895, -BCBIAS_J*4, LJ_TISNUM);
1855 if (sse) { 1864 if (sse) {
1856 dasm_put(Dst, 9947); 1865 dasm_put(Dst, 9950);
1857 } else { 1866 } else {
1858 dasm_put(Dst, 9958); 1867 dasm_put(Dst, 9961);
1859 } 1868 }
1860 dasm_put(Dst, 9969); 1869 dasm_put(Dst, 9972);
1861 if (sse) { 1870 if (sse) {
1862 dasm_put(Dst, 9976); 1871 dasm_put(Dst, 9979);
1863 switch (op) { 1872 switch (op) {
1864 case BC_ISLT: 1873 case BC_ISLT:
1865 dasm_put(Dst, 9996); 1874 dasm_put(Dst, 9999);
1866 break; 1875 break;
1867 case BC_ISGE: 1876 case BC_ISGE:
1868 dasm_put(Dst, 10001); 1877 dasm_put(Dst, 10004);
1869 break; 1878 break;
1870 case BC_ISLE: 1879 case BC_ISLE:
1871 dasm_put(Dst, 10006); 1880 dasm_put(Dst, 10009);
1872 break; 1881 break;
1873 case BC_ISGT: 1882 case BC_ISGT:
1874 dasm_put(Dst, 10011); 1883 dasm_put(Dst, 10014);
1875 break; 1884 break;
1876 default: break; /* Shut up GCC. */ 1885 default: break; /* Shut up GCC. */
1877 } 1886 }
1878 dasm_put(Dst, 10016); 1887 dasm_put(Dst, 10019);
1879 } else { 1888 } else {
1880 dasm_put(Dst, 10021); 1889 dasm_put(Dst, 10024);
1881 } 1890 }
1882 } else { 1891 } else {
1883 dasm_put(Dst, 10029, LJ_TISNUM, LJ_TISNUM); 1892 dasm_put(Dst, 10032, LJ_TISNUM, LJ_TISNUM);
1884 } 1893 }
1885 if (sse) { 1894 if (sse) {
1886 dasm_put(Dst, 10050); 1895 dasm_put(Dst, 10053);
1887 } else { 1896 } else {
1888 dasm_put(Dst, 10071); 1897 dasm_put(Dst, 10074);
1889 if (cmov) { 1898 if (cmov) {
1890 dasm_put(Dst, 10087); 1899 dasm_put(Dst, 10090);
1891 } else { 1900 } else {
1892 dasm_put(Dst, 10093); 1901 dasm_put(Dst, 10096);
1893 } 1902 }
1894 } 1903 }
1895 if (LJ_DUALNUM) { 1904 if (LJ_DUALNUM) {
1896 switch (op) { 1905 switch (op) {
1897 case BC_ISLT: 1906 case BC_ISLT:
1898 dasm_put(Dst, 9996); 1907 dasm_put(Dst, 9999);
1899 break; 1908 break;
1900 case BC_ISGE: 1909 case BC_ISGE:
1901 dasm_put(Dst, 10001); 1910 dasm_put(Dst, 10004);
1902 break; 1911 break;
1903 case BC_ISLE: 1912 case BC_ISLE:
1904 dasm_put(Dst, 10006); 1913 dasm_put(Dst, 10009);
1905 break; 1914 break;
1906 case BC_ISGT: 1915 case BC_ISGT:
1907 dasm_put(Dst, 10011); 1916 dasm_put(Dst, 10014);
1908 break; 1917 break;
1909 default: break; /* Shut up GCC. */ 1918 default: break; /* Shut up GCC. */
1910 } 1919 }
1911 dasm_put(Dst, 10016); 1920 dasm_put(Dst, 10019);
1912 } else { 1921 } else {
1913 switch (op) { 1922 switch (op) {
1914 case BC_ISLT: 1923 case BC_ISLT:
1915 dasm_put(Dst, 10100); 1924 dasm_put(Dst, 10103);
1916 break; 1925 break;
1917 case BC_ISGE: 1926 case BC_ISGE:
1918 dasm_put(Dst, 10105); 1927 dasm_put(Dst, 10108);
1919 break; 1928 break;
1920 case BC_ISLE: 1929 case BC_ISLE:
1921 dasm_put(Dst, 10110); 1930 dasm_put(Dst, 10113);
1922 break; 1931 break;
1923 case BC_ISGT: 1932 case BC_ISGT:
1924 dasm_put(Dst, 10115); 1933 dasm_put(Dst, 10118);
1925 break; 1934 break;
1926 default: break; /* Shut up GCC. */ 1935 default: break; /* Shut up GCC. */
1927 } 1936 }
1928 dasm_put(Dst, 10120, -BCBIAS_J*4); 1937 dasm_put(Dst, 10123, -BCBIAS_J*4);
1929 } 1938 }
1930 break; 1939 break;
1931 1940
1932 case BC_ISEQV: case BC_ISNEV: 1941 case BC_ISEQV: case BC_ISNEV:
1933 vk = op == BC_ISEQV; 1942 vk = op == BC_ISEQV;
1934 dasm_put(Dst, 10153); 1943 dasm_put(Dst, 10156);
1935 if (LJ_DUALNUM) { 1944 if (LJ_DUALNUM) {
1936 dasm_put(Dst, 10161, LJ_TISNUM, LJ_TISNUM); 1945 dasm_put(Dst, 10164, LJ_TISNUM, LJ_TISNUM);
1937 if (vk) { 1946 if (vk) {
1938 dasm_put(Dst, 10186); 1947 dasm_put(Dst, 10189);
1939 } else { 1948 } else {
1940 dasm_put(Dst, 10191); 1949 dasm_put(Dst, 10194);
1941 } 1950 }
1942 dasm_put(Dst, 10196, -BCBIAS_J*4, LJ_TISNUM); 1951 dasm_put(Dst, 10199, -BCBIAS_J*4, LJ_TISNUM);
1943 if (sse) { 1952 if (sse) {
1944 dasm_put(Dst, 10249); 1953 dasm_put(Dst, 10252);
1945 } else { 1954 } else {
1946 dasm_put(Dst, 10256); 1955 dasm_put(Dst, 10259);
1947 } 1956 }
1948 dasm_put(Dst, 10260); 1957 dasm_put(Dst, 10263);
1949 if (sse) { 1958 if (sse) {
1950 dasm_put(Dst, 10271); 1959 dasm_put(Dst, 10274);
1951 } else { 1960 } else {
1952 dasm_put(Dst, 10283); 1961 dasm_put(Dst, 10286);
1953 } 1962 }
1954 dasm_put(Dst, 10290); 1963 dasm_put(Dst, 10293);
1955 } else { 1964 } else {
1956 dasm_put(Dst, 10295, LJ_TISNUM, LJ_TISNUM); 1965 dasm_put(Dst, 10298, LJ_TISNUM, LJ_TISNUM);
1957 } 1966 }
1958 if (sse) { 1967 if (sse) {
1959 dasm_put(Dst, 10314); 1968 dasm_put(Dst, 10317);
1960 } else { 1969 } else {
1961 dasm_put(Dst, 10332); 1970 dasm_put(Dst, 10335);
1962 if (cmov) { 1971 if (cmov) {
1963 dasm_put(Dst, 10087); 1972 dasm_put(Dst, 10090);
1964 } else { 1973 } else {
1965 dasm_put(Dst, 10093); 1974 dasm_put(Dst, 10096);
1966 } 1975 }
1967 } 1976 }
1968 iseqne_fp: 1977 iseqne_fp:
1969 if (vk) { 1978 if (vk) {
1970 dasm_put(Dst, 10345); 1979 dasm_put(Dst, 10348);
1971 } else { 1980 } else {
1972 dasm_put(Dst, 10354); 1981 dasm_put(Dst, 10357);
1973 } 1982 }
1974 iseqne_end: 1983 iseqne_end:
1975 if (vk) { 1984 if (vk) {
1976 dasm_put(Dst, 10363, -BCBIAS_J*4); 1985 dasm_put(Dst, 10366, -BCBIAS_J*4);
1977 if (!LJ_HASFFI) { 1986 if (!LJ_HASFFI) {
1978 dasm_put(Dst, 4592); 1987 dasm_put(Dst, 4592);
1979 } 1988 }
@@ -1981,150 +1990,150 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
1981 if (!LJ_HASFFI) { 1990 if (!LJ_HASFFI) {
1982 dasm_put(Dst, 4592); 1991 dasm_put(Dst, 4592);
1983 } 1992 }
1984 dasm_put(Dst, 10378, -BCBIAS_J*4); 1993 dasm_put(Dst, 10381, -BCBIAS_J*4);
1985 } 1994 }
1986 if (LJ_DUALNUM && (op == BC_ISEQV || op == BC_ISNEV || 1995 if (LJ_DUALNUM && (op == BC_ISEQV || op == BC_ISNEV ||
1987 op == BC_ISEQN || op == BC_ISNEN)) { 1996 op == BC_ISEQN || op == BC_ISNEN)) {
1988 dasm_put(Dst, 10393); 1997 dasm_put(Dst, 10396);
1989 } else { 1998 } else {
1990 dasm_put(Dst, 10132); 1999 dasm_put(Dst, 10135);
1991 } 2000 }
1992 if (op == BC_ISEQV || op == BC_ISNEV) { 2001 if (op == BC_ISEQV || op == BC_ISNEV) {
1993 dasm_put(Dst, 10398); 2002 dasm_put(Dst, 10401);
1994 if (LJ_HASFFI) { 2003 if (LJ_HASFFI) {
1995 dasm_put(Dst, 10401, LJ_TCDATA, LJ_TCDATA); 2004 dasm_put(Dst, 10404, LJ_TCDATA, LJ_TCDATA);
1996 } 2005 }
1997 dasm_put(Dst, 10420, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq); 2006 dasm_put(Dst, 10423, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq);
1998 if (vk) { 2007 if (vk) {
1999 dasm_put(Dst, 10476); 2008 dasm_put(Dst, 10479);
2000 } else { 2009 } else {
2001 dasm_put(Dst, 10480); 2010 dasm_put(Dst, 10483);
2002 } 2011 }
2003 dasm_put(Dst, 10486); 2012 dasm_put(Dst, 10489);
2004 } else if (LJ_HASFFI) { 2013 } else if (LJ_HASFFI) {
2005 dasm_put(Dst, 10491, LJ_TCDATA); 2014 dasm_put(Dst, 10494, LJ_TCDATA);
2006 if (LJ_DUALNUM && vk) { 2015 if (LJ_DUALNUM && vk) {
2007 dasm_put(Dst, 10498); 2016 dasm_put(Dst, 10501);
2008 } else { 2017 } else {
2009 dasm_put(Dst, 10471); 2018 dasm_put(Dst, 10474);
2010 } 2019 }
2011 dasm_put(Dst, 10503); 2020 dasm_put(Dst, 10506);
2012 } 2021 }
2013 break; 2022 break;
2014 case BC_ISEQS: case BC_ISNES: 2023 case BC_ISEQS: case BC_ISNES:
2015 vk = op == BC_ISEQS; 2024 vk = op == BC_ISEQS;
2016 dasm_put(Dst, 10508, LJ_TSTR); 2025 dasm_put(Dst, 10511, LJ_TSTR);
2017 iseqne_test: 2026 iseqne_test:
2018 if (vk) { 2027 if (vk) {
2019 dasm_put(Dst, 10349); 2028 dasm_put(Dst, 10352);
2020 } else { 2029 } else {
2021 dasm_put(Dst, 2888); 2030 dasm_put(Dst, 2888);
2022 } 2031 }
2023 goto iseqne_end; 2032 goto iseqne_end;
2024 case BC_ISEQN: case BC_ISNEN: 2033 case BC_ISEQN: case BC_ISNEN:
2025 vk = op == BC_ISEQN; 2034 vk = op == BC_ISEQN;
2026 dasm_put(Dst, 10535); 2035 dasm_put(Dst, 10538);
2027 if (LJ_DUALNUM) { 2036 if (LJ_DUALNUM) {
2028 dasm_put(Dst, 10543, LJ_TISNUM, LJ_TISNUM); 2037 dasm_put(Dst, 10546, LJ_TISNUM, LJ_TISNUM);
2029 if (vk) { 2038 if (vk) {
2030 dasm_put(Dst, 10186); 2039 dasm_put(Dst, 10189);
2031 } else { 2040 } else {
2032 dasm_put(Dst, 10191); 2041 dasm_put(Dst, 10194);
2033 } 2042 }
2034 dasm_put(Dst, 10570, -BCBIAS_J*4, LJ_TISNUM); 2043 dasm_put(Dst, 10573, -BCBIAS_J*4, LJ_TISNUM);
2035 if (sse) { 2044 if (sse) {
2036 dasm_put(Dst, 10620); 2045 dasm_put(Dst, 10623);
2037 } else { 2046 } else {
2038 dasm_put(Dst, 10628); 2047 dasm_put(Dst, 10631);
2039 } 2048 }
2040 dasm_put(Dst, 10633); 2049 dasm_put(Dst, 10636);
2041 if (sse) { 2050 if (sse) {
2042 dasm_put(Dst, 10640); 2051 dasm_put(Dst, 10643);
2043 } else { 2052 } else {
2044 dasm_put(Dst, 10653); 2053 dasm_put(Dst, 10656);
2045 } 2054 }
2046 dasm_put(Dst, 10290); 2055 dasm_put(Dst, 10293);
2047 } else { 2056 } else {
2048 dasm_put(Dst, 10661, LJ_TISNUM); 2057 dasm_put(Dst, 10664, LJ_TISNUM);
2049 } 2058 }
2050 if (sse) { 2059 if (sse) {
2051 dasm_put(Dst, 10670); 2060 dasm_put(Dst, 10673);
2052 } else { 2061 } else {
2053 dasm_put(Dst, 10689); 2062 dasm_put(Dst, 10692);
2054 if (cmov) { 2063 if (cmov) {
2055 dasm_put(Dst, 10087); 2064 dasm_put(Dst, 10090);
2056 } else { 2065 } else {
2057 dasm_put(Dst, 10093); 2066 dasm_put(Dst, 10096);
2058 } 2067 }
2059 } 2068 }
2060 goto iseqne_fp; 2069 goto iseqne_fp;
2061 case BC_ISEQP: case BC_ISNEP: 2070 case BC_ISEQP: case BC_ISNEP:
2062 vk = op == BC_ISEQP; 2071 vk = op == BC_ISEQP;
2063 dasm_put(Dst, 10703); 2072 dasm_put(Dst, 10706);
2064 if (!LJ_HASFFI) goto iseqne_test; 2073 if (!LJ_HASFFI) goto iseqne_test;
2065 if (vk) { 2074 if (vk) {
2066 dasm_put(Dst, 10717, -BCBIAS_J*4, LJ_TCDATA); 2075 dasm_put(Dst, 10720, -BCBIAS_J*4, LJ_TCDATA);
2067 } else { 2076 } else {
2068 dasm_put(Dst, 10768, LJ_TCDATA, -BCBIAS_J*4); 2077 dasm_put(Dst, 10771, LJ_TCDATA, -BCBIAS_J*4);
2069 } 2078 }
2070 break; 2079 break;
2071 2080
2072 /* -- Unary test and copy ops ------------------------------------------- */ 2081 /* -- Unary test and copy ops ------------------------------------------- */
2073 2082
2074 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF: 2083 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF:
2075 dasm_put(Dst, 10813, LJ_TISTRUECOND); 2084 dasm_put(Dst, 10816, LJ_TISTRUECOND);
2076 if (op == BC_IST || op == BC_ISTC) { 2085 if (op == BC_IST || op == BC_ISTC) {
2077 dasm_put(Dst, 10115); 2086 dasm_put(Dst, 10118);
2078 } else { 2087 } else {
2079 dasm_put(Dst, 10110); 2088 dasm_put(Dst, 10113);
2080 } 2089 }
2081 if (op == BC_ISTC || op == BC_ISFC) { 2090 if (op == BC_ISTC || op == BC_ISFC) {
2082 dasm_put(Dst, 10825); 2091 dasm_put(Dst, 10828);
2083 } 2092 }
2084 dasm_put(Dst, 10120, -BCBIAS_J*4); 2093 dasm_put(Dst, 10123, -BCBIAS_J*4);
2085 break; 2094 break;
2086 2095
2087 /* -- Unary ops --------------------------------------------------------- */ 2096 /* -- Unary ops --------------------------------------------------------- */
2088 2097
2089 case BC_MOV: 2098 case BC_MOV:
2090 dasm_put(Dst, 10836); 2099 dasm_put(Dst, 10839);
2091 break; 2100 break;
2092 case BC_NOT: 2101 case BC_NOT:
2093 dasm_put(Dst, 10865, LJ_TISTRUECOND, LJ_TTRUE); 2102 dasm_put(Dst, 10868, LJ_TISTRUECOND, LJ_TTRUE);
2094 break; 2103 break;
2095 case BC_UNM: 2104 case BC_UNM:
2096 if (LJ_DUALNUM) { 2105 if (LJ_DUALNUM) {
2097 dasm_put(Dst, 10902, LJ_TISNUM, LJ_TISNUM); 2106 dasm_put(Dst, 10905, LJ_TISNUM, LJ_TISNUM);
2098 } else { 2107 } else {
2099 dasm_put(Dst, 10980, LJ_TISNUM); 2108 dasm_put(Dst, 10983, LJ_TISNUM);
2100 } 2109 }
2101 if (sse) { 2110 if (sse) {
2102 dasm_put(Dst, 10991, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32)); 2111 dasm_put(Dst, 10994, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32));
2103 } else { 2112 } else {
2104 dasm_put(Dst, 11016); 2113 dasm_put(Dst, 11019);
2105 } 2114 }
2106 if (LJ_DUALNUM) { 2115 if (LJ_DUALNUM) {
2107 dasm_put(Dst, 10393); 2116 dasm_put(Dst, 10396);
2108 } else { 2117 } else {
2109 dasm_put(Dst, 10132); 2118 dasm_put(Dst, 10135);
2110 } 2119 }
2111 break; 2120 break;
2112 case BC_LEN: 2121 case BC_LEN:
2113 dasm_put(Dst, 11025, LJ_TSTR); 2122 dasm_put(Dst, 11028, LJ_TSTR);
2114 if (LJ_DUALNUM) { 2123 if (LJ_DUALNUM) {
2115 dasm_put(Dst, 11039, Dt5(->len), LJ_TISNUM); 2124 dasm_put(Dst, 11042, Dt5(->len), LJ_TISNUM);
2116 } else if (sse) { 2125 } else if (sse) {
2117 dasm_put(Dst, 11053, Dt5(->len)); 2126 dasm_put(Dst, 11056, Dt5(->len));
2118 } else { 2127 } else {
2119 dasm_put(Dst, 11071, Dt5(->len)); 2128 dasm_put(Dst, 11074, Dt5(->len));
2120 } 2129 }
2121 dasm_put(Dst, 11080, LJ_TTAB); 2130 dasm_put(Dst, 11083, LJ_TTAB);
2122 if (LJ_DUALNUM) { 2131 if (LJ_DUALNUM) {
2123 } else if (sse) { 2132 } else if (sse) {
2124 dasm_put(Dst, 11122); 2133 dasm_put(Dst, 11125);
2125 } else { 2134 } else {
2126 } 2135 }
2127 dasm_put(Dst, 11128); 2136 dasm_put(Dst, 11131);
2128 break; 2137 break;
2129 2138
2130 /* -- Binary ops -------------------------------------------------------- */ 2139 /* -- Binary ops -------------------------------------------------------- */
@@ -2132,603 +2141,603 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2132 2141
2133 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV: 2142 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV:
2134 if (LJ_DUALNUM) { 2143 if (LJ_DUALNUM) {
2135 dasm_put(Dst, 11141); 2144 dasm_put(Dst, 11144);
2136 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2145 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2137 switch (vk) { 2146 switch (vk) {
2138 case 0: 2147 case 0:
2139 dasm_put(Dst, 11149, LJ_TISNUM, LJ_TISNUM); 2148 dasm_put(Dst, 11152, LJ_TISNUM, LJ_TISNUM);
2140 break; 2149 break;
2141 case 1: 2150 case 1:
2142 dasm_put(Dst, 11184, LJ_TISNUM, LJ_TISNUM); 2151 dasm_put(Dst, 11187, LJ_TISNUM, LJ_TISNUM);
2143 break; 2152 break;
2144 default: 2153 default:
2145 dasm_put(Dst, 11219, LJ_TISNUM, LJ_TISNUM); 2154 dasm_put(Dst, 11222, LJ_TISNUM, LJ_TISNUM);
2146 break; 2155 break;
2147 } 2156 }
2148 dasm_put(Dst, 11252, LJ_TISNUM); 2157 dasm_put(Dst, 11255, LJ_TISNUM);
2149 if (vk == 1) { 2158 if (vk == 1) {
2150 dasm_put(Dst, 11049); 2159 dasm_put(Dst, 11052);
2151 } else { 2160 } else {
2152 dasm_put(Dst, 10832); 2161 dasm_put(Dst, 10835);
2153 } 2162 }
2154 dasm_put(Dst, 10132); 2163 dasm_put(Dst, 10135);
2155 } else { 2164 } else {
2156 dasm_put(Dst, 11141); 2165 dasm_put(Dst, 11144);
2157 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2166 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2158 switch (vk) { 2167 switch (vk) {
2159 case 0: 2168 case 0:
2160 dasm_put(Dst, 11258, LJ_TISNUM); 2169 dasm_put(Dst, 11261, LJ_TISNUM);
2161 if (LJ_DUALNUM) { 2170 if (LJ_DUALNUM) {
2162 dasm_put(Dst, 11270, LJ_TISNUM); 2171 dasm_put(Dst, 11273, LJ_TISNUM);
2163 } 2172 }
2164 if (sse) { 2173 if (sse) {
2165 dasm_put(Dst, 11282); 2174 dasm_put(Dst, 11285);
2166 } else { 2175 } else {
2167 dasm_put(Dst, 11297); 2176 dasm_put(Dst, 11300);
2168 } 2177 }
2169 break; 2178 break;
2170 case 1: 2179 case 1:
2171 dasm_put(Dst, 11306, LJ_TISNUM); 2180 dasm_put(Dst, 11309, LJ_TISNUM);
2172 if (LJ_DUALNUM) { 2181 if (LJ_DUALNUM) {
2173 dasm_put(Dst, 11318, LJ_TISNUM); 2182 dasm_put(Dst, 11321, LJ_TISNUM);
2174 } 2183 }
2175 if (sse) { 2184 if (sse) {
2176 dasm_put(Dst, 11330); 2185 dasm_put(Dst, 11333);
2177 } else { 2186 } else {
2178 dasm_put(Dst, 11345); 2187 dasm_put(Dst, 11348);
2179 } 2188 }
2180 break; 2189 break;
2181 default: 2190 default:
2182 dasm_put(Dst, 11354, LJ_TISNUM, LJ_TISNUM); 2191 dasm_put(Dst, 11357, LJ_TISNUM, LJ_TISNUM);
2183 if (sse) { 2192 if (sse) {
2184 dasm_put(Dst, 11376); 2193 dasm_put(Dst, 11379);
2185 } else { 2194 } else {
2186 dasm_put(Dst, 11390); 2195 dasm_put(Dst, 11393);
2187 } 2196 }
2188 break; 2197 break;
2189 } 2198 }
2190 if (sse) { 2199 if (sse) {
2191 dasm_put(Dst, 11009); 2200 dasm_put(Dst, 11012);
2192 } else { 2201 } else {
2193 dasm_put(Dst, 11021); 2202 dasm_put(Dst, 11024);
2194 } 2203 }
2195 dasm_put(Dst, 10132); 2204 dasm_put(Dst, 10135);
2196 } 2205 }
2197 break; 2206 break;
2198 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV: 2207 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV:
2199 if (LJ_DUALNUM) { 2208 if (LJ_DUALNUM) {
2200 dasm_put(Dst, 11141); 2209 dasm_put(Dst, 11144);
2201 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2210 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2202 switch (vk) { 2211 switch (vk) {
2203 case 0: 2212 case 0:
2204 dasm_put(Dst, 11398, LJ_TISNUM, LJ_TISNUM); 2213 dasm_put(Dst, 11401, LJ_TISNUM, LJ_TISNUM);
2205 break; 2214 break;
2206 case 1: 2215 case 1:
2207 dasm_put(Dst, 11433, LJ_TISNUM, LJ_TISNUM); 2216 dasm_put(Dst, 11436, LJ_TISNUM, LJ_TISNUM);
2208 break; 2217 break;
2209 default: 2218 default:
2210 dasm_put(Dst, 11468, LJ_TISNUM, LJ_TISNUM); 2219 dasm_put(Dst, 11471, LJ_TISNUM, LJ_TISNUM);
2211 break; 2220 break;
2212 } 2221 }
2213 dasm_put(Dst, 11252, LJ_TISNUM); 2222 dasm_put(Dst, 11255, LJ_TISNUM);
2214 if (vk == 1) { 2223 if (vk == 1) {
2215 dasm_put(Dst, 11049); 2224 dasm_put(Dst, 11052);
2216 } else { 2225 } else {
2217 dasm_put(Dst, 10832); 2226 dasm_put(Dst, 10835);
2218 } 2227 }
2219 dasm_put(Dst, 10132); 2228 dasm_put(Dst, 10135);
2220 } else { 2229 } else {
2221 dasm_put(Dst, 11141); 2230 dasm_put(Dst, 11144);
2222 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2231 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2223 switch (vk) { 2232 switch (vk) {
2224 case 0: 2233 case 0:
2225 dasm_put(Dst, 11258, LJ_TISNUM); 2234 dasm_put(Dst, 11261, LJ_TISNUM);
2226 if (LJ_DUALNUM) { 2235 if (LJ_DUALNUM) {
2227 dasm_put(Dst, 11270, LJ_TISNUM); 2236 dasm_put(Dst, 11273, LJ_TISNUM);
2228 } 2237 }
2229 if (sse) { 2238 if (sse) {
2230 dasm_put(Dst, 11501); 2239 dasm_put(Dst, 11504);
2231 } else { 2240 } else {
2232 dasm_put(Dst, 11516); 2241 dasm_put(Dst, 11519);
2233 } 2242 }
2234 break; 2243 break;
2235 case 1: 2244 case 1:
2236 dasm_put(Dst, 11306, LJ_TISNUM); 2245 dasm_put(Dst, 11309, LJ_TISNUM);
2237 if (LJ_DUALNUM) { 2246 if (LJ_DUALNUM) {
2238 dasm_put(Dst, 11318, LJ_TISNUM); 2247 dasm_put(Dst, 11321, LJ_TISNUM);
2239 } 2248 }
2240 if (sse) { 2249 if (sse) {
2241 dasm_put(Dst, 11525); 2250 dasm_put(Dst, 11528);
2242 } else { 2251 } else {
2243 dasm_put(Dst, 11540); 2252 dasm_put(Dst, 11543);
2244 } 2253 }
2245 break; 2254 break;
2246 default: 2255 default:
2247 dasm_put(Dst, 11354, LJ_TISNUM, LJ_TISNUM); 2256 dasm_put(Dst, 11357, LJ_TISNUM, LJ_TISNUM);
2248 if (sse) { 2257 if (sse) {
2249 dasm_put(Dst, 11549); 2258 dasm_put(Dst, 11552);
2250 } else { 2259 } else {
2251 dasm_put(Dst, 11563); 2260 dasm_put(Dst, 11566);
2252 } 2261 }
2253 break; 2262 break;
2254 } 2263 }
2255 if (sse) { 2264 if (sse) {
2256 dasm_put(Dst, 11009); 2265 dasm_put(Dst, 11012);
2257 } else { 2266 } else {
2258 dasm_put(Dst, 11021); 2267 dasm_put(Dst, 11024);
2259 } 2268 }
2260 dasm_put(Dst, 10132); 2269 dasm_put(Dst, 10135);
2261 } 2270 }
2262 break; 2271 break;
2263 case BC_MULVN: case BC_MULNV: case BC_MULVV: 2272 case BC_MULVN: case BC_MULNV: case BC_MULVV:
2264 if (LJ_DUALNUM) { 2273 if (LJ_DUALNUM) {
2265 dasm_put(Dst, 11141); 2274 dasm_put(Dst, 11144);
2266 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2275 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2267 switch (vk) { 2276 switch (vk) {
2268 case 0: 2277 case 0:
2269 dasm_put(Dst, 11571, LJ_TISNUM, LJ_TISNUM); 2278 dasm_put(Dst, 11574, LJ_TISNUM, LJ_TISNUM);
2270 break; 2279 break;
2271 case 1: 2280 case 1:
2272 dasm_put(Dst, 11607, LJ_TISNUM, LJ_TISNUM); 2281 dasm_put(Dst, 11610, LJ_TISNUM, LJ_TISNUM);
2273 break; 2282 break;
2274 default: 2283 default:
2275 dasm_put(Dst, 11643, LJ_TISNUM, LJ_TISNUM); 2284 dasm_put(Dst, 11646, LJ_TISNUM, LJ_TISNUM);
2276 break; 2285 break;
2277 } 2286 }
2278 dasm_put(Dst, 11252, LJ_TISNUM); 2287 dasm_put(Dst, 11255, LJ_TISNUM);
2279 if (vk == 1) { 2288 if (vk == 1) {
2280 dasm_put(Dst, 11049); 2289 dasm_put(Dst, 11052);
2281 } else { 2290 } else {
2282 dasm_put(Dst, 10832); 2291 dasm_put(Dst, 10835);
2283 } 2292 }
2284 dasm_put(Dst, 10132); 2293 dasm_put(Dst, 10135);
2285 } else { 2294 } else {
2286 dasm_put(Dst, 11141); 2295 dasm_put(Dst, 11144);
2287 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2296 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2288 switch (vk) { 2297 switch (vk) {
2289 case 0: 2298 case 0:
2290 dasm_put(Dst, 11258, LJ_TISNUM); 2299 dasm_put(Dst, 11261, LJ_TISNUM);
2291 if (LJ_DUALNUM) { 2300 if (LJ_DUALNUM) {
2292 dasm_put(Dst, 11270, LJ_TISNUM); 2301 dasm_put(Dst, 11273, LJ_TISNUM);
2293 } 2302 }
2294 if (sse) { 2303 if (sse) {
2295 dasm_put(Dst, 11677); 2304 dasm_put(Dst, 11680);
2296 } else { 2305 } else {
2297 dasm_put(Dst, 11692); 2306 dasm_put(Dst, 11695);
2298 } 2307 }
2299 break; 2308 break;
2300 case 1: 2309 case 1:
2301 dasm_put(Dst, 11306, LJ_TISNUM); 2310 dasm_put(Dst, 11309, LJ_TISNUM);
2302 if (LJ_DUALNUM) { 2311 if (LJ_DUALNUM) {
2303 dasm_put(Dst, 11318, LJ_TISNUM); 2312 dasm_put(Dst, 11321, LJ_TISNUM);
2304 } 2313 }
2305 if (sse) { 2314 if (sse) {
2306 dasm_put(Dst, 11701); 2315 dasm_put(Dst, 11704);
2307 } else { 2316 } else {
2308 dasm_put(Dst, 11716); 2317 dasm_put(Dst, 11719);
2309 } 2318 }
2310 break; 2319 break;
2311 default: 2320 default:
2312 dasm_put(Dst, 11354, LJ_TISNUM, LJ_TISNUM); 2321 dasm_put(Dst, 11357, LJ_TISNUM, LJ_TISNUM);
2313 if (sse) { 2322 if (sse) {
2314 dasm_put(Dst, 11725); 2323 dasm_put(Dst, 11728);
2315 } else { 2324 } else {
2316 dasm_put(Dst, 11739); 2325 dasm_put(Dst, 11742);
2317 } 2326 }
2318 break; 2327 break;
2319 } 2328 }
2320 if (sse) { 2329 if (sse) {
2321 dasm_put(Dst, 11009); 2330 dasm_put(Dst, 11012);
2322 } else { 2331 } else {
2323 dasm_put(Dst, 11021); 2332 dasm_put(Dst, 11024);
2324 } 2333 }
2325 dasm_put(Dst, 10132); 2334 dasm_put(Dst, 10135);
2326 } 2335 }
2327 break; 2336 break;
2328 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV: 2337 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV:
2329 dasm_put(Dst, 11141); 2338 dasm_put(Dst, 11144);
2330 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2339 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2331 switch (vk) { 2340 switch (vk) {
2332 case 0: 2341 case 0:
2333 dasm_put(Dst, 11258, LJ_TISNUM); 2342 dasm_put(Dst, 11261, LJ_TISNUM);
2334 if (LJ_DUALNUM) { 2343 if (LJ_DUALNUM) {
2335 dasm_put(Dst, 11270, LJ_TISNUM); 2344 dasm_put(Dst, 11273, LJ_TISNUM);
2336 } 2345 }
2337 if (sse) { 2346 if (sse) {
2338 dasm_put(Dst, 11747); 2347 dasm_put(Dst, 11750);
2339 } else { 2348 } else {
2340 dasm_put(Dst, 11762); 2349 dasm_put(Dst, 11765);
2341 } 2350 }
2342 break; 2351 break;
2343 case 1: 2352 case 1:
2344 dasm_put(Dst, 11306, LJ_TISNUM); 2353 dasm_put(Dst, 11309, LJ_TISNUM);
2345 if (LJ_DUALNUM) { 2354 if (LJ_DUALNUM) {
2346 dasm_put(Dst, 11318, LJ_TISNUM); 2355 dasm_put(Dst, 11321, LJ_TISNUM);
2347 } 2356 }
2348 if (sse) { 2357 if (sse) {
2349 dasm_put(Dst, 11771); 2358 dasm_put(Dst, 11774);
2350 } else { 2359 } else {
2351 dasm_put(Dst, 11786); 2360 dasm_put(Dst, 11789);
2352 } 2361 }
2353 break; 2362 break;
2354 default: 2363 default:
2355 dasm_put(Dst, 11354, LJ_TISNUM, LJ_TISNUM); 2364 dasm_put(Dst, 11357, LJ_TISNUM, LJ_TISNUM);
2356 if (sse) { 2365 if (sse) {
2357 dasm_put(Dst, 11795); 2366 dasm_put(Dst, 11798);
2358 } else { 2367 } else {
2359 dasm_put(Dst, 11809); 2368 dasm_put(Dst, 11812);
2360 } 2369 }
2361 break; 2370 break;
2362 } 2371 }
2363 if (sse) { 2372 if (sse) {
2364 dasm_put(Dst, 11009); 2373 dasm_put(Dst, 11012);
2365 } else { 2374 } else {
2366 dasm_put(Dst, 11021); 2375 dasm_put(Dst, 11024);
2367 } 2376 }
2368 dasm_put(Dst, 10132); 2377 dasm_put(Dst, 10135);
2369 break; 2378 break;
2370 case BC_MODVN: 2379 case BC_MODVN:
2371 dasm_put(Dst, 11141); 2380 dasm_put(Dst, 11144);
2372 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2381 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2373 switch (vk) { 2382 switch (vk) {
2374 case 0: 2383 case 0:
2375 dasm_put(Dst, 11258, LJ_TISNUM); 2384 dasm_put(Dst, 11261, LJ_TISNUM);
2376 if (LJ_DUALNUM) { 2385 if (LJ_DUALNUM) {
2377 dasm_put(Dst, 11270, LJ_TISNUM); 2386 dasm_put(Dst, 11273, LJ_TISNUM);
2378 } 2387 }
2379 if (sse) { 2388 if (sse) {
2380 dasm_put(Dst, 11817); 2389 dasm_put(Dst, 11820);
2381 } else { 2390 } else {
2382 dasm_put(Dst, 11832); 2391 dasm_put(Dst, 11835);
2383 } 2392 }
2384 break; 2393 break;
2385 case 1: 2394 case 1:
2386 dasm_put(Dst, 11306, LJ_TISNUM); 2395 dasm_put(Dst, 11309, LJ_TISNUM);
2387 if (LJ_DUALNUM) { 2396 if (LJ_DUALNUM) {
2388 dasm_put(Dst, 11318, LJ_TISNUM); 2397 dasm_put(Dst, 11321, LJ_TISNUM);
2389 } 2398 }
2390 if (sse) { 2399 if (sse) {
2391 dasm_put(Dst, 11841); 2400 dasm_put(Dst, 11844);
2392 } else { 2401 } else {
2393 dasm_put(Dst, 11856); 2402 dasm_put(Dst, 11859);
2394 } 2403 }
2395 break; 2404 break;
2396 default: 2405 default:
2397 dasm_put(Dst, 11354, LJ_TISNUM, LJ_TISNUM); 2406 dasm_put(Dst, 11357, LJ_TISNUM, LJ_TISNUM);
2398 if (sse) { 2407 if (sse) {
2399 dasm_put(Dst, 11865); 2408 dasm_put(Dst, 11868);
2400 } else { 2409 } else {
2401 dasm_put(Dst, 11879); 2410 dasm_put(Dst, 11882);
2402 } 2411 }
2403 break; 2412 break;
2404 } 2413 }
2405 dasm_put(Dst, 11887); 2414 dasm_put(Dst, 11890);
2406 if (sse) { 2415 if (sse) {
2407 dasm_put(Dst, 11009); 2416 dasm_put(Dst, 11012);
2408 } else { 2417 } else {
2409 dasm_put(Dst, 11021); 2418 dasm_put(Dst, 11024);
2410 } 2419 }
2411 dasm_put(Dst, 10132); 2420 dasm_put(Dst, 10135);
2412 break; 2421 break;
2413 case BC_MODNV: case BC_MODVV: 2422 case BC_MODNV: case BC_MODVV:
2414 dasm_put(Dst, 11141); 2423 dasm_put(Dst, 11144);
2415 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2424 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2416 switch (vk) { 2425 switch (vk) {
2417 case 0: 2426 case 0:
2418 dasm_put(Dst, 11258, LJ_TISNUM); 2427 dasm_put(Dst, 11261, LJ_TISNUM);
2419 if (LJ_DUALNUM) { 2428 if (LJ_DUALNUM) {
2420 dasm_put(Dst, 11270, LJ_TISNUM); 2429 dasm_put(Dst, 11273, LJ_TISNUM);
2421 } 2430 }
2422 if (sse) { 2431 if (sse) {
2423 dasm_put(Dst, 11817); 2432 dasm_put(Dst, 11820);
2424 } else { 2433 } else {
2425 dasm_put(Dst, 11832); 2434 dasm_put(Dst, 11835);
2426 } 2435 }
2427 break; 2436 break;
2428 case 1: 2437 case 1:
2429 dasm_put(Dst, 11306, LJ_TISNUM); 2438 dasm_put(Dst, 11309, LJ_TISNUM);
2430 if (LJ_DUALNUM) { 2439 if (LJ_DUALNUM) {
2431 dasm_put(Dst, 11318, LJ_TISNUM); 2440 dasm_put(Dst, 11321, LJ_TISNUM);
2432 } 2441 }
2433 if (sse) { 2442 if (sse) {
2434 dasm_put(Dst, 11841); 2443 dasm_put(Dst, 11844);
2435 } else { 2444 } else {
2436 dasm_put(Dst, 11856); 2445 dasm_put(Dst, 11859);
2437 } 2446 }
2438 break; 2447 break;
2439 default: 2448 default:
2440 dasm_put(Dst, 11354, LJ_TISNUM, LJ_TISNUM); 2449 dasm_put(Dst, 11357, LJ_TISNUM, LJ_TISNUM);
2441 if (sse) { 2450 if (sse) {
2442 dasm_put(Dst, 11865); 2451 dasm_put(Dst, 11868);
2443 } else { 2452 } else {
2444 dasm_put(Dst, 11879); 2453 dasm_put(Dst, 11882);
2445 } 2454 }
2446 break; 2455 break;
2447 } 2456 }
2448 dasm_put(Dst, 11893); 2457 dasm_put(Dst, 11896);
2449 break; 2458 break;
2450 case BC_POW: 2459 case BC_POW:
2451 dasm_put(Dst, 11141); 2460 dasm_put(Dst, 11144);
2452 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2461 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2453 switch (vk) { 2462 switch (vk) {
2454 case 0: 2463 case 0:
2455 dasm_put(Dst, 11258, LJ_TISNUM); 2464 dasm_put(Dst, 11261, LJ_TISNUM);
2456 if (LJ_DUALNUM) { 2465 if (LJ_DUALNUM) {
2457 dasm_put(Dst, 11270, LJ_TISNUM); 2466 dasm_put(Dst, 11273, LJ_TISNUM);
2458 } 2467 }
2459 if (sse) { 2468 if (sse) {
2460 dasm_put(Dst, 11817); 2469 dasm_put(Dst, 11820);
2461 } else { 2470 } else {
2462 dasm_put(Dst, 11832); 2471 dasm_put(Dst, 11835);
2463 } 2472 }
2464 break; 2473 break;
2465 case 1: 2474 case 1:
2466 dasm_put(Dst, 11306, LJ_TISNUM); 2475 dasm_put(Dst, 11309, LJ_TISNUM);
2467 if (LJ_DUALNUM) { 2476 if (LJ_DUALNUM) {
2468 dasm_put(Dst, 11318, LJ_TISNUM); 2477 dasm_put(Dst, 11321, LJ_TISNUM);
2469 } 2478 }
2470 if (sse) { 2479 if (sse) {
2471 dasm_put(Dst, 11841); 2480 dasm_put(Dst, 11844);
2472 } else { 2481 } else {
2473 dasm_put(Dst, 11856); 2482 dasm_put(Dst, 11859);
2474 } 2483 }
2475 break; 2484 break;
2476 default: 2485 default:
2477 dasm_put(Dst, 11354, LJ_TISNUM, LJ_TISNUM); 2486 dasm_put(Dst, 11357, LJ_TISNUM, LJ_TISNUM);
2478 if (sse) { 2487 if (sse) {
2479 dasm_put(Dst, 11865); 2488 dasm_put(Dst, 11868);
2480 } else { 2489 } else {
2481 dasm_put(Dst, 11879); 2490 dasm_put(Dst, 11882);
2482 } 2491 }
2483 break; 2492 break;
2484 } 2493 }
2485 dasm_put(Dst, 11898); 2494 dasm_put(Dst, 11901);
2486 if (sse) { 2495 if (sse) {
2487 dasm_put(Dst, 11009); 2496 dasm_put(Dst, 11012);
2488 } else { 2497 } else {
2489 dasm_put(Dst, 11021); 2498 dasm_put(Dst, 11024);
2490 } 2499 }
2491 dasm_put(Dst, 10132); 2500 dasm_put(Dst, 10135);
2492 break; 2501 break;
2493 2502
2494 case BC_CAT: 2503 case BC_CAT:
2495 dasm_put(Dst, 11902, Dt1(->base), Dt1(->base)); 2504 dasm_put(Dst, 11905, Dt1(->base), Dt1(->base));
2496 break; 2505 break;
2497 2506
2498 /* -- Constant ops ------------------------------------------------------ */ 2507 /* -- Constant ops ------------------------------------------------------ */
2499 2508
2500 case BC_KSTR: 2509 case BC_KSTR:
2501 dasm_put(Dst, 11986, LJ_TSTR); 2510 dasm_put(Dst, 11989, LJ_TSTR);
2502 break; 2511 break;
2503 case BC_KCDATA: 2512 case BC_KCDATA:
2504#if LJ_HASFFI 2513#if LJ_HASFFI
2505 dasm_put(Dst, 11986, LJ_TCDATA); 2514 dasm_put(Dst, 11989, LJ_TCDATA);
2506#endif 2515#endif
2507 break; 2516 break;
2508 case BC_KSHORT: 2517 case BC_KSHORT:
2509 if (LJ_DUALNUM) { 2518 if (LJ_DUALNUM) {
2510 dasm_put(Dst, 12023, LJ_TISNUM); 2519 dasm_put(Dst, 12026, LJ_TISNUM);
2511 } else if (sse) { 2520 } else if (sse) {
2512 dasm_put(Dst, 12035); 2521 dasm_put(Dst, 12038);
2513 } else { 2522 } else {
2514 dasm_put(Dst, 12050); 2523 dasm_put(Dst, 12053);
2515 } 2524 }
2516 dasm_put(Dst, 10132); 2525 dasm_put(Dst, 10135);
2517 break; 2526 break;
2518 case BC_KNUM: 2527 case BC_KNUM:
2519 if (sse) { 2528 if (sse) {
2520 dasm_put(Dst, 12058); 2529 dasm_put(Dst, 12061);
2521 } else { 2530 } else {
2522 dasm_put(Dst, 12072); 2531 dasm_put(Dst, 12075);
2523 } 2532 }
2524 dasm_put(Dst, 10132); 2533 dasm_put(Dst, 10135);
2525 break; 2534 break;
2526 case BC_KPRI: 2535 case BC_KPRI:
2527 dasm_put(Dst, 12080); 2536 dasm_put(Dst, 12083);
2528 break; 2537 break;
2529 case BC_KNIL: 2538 case BC_KNIL:
2530 dasm_put(Dst, 12109, LJ_TNIL); 2539 dasm_put(Dst, 12112, LJ_TNIL);
2531 break; 2540 break;
2532 2541
2533 /* -- Upvalue and function ops ------------------------------------------ */ 2542 /* -- Upvalue and function ops ------------------------------------------ */
2534 2543
2535 case BC_UGET: 2544 case BC_UGET:
2536 dasm_put(Dst, 12157, offsetof(GCfuncL, uvptr), DtA(->v)); 2545 dasm_put(Dst, 12160, offsetof(GCfuncL, uvptr), DtA(->v));
2537 break; 2546 break;
2538 case BC_USETV: 2547 case BC_USETV:
2539#define TV2MARKOFS \ 2548#define TV2MARKOFS \
2540 ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv)) 2549 ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv))
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); 2550 dasm_put(Dst, 12201, 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, 12294); 2551 dasm_put(Dst, 12297);
2543 break; 2552 break;
2544#undef TV2MARKOFS 2553#undef TV2MARKOFS
2545 case BC_USETS: 2554 case BC_USETS:
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); 2555 dasm_put(Dst, 12309, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G);
2547 break; 2556 break;
2548 case BC_USETN: 2557 case BC_USETN:
2549 dasm_put(Dst, 12402); 2558 dasm_put(Dst, 12405);
2550 if (sse) { 2559 if (sse) {
2551 dasm_put(Dst, 12407); 2560 dasm_put(Dst, 12410);
2552 } else { 2561 } else {
2553 dasm_put(Dst, 10656); 2562 dasm_put(Dst, 10659);
2554 } 2563 }
2555 dasm_put(Dst, 12415, offsetof(GCfuncL, uvptr), DtA(->v)); 2564 dasm_put(Dst, 12418, offsetof(GCfuncL, uvptr), DtA(->v));
2556 if (sse) { 2565 if (sse) {
2557 dasm_put(Dst, 12424); 2566 dasm_put(Dst, 12427);
2558 } else { 2567 } else {
2559 dasm_put(Dst, 12430); 2568 dasm_put(Dst, 12433);
2560 } 2569 }
2561 dasm_put(Dst, 10132); 2570 dasm_put(Dst, 10135);
2562 break; 2571 break;
2563 case BC_USETP: 2572 case BC_USETP:
2564 dasm_put(Dst, 12433, offsetof(GCfuncL, uvptr), DtA(->v)); 2573 dasm_put(Dst, 12436, offsetof(GCfuncL, uvptr), DtA(->v));
2565 break; 2574 break;
2566 case BC_UCLO: 2575 case BC_UCLO:
2567 dasm_put(Dst, 12473, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base)); 2576 dasm_put(Dst, 12476, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base));
2568 break; 2577 break;
2569 2578
2570 case BC_FNEW: 2579 case BC_FNEW:
2571 dasm_put(Dst, 12529, Dt1(->base), Dt1(->base), LJ_TFUNC); 2580 dasm_put(Dst, 12532, Dt1(->base), Dt1(->base), LJ_TFUNC);
2572 break; 2581 break;
2573 2582
2574 /* -- Table ops --------------------------------------------------------- */ 2583 /* -- Table ops --------------------------------------------------------- */
2575 2584
2576 case BC_TNEW: 2585 case BC_TNEW:
2577 dasm_put(Dst, 12596, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB); 2586 dasm_put(Dst, 12599, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB);
2578 break; 2587 break;
2579 case BC_TDUP: 2588 case BC_TDUP:
2580 dasm_put(Dst, 12720, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB); 2589 dasm_put(Dst, 12723, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB);
2581 break; 2590 break;
2582 2591
2583 case BC_GGET: 2592 case BC_GGET:
2584 dasm_put(Dst, 12819, Dt7(->env)); 2593 dasm_put(Dst, 12822, Dt7(->env));
2585 break; 2594 break;
2586 case BC_GSET: 2595 case BC_GSET:
2587 dasm_put(Dst, 12839, Dt7(->env)); 2596 dasm_put(Dst, 12842, Dt7(->env));
2588 break; 2597 break;
2589 2598
2590 case BC_TGETV: 2599 case BC_TGETV:
2591 dasm_put(Dst, 12859, LJ_TTAB); 2600 dasm_put(Dst, 12862, LJ_TTAB);
2592 if (LJ_DUALNUM) { 2601 if (LJ_DUALNUM) {
2593 dasm_put(Dst, 12882, LJ_TISNUM); 2602 dasm_put(Dst, 12885, LJ_TISNUM);
2594 } else { 2603 } else {
2595 dasm_put(Dst, 12896, LJ_TISNUM); 2604 dasm_put(Dst, 12899, LJ_TISNUM);
2596 if (sse) { 2605 if (sse) {
2597 dasm_put(Dst, 12907); 2606 dasm_put(Dst, 12910);
2598 } else { 2607 } else {
2599 } 2608 }
2600 dasm_put(Dst, 12928); 2609 dasm_put(Dst, 12931);
2601 } 2610 }
2602 dasm_put(Dst, 12933, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index, LJ_TNIL); 2611 dasm_put(Dst, 12936, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index, LJ_TNIL);
2603 dasm_put(Dst, 13025, LJ_TSTR); 2612 dasm_put(Dst, 13028, LJ_TSTR);
2604 break; 2613 break;
2605 case BC_TGETS: 2614 case BC_TGETS:
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); 2615 dasm_put(Dst, 13046, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
2607 dasm_put(Dst, 13128, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 2616 dasm_put(Dst, 13131, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
2608 break; 2617 break;
2609 case BC_TGETB: 2618 case BC_TGETB:
2610 dasm_put(Dst, 13200, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 2619 dasm_put(Dst, 13203, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
2611 dasm_put(Dst, 13296, LJ_TNIL); 2620 dasm_put(Dst, 13299, LJ_TNIL);
2612 break; 2621 break;
2613 2622
2614 case BC_TSETV: 2623 case BC_TSETV:
2615 dasm_put(Dst, 13313, LJ_TTAB); 2624 dasm_put(Dst, 13316, LJ_TTAB);
2616 if (LJ_DUALNUM) { 2625 if (LJ_DUALNUM) {
2617 dasm_put(Dst, 12882, LJ_TISNUM); 2626 dasm_put(Dst, 12885, LJ_TISNUM);
2618 } else { 2627 } else {
2619 dasm_put(Dst, 12896, LJ_TISNUM); 2628 dasm_put(Dst, 12899, LJ_TISNUM);
2620 if (sse) { 2629 if (sse) {
2621 dasm_put(Dst, 12907); 2630 dasm_put(Dst, 12910);
2622 } else { 2631 } else {
2623 } 2632 }
2624 dasm_put(Dst, 13336); 2633 dasm_put(Dst, 13339);
2625 } 2634 }
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); 2635 dasm_put(Dst, 13344, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex);
2627 dasm_put(Dst, 13422, LJ_TSTR, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 2636 dasm_put(Dst, 13425, LJ_TSTR, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
2628 break; 2637 break;
2629 case BC_TSETS: 2638 case BC_TSETS:
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); 2639 dasm_put(Dst, 13484, 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, 13558, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next)); 2640 dasm_put(Dst, 13561, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next));
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)); 2641 dasm_put(Dst, 13648, 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; 2642 break;
2634 case BC_TSETB: 2643 case BC_TSETB:
2635 dasm_put(Dst, 13737, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable)); 2644 dasm_put(Dst, 13740, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable));
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)); 2645 dasm_put(Dst, 13835, 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; 2646 break;
2638 2647
2639 case BC_TSETM: 2648 case BC_TSETM:
2640 dasm_put(Dst, 13880, Dt6(->marked), LJ_GC_BLACK, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base)); 2649 dasm_put(Dst, 13883, Dt6(->marked), LJ_GC_BLACK, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base));
2641 dasm_put(Dst, 14030, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 2650 dasm_put(Dst, 14033, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
2642 break; 2651 break;
2643 2652
2644 /* -- Calls and vararg handling ----------------------------------------- */ 2653 /* -- Calls and vararg handling ----------------------------------------- */
2645 2654
2646 case BC_CALL: case BC_CALLM: 2655 case BC_CALL: case BC_CALLM:
2647 dasm_put(Dst, 11145); 2656 dasm_put(Dst, 11148);
2648 if (op == BC_CALLM) { 2657 if (op == BC_CALLM) {
2649 dasm_put(Dst, 14050); 2658 dasm_put(Dst, 14053);
2650 } 2659 }
2651 dasm_put(Dst, 14055, LJ_TFUNC, Dt7(->pc)); 2660 dasm_put(Dst, 14058, LJ_TFUNC, Dt7(->pc));
2652 break; 2661 break;
2653 2662
2654 case BC_CALLMT: 2663 case BC_CALLMT:
2655 dasm_put(Dst, 14050); 2664 dasm_put(Dst, 14053);
2656 break; 2665 break;
2657 case BC_CALLT: 2666 case BC_CALLT:
2658 dasm_put(Dst, 14098, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc)); 2667 dasm_put(Dst, 14101, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc));
2659 dasm_put(Dst, 14216, FRAME_TYPE, Dt7(->pc), PC2PROTO(k), FRAME_VARG, FRAME_TYPEP, FRAME_VARG); 2668 dasm_put(Dst, 14219, FRAME_TYPE, Dt7(->pc), PC2PROTO(k), FRAME_VARG, FRAME_TYPEP, FRAME_VARG);
2660 break; 2669 break;
2661 2670
2662 case BC_ITERC: 2671 case BC_ITERC:
2663 dasm_put(Dst, 14290, LJ_TFUNC, 2+1, Dt7(->pc)); 2672 dasm_put(Dst, 14293, LJ_TFUNC, 2+1, Dt7(->pc));
2664 break; 2673 break;
2665 2674
2666 case BC_ITERN: 2675 case BC_ITERN:
2667#if LJ_HASJIT 2676#if LJ_HASJIT
2668#endif 2677#endif
2669 dasm_put(Dst, 14362, Dt6(->asize), Dt6(->array), LJ_TNIL); 2678 dasm_put(Dst, 14365, Dt6(->asize), Dt6(->array), LJ_TNIL);
2670 if (LJ_DUALNUM) { 2679 if (LJ_DUALNUM) {
2671 dasm_put(Dst, 11044, LJ_TISNUM); 2680 dasm_put(Dst, 11047, LJ_TISNUM);
2672 } else if (sse) { 2681 } else if (sse) {
2673 dasm_put(Dst, 11122); 2682 dasm_put(Dst, 11125);
2674 } else { 2683 } else {
2675 dasm_put(Dst, 14414); 2684 dasm_put(Dst, 14417);
2676 } 2685 }
2677 dasm_put(Dst, 14420); 2686 dasm_put(Dst, 14423);
2678 if (LJ_DUALNUM) { 2687 if (LJ_DUALNUM) {
2679 } else if (sse) { 2688 } else if (sse) {
2680 dasm_put(Dst, 11009); 2689 dasm_put(Dst, 11012);
2681 } else { 2690 } else {
2682 dasm_put(Dst, 11021); 2691 dasm_put(Dst, 11024);
2683 } 2692 }
2684 dasm_put(Dst, 14433, -BCBIAS_J*4); 2693 dasm_put(Dst, 14436, -BCBIAS_J*4);
2685 if (!LJ_DUALNUM && !sse) { 2694 if (!LJ_DUALNUM && !sse) {
2686 dasm_put(Dst, 14487); 2695 dasm_put(Dst, 14490);
2687 } 2696 }
2688 dasm_put(Dst, 14493, Dt6(->hmask), sizeof(Node), Dt6(->node), DtB(->val.it), LJ_TNIL, DtB(->key), DtB(->val)); 2697 dasm_put(Dst, 14496, Dt6(->hmask), sizeof(Node), Dt6(->node), DtB(->val.it), LJ_TNIL, DtB(->key), DtB(->val));
2689 break; 2698 break;
2690 2699
2691 case BC_ISNEXT: 2700 case BC_ISNEXT:
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); 2701 dasm_put(Dst, 14575, LJ_TFUNC, LJ_TTAB, LJ_TNIL, Dt8(->ffid), FF_next_N, -BCBIAS_J*4, BC_JMP, -BCBIAS_J*4, BC_ITERC);
2693 break; 2702 break;
2694 2703
2695 case BC_VARG: 2704 case BC_VARG:
2696 dasm_put(Dst, 14673, (8+FRAME_VARG), LJ_TNIL, Dt1(->maxstack)); 2705 dasm_put(Dst, 14676, (8+FRAME_VARG), LJ_TNIL, Dt1(->maxstack));
2697 dasm_put(Dst, 14840, Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top)); 2706 dasm_put(Dst, 14843, Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top));
2698 break; 2707 break;
2699 2708
2700 /* -- Returns ----------------------------------------------------------- */ 2709 /* -- Returns ----------------------------------------------------------- */
2701 2710
2702 case BC_RETM: 2711 case BC_RETM:
2703 dasm_put(Dst, 14050); 2712 dasm_put(Dst, 14053);
2704 break; 2713 break;
2705 2714
2706 case BC_RET: case BC_RET0: case BC_RET1: 2715 case BC_RET: case BC_RET0: case BC_RET1:
2707 if (op != BC_RET0) { 2716 if (op != BC_RET0) {
2708 dasm_put(Dst, 14910); 2717 dasm_put(Dst, 14913);
2709 } 2718 }
2710 dasm_put(Dst, 14914, FRAME_TYPE); 2719 dasm_put(Dst, 14917, FRAME_TYPE);
2711 switch (op) { 2720 switch (op) {
2712 case BC_RET: 2721 case BC_RET:
2713 dasm_put(Dst, 14933); 2722 dasm_put(Dst, 14936);
2714 break; 2723 break;
2715 case BC_RET1: 2724 case BC_RET1:
2716 dasm_put(Dst, 14987); 2725 dasm_put(Dst, 14990);
2717 /* fallthrough */ 2726 /* fallthrough */
2718 case BC_RET0: 2727 case BC_RET0:
2719 dasm_put(Dst, 14997); 2728 dasm_put(Dst, 15000);
2720 default: 2729 default:
2721 break; 2730 break;
2722 } 2731 }
2723 dasm_put(Dst, 15008, Dt7(->pc), PC2PROTO(k)); 2732 dasm_put(Dst, 15011, Dt7(->pc), PC2PROTO(k));
2724 if (op == BC_RET) { 2733 if (op == BC_RET) {
2725 dasm_put(Dst, 15056, LJ_TNIL); 2734 dasm_put(Dst, 15059, LJ_TNIL);
2726 } else { 2735 } else {
2727 dasm_put(Dst, 15067, LJ_TNIL); 2736 dasm_put(Dst, 15070, LJ_TNIL);
2728 } 2737 }
2729 dasm_put(Dst, 15074, -FRAME_VARG, FRAME_TYPEP); 2738 dasm_put(Dst, 15077, -FRAME_VARG, FRAME_TYPEP);
2730 if (op != BC_RET0) { 2739 if (op != BC_RET0) {
2731 dasm_put(Dst, 15098); 2740 dasm_put(Dst, 15101);
2732 } 2741 }
2733 dasm_put(Dst, 4669); 2742 dasm_put(Dst, 4669);
2734 break; 2743 break;
@@ -2738,7 +2747,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2738 2747
2739 case BC_FORL: 2748 case BC_FORL:
2740#if LJ_HASJIT 2749#if LJ_HASJIT
2741 dasm_put(Dst, 15102, HOTCOUNT_PCMASK, GG_DISP2HOT); 2750 dasm_put(Dst, 15105, HOTCOUNT_PCMASK, GG_DISP2HOT);
2742#endif 2751#endif
2743 break; 2752 break;
2744 2753
@@ -2750,104 +2759,111 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2750 case BC_FORI: 2759 case BC_FORI:
2751 case BC_IFORL: 2760 case BC_IFORL:
2752 vk = (op == BC_IFORL || op == BC_JFORL); 2761 vk = (op == BC_IFORL || op == BC_JFORL);
2753 dasm_put(Dst, 15123); 2762 dasm_put(Dst, 15126);
2754 if (LJ_DUALNUM) { 2763 if (LJ_DUALNUM) {
2755 dasm_put(Dst, 15127, LJ_TISNUM); 2764 dasm_put(Dst, 15130, LJ_TISNUM);
2756 if (!vk) { 2765 if (!vk) {
2757 dasm_put(Dst, 15137, LJ_TISNUM, LJ_TISNUM); 2766 dasm_put(Dst, 15140, LJ_TISNUM, LJ_TISNUM);
2758 } else { 2767 } else {
2759 dasm_put(Dst, 15166); 2768#ifdef LUA_USE_ASSERT
2769 dasm_put(Dst, 15169, LJ_TISNUM, LJ_TISNUM);
2770#endif
2771 dasm_put(Dst, 15188);
2760 } 2772 }
2761 dasm_put(Dst, 15185, LJ_TISNUM); 2773 dasm_put(Dst, 15207, LJ_TISNUM);
2762 if (op == BC_FORI) { 2774 if (op == BC_FORI) {
2763 dasm_put(Dst, 15196, -BCBIAS_J*4); 2775 dasm_put(Dst, 15218, -BCBIAS_J*4);
2764 } else if (op == BC_JFORI) { 2776 } else if (op == BC_JFORI) {
2765 dasm_put(Dst, 15210, -BCBIAS_J*4, BC_JLOOP); 2777 dasm_put(Dst, 15232, -BCBIAS_J*4, BC_JLOOP);
2766 } else if (op == BC_IFORL) { 2778 } else if (op == BC_IFORL) {
2767 dasm_put(Dst, 15228, -BCBIAS_J*4); 2779 dasm_put(Dst, 15250, -BCBIAS_J*4);
2768 } else { 2780 } else {
2769 dasm_put(Dst, 15220, BC_JLOOP); 2781 dasm_put(Dst, 15242, BC_JLOOP);
2770 } 2782 }
2771 dasm_put(Dst, 15242); 2783 dasm_put(Dst, 15264);
2772 if (vk) { 2784 if (vk) {
2773 dasm_put(Dst, 15267); 2785 dasm_put(Dst, 15289);
2774 } 2786 }
2775 dasm_put(Dst, 15185, LJ_TISNUM); 2787 dasm_put(Dst, 15207, LJ_TISNUM);
2776 if (op == BC_FORI) { 2788 if (op == BC_FORI) {
2777 dasm_put(Dst, 15276); 2789 dasm_put(Dst, 15298);
2778 } else if (op == BC_JFORI) { 2790 } else if (op == BC_JFORI) {
2779 dasm_put(Dst, 15281, -BCBIAS_J*4, BC_JLOOP); 2791 dasm_put(Dst, 15303, -BCBIAS_J*4, BC_JLOOP);
2780 } else if (op == BC_IFORL) { 2792 } else if (op == BC_IFORL) {
2781 dasm_put(Dst, 15295); 2793 dasm_put(Dst, 15317);
2782 } else { 2794 } else {
2783 dasm_put(Dst, 15291, BC_JLOOP); 2795 dasm_put(Dst, 15313, BC_JLOOP);
2784 } 2796 }
2785 dasm_put(Dst, 15300); 2797 dasm_put(Dst, 15322);
2786 } else if (!vk) { 2798 } else if (!vk) {
2787 dasm_put(Dst, 15307, LJ_TISNUM); 2799 dasm_put(Dst, 15329, LJ_TISNUM);
2788 } 2800 }
2789 if (!vk) { 2801 if (!vk) {
2790 dasm_put(Dst, 15313, LJ_TISNUM); 2802 dasm_put(Dst, 15335, LJ_TISNUM);
2803 } else {
2804#ifdef LUA_USE_ASSERT
2805 dasm_put(Dst, 15349, LJ_TISNUM, LJ_TISNUM);
2806#endif
2791 } 2807 }
2792 dasm_put(Dst, 15327); 2808 dasm_put(Dst, 15368);
2793 if (!vk) { 2809 if (!vk) {
2794 dasm_put(Dst, 15331, LJ_TISNUM); 2810 dasm_put(Dst, 15372, LJ_TISNUM);
2795 } 2811 }
2796 if (sse) { 2812 if (sse) {
2797 dasm_put(Dst, 15340); 2813 dasm_put(Dst, 15381);
2798 if (vk) { 2814 if (vk) {
2799 dasm_put(Dst, 15352); 2815 dasm_put(Dst, 15393);
2800 } else { 2816 } else {
2801 dasm_put(Dst, 15371); 2817 dasm_put(Dst, 15412);
2802 } 2818 }
2803 dasm_put(Dst, 15376); 2819 dasm_put(Dst, 15417);
2804 } else { 2820 } else {
2805 dasm_put(Dst, 15389); 2821 dasm_put(Dst, 15430);
2806 if (vk) { 2822 if (vk) {
2807 dasm_put(Dst, 15395); 2823 dasm_put(Dst, 15436);
2808 } else { 2824 } else {
2809 dasm_put(Dst, 15411); 2825 dasm_put(Dst, 15452);
2810 } 2826 }
2811 dasm_put(Dst, 15419); 2827 dasm_put(Dst, 15460);
2812 if (cmov) { 2828 if (cmov) {
2813 dasm_put(Dst, 10087); 2829 dasm_put(Dst, 10090);
2814 } else { 2830 } else {
2815 dasm_put(Dst, 10093); 2831 dasm_put(Dst, 10096);
2816 } 2832 }
2817 if (!cmov) { 2833 if (!cmov) {
2818 dasm_put(Dst, 15424); 2834 dasm_put(Dst, 15465);
2819 } 2835 }
2820 } 2836 }
2821 if (op == BC_FORI) { 2837 if (op == BC_FORI) {
2822 if (LJ_DUALNUM) { 2838 if (LJ_DUALNUM) {
2823 dasm_put(Dst, 15430); 2839 dasm_put(Dst, 15471);
2824 } else { 2840 } else {
2825 dasm_put(Dst, 15435, -BCBIAS_J*4); 2841 dasm_put(Dst, 15476, -BCBIAS_J*4);
2826 } 2842 }
2827 } else if (op == BC_JFORI) { 2843 } else if (op == BC_JFORI) {
2828 dasm_put(Dst, 15445, -BCBIAS_J*4, BC_JLOOP); 2844 dasm_put(Dst, 15486, -BCBIAS_J*4, BC_JLOOP);
2829 } else if (op == BC_IFORL) { 2845 } else if (op == BC_IFORL) {
2830 if (LJ_DUALNUM) { 2846 if (LJ_DUALNUM) {
2831 dasm_put(Dst, 15459); 2847 dasm_put(Dst, 15500);
2832 } else { 2848 } else {
2833 dasm_put(Dst, 15464, -BCBIAS_J*4); 2849 dasm_put(Dst, 15505, -BCBIAS_J*4);
2834 } 2850 }
2835 } else { 2851 } else {
2836 dasm_put(Dst, 15455, BC_JLOOP); 2852 dasm_put(Dst, 15496, BC_JLOOP);
2837 } 2853 }
2838 if (LJ_DUALNUM) { 2854 if (LJ_DUALNUM) {
2839 dasm_put(Dst, 10016); 2855 dasm_put(Dst, 10019);
2840 } else { 2856 } else {
2841 dasm_put(Dst, 10790); 2857 dasm_put(Dst, 10793);
2842 } 2858 }
2843 if (sse) { 2859 if (sse) {
2844 dasm_put(Dst, 15474); 2860 dasm_put(Dst, 15515);
2845 } 2861 }
2846 break; 2862 break;
2847 2863
2848 case BC_ITERL: 2864 case BC_ITERL:
2849#if LJ_HASJIT 2865#if LJ_HASJIT
2850 dasm_put(Dst, 15102, HOTCOUNT_PCMASK, GG_DISP2HOT); 2866 dasm_put(Dst, 15105, HOTCOUNT_PCMASK, GG_DISP2HOT);
2851#endif 2867#endif
2852 break; 2868 break;
2853 2869
@@ -2856,33 +2872,33 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2856 break; 2872 break;
2857#endif 2873#endif
2858 case BC_IITERL: 2874 case BC_IITERL:
2859 dasm_put(Dst, 15485, LJ_TNIL); 2875 dasm_put(Dst, 15526, LJ_TNIL);
2860 if (op == BC_JITERL) { 2876 if (op == BC_JITERL) {
2861 dasm_put(Dst, 15500, BC_JLOOP); 2877 dasm_put(Dst, 15541, BC_JLOOP);
2862 } else { 2878 } else {
2863 dasm_put(Dst, 15514, -BCBIAS_J*4); 2879 dasm_put(Dst, 15555, -BCBIAS_J*4);
2864 } 2880 }
2865 dasm_put(Dst, 10130); 2881 dasm_put(Dst, 10133);
2866 break; 2882 break;
2867 2883
2868 case BC_LOOP: 2884 case BC_LOOP:
2869#if LJ_HASJIT 2885#if LJ_HASJIT
2870 dasm_put(Dst, 15102, HOTCOUNT_PCMASK, GG_DISP2HOT); 2886 dasm_put(Dst, 15105, HOTCOUNT_PCMASK, GG_DISP2HOT);
2871#endif 2887#endif
2872 break; 2888 break;
2873 2889
2874 case BC_ILOOP: 2890 case BC_ILOOP:
2875 dasm_put(Dst, 10132); 2891 dasm_put(Dst, 10135);
2876 break; 2892 break;
2877 2893
2878 case BC_JLOOP: 2894 case BC_JLOOP:
2879#if LJ_HASJIT 2895#if LJ_HASJIT
2880 dasm_put(Dst, 15530, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L)); 2896 dasm_put(Dst, 15571, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L));
2881#endif 2897#endif
2882 break; 2898 break;
2883 2899
2884 case BC_JMP: 2900 case BC_JMP:
2885 dasm_put(Dst, 15571, -BCBIAS_J*4); 2901 dasm_put(Dst, 15612, -BCBIAS_J*4);
2886 break; 2902 break;
2887 2903
2888 /* -- Function headers -------------------------------------------------- */ 2904 /* -- Function headers -------------------------------------------------- */
@@ -2896,7 +2912,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2896 2912
2897 case BC_FUNCF: 2913 case BC_FUNCF:
2898#if LJ_HASJIT 2914#if LJ_HASJIT
2899 dasm_put(Dst, 15597, HOTCOUNT_PCMASK, GG_DISP2HOT); 2915 dasm_put(Dst, 15638, HOTCOUNT_PCMASK, GG_DISP2HOT);
2900#endif 2916#endif
2901 case BC_FUNCV: /* NYI: compiled vararg functions. */ 2917 case BC_FUNCV: /* NYI: compiled vararg functions. */
2902 break; 2918 break;
@@ -2906,13 +2922,13 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2906 break; 2922 break;
2907#endif 2923#endif
2908 case BC_IFUNCF: 2924 case BC_IFUNCF:
2909 dasm_put(Dst, 15618, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams)); 2925 dasm_put(Dst, 15659, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams));
2910 if (op == BC_JFUNCF) { 2926 if (op == BC_JFUNCF) {
2911 dasm_put(Dst, 15649, BC_JLOOP); 2927 dasm_put(Dst, 15690, BC_JLOOP);
2912 } else { 2928 } else {
2913 dasm_put(Dst, 10132); 2929 dasm_put(Dst, 10135);
2914 } 2930 }
2915 dasm_put(Dst, 15658, LJ_TNIL); 2931 dasm_put(Dst, 15699, LJ_TNIL);
2916 break; 2932 break;
2917 2933
2918 case BC_JFUNCV: 2934 case BC_JFUNCV:
@@ -2923,30 +2939,30 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2923 break; /* NYI: compiled vararg functions. */ 2939 break; /* NYI: compiled vararg functions. */
2924 2940
2925 case BC_IFUNCV: 2941 case BC_IFUNCV:
2926 dasm_put(Dst, 15680, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL); 2942 dasm_put(Dst, 15721, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL);
2927 if (op == BC_JFUNCV) { 2943 if (op == BC_JFUNCV) {
2928 dasm_put(Dst, 15649, BC_JLOOP); 2944 dasm_put(Dst, 15690, BC_JLOOP);
2929 } else { 2945 } else {
2930 dasm_put(Dst, 15777, -4+PC2PROTO(k)); 2946 dasm_put(Dst, 15818, -4+PC2PROTO(k));
2931 } 2947 }
2932 dasm_put(Dst, 15802, LJ_TNIL); 2948 dasm_put(Dst, 15843, LJ_TNIL);
2933 break; 2949 break;
2934 2950
2935 case BC_FUNCC: 2951 case BC_FUNCC:
2936 case BC_FUNCCW: 2952 case BC_FUNCCW:
2937 dasm_put(Dst, 15824, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top)); 2953 dasm_put(Dst, 15865, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top));
2938 if (op == BC_FUNCC) { 2954 if (op == BC_FUNCC) {
2939 dasm_put(Dst, 2341); 2955 dasm_put(Dst, 2341);
2940 } else { 2956 } else {
2941 dasm_put(Dst, 15854); 2957 dasm_put(Dst, 15895);
2942 } 2958 }
2943 dasm_put(Dst, 15862, DISPATCH_GL(vmstate), ~LJ_VMST_C); 2959 dasm_put(Dst, 15903, DISPATCH_GL(vmstate), ~LJ_VMST_C);
2944 if (op == BC_FUNCC) { 2960 if (op == BC_FUNCC) {
2945 dasm_put(Dst, 15872); 2961 dasm_put(Dst, 15913);
2946 } else { 2962 } else {
2947 dasm_put(Dst, 15877, DISPATCH_GL(wrapf)); 2963 dasm_put(Dst, 15918, DISPATCH_GL(wrapf));
2948 } 2964 }
2949 dasm_put(Dst, 15883, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top)); 2965 dasm_put(Dst, 15924, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top));
2950 break; 2966 break;
2951 2967
2952 /* ---------------------------------------------------------------------- */ 2968 /* ---------------------------------------------------------------------- */
@@ -2974,7 +2990,7 @@ static int build_backend(BuildCtx *ctx)
2974 2990
2975 build_subroutines(ctx, cmov, sse); 2991 build_subroutines(ctx, cmov, sse);
2976 2992
2977 dasm_put(Dst, 15909); 2993 dasm_put(Dst, 15950);
2978 for (op = 0; op < BC__MAX; op++) 2994 for (op = 0; op < BC__MAX; op++)
2979 build_ins(ctx, (BCOp)op, op, cmov, sse); 2995 build_ins(ctx, (BCOp)op, op, cmov, sse);
2980 2996
diff --git a/src/buildvm_x64win.h b/src/buildvm_x64win.h
index 2e51c32b..5c19f6de 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[15787] = { 15static const unsigned char build_actionlist[15828] = {
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,
@@ -489,15 +489,15 @@ static const unsigned char build_actionlist[15787] = {
489 2,15,182,131,233,72,139,139,233,72,139,147,233,76,139,131,233,76,139,139, 489 2,15,182,131,233,72,139,139,233,72,139,147,233,76,139,131,233,76,139,139,
490 233,133,192,15,132,244,251,15,40,131,233,15,40,139,233,15,40,147,233,15,40, 490 233,133,192,15,132,244,251,15,40,131,233,15,40,139,233,15,40,147,233,15,40,
491 155,233,248,5,255,252,255,147,233,72,137,131,233,15,41,131,233,255,72,139, 491 155,233,248,5,255,252,255,147,233,72,137,131,233,15,41,131,233,255,72,139,
492 93,252,248,201,195,255,249,255,129,124,253,202,4,239,15,133,244,253,129,124, 492 93,252,248,201,195,255,248,162,255,249,255,129,124,253,202,4,239,15,133,244,
493 253,194,4,239,15,133,244,254,139,44,202,131,198,4,59,44,194,255,15,141,244, 493 253,129,124,253,194,4,239,15,133,244,254,139,44,202,131,198,4,59,44,194,255,
494 255,255,15,140,244,255,255,15,143,244,255,255,15,142,244,255,255,248,6,15, 494 15,141,244,255,255,15,140,244,255,255,15,143,244,255,255,15,142,244,255,255,
495 183,70,252,254,141,180,253,134,233,248,9,139,6,15,182,204,15,182,232,131, 495 248,6,15,183,70,252,254,141,180,253,134,233,248,9,139,6,15,182,204,15,182,
496 198,4,193,232,16,252,255,36,252,235,248,7,15,135,244,41,129,124,253,194,4, 496 232,131,198,4,193,232,16,252,255,36,252,235,248,7,15,135,244,41,129,124,253,
497 239,15,130,244,247,15,133,244,41,255,252,242,15,42,4,194,252,233,244,248, 497 194,4,239,15,130,244,247,15,133,244,41,255,252,242,15,42,4,194,252,233,244,
498 255,221,4,202,219,4,194,252,233,244,249,255,248,8,15,135,244,41,255,252,242, 498 248,255,221,4,202,219,4,194,252,233,244,249,255,248,8,15,135,244,41,255,252,
499 15,42,12,202,252,242,15,16,4,194,131,198,4,102,15,46,193,255,15,134,244,9, 499 242,15,42,12,202,252,242,15,16,4,194,131,198,4,102,15,46,193,255,15,134,244,
500 255,15,135,244,9,255,15,130,244,9,255,15,131,244,9,255,252,233,244,6,255, 500 9,255,15,135,244,9,255,15,130,244,9,255,15,131,244,9,255,252,233,244,6,255,
501 219,4,202,252,233,244,248,255,129,124,253,202,4,239,15,131,244,41,129,124, 501 219,4,202,252,233,244,248,255,129,124,253,202,4,239,15,131,244,41,129,124,
502 253,194,4,239,15,131,244,41,255,248,1,252,242,15,16,4,194,248,2,131,198,4, 502 253,194,4,239,15,131,244,41,255,248,1,252,242,15,16,4,194,248,2,131,198,4,
503 102,15,46,4,202,248,3,255,248,1,221,4,202,248,2,221,4,194,248,3,131,198,4, 503 102,15,46,4,202,248,3,255,248,1,221,4,202,248,2,221,4,194,248,3,131,198,4,
@@ -584,8 +584,8 @@ static const unsigned char build_actionlist[15787] = {
584 15,94,4,194,255,221,4,252,234,220,52,194,255,252,242,15,16,4,252,234,252, 584 15,94,4,194,255,221,4,252,234,220,52,194,255,252,242,15,16,4,252,234,252,
585 242,15,16,12,199,255,221,4,252,234,221,4,199,255,252,242,15,16,4,199,252, 585 242,15,16,12,199,255,221,4,252,234,221,4,199,255,252,242,15,16,4,199,252,
586 242,15,16,12,252,234,255,221,4,199,221,4,252,234,255,252,242,15,16,4,252, 586 242,15,16,12,252,234,255,221,4,199,221,4,252,234,255,252,242,15,16,4,252,
587 234,252,242,15,16,12,194,255,221,4,252,234,221,4,194,255,248,162,232,244, 587 234,252,242,15,16,12,194,255,221,4,252,234,221,4,194,255,248,163,232,244,
588 153,255,252,233,244,162,255,232,244,113,255,15,182,252,236,15,182,192,139, 588 153,255,252,233,244,163,255,232,244,113,255,15,182,252,236,15,182,192,139,
589 76,36,96,137,145,233,141,20,194,65,137,192,65,41,232,248,33,137,205,137,116, 589 76,36,96,137,145,233,141,20,194,65,137,192,65,41,232,248,33,137,205,137,116,
590 36,100,232,251,1,27,139,149,233,133,192,15,133,244,42,15,182,110,252,255, 590 36,100,232,251,1,27,139,149,233,133,192,15,133,244,42,15,182,110,252,255,
591 15,182,78,252,253,72,139,4,252,234,72,137,4,202,139,6,15,182,204,15,182,232, 591 15,182,78,252,253,72,139,4,252,234,72,137,4,202,139,6,15,182,204,15,182,232,
@@ -629,8 +629,8 @@ static const unsigned char build_actionlist[15787] = {
629 233,15,182,78,252,253,137,4,202,199,68,202,4,237,139,6,15,182,204,15,182, 629 233,15,182,78,252,253,137,4,202,199,68,202,4,237,139,6,15,182,204,15,182,
630 232,131,198,4,193,232,16,252,255,36,252,235,248,3,137,252,233,232,251,1,32, 630 232,131,198,4,193,232,16,252,255,36,252,235,248,3,137,252,233,232,251,1,32,
631 15,183,70,252,254,72,252,247,208,252,233,244,2,255,72,252,247,208,139,106, 631 15,183,70,252,254,72,252,247,208,252,233,244,2,255,72,252,247,208,139,106,
632 252,248,139,173,233,139,4,135,252,233,244,163,255,72,252,247,208,139,106, 632 252,248,139,173,233,139,4,135,252,233,244,164,255,72,252,247,208,139,106,
633 252,248,139,173,233,139,4,135,252,233,244,164,255,15,182,252,236,15,182,192, 633 252,248,139,173,233,139,4,135,252,233,244,165,255,15,182,252,236,15,182,192,
634 129,124,253,252,234,4,239,15,133,244,36,139,44,252,234,255,129,124,253,194, 634 129,124,253,252,234,4,239,15,133,244,36,139,44,252,234,255,129,124,253,194,
635 4,239,15,133,244,251,139,4,194,255,129,124,253,194,4,239,15,131,244,251,255, 635 4,239,15,133,244,251,139,4,194,255,129,124,253,194,4,239,15,131,244,251,255,
636 252,242,15,16,4,194,252,242,15,45,192,252,242,15,42,200,102,15,46,193,255, 636 252,242,15,16,4,194,252,242,15,45,192,252,242,15,42,200,102,15,46,193,255,
@@ -639,8 +639,8 @@ static const unsigned char build_actionlist[15787] = {
639 232,131,198,4,193,232,16,252,255,36,252,235,248,2,131,189,233,0,15,132,244, 639 232,131,198,4,193,232,16,252,255,36,252,235,248,2,131,189,233,0,15,132,244,
640 249,139,141,233,252,246,129,233,235,15,132,244,36,15,182,78,252,253,248,3, 640 249,139,141,233,252,246,129,233,235,15,132,244,36,15,182,78,252,253,248,3,
641 199,68,202,4,237,252,233,244,1,248,5,255,129,124,253,194,4,239,15,133,244, 641 199,68,202,4,237,252,233,244,1,248,5,255,129,124,253,194,4,239,15,133,244,
642 36,139,4,194,252,233,244,163,255,15,182,252,236,15,182,192,72,252,247,208, 642 36,139,4,194,252,233,244,164,255,15,182,252,236,15,182,192,72,252,247,208,
643 139,4,135,129,124,253,252,234,4,239,15,133,244,34,139,44,252,234,248,163, 643 139,4,135,129,124,253,252,234,4,239,15,133,244,34,139,44,252,234,248,164,
644 139,141,233,35,136,233,105,201,239,3,141,233,248,1,129,185,233,239,15,133, 644 139,141,233,35,136,233,105,201,239,3,141,233,248,1,129,185,233,239,15,133,
645 244,250,57,129,233,15,133,244,250,129,121,253,4,239,15,132,244,251,15,182, 645 244,250,57,129,233,15,133,244,250,129,121,253,4,239,15,132,244,251,15,182,
646 70,252,253,72,139,41,72,137,44,194,248,2,255,139,6,15,182,204,15,182,232, 646 70,252,253,72,139,41,72,137,44,194,248,2,255,139,6,15,182,204,15,182,232,
@@ -659,10 +659,10 @@ static const unsigned char build_actionlist[15787] = {
659 182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,3,131,189, 659 182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,3,131,189,
660 233,0,15,132,244,1,139,141,233,252,246,129,233,235,255,15,132,244,39,15,182, 660 233,0,15,132,244,1,139,141,233,252,246,129,233,235,255,15,132,244,39,15,182,
661 78,252,253,252,233,244,1,248,5,129,124,253,194,4,239,15,133,244,39,139,4, 661 78,252,253,252,233,244,1,248,5,129,124,253,194,4,239,15,133,244,39,139,4,
662 194,252,233,244,164,248,7,128,165,233,235,139,139,233,137,171,233,137,141, 662 194,252,233,244,165,248,7,128,165,233,235,139,139,233,137,171,233,137,141,
663 233,15,182,78,252,253,252,233,244,2,255,15,182,252,236,15,182,192,72,252, 663 233,15,182,78,252,253,252,233,244,2,255,15,182,252,236,15,182,192,72,252,
664 247,208,139,4,135,129,124,253,252,234,4,239,15,133,244,37,139,44,252,234, 664 247,208,139,4,135,129,124,253,252,234,4,239,15,133,244,37,139,44,252,234,
665 248,164,139,141,233,35,136,233,105,201,239,198,133,233,0,3,141,233,248,1, 665 248,165,139,141,233,35,136,233,105,201,239,198,133,233,0,3,141,233,248,1,
666 129,185,233,239,15,133,244,251,57,129,233,15,133,244,251,129,121,253,4,239, 666 129,185,233,239,15,133,244,251,57,129,233,15,133,244,251,129,121,253,4,239,
667 15,132,244,250,248,2,255,252,246,133,233,235,15,133,244,253,248,3,15,182, 667 15,132,244,250,248,2,255,252,246,133,233,235,15,133,244,253,248,3,15,182,
668 70,252,253,72,139,44,194,72,137,41,139,6,15,182,204,15,182,232,131,198,4, 668 70,252,253,72,139,44,194,72,137,41,139,6,15,182,204,15,182,232,131,198,4,
@@ -739,46 +739,48 @@ static const unsigned char build_actionlist[15787] = {
739 244,14,41,252,234,255,1,252,233,255,137,252,245,209,252,237,129,229,239,102, 739 244,14,41,252,234,255,1,252,233,255,137,252,245,209,252,237,129,229,239,102,
740 131,172,253,43,233,1,15,132,244,145,255,141,12,202,255,129,121,253,4,239, 740 131,172,253,43,233,1,15,132,244,145,255,141,12,202,255,129,121,253,4,239,
741 15,133,244,255,255,129,121,253,12,239,15,133,244,57,129,121,253,20,239,15, 741 15,133,244,255,255,129,121,253,12,239,15,133,244,57,129,121,253,20,239,15,
742 133,244,57,139,41,131,121,16,0,15,140,244,251,255,139,105,16,133,252,237, 742 133,244,57,139,41,131,121,16,0,15,140,244,251,255,129,121,253,12,239,15,133,
743 15,136,244,251,3,41,15,128,244,247,137,41,255,59,105,8,199,65,28,237,137, 743 244,162,129,121,253,20,239,15,133,244,162,255,139,105,16,133,252,237,15,136,
744 105,24,255,15,142,244,253,248,1,248,6,141,180,253,134,233,255,141,180,253, 744 244,251,3,41,15,128,244,247,137,41,255,59,105,8,199,65,28,237,137,105,24,
745 134,233,15,183,70,252,254,15,142,245,248,1,248,6,255,15,143,244,253,248,6, 745 255,15,142,244,253,248,1,248,6,141,180,253,134,233,255,141,180,253,134,233,
746 141,180,253,134,233,248,1,255,248,7,139,6,15,182,204,15,182,232,131,198,4, 746 15,183,70,252,254,15,142,245,248,1,248,6,255,15,143,244,253,248,6,141,180,
747 193,232,16,252,255,36,252,235,248,5,255,3,41,15,128,244,1,137,41,255,15,141, 747 253,134,233,248,1,255,248,7,139,6,15,182,204,15,182,232,131,198,4,193,232,
748 244,7,255,141,180,253,134,233,15,183,70,252,254,15,141,245,255,15,140,244, 748 16,252,255,36,252,235,248,5,255,3,41,15,128,244,1,137,41,255,15,141,244,7,
749 7,255,252,233,244,6,248,9,255,129,121,253,4,239,255,15,131,244,57,129,121, 749 255,141,180,253,134,233,15,183,70,252,254,15,141,245,255,15,140,244,7,255,
750 253,12,239,15,131,244,57,255,139,105,20,255,129,252,253,239,15,131,244,57, 750 252,233,244,6,248,9,255,129,121,253,4,239,255,15,131,244,57,129,121,253,12,
751 255,252,242,15,16,1,252,242,15,16,73,8,255,252,242,15,88,65,16,252,242,15, 751 239,15,131,244,57,255,129,121,253,12,239,15,131,244,162,129,121,253,20,239,
752 17,1,133,252,237,15,136,244,249,255,15,140,244,249,255,102,15,46,200,248, 752 15,131,244,162,255,139,105,20,255,129,252,253,239,15,131,244,57,255,252,242,
753 1,252,242,15,17,65,24,255,221,65,8,221,1,255,220,65,16,221,17,221,81,24,133, 753 15,16,1,252,242,15,16,73,8,255,252,242,15,88,65,16,252,242,15,17,1,133,252,
754 252,237,15,136,244,247,255,221,81,24,15,140,244,247,255,217,201,248,1,255, 754 237,15,136,244,249,255,15,140,244,249,255,102,15,46,200,248,1,252,242,15,
755 15,183,70,252,254,255,15,131,244,7,255,15,131,244,248,141,180,253,134,233, 755 17,65,24,255,221,65,8,221,1,255,220,65,16,221,17,221,81,24,133,252,237,15,
756 255,141,180,253,134,233,15,183,70,252,254,15,131,245,255,15,130,244,7,255, 756 136,244,247,255,221,81,24,15,140,244,247,255,217,201,248,1,255,15,183,70,
757 15,130,244,248,141,180,253,134,233,255,248,3,102,15,46,193,252,233,244,1, 757 252,254,255,15,131,244,7,255,15,131,244,248,141,180,253,134,233,255,141,180,
758 255,141,12,202,139,105,4,129,252,253,239,15,132,244,247,255,137,105,252,252, 758 253,134,233,15,183,70,252,254,15,131,245,255,15,130,244,7,255,15,130,244,
759 139,41,137,105,252,248,252,233,245,255,141,180,253,134,233,139,1,137,105, 759 248,141,180,253,134,233,255,248,3,102,15,46,193,252,233,244,1,255,141,12,
760 252,252,137,65,252,248,255,139,139,233,139,4,129,72,139,128,233,139,108,36, 760 202,139,105,4,129,252,253,239,15,132,244,247,255,137,105,252,252,139,41,137,
761 96,137,147,233,137,171,233,76,137,100,36,80,76,137,108,36,32,76,137,116,36, 761 105,252,248,252,233,245,255,141,180,253,134,233,139,1,137,105,252,252,137,
762 24,76,137,124,36,16,72,137,225,72,129,252,236,239,102,15,127,49,102,15,127, 762 65,252,248,255,139,139,233,139,4,129,72,139,128,233,139,108,36,96,137,147,
763 185,233,102,68,15,127,129,233,102,68,15,127,137,233,102,68,15,127,145,233, 763 233,137,171,233,76,137,100,36,80,76,137,108,36,32,76,137,116,36,24,76,137,
764 102,68,15,127,153,233,102,68,15,127,161,233,102,68,15,127,169,233,102,68, 764 124,36,16,72,137,225,72,129,252,236,239,102,15,127,49,102,15,127,185,233,
765 15,127,177,233,102,68,15,127,185,233,252,255,224,255,141,180,253,134,233, 765 102,68,15,127,129,233,102,68,15,127,137,233,102,68,15,127,145,233,102,68,
766 139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,137, 766 15,127,153,233,102,68,15,127,161,233,102,68,15,127,169,233,102,68,15,127,
767 252,245,209,252,237,129,229,239,102,131,172,253,43,233,1,15,132,244,147,255, 767 177,233,102,68,15,127,185,233,252,255,224,255,141,180,253,134,233,139,6,15,
768 139,190,233,139,108,36,96,141,12,202,59,141,233,15,135,244,23,15,182,142, 768 182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,137,252,245,
769 233,57,200,15,134,244,249,248,2,255,15,183,70,252,254,252,233,245,255,248, 769 209,252,237,129,229,239,102,131,172,253,43,233,1,15,132,244,147,255,139,190,
770 3,199,68,194,252,252,237,131,192,1,57,200,15,134,244,3,252,233,244,2,255, 770 233,139,108,36,96,141,12,202,59,141,233,15,135,244,23,15,182,142,233,57,200,
771 141,44,197,237,141,4,194,139,122,252,248,137,104,252,252,137,120,252,248, 771 15,134,244,249,248,2,255,15,183,70,252,254,252,233,245,255,248,3,199,68,194,
772 139,108,36,96,141,12,200,59,141,233,15,135,244,22,137,209,137,194,15,182, 772 252,252,237,131,192,1,57,200,15,134,244,3,252,233,244,2,255,141,44,197,237,
773 174,233,133,252,237,15,132,244,248,248,1,131,193,8,57,209,15,131,244,249, 773 141,4,194,139,122,252,248,137,104,252,252,137,120,252,248,139,108,36,96,141,
774 139,121,252,248,137,56,139,121,252,252,137,120,4,131,192,8,199,65,252,252, 774 12,200,59,141,233,15,135,244,22,137,209,137,194,15,182,174,233,133,252,237,
775 237,131,252,237,1,15,133,244,1,248,2,255,139,190,233,139,6,15,182,204,15, 775 15,132,244,248,248,1,131,193,8,57,209,15,131,244,249,139,121,252,248,137,
776 182,232,131,198,4,193,232,16,252,255,36,252,235,255,248,3,199,64,4,237,131, 776 56,139,121,252,252,137,120,4,131,192,8,199,65,252,252,237,131,252,237,1,15,
777 192,8,131,252,237,1,15,133,244,3,252,233,244,2,255,139,106,252,248,72,139, 777 133,244,1,248,2,255,139,190,233,139,6,15,182,204,15,182,232,131,198,4,193,
778 189,233,139,108,36,96,141,68,194,252,248,137,149,233,141,136,233,59,141,233, 778 232,16,252,255,36,252,235,255,248,3,199,64,4,237,131,192,8,131,252,237,1,
779 137,133,233,255,72,137,252,250,137,252,233,255,15,135,244,21,199,131,233, 779 15,133,244,3,252,233,244,2,255,139,106,252,248,72,139,189,233,139,108,36,
780 237,255,252,255,215,255,252,255,147,233,255,199,131,233,237,139,149,233,141, 780 96,141,68,194,252,248,137,149,233,141,136,233,59,141,233,137,133,233,255,
781 12,194,252,247,217,3,141,233,139,114,252,252,252,233,244,12,255,254,0 781 72,137,252,250,137,252,233,255,15,135,244,21,199,131,233,237,255,252,255,
782 215,255,252,255,147,233,255,199,131,233,237,139,149,233,141,12,194,252,247,
783 217,3,141,233,139,114,252,252,252,233,244,12,255,254,0
782}; 784};
783 785
784enum { 786enum {
@@ -934,6 +936,7 @@ enum {
934 GLOB_vm_foldarith, 936 GLOB_vm_foldarith,
935 GLOB_vm_cpuid, 937 GLOB_vm_cpuid,
936 GLOB_vm_ffi_call, 938 GLOB_vm_ffi_call,
939 GLOB_assert_bad_for_arg_type,
937 GLOB_BC_MODVN_Z, 940 GLOB_BC_MODVN_Z,
938 GLOB_BC_TGETS_Z, 941 GLOB_BC_TGETS_Z,
939 GLOB_BC_TSETS_Z, 942 GLOB_BC_TSETS_Z,
@@ -1092,6 +1095,7 @@ static const char *const globnames[] = {
1092 "vm_foldarith", 1095 "vm_foldarith",
1093 "vm_cpuid", 1096 "vm_cpuid",
1094 "vm_ffi_call@4", 1097 "vm_ffi_call@4",
1098 "assert_bad_for_arg_type",
1095 "BC_MODVN_Z", 1099 "BC_MODVN_Z",
1096 "BC_TGETS_Z", 1100 "BC_TGETS_Z",
1097 "BC_TSETS_Z", 1101 "BC_TSETS_Z",
@@ -1817,13 +1821,18 @@ static void build_subroutines(BuildCtx *ctx, int cmov, int sse)
1817#endif 1821#endif
1818 dasm_put(Dst, 9803); 1822 dasm_put(Dst, 9803);
1819#endif 1823#endif
1824 dasm_put(Dst, 9811);
1825#ifdef LUA_USE_ASSERT
1826 dasm_put(Dst, 9250);
1827#endif
1828 dasm_put(Dst, 9250);
1820} 1829}
1821 1830
1822/* Generate the code for a single instruction. */ 1831/* Generate the code for a single instruction. */
1823static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse) 1832static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
1824{ 1833{
1825 int vk = 0; 1834 int vk = 0;
1826 dasm_put(Dst, 9811, defop); 1835 dasm_put(Dst, 9814, defop);
1827 1836
1828 switch (op) { 1837 switch (op) {
1829 1838
@@ -1834,145 +1843,145 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
1834 1843
1835 case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT: 1844 case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT:
1836 if (LJ_DUALNUM) { 1845 if (LJ_DUALNUM) {
1837 dasm_put(Dst, 9813, LJ_TISNUM, LJ_TISNUM); 1846 dasm_put(Dst, 9816, LJ_TISNUM, LJ_TISNUM);
1838 switch (op) { 1847 switch (op) {
1839 case BC_ISLT: 1848 case BC_ISLT:
1840 dasm_put(Dst, 9843); 1849 dasm_put(Dst, 9846);
1841 break; 1850 break;
1842 case BC_ISGE: 1851 case BC_ISGE:
1843 dasm_put(Dst, 9848); 1852 dasm_put(Dst, 9851);
1844 break; 1853 break;
1845 case BC_ISLE: 1854 case BC_ISLE:
1846 dasm_put(Dst, 9853); 1855 dasm_put(Dst, 9856);
1847 break; 1856 break;
1848 case BC_ISGT: 1857 case BC_ISGT:
1849 dasm_put(Dst, 9858); 1858 dasm_put(Dst, 9861);
1850 break; 1859 break;
1851 default: break; /* Shut up GCC. */ 1860 default: break; /* Shut up GCC. */
1852 } 1861 }
1853 dasm_put(Dst, 9863, -BCBIAS_J*4, LJ_TISNUM); 1862 dasm_put(Dst, 9866, -BCBIAS_J*4, LJ_TISNUM);
1854 if (sse) { 1863 if (sse) {
1855 dasm_put(Dst, 9917); 1864 dasm_put(Dst, 9920);
1856 } else { 1865 } else {
1857 dasm_put(Dst, 9928); 1866 dasm_put(Dst, 9931);
1858 } 1867 }
1859 dasm_put(Dst, 9939); 1868 dasm_put(Dst, 9942);
1860 if (sse) { 1869 if (sse) {
1861 dasm_put(Dst, 9946); 1870 dasm_put(Dst, 9949);
1862 switch (op) { 1871 switch (op) {
1863 case BC_ISLT: 1872 case BC_ISLT:
1864 dasm_put(Dst, 9966); 1873 dasm_put(Dst, 9969);
1865 break; 1874 break;
1866 case BC_ISGE: 1875 case BC_ISGE:
1867 dasm_put(Dst, 9971); 1876 dasm_put(Dst, 9974);
1868 break; 1877 break;
1869 case BC_ISLE: 1878 case BC_ISLE:
1870 dasm_put(Dst, 9976); 1879 dasm_put(Dst, 9979);
1871 break; 1880 break;
1872 case BC_ISGT: 1881 case BC_ISGT:
1873 dasm_put(Dst, 9981); 1882 dasm_put(Dst, 9984);
1874 break; 1883 break;
1875 default: break; /* Shut up GCC. */ 1884 default: break; /* Shut up GCC. */
1876 } 1885 }
1877 dasm_put(Dst, 9986); 1886 dasm_put(Dst, 9989);
1878 } else { 1887 } else {
1879 dasm_put(Dst, 9991); 1888 dasm_put(Dst, 9994);
1880 } 1889 }
1881 } else { 1890 } else {
1882 dasm_put(Dst, 9999, LJ_TISNUM, LJ_TISNUM); 1891 dasm_put(Dst, 10002, LJ_TISNUM, LJ_TISNUM);
1883 } 1892 }
1884 if (sse) { 1893 if (sse) {
1885 dasm_put(Dst, 10020); 1894 dasm_put(Dst, 10023);
1886 } else { 1895 } else {
1887 dasm_put(Dst, 10041); 1896 dasm_put(Dst, 10044);
1888 if (cmov) { 1897 if (cmov) {
1889 dasm_put(Dst, 10057); 1898 dasm_put(Dst, 10060);
1890 } else { 1899 } else {
1891 dasm_put(Dst, 10063); 1900 dasm_put(Dst, 10066);
1892 } 1901 }
1893 } 1902 }
1894 if (LJ_DUALNUM) { 1903 if (LJ_DUALNUM) {
1895 switch (op) { 1904 switch (op) {
1896 case BC_ISLT: 1905 case BC_ISLT:
1897 dasm_put(Dst, 9966); 1906 dasm_put(Dst, 9969);
1898 break; 1907 break;
1899 case BC_ISGE: 1908 case BC_ISGE:
1900 dasm_put(Dst, 9971); 1909 dasm_put(Dst, 9974);
1901 break; 1910 break;
1902 case BC_ISLE: 1911 case BC_ISLE:
1903 dasm_put(Dst, 9976); 1912 dasm_put(Dst, 9979);
1904 break; 1913 break;
1905 case BC_ISGT: 1914 case BC_ISGT:
1906 dasm_put(Dst, 9981); 1915 dasm_put(Dst, 9984);
1907 break; 1916 break;
1908 default: break; /* Shut up GCC. */ 1917 default: break; /* Shut up GCC. */
1909 } 1918 }
1910 dasm_put(Dst, 9986); 1919 dasm_put(Dst, 9989);
1911 } else { 1920 } else {
1912 switch (op) { 1921 switch (op) {
1913 case BC_ISLT: 1922 case BC_ISLT:
1914 dasm_put(Dst, 10070); 1923 dasm_put(Dst, 10073);
1915 break; 1924 break;
1916 case BC_ISGE: 1925 case BC_ISGE:
1917 dasm_put(Dst, 10075); 1926 dasm_put(Dst, 10078);
1918 break; 1927 break;
1919 case BC_ISLE: 1928 case BC_ISLE:
1920 dasm_put(Dst, 10080); 1929 dasm_put(Dst, 10083);
1921 break; 1930 break;
1922 case BC_ISGT: 1931 case BC_ISGT:
1923 dasm_put(Dst, 10085); 1932 dasm_put(Dst, 10088);
1924 break; 1933 break;
1925 default: break; /* Shut up GCC. */ 1934 default: break; /* Shut up GCC. */
1926 } 1935 }
1927 dasm_put(Dst, 10090, -BCBIAS_J*4); 1936 dasm_put(Dst, 10093, -BCBIAS_J*4);
1928 } 1937 }
1929 break; 1938 break;
1930 1939
1931 case BC_ISEQV: case BC_ISNEV: 1940 case BC_ISEQV: case BC_ISNEV:
1932 vk = op == BC_ISEQV; 1941 vk = op == BC_ISEQV;
1933 dasm_put(Dst, 10122); 1942 dasm_put(Dst, 10125);
1934 if (LJ_DUALNUM) { 1943 if (LJ_DUALNUM) {
1935 dasm_put(Dst, 10130, LJ_TISNUM, LJ_TISNUM); 1944 dasm_put(Dst, 10133, LJ_TISNUM, LJ_TISNUM);
1936 if (vk) { 1945 if (vk) {
1937 dasm_put(Dst, 10155); 1946 dasm_put(Dst, 10158);
1938 } else { 1947 } else {
1939 dasm_put(Dst, 10160); 1948 dasm_put(Dst, 10163);
1940 } 1949 }
1941 dasm_put(Dst, 10165, -BCBIAS_J*4, LJ_TISNUM); 1950 dasm_put(Dst, 10168, -BCBIAS_J*4, LJ_TISNUM);
1942 if (sse) { 1951 if (sse) {
1943 dasm_put(Dst, 10217); 1952 dasm_put(Dst, 10220);
1944 } else { 1953 } else {
1945 dasm_put(Dst, 10224); 1954 dasm_put(Dst, 10227);
1946 } 1955 }
1947 dasm_put(Dst, 10228); 1956 dasm_put(Dst, 10231);
1948 if (sse) { 1957 if (sse) {
1949 dasm_put(Dst, 10239); 1958 dasm_put(Dst, 10242);
1950 } else { 1959 } else {
1951 dasm_put(Dst, 10251); 1960 dasm_put(Dst, 10254);
1952 } 1961 }
1953 dasm_put(Dst, 10258); 1962 dasm_put(Dst, 10261);
1954 } else { 1963 } else {
1955 dasm_put(Dst, 10263, LJ_TISNUM, LJ_TISNUM); 1964 dasm_put(Dst, 10266, LJ_TISNUM, LJ_TISNUM);
1956 } 1965 }
1957 if (sse) { 1966 if (sse) {
1958 dasm_put(Dst, 10282); 1967 dasm_put(Dst, 10285);
1959 } else { 1968 } else {
1960 dasm_put(Dst, 10300); 1969 dasm_put(Dst, 10303);
1961 if (cmov) { 1970 if (cmov) {
1962 dasm_put(Dst, 10057); 1971 dasm_put(Dst, 10060);
1963 } else { 1972 } else {
1964 dasm_put(Dst, 10063); 1973 dasm_put(Dst, 10066);
1965 } 1974 }
1966 } 1975 }
1967 iseqne_fp: 1976 iseqne_fp:
1968 if (vk) { 1977 if (vk) {
1969 dasm_put(Dst, 10313); 1978 dasm_put(Dst, 10316);
1970 } else { 1979 } else {
1971 dasm_put(Dst, 10322); 1980 dasm_put(Dst, 10325);
1972 } 1981 }
1973 iseqne_end: 1982 iseqne_end:
1974 if (vk) { 1983 if (vk) {
1975 dasm_put(Dst, 10331, -BCBIAS_J*4); 1984 dasm_put(Dst, 10334, -BCBIAS_J*4);
1976 if (!LJ_HASFFI) { 1985 if (!LJ_HASFFI) {
1977 dasm_put(Dst, 4567); 1986 dasm_put(Dst, 4567);
1978 } 1987 }
@@ -1980,150 +1989,150 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
1980 if (!LJ_HASFFI) { 1989 if (!LJ_HASFFI) {
1981 dasm_put(Dst, 4567); 1990 dasm_put(Dst, 4567);
1982 } 1991 }
1983 dasm_put(Dst, 10346, -BCBIAS_J*4); 1992 dasm_put(Dst, 10349, -BCBIAS_J*4);
1984 } 1993 }
1985 if (LJ_DUALNUM && (op == BC_ISEQV || op == BC_ISNEV || 1994 if (LJ_DUALNUM && (op == BC_ISEQV || op == BC_ISNEV ||
1986 op == BC_ISEQN || op == BC_ISNEN)) { 1995 op == BC_ISEQN || op == BC_ISNEN)) {
1987 dasm_put(Dst, 10361); 1996 dasm_put(Dst, 10364);
1988 } else { 1997 } else {
1989 dasm_put(Dst, 10102); 1998 dasm_put(Dst, 10105);
1990 } 1999 }
1991 if (op == BC_ISEQV || op == BC_ISNEV) { 2000 if (op == BC_ISEQV || op == BC_ISNEV) {
1992 dasm_put(Dst, 9787); 2001 dasm_put(Dst, 9787);
1993 if (LJ_HASFFI) { 2002 if (LJ_HASFFI) {
1994 dasm_put(Dst, 10366, LJ_TCDATA, LJ_TCDATA); 2003 dasm_put(Dst, 10369, LJ_TCDATA, LJ_TCDATA);
1995 } 2004 }
1996 dasm_put(Dst, 10385, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq); 2005 dasm_put(Dst, 10388, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq);
1997 if (vk) { 2006 if (vk) {
1998 dasm_put(Dst, 10441); 2007 dasm_put(Dst, 10444);
1999 } else { 2008 } else {
2000 dasm_put(Dst, 10445); 2009 dasm_put(Dst, 10448);
2001 } 2010 }
2002 dasm_put(Dst, 10451); 2011 dasm_put(Dst, 10454);
2003 } else if (LJ_HASFFI) { 2012 } else if (LJ_HASFFI) {
2004 dasm_put(Dst, 10456, LJ_TCDATA); 2013 dasm_put(Dst, 10459, LJ_TCDATA);
2005 if (LJ_DUALNUM && vk) { 2014 if (LJ_DUALNUM && vk) {
2006 dasm_put(Dst, 10463); 2015 dasm_put(Dst, 10466);
2007 } else { 2016 } else {
2008 dasm_put(Dst, 10436); 2017 dasm_put(Dst, 10439);
2009 } 2018 }
2010 dasm_put(Dst, 10468); 2019 dasm_put(Dst, 10471);
2011 } 2020 }
2012 break; 2021 break;
2013 case BC_ISEQS: case BC_ISNES: 2022 case BC_ISEQS: case BC_ISNES:
2014 vk = op == BC_ISEQS; 2023 vk = op == BC_ISEQS;
2015 dasm_put(Dst, 10473, LJ_TSTR); 2024 dasm_put(Dst, 10476, LJ_TSTR);
2016 iseqne_test: 2025 iseqne_test:
2017 if (vk) { 2026 if (vk) {
2018 dasm_put(Dst, 10317); 2027 dasm_put(Dst, 10320);
2019 } else { 2028 } else {
2020 dasm_put(Dst, 2858); 2029 dasm_put(Dst, 2858);
2021 } 2030 }
2022 goto iseqne_end; 2031 goto iseqne_end;
2023 case BC_ISEQN: case BC_ISNEN: 2032 case BC_ISEQN: case BC_ISNEN:
2024 vk = op == BC_ISEQN; 2033 vk = op == BC_ISEQN;
2025 dasm_put(Dst, 10499); 2034 dasm_put(Dst, 10502);
2026 if (LJ_DUALNUM) { 2035 if (LJ_DUALNUM) {
2027 dasm_put(Dst, 10507, LJ_TISNUM, LJ_TISNUM); 2036 dasm_put(Dst, 10510, LJ_TISNUM, LJ_TISNUM);
2028 if (vk) { 2037 if (vk) {
2029 dasm_put(Dst, 10155); 2038 dasm_put(Dst, 10158);
2030 } else { 2039 } else {
2031 dasm_put(Dst, 10160); 2040 dasm_put(Dst, 10163);
2032 } 2041 }
2033 dasm_put(Dst, 10532, -BCBIAS_J*4, LJ_TISNUM); 2042 dasm_put(Dst, 10535, -BCBIAS_J*4, LJ_TISNUM);
2034 if (sse) { 2043 if (sse) {
2035 dasm_put(Dst, 10580); 2044 dasm_put(Dst, 10583);
2036 } else { 2045 } else {
2037 dasm_put(Dst, 10587); 2046 dasm_put(Dst, 10590);
2038 } 2047 }
2039 dasm_put(Dst, 10591); 2048 dasm_put(Dst, 10594);
2040 if (sse) { 2049 if (sse) {
2041 dasm_put(Dst, 10598); 2050 dasm_put(Dst, 10601);
2042 } else { 2051 } else {
2043 dasm_put(Dst, 10610); 2052 dasm_put(Dst, 10613);
2044 } 2053 }
2045 dasm_put(Dst, 10258); 2054 dasm_put(Dst, 10261);
2046 } else { 2055 } else {
2047 dasm_put(Dst, 10617, LJ_TISNUM); 2056 dasm_put(Dst, 10620, LJ_TISNUM);
2048 } 2057 }
2049 if (sse) { 2058 if (sse) {
2050 dasm_put(Dst, 10626); 2059 dasm_put(Dst, 10629);
2051 } else { 2060 } else {
2052 dasm_put(Dst, 10644); 2061 dasm_put(Dst, 10647);
2053 if (cmov) { 2062 if (cmov) {
2054 dasm_put(Dst, 10057); 2063 dasm_put(Dst, 10060);
2055 } else { 2064 } else {
2056 dasm_put(Dst, 10063); 2065 dasm_put(Dst, 10066);
2057 } 2066 }
2058 } 2067 }
2059 goto iseqne_fp; 2068 goto iseqne_fp;
2060 case BC_ISEQP: case BC_ISNEP: 2069 case BC_ISEQP: case BC_ISNEP:
2061 vk = op == BC_ISEQP; 2070 vk = op == BC_ISEQP;
2062 dasm_put(Dst, 10657); 2071 dasm_put(Dst, 10660);
2063 if (!LJ_HASFFI) goto iseqne_test; 2072 if (!LJ_HASFFI) goto iseqne_test;
2064 if (vk) { 2073 if (vk) {
2065 dasm_put(Dst, 10671, -BCBIAS_J*4, LJ_TCDATA); 2074 dasm_put(Dst, 10674, -BCBIAS_J*4, LJ_TCDATA);
2066 } else { 2075 } else {
2067 dasm_put(Dst, 10721, LJ_TCDATA, -BCBIAS_J*4); 2076 dasm_put(Dst, 10724, LJ_TCDATA, -BCBIAS_J*4);
2068 } 2077 }
2069 break; 2078 break;
2070 2079
2071 /* -- Unary test and copy ops ------------------------------------------- */ 2080 /* -- Unary test and copy ops ------------------------------------------- */
2072 2081
2073 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF: 2082 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF:
2074 dasm_put(Dst, 10765, LJ_TISTRUECOND); 2083 dasm_put(Dst, 10768, LJ_TISTRUECOND);
2075 if (op == BC_IST || op == BC_ISTC) { 2084 if (op == BC_IST || op == BC_ISTC) {
2076 dasm_put(Dst, 10085); 2085 dasm_put(Dst, 10088);
2077 } else { 2086 } else {
2078 dasm_put(Dst, 10080); 2087 dasm_put(Dst, 10083);
2079 } 2088 }
2080 if (op == BC_ISTC || op == BC_ISFC) { 2089 if (op == BC_ISTC || op == BC_ISFC) {
2081 dasm_put(Dst, 10777); 2090 dasm_put(Dst, 10780);
2082 } 2091 }
2083 dasm_put(Dst, 10090, -BCBIAS_J*4); 2092 dasm_put(Dst, 10093, -BCBIAS_J*4);
2084 break; 2093 break;
2085 2094
2086 /* -- Unary ops --------------------------------------------------------- */ 2095 /* -- Unary ops --------------------------------------------------------- */
2087 2096
2088 case BC_MOV: 2097 case BC_MOV:
2089 dasm_put(Dst, 10788); 2098 dasm_put(Dst, 10791);
2090 break; 2099 break;
2091 case BC_NOT: 2100 case BC_NOT:
2092 dasm_put(Dst, 10816, LJ_TISTRUECOND, LJ_TTRUE); 2101 dasm_put(Dst, 10819, LJ_TISTRUECOND, LJ_TTRUE);
2093 break; 2102 break;
2094 case BC_UNM: 2103 case BC_UNM:
2095 if (LJ_DUALNUM) { 2104 if (LJ_DUALNUM) {
2096 dasm_put(Dst, 10852, LJ_TISNUM, LJ_TISNUM); 2105 dasm_put(Dst, 10855, LJ_TISNUM, LJ_TISNUM);
2097 } else { 2106 } else {
2098 dasm_put(Dst, 10929, LJ_TISNUM); 2107 dasm_put(Dst, 10932, LJ_TISNUM);
2099 } 2108 }
2100 if (sse) { 2109 if (sse) {
2101 dasm_put(Dst, 10940, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32)); 2110 dasm_put(Dst, 10943, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32));
2102 } else { 2111 } else {
2103 dasm_put(Dst, 10965); 2112 dasm_put(Dst, 10968);
2104 } 2113 }
2105 if (LJ_DUALNUM) { 2114 if (LJ_DUALNUM) {
2106 dasm_put(Dst, 10361); 2115 dasm_put(Dst, 10364);
2107 } else { 2116 } else {
2108 dasm_put(Dst, 10102); 2117 dasm_put(Dst, 10105);
2109 } 2118 }
2110 break; 2119 break;
2111 case BC_LEN: 2120 case BC_LEN:
2112 dasm_put(Dst, 10974, LJ_TSTR); 2121 dasm_put(Dst, 10977, LJ_TSTR);
2113 if (LJ_DUALNUM) { 2122 if (LJ_DUALNUM) {
2114 dasm_put(Dst, 10988, Dt5(->len), LJ_TISNUM); 2123 dasm_put(Dst, 10991, Dt5(->len), LJ_TISNUM);
2115 } else if (sse) { 2124 } else if (sse) {
2116 dasm_put(Dst, 11002, Dt5(->len)); 2125 dasm_put(Dst, 11005, Dt5(->len));
2117 } else { 2126 } else {
2118 dasm_put(Dst, 11020, Dt5(->len)); 2127 dasm_put(Dst, 11023, Dt5(->len));
2119 } 2128 }
2120 dasm_put(Dst, 11029, LJ_TTAB); 2129 dasm_put(Dst, 11032, LJ_TTAB);
2121 if (LJ_DUALNUM) { 2130 if (LJ_DUALNUM) {
2122 } else if (sse) { 2131 } else if (sse) {
2123 dasm_put(Dst, 11070); 2132 dasm_put(Dst, 11073);
2124 } else { 2133 } else {
2125 } 2134 }
2126 dasm_put(Dst, 11076); 2135 dasm_put(Dst, 11079);
2127 break; 2136 break;
2128 2137
2129 /* -- Binary ops -------------------------------------------------------- */ 2138 /* -- Binary ops -------------------------------------------------------- */
@@ -2131,603 +2140,603 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2131 2140
2132 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV: 2141 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV:
2133 if (LJ_DUALNUM) { 2142 if (LJ_DUALNUM) {
2134 dasm_put(Dst, 11089); 2143 dasm_put(Dst, 11092);
2135 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2144 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2136 switch (vk) { 2145 switch (vk) {
2137 case 0: 2146 case 0:
2138 dasm_put(Dst, 11097, LJ_TISNUM, LJ_TISNUM); 2147 dasm_put(Dst, 11100, LJ_TISNUM, LJ_TISNUM);
2139 break; 2148 break;
2140 case 1: 2149 case 1:
2141 dasm_put(Dst, 11130, LJ_TISNUM, LJ_TISNUM); 2150 dasm_put(Dst, 11133, LJ_TISNUM, LJ_TISNUM);
2142 break; 2151 break;
2143 default: 2152 default:
2144 dasm_put(Dst, 11163, LJ_TISNUM, LJ_TISNUM); 2153 dasm_put(Dst, 11166, LJ_TISNUM, LJ_TISNUM);
2145 break; 2154 break;
2146 } 2155 }
2147 dasm_put(Dst, 11196, LJ_TISNUM); 2156 dasm_put(Dst, 11199, LJ_TISNUM);
2148 if (vk == 1) { 2157 if (vk == 1) {
2149 dasm_put(Dst, 10998); 2158 dasm_put(Dst, 11001);
2150 } else { 2159 } else {
2151 dasm_put(Dst, 10784); 2160 dasm_put(Dst, 10787);
2152 } 2161 }
2153 dasm_put(Dst, 10102); 2162 dasm_put(Dst, 10105);
2154 } else { 2163 } else {
2155 dasm_put(Dst, 11089); 2164 dasm_put(Dst, 11092);
2156 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2165 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2157 switch (vk) { 2166 switch (vk) {
2158 case 0: 2167 case 0:
2159 dasm_put(Dst, 11202, LJ_TISNUM); 2168 dasm_put(Dst, 11205, LJ_TISNUM);
2160 if (LJ_DUALNUM) { 2169 if (LJ_DUALNUM) {
2161 dasm_put(Dst, 11214, LJ_TISNUM); 2170 dasm_put(Dst, 11217, LJ_TISNUM);
2162 } 2171 }
2163 if (sse) { 2172 if (sse) {
2164 dasm_put(Dst, 11225); 2173 dasm_put(Dst, 11228);
2165 } else { 2174 } else {
2166 dasm_put(Dst, 11239); 2175 dasm_put(Dst, 11242);
2167 } 2176 }
2168 break; 2177 break;
2169 case 1: 2178 case 1:
2170 dasm_put(Dst, 11247, LJ_TISNUM); 2179 dasm_put(Dst, 11250, LJ_TISNUM);
2171 if (LJ_DUALNUM) { 2180 if (LJ_DUALNUM) {
2172 dasm_put(Dst, 11259, LJ_TISNUM); 2181 dasm_put(Dst, 11262, LJ_TISNUM);
2173 } 2182 }
2174 if (sse) { 2183 if (sse) {
2175 dasm_put(Dst, 11270); 2184 dasm_put(Dst, 11273);
2176 } else { 2185 } else {
2177 dasm_put(Dst, 11284); 2186 dasm_put(Dst, 11287);
2178 } 2187 }
2179 break; 2188 break;
2180 default: 2189 default:
2181 dasm_put(Dst, 11292, LJ_TISNUM, LJ_TISNUM); 2190 dasm_put(Dst, 11295, LJ_TISNUM, LJ_TISNUM);
2182 if (sse) { 2191 if (sse) {
2183 dasm_put(Dst, 11314); 2192 dasm_put(Dst, 11317);
2184 } else { 2193 } else {
2185 dasm_put(Dst, 11328); 2194 dasm_put(Dst, 11331);
2186 } 2195 }
2187 break; 2196 break;
2188 } 2197 }
2189 if (sse) { 2198 if (sse) {
2190 dasm_put(Dst, 10958); 2199 dasm_put(Dst, 10961);
2191 } else { 2200 } else {
2192 dasm_put(Dst, 10970); 2201 dasm_put(Dst, 10973);
2193 } 2202 }
2194 dasm_put(Dst, 10102); 2203 dasm_put(Dst, 10105);
2195 } 2204 }
2196 break; 2205 break;
2197 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV: 2206 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV:
2198 if (LJ_DUALNUM) { 2207 if (LJ_DUALNUM) {
2199 dasm_put(Dst, 11089); 2208 dasm_put(Dst, 11092);
2200 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2209 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2201 switch (vk) { 2210 switch (vk) {
2202 case 0: 2211 case 0:
2203 dasm_put(Dst, 11336, LJ_TISNUM, LJ_TISNUM); 2212 dasm_put(Dst, 11339, LJ_TISNUM, LJ_TISNUM);
2204 break; 2213 break;
2205 case 1: 2214 case 1:
2206 dasm_put(Dst, 11369, LJ_TISNUM, LJ_TISNUM); 2215 dasm_put(Dst, 11372, LJ_TISNUM, LJ_TISNUM);
2207 break; 2216 break;
2208 default: 2217 default:
2209 dasm_put(Dst, 11402, LJ_TISNUM, LJ_TISNUM); 2218 dasm_put(Dst, 11405, LJ_TISNUM, LJ_TISNUM);
2210 break; 2219 break;
2211 } 2220 }
2212 dasm_put(Dst, 11196, LJ_TISNUM); 2221 dasm_put(Dst, 11199, LJ_TISNUM);
2213 if (vk == 1) { 2222 if (vk == 1) {
2214 dasm_put(Dst, 10998); 2223 dasm_put(Dst, 11001);
2215 } else { 2224 } else {
2216 dasm_put(Dst, 10784); 2225 dasm_put(Dst, 10787);
2217 } 2226 }
2218 dasm_put(Dst, 10102); 2227 dasm_put(Dst, 10105);
2219 } else { 2228 } else {
2220 dasm_put(Dst, 11089); 2229 dasm_put(Dst, 11092);
2221 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2230 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2222 switch (vk) { 2231 switch (vk) {
2223 case 0: 2232 case 0:
2224 dasm_put(Dst, 11202, LJ_TISNUM); 2233 dasm_put(Dst, 11205, LJ_TISNUM);
2225 if (LJ_DUALNUM) { 2234 if (LJ_DUALNUM) {
2226 dasm_put(Dst, 11214, LJ_TISNUM); 2235 dasm_put(Dst, 11217, LJ_TISNUM);
2227 } 2236 }
2228 if (sse) { 2237 if (sse) {
2229 dasm_put(Dst, 11435); 2238 dasm_put(Dst, 11438);
2230 } else { 2239 } else {
2231 dasm_put(Dst, 11449); 2240 dasm_put(Dst, 11452);
2232 } 2241 }
2233 break; 2242 break;
2234 case 1: 2243 case 1:
2235 dasm_put(Dst, 11247, LJ_TISNUM); 2244 dasm_put(Dst, 11250, LJ_TISNUM);
2236 if (LJ_DUALNUM) { 2245 if (LJ_DUALNUM) {
2237 dasm_put(Dst, 11259, LJ_TISNUM); 2246 dasm_put(Dst, 11262, LJ_TISNUM);
2238 } 2247 }
2239 if (sse) { 2248 if (sse) {
2240 dasm_put(Dst, 11457); 2249 dasm_put(Dst, 11460);
2241 } else { 2250 } else {
2242 dasm_put(Dst, 11471); 2251 dasm_put(Dst, 11474);
2243 } 2252 }
2244 break; 2253 break;
2245 default: 2254 default:
2246 dasm_put(Dst, 11292, LJ_TISNUM, LJ_TISNUM); 2255 dasm_put(Dst, 11295, LJ_TISNUM, LJ_TISNUM);
2247 if (sse) { 2256 if (sse) {
2248 dasm_put(Dst, 11479); 2257 dasm_put(Dst, 11482);
2249 } else { 2258 } else {
2250 dasm_put(Dst, 11493); 2259 dasm_put(Dst, 11496);
2251 } 2260 }
2252 break; 2261 break;
2253 } 2262 }
2254 if (sse) { 2263 if (sse) {
2255 dasm_put(Dst, 10958); 2264 dasm_put(Dst, 10961);
2256 } else { 2265 } else {
2257 dasm_put(Dst, 10970); 2266 dasm_put(Dst, 10973);
2258 } 2267 }
2259 dasm_put(Dst, 10102); 2268 dasm_put(Dst, 10105);
2260 } 2269 }
2261 break; 2270 break;
2262 case BC_MULVN: case BC_MULNV: case BC_MULVV: 2271 case BC_MULVN: case BC_MULNV: case BC_MULVV:
2263 if (LJ_DUALNUM) { 2272 if (LJ_DUALNUM) {
2264 dasm_put(Dst, 11089); 2273 dasm_put(Dst, 11092);
2265 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2274 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2266 switch (vk) { 2275 switch (vk) {
2267 case 0: 2276 case 0:
2268 dasm_put(Dst, 11501, LJ_TISNUM, LJ_TISNUM); 2277 dasm_put(Dst, 11504, LJ_TISNUM, LJ_TISNUM);
2269 break; 2278 break;
2270 case 1: 2279 case 1:
2271 dasm_put(Dst, 11535, LJ_TISNUM, LJ_TISNUM); 2280 dasm_put(Dst, 11538, LJ_TISNUM, LJ_TISNUM);
2272 break; 2281 break;
2273 default: 2282 default:
2274 dasm_put(Dst, 11569, LJ_TISNUM, LJ_TISNUM); 2283 dasm_put(Dst, 11572, LJ_TISNUM, LJ_TISNUM);
2275 break; 2284 break;
2276 } 2285 }
2277 dasm_put(Dst, 11196, LJ_TISNUM); 2286 dasm_put(Dst, 11199, LJ_TISNUM);
2278 if (vk == 1) { 2287 if (vk == 1) {
2279 dasm_put(Dst, 10998); 2288 dasm_put(Dst, 11001);
2280 } else { 2289 } else {
2281 dasm_put(Dst, 10784); 2290 dasm_put(Dst, 10787);
2282 } 2291 }
2283 dasm_put(Dst, 10102); 2292 dasm_put(Dst, 10105);
2284 } else { 2293 } else {
2285 dasm_put(Dst, 11089); 2294 dasm_put(Dst, 11092);
2286 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2295 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2287 switch (vk) { 2296 switch (vk) {
2288 case 0: 2297 case 0:
2289 dasm_put(Dst, 11202, LJ_TISNUM); 2298 dasm_put(Dst, 11205, LJ_TISNUM);
2290 if (LJ_DUALNUM) { 2299 if (LJ_DUALNUM) {
2291 dasm_put(Dst, 11214, LJ_TISNUM); 2300 dasm_put(Dst, 11217, LJ_TISNUM);
2292 } 2301 }
2293 if (sse) { 2302 if (sse) {
2294 dasm_put(Dst, 11603); 2303 dasm_put(Dst, 11606);
2295 } else { 2304 } else {
2296 dasm_put(Dst, 11617); 2305 dasm_put(Dst, 11620);
2297 } 2306 }
2298 break; 2307 break;
2299 case 1: 2308 case 1:
2300 dasm_put(Dst, 11247, LJ_TISNUM); 2309 dasm_put(Dst, 11250, LJ_TISNUM);
2301 if (LJ_DUALNUM) { 2310 if (LJ_DUALNUM) {
2302 dasm_put(Dst, 11259, LJ_TISNUM); 2311 dasm_put(Dst, 11262, LJ_TISNUM);
2303 } 2312 }
2304 if (sse) { 2313 if (sse) {
2305 dasm_put(Dst, 11625); 2314 dasm_put(Dst, 11628);
2306 } else { 2315 } else {
2307 dasm_put(Dst, 11639); 2316 dasm_put(Dst, 11642);
2308 } 2317 }
2309 break; 2318 break;
2310 default: 2319 default:
2311 dasm_put(Dst, 11292, LJ_TISNUM, LJ_TISNUM); 2320 dasm_put(Dst, 11295, LJ_TISNUM, LJ_TISNUM);
2312 if (sse) { 2321 if (sse) {
2313 dasm_put(Dst, 11647); 2322 dasm_put(Dst, 11650);
2314 } else { 2323 } else {
2315 dasm_put(Dst, 11661); 2324 dasm_put(Dst, 11664);
2316 } 2325 }
2317 break; 2326 break;
2318 } 2327 }
2319 if (sse) { 2328 if (sse) {
2320 dasm_put(Dst, 10958); 2329 dasm_put(Dst, 10961);
2321 } else { 2330 } else {
2322 dasm_put(Dst, 10970); 2331 dasm_put(Dst, 10973);
2323 } 2332 }
2324 dasm_put(Dst, 10102); 2333 dasm_put(Dst, 10105);
2325 } 2334 }
2326 break; 2335 break;
2327 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV: 2336 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV:
2328 dasm_put(Dst, 11089); 2337 dasm_put(Dst, 11092);
2329 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2338 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2330 switch (vk) { 2339 switch (vk) {
2331 case 0: 2340 case 0:
2332 dasm_put(Dst, 11202, LJ_TISNUM); 2341 dasm_put(Dst, 11205, LJ_TISNUM);
2333 if (LJ_DUALNUM) { 2342 if (LJ_DUALNUM) {
2334 dasm_put(Dst, 11214, LJ_TISNUM); 2343 dasm_put(Dst, 11217, LJ_TISNUM);
2335 } 2344 }
2336 if (sse) { 2345 if (sse) {
2337 dasm_put(Dst, 11669); 2346 dasm_put(Dst, 11672);
2338 } else { 2347 } else {
2339 dasm_put(Dst, 11683); 2348 dasm_put(Dst, 11686);
2340 } 2349 }
2341 break; 2350 break;
2342 case 1: 2351 case 1:
2343 dasm_put(Dst, 11247, LJ_TISNUM); 2352 dasm_put(Dst, 11250, LJ_TISNUM);
2344 if (LJ_DUALNUM) { 2353 if (LJ_DUALNUM) {
2345 dasm_put(Dst, 11259, LJ_TISNUM); 2354 dasm_put(Dst, 11262, LJ_TISNUM);
2346 } 2355 }
2347 if (sse) { 2356 if (sse) {
2348 dasm_put(Dst, 11691); 2357 dasm_put(Dst, 11694);
2349 } else { 2358 } else {
2350 dasm_put(Dst, 11705); 2359 dasm_put(Dst, 11708);
2351 } 2360 }
2352 break; 2361 break;
2353 default: 2362 default:
2354 dasm_put(Dst, 11292, LJ_TISNUM, LJ_TISNUM); 2363 dasm_put(Dst, 11295, LJ_TISNUM, LJ_TISNUM);
2355 if (sse) { 2364 if (sse) {
2356 dasm_put(Dst, 11713); 2365 dasm_put(Dst, 11716);
2357 } else { 2366 } else {
2358 dasm_put(Dst, 11727); 2367 dasm_put(Dst, 11730);
2359 } 2368 }
2360 break; 2369 break;
2361 } 2370 }
2362 if (sse) { 2371 if (sse) {
2363 dasm_put(Dst, 10958); 2372 dasm_put(Dst, 10961);
2364 } else { 2373 } else {
2365 dasm_put(Dst, 10970); 2374 dasm_put(Dst, 10973);
2366 } 2375 }
2367 dasm_put(Dst, 10102); 2376 dasm_put(Dst, 10105);
2368 break; 2377 break;
2369 case BC_MODVN: 2378 case BC_MODVN:
2370 dasm_put(Dst, 11089); 2379 dasm_put(Dst, 11092);
2371 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2380 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2372 switch (vk) { 2381 switch (vk) {
2373 case 0: 2382 case 0:
2374 dasm_put(Dst, 11202, LJ_TISNUM); 2383 dasm_put(Dst, 11205, LJ_TISNUM);
2375 if (LJ_DUALNUM) { 2384 if (LJ_DUALNUM) {
2376 dasm_put(Dst, 11214, LJ_TISNUM); 2385 dasm_put(Dst, 11217, LJ_TISNUM);
2377 } 2386 }
2378 if (sse) { 2387 if (sse) {
2379 dasm_put(Dst, 11735); 2388 dasm_put(Dst, 11738);
2380 } else { 2389 } else {
2381 dasm_put(Dst, 11749); 2390 dasm_put(Dst, 11752);
2382 } 2391 }
2383 break; 2392 break;
2384 case 1: 2393 case 1:
2385 dasm_put(Dst, 11247, LJ_TISNUM); 2394 dasm_put(Dst, 11250, LJ_TISNUM);
2386 if (LJ_DUALNUM) { 2395 if (LJ_DUALNUM) {
2387 dasm_put(Dst, 11259, LJ_TISNUM); 2396 dasm_put(Dst, 11262, LJ_TISNUM);
2388 } 2397 }
2389 if (sse) { 2398 if (sse) {
2390 dasm_put(Dst, 11757); 2399 dasm_put(Dst, 11760);
2391 } else { 2400 } else {
2392 dasm_put(Dst, 11771); 2401 dasm_put(Dst, 11774);
2393 } 2402 }
2394 break; 2403 break;
2395 default: 2404 default:
2396 dasm_put(Dst, 11292, LJ_TISNUM, LJ_TISNUM); 2405 dasm_put(Dst, 11295, LJ_TISNUM, LJ_TISNUM);
2397 if (sse) { 2406 if (sse) {
2398 dasm_put(Dst, 11779); 2407 dasm_put(Dst, 11782);
2399 } else { 2408 } else {
2400 dasm_put(Dst, 11793); 2409 dasm_put(Dst, 11796);
2401 } 2410 }
2402 break; 2411 break;
2403 } 2412 }
2404 dasm_put(Dst, 11801); 2413 dasm_put(Dst, 11804);
2405 if (sse) { 2414 if (sse) {
2406 dasm_put(Dst, 10958); 2415 dasm_put(Dst, 10961);
2407 } else { 2416 } else {
2408 dasm_put(Dst, 10970); 2417 dasm_put(Dst, 10973);
2409 } 2418 }
2410 dasm_put(Dst, 10102); 2419 dasm_put(Dst, 10105);
2411 break; 2420 break;
2412 case BC_MODNV: case BC_MODVV: 2421 case BC_MODNV: case BC_MODVV:
2413 dasm_put(Dst, 11089); 2422 dasm_put(Dst, 11092);
2414 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2423 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2415 switch (vk) { 2424 switch (vk) {
2416 case 0: 2425 case 0:
2417 dasm_put(Dst, 11202, LJ_TISNUM); 2426 dasm_put(Dst, 11205, LJ_TISNUM);
2418 if (LJ_DUALNUM) { 2427 if (LJ_DUALNUM) {
2419 dasm_put(Dst, 11214, LJ_TISNUM); 2428 dasm_put(Dst, 11217, LJ_TISNUM);
2420 } 2429 }
2421 if (sse) { 2430 if (sse) {
2422 dasm_put(Dst, 11735); 2431 dasm_put(Dst, 11738);
2423 } else { 2432 } else {
2424 dasm_put(Dst, 11749); 2433 dasm_put(Dst, 11752);
2425 } 2434 }
2426 break; 2435 break;
2427 case 1: 2436 case 1:
2428 dasm_put(Dst, 11247, LJ_TISNUM); 2437 dasm_put(Dst, 11250, LJ_TISNUM);
2429 if (LJ_DUALNUM) { 2438 if (LJ_DUALNUM) {
2430 dasm_put(Dst, 11259, LJ_TISNUM); 2439 dasm_put(Dst, 11262, LJ_TISNUM);
2431 } 2440 }
2432 if (sse) { 2441 if (sse) {
2433 dasm_put(Dst, 11757); 2442 dasm_put(Dst, 11760);
2434 } else { 2443 } else {
2435 dasm_put(Dst, 11771); 2444 dasm_put(Dst, 11774);
2436 } 2445 }
2437 break; 2446 break;
2438 default: 2447 default:
2439 dasm_put(Dst, 11292, LJ_TISNUM, LJ_TISNUM); 2448 dasm_put(Dst, 11295, LJ_TISNUM, LJ_TISNUM);
2440 if (sse) { 2449 if (sse) {
2441 dasm_put(Dst, 11779); 2450 dasm_put(Dst, 11782);
2442 } else { 2451 } else {
2443 dasm_put(Dst, 11793); 2452 dasm_put(Dst, 11796);
2444 } 2453 }
2445 break; 2454 break;
2446 } 2455 }
2447 dasm_put(Dst, 11807); 2456 dasm_put(Dst, 11810);
2448 break; 2457 break;
2449 case BC_POW: 2458 case BC_POW:
2450 dasm_put(Dst, 11089); 2459 dasm_put(Dst, 11092);
2451 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2460 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2452 switch (vk) { 2461 switch (vk) {
2453 case 0: 2462 case 0:
2454 dasm_put(Dst, 11202, LJ_TISNUM); 2463 dasm_put(Dst, 11205, LJ_TISNUM);
2455 if (LJ_DUALNUM) { 2464 if (LJ_DUALNUM) {
2456 dasm_put(Dst, 11214, LJ_TISNUM); 2465 dasm_put(Dst, 11217, LJ_TISNUM);
2457 } 2466 }
2458 if (sse) { 2467 if (sse) {
2459 dasm_put(Dst, 11735); 2468 dasm_put(Dst, 11738);
2460 } else { 2469 } else {
2461 dasm_put(Dst, 11749); 2470 dasm_put(Dst, 11752);
2462 } 2471 }
2463 break; 2472 break;
2464 case 1: 2473 case 1:
2465 dasm_put(Dst, 11247, LJ_TISNUM); 2474 dasm_put(Dst, 11250, LJ_TISNUM);
2466 if (LJ_DUALNUM) { 2475 if (LJ_DUALNUM) {
2467 dasm_put(Dst, 11259, LJ_TISNUM); 2476 dasm_put(Dst, 11262, LJ_TISNUM);
2468 } 2477 }
2469 if (sse) { 2478 if (sse) {
2470 dasm_put(Dst, 11757); 2479 dasm_put(Dst, 11760);
2471 } else { 2480 } else {
2472 dasm_put(Dst, 11771); 2481 dasm_put(Dst, 11774);
2473 } 2482 }
2474 break; 2483 break;
2475 default: 2484 default:
2476 dasm_put(Dst, 11292, LJ_TISNUM, LJ_TISNUM); 2485 dasm_put(Dst, 11295, LJ_TISNUM, LJ_TISNUM);
2477 if (sse) { 2486 if (sse) {
2478 dasm_put(Dst, 11779); 2487 dasm_put(Dst, 11782);
2479 } else { 2488 } else {
2480 dasm_put(Dst, 11793); 2489 dasm_put(Dst, 11796);
2481 } 2490 }
2482 break; 2491 break;
2483 } 2492 }
2484 dasm_put(Dst, 11812); 2493 dasm_put(Dst, 11815);
2485 if (sse) { 2494 if (sse) {
2486 dasm_put(Dst, 10958); 2495 dasm_put(Dst, 10961);
2487 } else { 2496 } else {
2488 dasm_put(Dst, 10970); 2497 dasm_put(Dst, 10973);
2489 } 2498 }
2490 dasm_put(Dst, 10102); 2499 dasm_put(Dst, 10105);
2491 break; 2500 break;
2492 2501
2493 case BC_CAT: 2502 case BC_CAT:
2494 dasm_put(Dst, 11816, Dt1(->base), Dt1(->base)); 2503 dasm_put(Dst, 11819, Dt1(->base), Dt1(->base));
2495 break; 2504 break;
2496 2505
2497 /* -- Constant ops ------------------------------------------------------ */ 2506 /* -- Constant ops ------------------------------------------------------ */
2498 2507
2499 case BC_KSTR: 2508 case BC_KSTR:
2500 dasm_put(Dst, 11899, LJ_TSTR); 2509 dasm_put(Dst, 11902, LJ_TSTR);
2501 break; 2510 break;
2502 case BC_KCDATA: 2511 case BC_KCDATA:
2503#if LJ_HASFFI 2512#if LJ_HASFFI
2504 dasm_put(Dst, 11899, LJ_TCDATA); 2513 dasm_put(Dst, 11902, LJ_TCDATA);
2505#endif 2514#endif
2506 break; 2515 break;
2507 case BC_KSHORT: 2516 case BC_KSHORT:
2508 if (LJ_DUALNUM) { 2517 if (LJ_DUALNUM) {
2509 dasm_put(Dst, 11934, LJ_TISNUM); 2518 dasm_put(Dst, 11937, LJ_TISNUM);
2510 } else if (sse) { 2519 } else if (sse) {
2511 dasm_put(Dst, 11946); 2520 dasm_put(Dst, 11949);
2512 } else { 2521 } else {
2513 dasm_put(Dst, 11961); 2522 dasm_put(Dst, 11964);
2514 } 2523 }
2515 dasm_put(Dst, 10102); 2524 dasm_put(Dst, 10105);
2516 break; 2525 break;
2517 case BC_KNUM: 2526 case BC_KNUM:
2518 if (sse) { 2527 if (sse) {
2519 dasm_put(Dst, 11969); 2528 dasm_put(Dst, 11972);
2520 } else { 2529 } else {
2521 dasm_put(Dst, 11982); 2530 dasm_put(Dst, 11985);
2522 } 2531 }
2523 dasm_put(Dst, 10102); 2532 dasm_put(Dst, 10105);
2524 break; 2533 break;
2525 case BC_KPRI: 2534 case BC_KPRI:
2526 dasm_put(Dst, 11989); 2535 dasm_put(Dst, 11992);
2527 break; 2536 break;
2528 case BC_KNIL: 2537 case BC_KNIL:
2529 dasm_put(Dst, 12017, LJ_TNIL); 2538 dasm_put(Dst, 12020, LJ_TNIL);
2530 break; 2539 break;
2531 2540
2532 /* -- Upvalue and function ops ------------------------------------------ */ 2541 /* -- Upvalue and function ops ------------------------------------------ */
2533 2542
2534 case BC_UGET: 2543 case BC_UGET:
2535 dasm_put(Dst, 12064, offsetof(GCfuncL, uvptr), DtA(->v)); 2544 dasm_put(Dst, 12067, offsetof(GCfuncL, uvptr), DtA(->v));
2536 break; 2545 break;
2537 case BC_USETV: 2546 case BC_USETV:
2538#define TV2MARKOFS \ 2547#define TV2MARKOFS \
2539 ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv)) 2548 ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv))
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); 2549 dasm_put(Dst, 12107, 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, 12195); 2550 dasm_put(Dst, 12198);
2542 break; 2551 break;
2543#undef TV2MARKOFS 2552#undef TV2MARKOFS
2544 case BC_USETS: 2553 case BC_USETS:
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); 2554 dasm_put(Dst, 12210, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G);
2546 break; 2555 break;
2547 case BC_USETN: 2556 case BC_USETN:
2548 dasm_put(Dst, 12300); 2557 dasm_put(Dst, 12303);
2549 if (sse) { 2558 if (sse) {
2550 dasm_put(Dst, 12305); 2559 dasm_put(Dst, 12308);
2551 } else { 2560 } else {
2552 dasm_put(Dst, 10613); 2561 dasm_put(Dst, 10616);
2553 } 2562 }
2554 dasm_put(Dst, 12312, offsetof(GCfuncL, uvptr), DtA(->v)); 2563 dasm_put(Dst, 12315, offsetof(GCfuncL, uvptr), DtA(->v));
2555 if (sse) { 2564 if (sse) {
2556 dasm_put(Dst, 12321); 2565 dasm_put(Dst, 12324);
2557 } else { 2566 } else {
2558 dasm_put(Dst, 12327); 2567 dasm_put(Dst, 12330);
2559 } 2568 }
2560 dasm_put(Dst, 10102); 2569 dasm_put(Dst, 10105);
2561 break; 2570 break;
2562 case BC_USETP: 2571 case BC_USETP:
2563 dasm_put(Dst, 12330, offsetof(GCfuncL, uvptr), DtA(->v)); 2572 dasm_put(Dst, 12333, offsetof(GCfuncL, uvptr), DtA(->v));
2564 break; 2573 break;
2565 case BC_UCLO: 2574 case BC_UCLO:
2566 dasm_put(Dst, 12369, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base)); 2575 dasm_put(Dst, 12372, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base));
2567 break; 2576 break;
2568 2577
2569 case BC_FNEW: 2578 case BC_FNEW:
2570 dasm_put(Dst, 12424, Dt1(->base), Dt1(->base), LJ_TFUNC); 2579 dasm_put(Dst, 12427, Dt1(->base), Dt1(->base), LJ_TFUNC);
2571 break; 2580 break;
2572 2581
2573 /* -- Table ops --------------------------------------------------------- */ 2582 /* -- Table ops --------------------------------------------------------- */
2574 2583
2575 case BC_TNEW: 2584 case BC_TNEW:
2576 dasm_put(Dst, 12490, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB); 2585 dasm_put(Dst, 12493, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB);
2577 break; 2586 break;
2578 case BC_TDUP: 2587 case BC_TDUP:
2579 dasm_put(Dst, 12612, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB); 2588 dasm_put(Dst, 12615, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB);
2580 break; 2589 break;
2581 2590
2582 case BC_GGET: 2591 case BC_GGET:
2583 dasm_put(Dst, 12707, Dt7(->env)); 2592 dasm_put(Dst, 12710, Dt7(->env));
2584 break; 2593 break;
2585 case BC_GSET: 2594 case BC_GSET:
2586 dasm_put(Dst, 12726, Dt7(->env)); 2595 dasm_put(Dst, 12729, Dt7(->env));
2587 break; 2596 break;
2588 2597
2589 case BC_TGETV: 2598 case BC_TGETV:
2590 dasm_put(Dst, 12745, LJ_TTAB); 2599 dasm_put(Dst, 12748, LJ_TTAB);
2591 if (LJ_DUALNUM) { 2600 if (LJ_DUALNUM) {
2592 dasm_put(Dst, 12768, LJ_TISNUM); 2601 dasm_put(Dst, 12771, LJ_TISNUM);
2593 } else { 2602 } else {
2594 dasm_put(Dst, 12782, LJ_TISNUM); 2603 dasm_put(Dst, 12785, LJ_TISNUM);
2595 if (sse) { 2604 if (sse) {
2596 dasm_put(Dst, 12793); 2605 dasm_put(Dst, 12796);
2597 } else { 2606 } else {
2598 } 2607 }
2599 dasm_put(Dst, 12814); 2608 dasm_put(Dst, 12817);
2600 } 2609 }
2601 dasm_put(Dst, 12819, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index, LJ_TNIL); 2610 dasm_put(Dst, 12822, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index, LJ_TNIL);
2602 dasm_put(Dst, 12910, LJ_TSTR); 2611 dasm_put(Dst, 12913, LJ_TSTR);
2603 break; 2612 break;
2604 case BC_TGETS: 2613 case BC_TGETS:
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); 2614 dasm_put(Dst, 12931, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
2606 dasm_put(Dst, 13012, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 2615 dasm_put(Dst, 13015, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
2607 break; 2616 break;
2608 case BC_TGETB: 2617 case BC_TGETB:
2609 dasm_put(Dst, 13083, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 2618 dasm_put(Dst, 13086, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
2610 dasm_put(Dst, 13178, LJ_TNIL); 2619 dasm_put(Dst, 13181, LJ_TNIL);
2611 break; 2620 break;
2612 2621
2613 case BC_TSETV: 2622 case BC_TSETV:
2614 dasm_put(Dst, 13195, LJ_TTAB); 2623 dasm_put(Dst, 13198, LJ_TTAB);
2615 if (LJ_DUALNUM) { 2624 if (LJ_DUALNUM) {
2616 dasm_put(Dst, 12768, LJ_TISNUM); 2625 dasm_put(Dst, 12771, LJ_TISNUM);
2617 } else { 2626 } else {
2618 dasm_put(Dst, 12782, LJ_TISNUM); 2627 dasm_put(Dst, 12785, LJ_TISNUM);
2619 if (sse) { 2628 if (sse) {
2620 dasm_put(Dst, 12793); 2629 dasm_put(Dst, 12796);
2621 } else { 2630 } else {
2622 } 2631 }
2623 dasm_put(Dst, 13218); 2632 dasm_put(Dst, 13221);
2624 } 2633 }
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); 2634 dasm_put(Dst, 13226, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex);
2626 dasm_put(Dst, 13303, LJ_TSTR, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 2635 dasm_put(Dst, 13306, LJ_TSTR, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
2627 break; 2636 break;
2628 case BC_TSETS: 2637 case BC_TSETS:
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); 2638 dasm_put(Dst, 13363, 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, 13436, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next)); 2639 dasm_put(Dst, 13439, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next));
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)); 2640 dasm_put(Dst, 13527, 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 break; 2641 break;
2633 case BC_TSETB: 2642 case BC_TSETB:
2634 dasm_put(Dst, 13615, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable)); 2643 dasm_put(Dst, 13618, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable));
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)); 2644 dasm_put(Dst, 13712, 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 break; 2645 break;
2637 2646
2638 case BC_TSETM: 2647 case BC_TSETM:
2639 dasm_put(Dst, 13755, Dt6(->marked), LJ_GC_BLACK, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base)); 2648 dasm_put(Dst, 13758, Dt6(->marked), LJ_GC_BLACK, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base));
2640 dasm_put(Dst, 13898, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 2649 dasm_put(Dst, 13901, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
2641 break; 2650 break;
2642 2651
2643 /* -- Calls and vararg handling ----------------------------------------- */ 2652 /* -- Calls and vararg handling ----------------------------------------- */
2644 2653
2645 case BC_CALL: case BC_CALLM: 2654 case BC_CALL: case BC_CALLM:
2646 dasm_put(Dst, 11093); 2655 dasm_put(Dst, 11096);
2647 if (op == BC_CALLM) { 2656 if (op == BC_CALLM) {
2648 dasm_put(Dst, 13916); 2657 dasm_put(Dst, 13919);
2649 } 2658 }
2650 dasm_put(Dst, 13921, LJ_TFUNC, Dt7(->pc)); 2659 dasm_put(Dst, 13924, LJ_TFUNC, Dt7(->pc));
2651 break; 2660 break;
2652 2661
2653 case BC_CALLMT: 2662 case BC_CALLMT:
2654 dasm_put(Dst, 13916); 2663 dasm_put(Dst, 13919);
2655 break; 2664 break;
2656 case BC_CALLT: 2665 case BC_CALLT:
2657 dasm_put(Dst, 13963, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc)); 2666 dasm_put(Dst, 13966, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc));
2658 dasm_put(Dst, 14078, FRAME_TYPE, Dt7(->pc), PC2PROTO(k), FRAME_VARG, FRAME_TYPEP, FRAME_VARG); 2667 dasm_put(Dst, 14081, FRAME_TYPE, Dt7(->pc), PC2PROTO(k), FRAME_VARG, FRAME_TYPEP, FRAME_VARG);
2659 break; 2668 break;
2660 2669
2661 case BC_ITERC: 2670 case BC_ITERC:
2662 dasm_put(Dst, 14149, LJ_TFUNC, 2+1, Dt7(->pc)); 2671 dasm_put(Dst, 14152, LJ_TFUNC, 2+1, Dt7(->pc));
2663 break; 2672 break;
2664 2673
2665 case BC_ITERN: 2674 case BC_ITERN:
2666#if LJ_HASJIT 2675#if LJ_HASJIT
2667#endif 2676#endif
2668 dasm_put(Dst, 14220, Dt6(->asize), Dt6(->array), LJ_TNIL); 2677 dasm_put(Dst, 14223, Dt6(->asize), Dt6(->array), LJ_TNIL);
2669 if (LJ_DUALNUM) { 2678 if (LJ_DUALNUM) {
2670 dasm_put(Dst, 10993, LJ_TISNUM); 2679 dasm_put(Dst, 10996, LJ_TISNUM);
2671 } else if (sse) { 2680 } else if (sse) {
2672 dasm_put(Dst, 11070); 2681 dasm_put(Dst, 11073);
2673 } else { 2682 } else {
2674 dasm_put(Dst, 14266); 2683 dasm_put(Dst, 14269);
2675 } 2684 }
2676 dasm_put(Dst, 14272); 2685 dasm_put(Dst, 14275);
2677 if (LJ_DUALNUM) { 2686 if (LJ_DUALNUM) {
2678 } else if (sse) { 2687 } else if (sse) {
2679 dasm_put(Dst, 10958); 2688 dasm_put(Dst, 10961);
2680 } else { 2689 } else {
2681 dasm_put(Dst, 10970); 2690 dasm_put(Dst, 10973);
2682 } 2691 }
2683 dasm_put(Dst, 14285, -BCBIAS_J*4); 2692 dasm_put(Dst, 14288, -BCBIAS_J*4);
2684 if (!LJ_DUALNUM && !sse) { 2693 if (!LJ_DUALNUM && !sse) {
2685 dasm_put(Dst, 14337); 2694 dasm_put(Dst, 14340);
2686 } 2695 }
2687 dasm_put(Dst, 14343, Dt6(->hmask), sizeof(Node), Dt6(->node), DtB(->val.it), LJ_TNIL, DtB(->key), DtB(->val)); 2696 dasm_put(Dst, 14346, Dt6(->hmask), sizeof(Node), Dt6(->node), DtB(->val.it), LJ_TNIL, DtB(->key), DtB(->val));
2688 break; 2697 break;
2689 2698
2690 case BC_ISNEXT: 2699 case BC_ISNEXT:
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); 2700 dasm_put(Dst, 14418, LJ_TFUNC, LJ_TTAB, LJ_TNIL, Dt8(->ffid), FF_next_N, -BCBIAS_J*4, BC_JMP, -BCBIAS_J*4, BC_ITERC);
2692 break; 2701 break;
2693 2702
2694 case BC_VARG: 2703 case BC_VARG:
2695 dasm_put(Dst, 14515, (8+FRAME_VARG), LJ_TNIL, Dt1(->maxstack)); 2704 dasm_put(Dst, 14518, (8+FRAME_VARG), LJ_TNIL, Dt1(->maxstack));
2696 dasm_put(Dst, 14675, Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top)); 2705 dasm_put(Dst, 14678, Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top));
2697 break; 2706 break;
2698 2707
2699 /* -- Returns ----------------------------------------------------------- */ 2708 /* -- Returns ----------------------------------------------------------- */
2700 2709
2701 case BC_RETM: 2710 case BC_RETM:
2702 dasm_put(Dst, 13916); 2711 dasm_put(Dst, 13919);
2703 break; 2712 break;
2704 2713
2705 case BC_RET: case BC_RET0: case BC_RET1: 2714 case BC_RET: case BC_RET0: case BC_RET1:
2706 if (op != BC_RET0) { 2715 if (op != BC_RET0) {
2707 dasm_put(Dst, 14741); 2716 dasm_put(Dst, 14744);
2708 } 2717 }
2709 dasm_put(Dst, 14745, FRAME_TYPE); 2718 dasm_put(Dst, 14748, FRAME_TYPE);
2710 switch (op) { 2719 switch (op) {
2711 case BC_RET: 2720 case BC_RET:
2712 dasm_put(Dst, 14764); 2721 dasm_put(Dst, 14767);
2713 break; 2722 break;
2714 case BC_RET1: 2723 case BC_RET1:
2715 dasm_put(Dst, 14816); 2724 dasm_put(Dst, 14819);
2716 /* fallthrough */ 2725 /* fallthrough */
2717 case BC_RET0: 2726 case BC_RET0:
2718 dasm_put(Dst, 14826); 2727 dasm_put(Dst, 14829);
2719 default: 2728 default:
2720 break; 2729 break;
2721 } 2730 }
2722 dasm_put(Dst, 14837, Dt7(->pc), PC2PROTO(k)); 2731 dasm_put(Dst, 14840, Dt7(->pc), PC2PROTO(k));
2723 if (op == BC_RET) { 2732 if (op == BC_RET) {
2724 dasm_put(Dst, 14881, LJ_TNIL); 2733 dasm_put(Dst, 14884, LJ_TNIL);
2725 } else { 2734 } else {
2726 dasm_put(Dst, 14890, LJ_TNIL); 2735 dasm_put(Dst, 14893, LJ_TNIL);
2727 } 2736 }
2728 dasm_put(Dst, 14897, -FRAME_VARG, FRAME_TYPEP); 2737 dasm_put(Dst, 14900, -FRAME_VARG, FRAME_TYPEP);
2729 if (op != BC_RET0) { 2738 if (op != BC_RET0) {
2730 dasm_put(Dst, 14921); 2739 dasm_put(Dst, 14924);
2731 } 2740 }
2732 dasm_put(Dst, 4646); 2741 dasm_put(Dst, 4646);
2733 break; 2742 break;
@@ -2737,7 +2746,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2737 2746
2738 case BC_FORL: 2747 case BC_FORL:
2739#if LJ_HASJIT 2748#if LJ_HASJIT
2740 dasm_put(Dst, 14925, HOTCOUNT_PCMASK, GG_DISP2HOT); 2749 dasm_put(Dst, 14928, HOTCOUNT_PCMASK, GG_DISP2HOT);
2741#endif 2750#endif
2742 break; 2751 break;
2743 2752
@@ -2749,104 +2758,111 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2749 case BC_FORI: 2758 case BC_FORI:
2750 case BC_IFORL: 2759 case BC_IFORL:
2751 vk = (op == BC_IFORL || op == BC_JFORL); 2760 vk = (op == BC_IFORL || op == BC_JFORL);
2752 dasm_put(Dst, 14946); 2761 dasm_put(Dst, 14949);
2753 if (LJ_DUALNUM) { 2762 if (LJ_DUALNUM) {
2754 dasm_put(Dst, 14950, LJ_TISNUM); 2763 dasm_put(Dst, 14953, LJ_TISNUM);
2755 if (!vk) { 2764 if (!vk) {
2756 dasm_put(Dst, 14960, LJ_TISNUM, LJ_TISNUM); 2765 dasm_put(Dst, 14963, LJ_TISNUM, LJ_TISNUM);
2757 } else { 2766 } else {
2758 dasm_put(Dst, 14989); 2767#ifdef LUA_USE_ASSERT
2768 dasm_put(Dst, 14992, LJ_TISNUM, LJ_TISNUM);
2769#endif
2770 dasm_put(Dst, 15011);
2759 } 2771 }
2760 dasm_put(Dst, 15008, LJ_TISNUM); 2772 dasm_put(Dst, 15030, LJ_TISNUM);
2761 if (op == BC_FORI) { 2773 if (op == BC_FORI) {
2762 dasm_put(Dst, 15019, -BCBIAS_J*4); 2774 dasm_put(Dst, 15041, -BCBIAS_J*4);
2763 } else if (op == BC_JFORI) { 2775 } else if (op == BC_JFORI) {
2764 dasm_put(Dst, 15033, -BCBIAS_J*4, BC_JLOOP); 2776 dasm_put(Dst, 15055, -BCBIAS_J*4, BC_JLOOP);
2765 } else if (op == BC_IFORL) { 2777 } else if (op == BC_IFORL) {
2766 dasm_put(Dst, 15051, -BCBIAS_J*4); 2778 dasm_put(Dst, 15073, -BCBIAS_J*4);
2767 } else { 2779 } else {
2768 dasm_put(Dst, 15043, BC_JLOOP); 2780 dasm_put(Dst, 15065, BC_JLOOP);
2769 } 2781 }
2770 dasm_put(Dst, 15065); 2782 dasm_put(Dst, 15087);
2771 if (vk) { 2783 if (vk) {
2772 dasm_put(Dst, 15089); 2784 dasm_put(Dst, 15111);
2773 } 2785 }
2774 dasm_put(Dst, 15008, LJ_TISNUM); 2786 dasm_put(Dst, 15030, LJ_TISNUM);
2775 if (op == BC_FORI) { 2787 if (op == BC_FORI) {
2776 dasm_put(Dst, 15098); 2788 dasm_put(Dst, 15120);
2777 } else if (op == BC_JFORI) { 2789 } else if (op == BC_JFORI) {
2778 dasm_put(Dst, 15103, -BCBIAS_J*4, BC_JLOOP); 2790 dasm_put(Dst, 15125, -BCBIAS_J*4, BC_JLOOP);
2779 } else if (op == BC_IFORL) { 2791 } else if (op == BC_IFORL) {
2780 dasm_put(Dst, 15117); 2792 dasm_put(Dst, 15139);
2781 } else { 2793 } else {
2782 dasm_put(Dst, 15113, BC_JLOOP); 2794 dasm_put(Dst, 15135, BC_JLOOP);
2783 } 2795 }
2784 dasm_put(Dst, 15122); 2796 dasm_put(Dst, 15144);
2785 } else if (!vk) { 2797 } else if (!vk) {
2786 dasm_put(Dst, 15129, LJ_TISNUM); 2798 dasm_put(Dst, 15151, LJ_TISNUM);
2787 } 2799 }
2788 if (!vk) { 2800 if (!vk) {
2789 dasm_put(Dst, 15135, LJ_TISNUM); 2801 dasm_put(Dst, 15157, LJ_TISNUM);
2802 } else {
2803#ifdef LUA_USE_ASSERT
2804 dasm_put(Dst, 15171, LJ_TISNUM, LJ_TISNUM);
2805#endif
2790 } 2806 }
2791 dasm_put(Dst, 15149); 2807 dasm_put(Dst, 15190);
2792 if (!vk) { 2808 if (!vk) {
2793 dasm_put(Dst, 15153, LJ_TISNUM); 2809 dasm_put(Dst, 15194, LJ_TISNUM);
2794 } 2810 }
2795 if (sse) { 2811 if (sse) {
2796 dasm_put(Dst, 15162); 2812 dasm_put(Dst, 15203);
2797 if (vk) { 2813 if (vk) {
2798 dasm_put(Dst, 15174); 2814 dasm_put(Dst, 15215);
2799 } else { 2815 } else {
2800 dasm_put(Dst, 15193); 2816 dasm_put(Dst, 15234);
2801 } 2817 }
2802 dasm_put(Dst, 15198); 2818 dasm_put(Dst, 15239);
2803 } else { 2819 } else {
2804 dasm_put(Dst, 15211); 2820 dasm_put(Dst, 15252);
2805 if (vk) { 2821 if (vk) {
2806 dasm_put(Dst, 15217); 2822 dasm_put(Dst, 15258);
2807 } else { 2823 } else {
2808 dasm_put(Dst, 15233); 2824 dasm_put(Dst, 15274);
2809 } 2825 }
2810 dasm_put(Dst, 15241); 2826 dasm_put(Dst, 15282);
2811 if (cmov) { 2827 if (cmov) {
2812 dasm_put(Dst, 10057); 2828 dasm_put(Dst, 10060);
2813 } else { 2829 } else {
2814 dasm_put(Dst, 10063); 2830 dasm_put(Dst, 10066);
2815 } 2831 }
2816 if (!cmov) { 2832 if (!cmov) {
2817 dasm_put(Dst, 15246); 2833 dasm_put(Dst, 15287);
2818 } 2834 }
2819 } 2835 }
2820 if (op == BC_FORI) { 2836 if (op == BC_FORI) {
2821 if (LJ_DUALNUM) { 2837 if (LJ_DUALNUM) {
2822 dasm_put(Dst, 15252); 2838 dasm_put(Dst, 15293);
2823 } else { 2839 } else {
2824 dasm_put(Dst, 15257, -BCBIAS_J*4); 2840 dasm_put(Dst, 15298, -BCBIAS_J*4);
2825 } 2841 }
2826 } else if (op == BC_JFORI) { 2842 } else if (op == BC_JFORI) {
2827 dasm_put(Dst, 15267, -BCBIAS_J*4, BC_JLOOP); 2843 dasm_put(Dst, 15308, -BCBIAS_J*4, BC_JLOOP);
2828 } else if (op == BC_IFORL) { 2844 } else if (op == BC_IFORL) {
2829 if (LJ_DUALNUM) { 2845 if (LJ_DUALNUM) {
2830 dasm_put(Dst, 15281); 2846 dasm_put(Dst, 15322);
2831 } else { 2847 } else {
2832 dasm_put(Dst, 15286, -BCBIAS_J*4); 2848 dasm_put(Dst, 15327, -BCBIAS_J*4);
2833 } 2849 }
2834 } else { 2850 } else {
2835 dasm_put(Dst, 15277, BC_JLOOP); 2851 dasm_put(Dst, 15318, BC_JLOOP);
2836 } 2852 }
2837 if (LJ_DUALNUM) { 2853 if (LJ_DUALNUM) {
2838 dasm_put(Dst, 9986); 2854 dasm_put(Dst, 9989);
2839 } else { 2855 } else {
2840 dasm_put(Dst, 10743); 2856 dasm_put(Dst, 10746);
2841 } 2857 }
2842 if (sse) { 2858 if (sse) {
2843 dasm_put(Dst, 15296); 2859 dasm_put(Dst, 15337);
2844 } 2860 }
2845 break; 2861 break;
2846 2862
2847 case BC_ITERL: 2863 case BC_ITERL:
2848#if LJ_HASJIT 2864#if LJ_HASJIT
2849 dasm_put(Dst, 14925, HOTCOUNT_PCMASK, GG_DISP2HOT); 2865 dasm_put(Dst, 14928, HOTCOUNT_PCMASK, GG_DISP2HOT);
2850#endif 2866#endif
2851 break; 2867 break;
2852 2868
@@ -2855,33 +2871,33 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2855 break; 2871 break;
2856#endif 2872#endif
2857 case BC_IITERL: 2873 case BC_IITERL:
2858 dasm_put(Dst, 15307, LJ_TNIL); 2874 dasm_put(Dst, 15348, LJ_TNIL);
2859 if (op == BC_JITERL) { 2875 if (op == BC_JITERL) {
2860 dasm_put(Dst, 15322, BC_JLOOP); 2876 dasm_put(Dst, 15363, BC_JLOOP);
2861 } else { 2877 } else {
2862 dasm_put(Dst, 15336, -BCBIAS_J*4); 2878 dasm_put(Dst, 15377, -BCBIAS_J*4);
2863 } 2879 }
2864 dasm_put(Dst, 10100); 2880 dasm_put(Dst, 10103);
2865 break; 2881 break;
2866 2882
2867 case BC_LOOP: 2883 case BC_LOOP:
2868#if LJ_HASJIT 2884#if LJ_HASJIT
2869 dasm_put(Dst, 14925, HOTCOUNT_PCMASK, GG_DISP2HOT); 2885 dasm_put(Dst, 14928, HOTCOUNT_PCMASK, GG_DISP2HOT);
2870#endif 2886#endif
2871 break; 2887 break;
2872 2888
2873 case BC_ILOOP: 2889 case BC_ILOOP:
2874 dasm_put(Dst, 10102); 2890 dasm_put(Dst, 10105);
2875 break; 2891 break;
2876 2892
2877 case BC_JLOOP: 2893 case BC_JLOOP:
2878#if LJ_HASJIT 2894#if LJ_HASJIT
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); 2895 dasm_put(Dst, 15393, 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);
2880#endif 2896#endif
2881 break; 2897 break;
2882 2898
2883 case BC_JMP: 2899 case BC_JMP:
2884 dasm_put(Dst, 15461, -BCBIAS_J*4); 2900 dasm_put(Dst, 15502, -BCBIAS_J*4);
2885 break; 2901 break;
2886 2902
2887 /* -- Function headers -------------------------------------------------- */ 2903 /* -- Function headers -------------------------------------------------- */
@@ -2895,7 +2911,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2895 2911
2896 case BC_FUNCF: 2912 case BC_FUNCF:
2897#if LJ_HASJIT 2913#if LJ_HASJIT
2898 dasm_put(Dst, 15486, HOTCOUNT_PCMASK, GG_DISP2HOT); 2914 dasm_put(Dst, 15527, HOTCOUNT_PCMASK, GG_DISP2HOT);
2899#endif 2915#endif
2900 case BC_FUNCV: /* NYI: compiled vararg functions. */ 2916 case BC_FUNCV: /* NYI: compiled vararg functions. */
2901 break; 2917 break;
@@ -2905,13 +2921,13 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2905 break; 2921 break;
2906#endif 2922#endif
2907 case BC_IFUNCF: 2923 case BC_IFUNCF:
2908 dasm_put(Dst, 15507, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams)); 2924 dasm_put(Dst, 15548, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams));
2909 if (op == BC_JFUNCF) { 2925 if (op == BC_JFUNCF) {
2910 dasm_put(Dst, 15537, BC_JLOOP); 2926 dasm_put(Dst, 15578, BC_JLOOP);
2911 } else { 2927 } else {
2912 dasm_put(Dst, 10102); 2928 dasm_put(Dst, 10105);
2913 } 2929 }
2914 dasm_put(Dst, 15546, LJ_TNIL); 2930 dasm_put(Dst, 15587, LJ_TNIL);
2915 break; 2931 break;
2916 2932
2917 case BC_JFUNCV: 2933 case BC_JFUNCV:
@@ -2922,30 +2938,30 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2922 break; /* NYI: compiled vararg functions. */ 2938 break; /* NYI: compiled vararg functions. */
2923 2939
2924 case BC_IFUNCV: 2940 case BC_IFUNCV:
2925 dasm_put(Dst, 15568, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL); 2941 dasm_put(Dst, 15609, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL);
2926 if (op == BC_JFUNCV) { 2942 if (op == BC_JFUNCV) {
2927 dasm_put(Dst, 15537, BC_JLOOP); 2943 dasm_put(Dst, 15578, BC_JLOOP);
2928 } else { 2944 } else {
2929 dasm_put(Dst, 15659, -4+PC2PROTO(k)); 2945 dasm_put(Dst, 15700, -4+PC2PROTO(k));
2930 } 2946 }
2931 dasm_put(Dst, 15682, LJ_TNIL); 2947 dasm_put(Dst, 15723, LJ_TNIL);
2932 break; 2948 break;
2933 2949
2934 case BC_FUNCC: 2950 case BC_FUNCC:
2935 case BC_FUNCCW: 2951 case BC_FUNCCW:
2936 dasm_put(Dst, 15704, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top)); 2952 dasm_put(Dst, 15745, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top));
2937 if (op == BC_FUNCC) { 2953 if (op == BC_FUNCC) {
2938 dasm_put(Dst, 2310); 2954 dasm_put(Dst, 2310);
2939 } else { 2955 } else {
2940 dasm_put(Dst, 15734); 2956 dasm_put(Dst, 15775);
2941 } 2957 }
2942 dasm_put(Dst, 15742, DISPATCH_GL(vmstate), ~LJ_VMST_C); 2958 dasm_put(Dst, 15783, DISPATCH_GL(vmstate), ~LJ_VMST_C);
2943 if (op == BC_FUNCC) { 2959 if (op == BC_FUNCC) {
2944 dasm_put(Dst, 15751); 2960 dasm_put(Dst, 15792);
2945 } else { 2961 } else {
2946 dasm_put(Dst, 15755, DISPATCH_GL(wrapf)); 2962 dasm_put(Dst, 15796, DISPATCH_GL(wrapf));
2947 } 2963 }
2948 dasm_put(Dst, 15760, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top)); 2964 dasm_put(Dst, 15801, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top));
2949 break; 2965 break;
2950 2966
2951 /* ---------------------------------------------------------------------- */ 2967 /* ---------------------------------------------------------------------- */
@@ -2973,7 +2989,7 @@ static int build_backend(BuildCtx *ctx)
2973 2989
2974 build_subroutines(ctx, cmov, sse); 2990 build_subroutines(ctx, cmov, sse);
2975 2991
2976 dasm_put(Dst, 15785); 2992 dasm_put(Dst, 15826);
2977 for (op = 0; op < BC__MAX; op++) 2993 for (op = 0; op < BC__MAX; op++)
2978 build_ins(ctx, (BCOp)op, op, cmov, sse); 2994 build_ins(ctx, (BCOp)op, op, cmov, sse);
2979 2995
diff --git a/src/buildvm_x86.dasc b/src/buildvm_x86.dasc
index f7631d62..17dcae2d 100644
--- a/src/buildvm_x86.dasc
+++ b/src/buildvm_x86.dasc
@@ -3753,6 +3753,16 @@ static void build_subroutines(BuildCtx *ctx, int cmov, int sse)
3753#endif 3753#endif
3754 | 3754 |
3755 |//----------------------------------------------------------------------- 3755 |//-----------------------------------------------------------------------
3756 |//-- Assertions ---------------------------------------------------------
3757 |//-----------------------------------------------------------------------
3758 |
3759 |->assert_bad_for_arg_type:
3760#ifdef LUA_USE_ASSERT
3761 | int3
3762#endif
3763 | int3
3764 |
3765 |//-----------------------------------------------------------------------
3756} 3766}
3757 3767
3758/* Generate the code for a single instruction. */ 3768/* Generate the code for a single instruction. */
@@ -5534,6 +5544,10 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
5534 | mov RB, dword FOR_IDX 5544 | mov RB, dword FOR_IDX
5535 | cmp dword FOR_STEP, 0; jl >5 5545 | cmp dword FOR_STEP, 0; jl >5
5536 } else { 5546 } else {
5547#ifdef LUA_USE_ASSERT
5548 | cmp FOR_TSTOP, LJ_TISNUM; jne ->assert_bad_for_arg_type
5549 | cmp FOR_TSTEP, LJ_TISNUM; jne ->assert_bad_for_arg_type
5550#endif
5537 | mov RB, dword FOR_STEP 5551 | mov RB, dword FOR_STEP
5538 | test RB, RB; js >5 5552 | test RB, RB; js >5
5539 | add RB, dword FOR_IDX; jo >1 5553 | add RB, dword FOR_IDX; jo >1
@@ -5593,6 +5607,11 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
5593 if (!vk) { 5607 if (!vk) {
5594 | jae ->vmeta_for 5608 | jae ->vmeta_for
5595 | cmp FOR_TSTOP, LJ_TISNUM; jae ->vmeta_for 5609 | cmp FOR_TSTOP, LJ_TISNUM; jae ->vmeta_for
5610 } else {
5611#ifdef LUA_USE_ASSERT
5612 | cmp FOR_TSTOP, LJ_TISNUM; jae ->assert_bad_for_arg_type
5613 | cmp FOR_TSTEP, LJ_TISNUM; jae ->assert_bad_for_arg_type
5614#endif
5596 } 5615 }
5597 | mov RB, FOR_TSTEP // Load type/hiword of for step. 5616 | mov RB, FOR_TSTEP // Load type/hiword of for step.
5598 if (!vk) { 5617 if (!vk) {
diff --git a/src/buildvm_x86.h b/src/buildvm_x86.h
index 0ce64f41..bc2ef125 100644
--- a/src/buildvm_x86.h
+++ b/src/buildvm_x86.h
@@ -12,7 +12,7 @@
12#define DASM_SECTION_CODE_OP 0 12#define DASM_SECTION_CODE_OP 0
13#define DASM_SECTION_CODE_SUB 1 13#define DASM_SECTION_CODE_SUB 1
14#define DASM_MAXSECTION 2 14#define DASM_MAXSECTION 2
15static const unsigned char build_actionlist[16904] = { 15static const unsigned char build_actionlist[16945] = {
16 254,1,248,10,252,247,198,237,15,132,244,11,131,230,252,248,41,252,242,141, 16 254,1,248,10,252,247,198,237,15,132,244,11,131,230,252,248,41,252,242,141,
17 76,49,252,248,139,114,252,252,199,68,10,4,237,248,12,131,192,1,137,68,36, 17 76,49,252,248,139,114,252,252,199,68,10,4,237,248,12,131,192,1,137,68,36,
18 20,252,247,198,237,15,132,244,13,248,14,129,252,246,239,252,247,198,237,15, 18 20,252,247,198,237,15,132,244,13,248,14,129,252,246,239,252,247,198,237,15,
@@ -539,148 +539,148 @@ static const unsigned char build_actionlist[16904] = {
539 1,15,137,244,1,248,2,139,139,233,139,147,233,252,255,147,233,137,131,233, 539 1,15,137,244,1,248,2,139,139,233,139,147,233,252,255,147,233,137,131,233,
540 137,147,233,128,187,233,1,15,130,244,253,15,132,244,252,221,155,233,252,233, 540 137,147,233,128,187,233,1,15,130,244,253,15,132,244,252,221,155,233,252,233,
541 244,253,248,6,255,217,155,233,248,7,255,41,163,233,255,139,93,252,252,201, 541 244,253,248,6,255,217,155,233,248,7,255,41,163,233,255,139,93,252,252,201,
542 195,255,249,255,129,124,253,202,4,239,15,133,244,253,129,124,253,194,4,239, 542 195,255,248,162,255,249,255,129,124,253,202,4,239,15,133,244,253,129,124,
543 15,133,244,254,139,44,202,131,198,4,59,44,194,255,15,141,244,255,255,15,140, 543 253,194,4,239,15,133,244,254,139,44,202,131,198,4,59,44,194,255,15,141,244,
544 244,255,255,15,143,244,255,255,15,142,244,255,255,248,6,15,183,70,252,254, 544 255,255,15,140,244,255,255,15,143,244,255,255,15,142,244,255,255,248,6,15,
545 141,180,253,134,233,248,9,139,6,15,182,204,15,182,232,131,198,4,193,232,16, 545 183,70,252,254,141,180,253,134,233,248,9,139,6,15,182,204,15,182,232,131,
546 252,255,36,171,248,7,15,135,244,41,129,124,253,194,4,239,15,130,244,247,15, 546 198,4,193,232,16,252,255,36,171,248,7,15,135,244,41,129,124,253,194,4,239,
547 133,244,41,255,252,242,15,42,4,194,252,233,244,248,255,221,4,202,219,4,194, 547 15,130,244,247,15,133,244,41,255,252,242,15,42,4,194,252,233,244,248,255,
548 252,233,244,249,255,248,8,15,135,244,41,255,252,242,15,42,12,202,252,242, 548 221,4,202,219,4,194,252,233,244,249,255,248,8,15,135,244,41,255,252,242,15,
549 15,16,4,194,131,198,4,102,15,46,193,255,15,134,244,9,255,15,135,244,9,255, 549 42,12,202,252,242,15,16,4,194,131,198,4,102,15,46,193,255,15,134,244,9,255,
550 15,130,244,9,255,15,131,244,9,255,252,233,244,6,255,219,4,202,252,233,244, 550 15,135,244,9,255,15,130,244,9,255,15,131,244,9,255,252,233,244,6,255,219,
551 248,255,129,124,253,202,4,239,15,131,244,41,129,124,253,194,4,239,15,131, 551 4,202,252,233,244,248,255,129,124,253,202,4,239,15,131,244,41,129,124,253,
552 244,41,255,248,1,252,242,15,16,4,194,248,2,131,198,4,102,15,46,4,202,248, 552 194,4,239,15,131,244,41,255,248,1,252,242,15,16,4,194,248,2,131,198,4,102,
553 3,255,248,1,221,4,202,248,2,221,4,194,248,3,131,198,4,255,15,134,244,247, 553 15,46,4,202,248,3,255,248,1,221,4,202,248,2,221,4,194,248,3,131,198,4,255,
554 255,15,135,244,247,255,15,130,244,247,255,15,131,244,247,255,15,183,70,252, 554 15,134,244,247,255,15,135,244,247,255,15,130,244,247,255,15,131,244,247,255,
555 254,141,180,253,134,233,248,1,139,6,15,182,204,15,182,232,131,198,4,193,232, 555 15,183,70,252,254,141,180,253,134,233,248,1,139,6,15,182,204,15,182,232,131,
556 16,252,255,36,171,255,139,108,194,4,131,198,4,255,129,252,253,239,15,133, 556 198,4,193,232,16,252,255,36,171,255,139,108,194,4,131,198,4,255,129,252,253,
557 244,253,129,124,253,202,4,239,15,133,244,254,139,44,194,59,44,202,255,15, 557 239,15,133,244,253,129,124,253,202,4,239,15,133,244,254,139,44,194,59,44,
558 133,244,255,255,15,132,244,255,255,15,183,70,252,254,141,180,253,134,233, 558 202,255,15,133,244,255,255,15,132,244,255,255,15,183,70,252,254,141,180,253,
559 248,9,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248, 559 134,233,248,9,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,
560 7,15,135,244,251,129,124,253,202,4,239,15,130,244,247,15,133,244,251,255, 560 171,248,7,15,135,244,251,129,124,253,202,4,239,15,130,244,247,15,133,244,
561 252,242,15,42,4,202,255,219,4,202,255,252,233,244,248,248,8,15,135,244,251, 561 251,255,252,242,15,42,4,202,255,219,4,202,255,252,233,244,248,248,8,15,135,
562 255,252,242,15,42,4,194,102,15,46,4,202,255,219,4,194,221,4,202,255,252,233, 562 244,251,255,252,242,15,42,4,194,102,15,46,4,202,255,219,4,194,221,4,202,255,
563 244,250,255,129,252,253,239,15,131,244,251,129,124,253,202,4,239,15,131,244, 563 252,233,244,250,255,129,252,253,239,15,131,244,251,129,124,253,202,4,239,
564 251,255,248,1,252,242,15,16,4,202,248,2,102,15,46,4,194,248,4,255,248,1,221, 564 15,131,244,251,255,248,1,252,242,15,16,4,202,248,2,102,15,46,4,194,248,4,
565 4,202,248,2,221,4,194,248,4,255,15,138,244,248,15,133,244,248,255,15,138, 565 255,248,1,221,4,202,248,2,221,4,194,248,4,255,15,138,244,248,15,133,244,248,
566 244,248,15,132,244,247,255,248,1,15,183,70,252,254,141,180,253,134,233,248, 566 255,15,138,244,248,15,132,244,247,255,248,1,15,183,70,252,254,141,180,253,
567 2,255,248,2,15,183,70,252,254,141,180,253,134,233,248,1,255,252,233,244,9, 567 134,233,248,2,255,248,2,15,183,70,252,254,141,180,253,134,233,248,1,255,252,
568 255,248,5,255,129,252,253,239,15,132,244,46,129,124,253,202,4,239,15,132, 568 233,244,9,255,248,5,255,129,252,253,239,15,132,244,46,129,124,253,202,4,239,
569 244,46,255,57,108,202,4,15,133,244,2,129,252,253,239,15,131,244,1,139,12, 569 15,132,244,46,255,57,108,202,4,15,133,244,2,129,252,253,239,15,131,244,1,
570 202,139,4,194,57,193,15,132,244,1,129,252,253,239,15,135,244,2,139,169,233, 570 139,12,202,139,4,194,57,193,15,132,244,1,129,252,253,239,15,135,244,2,139,
571 133,252,237,15,132,244,2,252,246,133,233,235,15,133,244,2,255,49,252,237, 571 169,233,133,252,237,15,132,244,2,252,246,133,233,235,15,133,244,2,255,49,
572 255,189,1,0,0,0,255,252,233,244,45,255,248,3,129,252,253,239,255,15,133,244, 572 252,237,255,189,1,0,0,0,255,252,233,244,45,255,248,3,129,252,253,239,255,
573 9,255,252,233,244,46,255,252,247,208,139,108,202,4,131,198,4,129,252,253, 573 15,133,244,9,255,252,233,244,46,255,252,247,208,139,108,202,4,131,198,4,129,
574 239,15,133,244,249,139,12,202,59,12,135,255,139,108,202,4,131,198,4,255,129, 574 252,253,239,15,133,244,249,139,12,202,59,12,135,255,139,108,202,4,131,198,
575 252,253,239,15,133,244,253,129,124,253,199,4,239,15,133,244,254,139,44,199, 575 4,255,129,252,253,239,15,133,244,253,129,124,253,199,4,239,15,133,244,254,
576 59,44,202,255,15,183,70,252,254,141,180,253,134,233,248,9,139,6,15,182,204, 576 139,44,199,59,44,202,255,15,183,70,252,254,141,180,253,134,233,248,9,139,
577 15,182,232,131,198,4,193,232,16,252,255,36,171,248,7,15,135,244,249,129,124, 577 6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,7,15,135,
578 253,199,4,239,15,130,244,247,255,252,242,15,42,4,199,255,219,4,199,255,252, 578 244,249,129,124,253,199,4,239,15,130,244,247,255,252,242,15,42,4,199,255,
579 233,244,248,248,8,255,252,242,15,42,4,202,102,15,46,4,199,255,219,4,202,221, 579 219,4,199,255,252,233,244,248,248,8,255,252,242,15,42,4,202,102,15,46,4,199,
580 4,199,255,129,252,253,239,15,131,244,249,255,248,1,252,242,15,16,4,199,248, 580 255,219,4,202,221,4,199,255,129,252,253,239,15,131,244,249,255,248,1,252,
581 2,102,15,46,4,202,248,4,255,248,1,221,4,199,248,2,221,4,202,248,4,255,252, 581 242,15,16,4,199,248,2,102,15,46,4,202,248,4,255,248,1,221,4,199,248,2,221,
582 247,208,139,108,202,4,131,198,4,57,197,255,15,133,244,249,15,183,70,252,254, 582 4,202,248,4,255,252,247,208,139,108,202,4,131,198,4,57,197,255,15,133,244,
583 141,180,253,134,233,248,2,139,6,15,182,204,15,182,232,131,198,4,193,232,16, 583 249,15,183,70,252,254,141,180,253,134,233,248,2,139,6,15,182,204,15,182,232,
584 252,255,36,171,248,3,129,252,253,239,15,133,244,2,252,233,244,46,255,15,132, 584 131,198,4,193,232,16,252,255,36,171,248,3,129,252,253,239,15,133,244,2,252,
585 244,248,129,252,253,239,15,132,244,46,15,183,70,252,254,141,180,253,134,233, 585 233,244,46,255,15,132,244,248,129,252,253,239,15,132,244,46,15,183,70,252,
586 248,2,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255, 586 254,141,180,253,134,233,248,2,139,6,15,182,204,15,182,232,131,198,4,193,232,
587 139,108,194,4,131,198,4,129,252,253,239,255,137,108,202,4,139,44,194,137, 587 16,252,255,36,171,255,139,108,194,4,131,198,4,129,252,253,239,255,137,108,
588 44,202,255,139,108,194,4,139,4,194,137,108,202,4,137,4,202,139,6,15,182,204, 588 202,4,139,44,194,137,44,202,255,139,108,194,4,139,4,194,137,108,202,4,137,
589 15,182,232,131,198,4,193,232,16,252,255,36,171,255,49,252,237,129,124,253, 589 4,202,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,
590 194,4,239,129,213,239,137,108,202,4,139,6,15,182,204,15,182,232,131,198,4, 590 49,252,237,129,124,253,194,4,239,129,213,239,137,108,202,4,139,6,15,182,204,
591 193,232,16,252,255,36,171,255,129,124,253,194,4,239,15,133,244,251,139,44, 591 15,182,232,131,198,4,193,232,16,252,255,36,171,255,129,124,253,194,4,239,
592 194,252,247,221,15,128,244,250,199,68,202,4,237,137,44,202,248,9,139,6,15, 592 15,133,244,251,139,44,194,252,247,221,15,128,244,250,199,68,202,4,237,137,
593 182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,4,199,68,202,4, 593 44,202,248,9,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,
594 0,0,224,65,199,4,202,0,0,0,0,252,233,244,9,248,5,15,135,244,51,255,129,124, 594 171,248,4,199,68,202,4,0,0,224,65,199,4,202,0,0,0,0,252,233,244,9,248,5,15,
595 253,194,4,239,15,131,244,51,255,252,242,15,16,4,194,184,0,0,0,128,102,15, 595 135,244,51,255,129,124,253,194,4,239,15,131,244,51,255,252,242,15,16,4,194,
596 110,200,102,15,112,201,81,15,87,193,252,242,15,17,4,202,255,221,4,194,217, 596 184,0,0,0,128,102,15,110,200,102,15,112,201,81,15,87,193,252,242,15,17,4,
597 224,221,28,202,255,129,124,253,194,4,239,15,133,244,248,139,4,194,255,139, 597 202,255,221,4,194,217,224,221,28,202,255,129,124,253,194,4,239,15,133,244,
598 128,233,248,1,199,68,202,4,237,137,4,202,255,15,87,192,252,242,15,42,128, 598 248,139,4,194,255,139,128,233,248,1,199,68,202,4,237,137,4,202,255,15,87,
599 233,248,1,252,242,15,17,4,202,255,219,128,233,248,1,221,28,202,255,139,6, 599 192,252,242,15,42,128,233,248,1,252,242,15,17,4,202,255,219,128,233,248,1,
600 15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,2,129,124,253, 600 221,28,202,255,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,
601 194,4,239,15,133,244,54,139,12,194,137,213,232,251,1,20,255,252,242,15,42, 601 171,248,2,129,124,253,194,4,239,15,133,244,54,139,12,194,137,213,232,251,
602 192,255,137,4,36,219,4,36,255,137,252,234,15,182,78,252,253,252,233,244,1, 602 1,20,255,252,242,15,42,192,255,137,4,36,219,4,36,255,137,252,234,15,182,78,
603 255,15,182,252,236,15,182,192,255,129,124,253,252,234,4,239,15,133,244,48, 603 252,253,252,233,244,1,255,15,182,252,236,15,182,192,255,129,124,253,252,234,
604 129,124,253,199,4,239,15,133,244,48,139,44,252,234,3,44,199,15,128,244,47, 604 4,239,15,133,244,48,129,124,253,199,4,239,15,133,244,48,139,44,252,234,3,
605 255,129,124,253,252,234,4,239,15,133,244,50,129,124,253,199,4,239,15,133, 605 44,199,15,128,244,47,255,129,124,253,252,234,4,239,15,133,244,50,129,124,
606 244,50,139,4,199,3,4,252,234,15,128,244,49,255,129,124,253,252,234,4,239, 606 253,199,4,239,15,133,244,50,139,4,199,3,4,252,234,15,128,244,49,255,129,124,
607 15,133,244,53,129,124,253,194,4,239,15,133,244,53,139,44,252,234,3,44,194, 607 253,252,234,4,239,15,133,244,53,129,124,253,194,4,239,15,133,244,53,139,44,
608 15,128,244,52,255,199,68,202,4,237,255,129,124,253,252,234,4,239,15,131,244, 608 252,234,3,44,194,15,128,244,52,255,199,68,202,4,237,255,129,124,253,252,234,
609 48,255,129,124,253,199,4,239,15,131,244,48,255,252,242,15,16,4,252,234,252, 609 4,239,15,131,244,48,255,129,124,253,199,4,239,15,131,244,48,255,252,242,15,
610 242,15,88,4,199,255,221,4,252,234,220,4,199,255,129,124,253,252,234,4,239, 610 16,4,252,234,252,242,15,88,4,199,255,221,4,252,234,220,4,199,255,129,124,
611 15,131,244,50,255,129,124,253,199,4,239,15,131,244,50,255,252,242,15,16,4, 611 253,252,234,4,239,15,131,244,50,255,129,124,253,199,4,239,15,131,244,50,255,
612 199,252,242,15,88,4,252,234,255,221,4,199,220,4,252,234,255,129,124,253,252, 612 252,242,15,16,4,199,252,242,15,88,4,252,234,255,221,4,199,220,4,252,234,255,
613 234,4,239,15,131,244,53,129,124,253,194,4,239,15,131,244,53,255,252,242,15, 613 129,124,253,252,234,4,239,15,131,244,53,129,124,253,194,4,239,15,131,244,
614 16,4,252,234,252,242,15,88,4,194,255,221,4,252,234,220,4,194,255,129,124, 614 53,255,252,242,15,16,4,252,234,252,242,15,88,4,194,255,221,4,252,234,220,
615 253,252,234,4,239,15,133,244,48,129,124,253,199,4,239,15,133,244,48,139,44, 615 4,194,255,129,124,253,252,234,4,239,15,133,244,48,129,124,253,199,4,239,15,
616 252,234,43,44,199,15,128,244,47,255,129,124,253,252,234,4,239,15,133,244, 616 133,244,48,139,44,252,234,43,44,199,15,128,244,47,255,129,124,253,252,234,
617 50,129,124,253,199,4,239,15,133,244,50,139,4,199,43,4,252,234,15,128,244, 617 4,239,15,133,244,50,129,124,253,199,4,239,15,133,244,50,139,4,199,43,4,252,
618 49,255,129,124,253,252,234,4,239,15,133,244,53,129,124,253,194,4,239,15,133, 618 234,15,128,244,49,255,129,124,253,252,234,4,239,15,133,244,53,129,124,253,
619 244,53,139,44,252,234,43,44,194,15,128,244,52,255,252,242,15,16,4,252,234, 619 194,4,239,15,133,244,53,139,44,252,234,43,44,194,15,128,244,52,255,252,242,
620 252,242,15,92,4,199,255,221,4,252,234,220,36,199,255,252,242,15,16,4,199, 620 15,16,4,252,234,252,242,15,92,4,199,255,221,4,252,234,220,36,199,255,252,
621 252,242,15,92,4,252,234,255,221,4,199,220,36,252,234,255,252,242,15,16,4, 621 242,15,16,4,199,252,242,15,92,4,252,234,255,221,4,199,220,36,252,234,255,
622 252,234,252,242,15,92,4,194,255,221,4,252,234,220,36,194,255,129,124,253, 622 252,242,15,16,4,252,234,252,242,15,92,4,194,255,221,4,252,234,220,36,194,
623 252,234,4,239,15,133,244,48,129,124,253,199,4,239,15,133,244,48,139,44,252, 623 255,129,124,253,252,234,4,239,15,133,244,48,129,124,253,199,4,239,15,133,
624 234,15,175,44,199,15,128,244,47,255,129,124,253,252,234,4,239,15,133,244, 624 244,48,139,44,252,234,15,175,44,199,15,128,244,47,255,129,124,253,252,234,
625 50,129,124,253,199,4,239,15,133,244,50,139,4,199,15,175,4,252,234,15,128, 625 4,239,15,133,244,50,129,124,253,199,4,239,15,133,244,50,139,4,199,15,175,
626 244,49,255,129,124,253,252,234,4,239,15,133,244,53,129,124,253,194,4,239, 626 4,252,234,15,128,244,49,255,129,124,253,252,234,4,239,15,133,244,53,129,124,
627 15,133,244,53,139,44,252,234,15,175,44,194,15,128,244,52,255,252,242,15,16, 627 253,194,4,239,15,133,244,53,139,44,252,234,15,175,44,194,15,128,244,52,255,
628 4,252,234,252,242,15,89,4,199,255,221,4,252,234,220,12,199,255,252,242,15, 628 252,242,15,16,4,252,234,252,242,15,89,4,199,255,221,4,252,234,220,12,199,
629 16,4,199,252,242,15,89,4,252,234,255,221,4,199,220,12,252,234,255,252,242, 629 255,252,242,15,16,4,199,252,242,15,89,4,252,234,255,221,4,199,220,12,252,
630 15,16,4,252,234,252,242,15,89,4,194,255,221,4,252,234,220,12,194,255,252, 630 234,255,252,242,15,16,4,252,234,252,242,15,89,4,194,255,221,4,252,234,220,
631 242,15,16,4,252,234,252,242,15,94,4,199,255,221,4,252,234,220,52,199,255, 631 12,194,255,252,242,15,16,4,252,234,252,242,15,94,4,199,255,221,4,252,234,
632 252,242,15,16,4,199,252,242,15,94,4,252,234,255,221,4,199,220,52,252,234, 632 220,52,199,255,252,242,15,16,4,199,252,242,15,94,4,252,234,255,221,4,199,
633 255,252,242,15,16,4,252,234,252,242,15,94,4,194,255,221,4,252,234,220,52, 633 220,52,252,234,255,252,242,15,16,4,252,234,252,242,15,94,4,194,255,221,4,
634 194,255,252,242,15,16,4,252,234,252,242,15,16,12,199,255,221,4,252,234,221, 634 252,234,220,52,194,255,252,242,15,16,4,252,234,252,242,15,16,12,199,255,221,
635 4,199,255,252,242,15,16,4,199,252,242,15,16,12,252,234,255,221,4,199,221, 635 4,252,234,221,4,199,255,252,242,15,16,4,199,252,242,15,16,12,252,234,255,
636 4,252,234,255,252,242,15,16,4,252,234,252,242,15,16,12,194,255,221,4,252, 636 221,4,199,221,4,252,234,255,252,242,15,16,4,252,234,252,242,15,16,12,194,
637 234,221,4,194,255,248,162,232,244,153,255,252,233,244,162,255,232,244,113, 637 255,221,4,252,234,221,4,194,255,248,163,232,244,153,255,252,233,244,163,255,
638 255,15,182,252,236,15,182,192,141,12,194,41,232,137,76,36,4,137,68,36,8,248, 638 232,244,113,255,15,182,252,236,15,182,192,141,12,194,41,232,137,76,36,4,137,
639 33,139,108,36,48,137,44,36,137,149,233,137,116,36,24,232,251,1,27,139,149, 639 68,36,8,248,33,139,108,36,48,137,44,36,137,149,233,137,116,36,24,232,251,
640 233,133,192,15,133,244,42,15,182,110,252,255,15,182,78,252,253,139,68,252, 640 1,27,139,149,233,133,192,15,133,244,42,15,182,110,252,255,15,182,78,252,253,
641 234,4,139,44,252,234,137,68,202,4,137,44,202,139,6,15,182,204,15,182,232, 641 139,68,252,234,4,139,44,252,234,137,68,202,4,137,44,202,139,6,15,182,204,
642 131,198,4,193,232,16,252,255,36,171,255,252,247,208,139,4,135,199,68,202, 642 15,182,232,131,198,4,193,232,16,252,255,36,171,255,252,247,208,139,4,135,
643 4,237,137,4,202,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255, 643 199,68,202,4,237,137,4,202,139,6,15,182,204,15,182,232,131,198,4,193,232,
644 36,171,255,15,191,192,199,68,202,4,237,137,4,202,255,15,191,192,252,242,15, 644 16,252,255,36,171,255,15,191,192,199,68,202,4,237,137,4,202,255,15,191,192,
645 42,192,252,242,15,17,4,202,255,223,70,252,254,221,28,202,255,252,242,15,16, 645 252,242,15,42,192,252,242,15,17,4,202,255,223,70,252,254,221,28,202,255,252,
646 4,199,252,242,15,17,4,202,255,221,4,199,221,28,202,255,252,247,208,137,68, 646 242,15,16,4,199,252,242,15,17,4,202,255,221,4,199,221,28,202,255,252,247,
647 202,4,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255, 647 208,137,68,202,4,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,
648 141,76,202,12,141,68,194,4,189,237,137,105,252,248,248,1,137,41,131,193,8, 648 36,171,255,141,76,202,12,141,68,194,4,189,237,137,105,252,248,248,1,137,41,
649 57,193,15,134,244,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252, 649 131,193,8,57,193,15,134,244,1,139,6,15,182,204,15,182,232,131,198,4,193,232,
650 255,36,171,255,139,106,252,248,139,172,253,133,233,139,173,233,139,69,4,139, 650 16,252,255,36,171,255,139,106,252,248,139,172,253,133,233,139,173,233,139,
651 109,0,137,68,202,4,137,44,202,139,6,15,182,204,15,182,232,131,198,4,193,232, 651 69,4,139,109,0,137,68,202,4,137,44,202,139,6,15,182,204,15,182,232,131,198,
652 16,252,255,36,171,255,139,106,252,248,139,172,253,141,233,128,189,233,0,139, 652 4,193,232,16,252,255,36,171,255,139,106,252,248,139,172,253,141,233,128,189,
653 173,233,139,12,194,139,68,194,4,137,77,0,137,69,4,15,132,244,247,252,246, 653 233,0,139,173,233,139,12,194,139,68,194,4,137,77,0,137,69,4,15,132,244,247,
654 133,233,235,15,133,244,248,248,1,139,6,15,182,204,15,182,232,131,198,4,193, 654 252,246,133,233,235,15,133,244,248,248,1,139,6,15,182,204,15,182,232,131,
655 232,16,252,255,36,171,248,2,129,232,239,129,252,248,239,15,134,244,1,252, 655 198,4,193,232,16,252,255,36,171,248,2,129,232,239,129,252,248,239,15,134,
656 246,129,233,235,15,132,244,1,135,213,141,139,233,255,232,251,1,28,137,252, 656 244,1,252,246,129,233,235,15,132,244,1,135,213,141,139,233,255,232,251,1,
657 234,252,233,244,1,255,252,247,208,139,106,252,248,139,172,253,141,233,139, 657 28,137,252,234,252,233,244,1,255,252,247,208,139,106,252,248,139,172,253,
658 12,135,139,133,233,137,8,199,64,4,237,252,246,133,233,235,15,133,244,248, 658 141,233,139,12,135,139,133,233,137,8,199,64,4,237,252,246,133,233,235,15,
659 248,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248, 659 133,244,248,248,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,
660 2,252,246,129,233,235,15,132,244,1,128,189,233,0,15,132,244,1,137,213,137, 660 36,171,248,2,252,246,129,233,235,15,132,244,1,128,189,233,0,15,132,244,1,
661 194,141,139,233,232,251,1,28,137,252,234,252,233,244,1,255,139,106,252,248, 661 137,213,137,194,141,139,233,232,251,1,28,137,252,234,252,233,244,1,255,139,
662 255,252,242,15,16,4,199,255,139,172,253,141,233,139,141,233,255,252,242,15, 662 106,252,248,255,252,242,15,16,4,199,255,139,172,253,141,233,139,141,233,255,
663 17,1,255,221,25,255,252,247,208,139,106,252,248,139,172,253,141,233,139,141, 663 252,242,15,17,1,255,221,25,255,252,247,208,139,106,252,248,139,172,253,141,
664 233,137,65,4,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36, 664 233,139,141,233,137,65,4,139,6,15,182,204,15,182,232,131,198,4,193,232,16,
665 171,255,141,180,253,134,233,139,108,36,48,131,189,233,0,15,132,244,247,137, 665 252,255,36,171,255,141,180,253,134,233,139,108,36,48,131,189,233,0,15,132,
666 149,233,141,20,202,137,252,233,232,251,1,29,139,149,233,248,1,139,6,15,182, 666 244,247,137,149,233,141,20,202,137,252,233,232,251,1,29,139,149,233,248,1,
667 204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,252,247,208,139,74, 667 139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,252,247,
668 252,248,139,4,135,139,108,36,48,137,76,36,8,137,68,36,4,137,44,36,137,149, 668 208,139,74,252,248,139,4,135,139,108,36,48,137,76,36,8,137,68,36,4,137,44,
669 233,137,116,36,24,232,251,1,30,139,149,233,15,182,78,252,253,137,4,202,199, 669 36,137,149,233,137,116,36,24,232,251,1,30,139,149,233,15,182,78,252,253,137,
670 68,202,4,237,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36, 670 4,202,199,68,202,4,237,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,
671 171,255,139,108,36,48,137,149,233,139,139,233,59,139,233,137,116,36,24,15, 671 255,36,171,255,139,108,36,48,137,149,233,139,139,233,59,139,233,137,116,36,
672 131,244,251,248,1,137,193,37,252,255,7,0,0,193,252,233,11,137,76,36,8,61, 672 24,15,131,244,251,248,1,137,193,37,252,255,7,0,0,193,252,233,11,137,76,36,
673 252,255,7,0,0,15,132,244,249,248,2,137,44,36,137,68,36,4,232,251,1,31,139, 673 8,61,252,255,7,0,0,15,132,244,249,248,2,137,44,36,137,68,36,4,232,251,1,31,
674 149,233,15,182,78,252,253,137,4,202,199,68,202,4,237,139,6,15,182,204,15, 674 139,149,233,15,182,78,252,253,137,4,202,199,68,202,4,237,139,6,15,182,204,
675 182,232,131,198,4,193,232,16,252,255,36,171,248,3,184,1,8,0,0,252,233,244, 675 15,182,232,131,198,4,193,232,16,252,255,36,171,248,3,184,1,8,0,0,252,233,
676 2,248,5,137,252,233,232,251,1,32,15,183,70,252,254,252,233,244,1,255,252, 676 244,2,248,5,137,252,233,232,251,1,32,15,183,70,252,254,252,233,244,1,255,
677 247,208,139,108,36,48,139,139,233,137,116,36,24,59,139,233,137,149,233,15, 677 252,247,208,139,108,36,48,139,139,233,137,116,36,24,59,139,233,137,149,233,
678 131,244,249,248,2,139,20,135,137,252,233,232,251,1,33,139,149,233,15,182, 678 15,131,244,249,248,2,139,20,135,137,252,233,232,251,1,33,139,149,233,15,182,
679 78,252,253,137,4,202,199,68,202,4,237,139,6,15,182,204,15,182,232,131,198, 679 78,252,253,137,4,202,199,68,202,4,237,139,6,15,182,204,15,182,232,131,198,
680 4,193,232,16,252,255,36,171,248,3,137,252,233,232,251,1,32,15,183,70,252, 680 4,193,232,16,252,255,36,171,248,3,137,252,233,232,251,1,32,15,183,70,252,
681 254,252,247,208,252,233,244,2,255,252,247,208,139,106,252,248,139,173,233, 681 254,252,247,208,252,233,244,2,255,252,247,208,139,106,252,248,139,173,233,
682 139,4,135,252,233,244,163,255,252,247,208,139,106,252,248,139,173,233,139, 682 139,4,135,252,233,244,164,255,252,247,208,139,106,252,248,139,173,233,139,
683 4,135,252,233,244,164,255,15,182,252,236,15,182,192,129,124,253,252,234,4, 683 4,135,252,233,244,165,255,15,182,252,236,15,182,192,129,124,253,252,234,4,
684 239,15,133,244,36,139,44,252,234,255,129,124,253,194,4,239,15,133,244,251, 684 239,15,133,244,36,139,44,252,234,255,129,124,253,194,4,239,15,133,244,251,
685 139,4,194,255,129,124,253,194,4,239,15,131,244,251,255,252,242,15,16,4,194, 685 139,4,194,255,129,124,253,194,4,239,15,131,244,251,255,252,242,15,16,4,194,
686 252,242,15,45,192,252,242,15,42,200,102,15,46,193,255,221,4,194,219,20,36, 686 252,242,15,45,192,252,242,15,42,200,102,15,46,193,255,221,4,194,219,20,36,
@@ -689,9 +689,9 @@ static const unsigned char build_actionlist[16904] = {
689 248,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248, 689 248,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,
690 2,131,189,233,0,15,132,244,249,139,141,233,252,246,129,233,235,15,132,244, 690 2,131,189,233,0,15,132,244,249,139,141,233,252,246,129,233,235,15,132,244,
691 36,15,182,78,252,253,248,3,199,68,202,4,237,252,233,244,1,248,5,255,129,124, 691 36,15,182,78,252,253,248,3,199,68,202,4,237,252,233,244,1,248,5,255,129,124,
692 253,194,4,239,15,133,244,36,139,4,194,252,233,244,163,255,15,182,252,236, 692 253,194,4,239,15,133,244,36,139,4,194,252,233,244,164,255,15,182,252,236,
693 15,182,192,252,247,208,139,4,135,129,124,253,252,234,4,239,15,133,244,34, 693 15,182,192,252,247,208,139,4,135,129,124,253,252,234,4,239,15,133,244,34,
694 139,44,252,234,248,163,139,141,233,35,136,233,105,201,239,3,141,233,248,1, 694 139,44,252,234,248,164,139,141,233,35,136,233,105,201,239,3,141,233,248,1,
695 129,185,233,239,15,133,244,250,57,129,233,15,133,244,250,129,121,253,4,239, 695 129,185,233,239,15,133,244,250,57,129,233,15,133,244,250,129,121,253,4,239,
696 15,132,244,251,15,182,70,252,253,139,41,139,73,4,137,44,194,137,76,194,4, 696 15,132,244,251,15,182,70,252,253,139,41,139,73,4,137,44,194,137,76,194,4,
697 248,2,255,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171, 697 248,2,255,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,
@@ -709,10 +709,10 @@ static const unsigned char build_actionlist[16904] = {
709 248,2,139,108,202,4,139,12,202,137,104,4,137,8,139,6,15,182,204,15,182,232, 709 248,2,139,108,202,4,139,12,202,137,104,4,137,8,139,6,15,182,204,15,182,232,
710 131,198,4,193,232,16,252,255,36,171,248,3,131,189,233,0,15,132,244,1,139, 710 131,198,4,193,232,16,252,255,36,171,248,3,131,189,233,0,15,132,244,1,139,
711 141,233,252,246,129,233,235,255,15,132,244,39,15,182,78,252,253,252,233,244, 711 141,233,252,246,129,233,235,255,15,132,244,39,15,182,78,252,253,252,233,244,
712 1,248,5,129,124,253,194,4,239,15,133,244,39,139,4,194,252,233,244,164,248, 712 1,248,5,129,124,253,194,4,239,15,133,244,39,139,4,194,252,233,244,165,248,
713 7,128,165,233,235,139,139,233,137,171,233,137,141,233,15,182,78,252,253,252, 713 7,128,165,233,235,139,139,233,137,171,233,137,141,233,15,182,78,252,253,252,
714 233,244,2,255,15,182,252,236,15,182,192,252,247,208,139,4,135,129,124,253, 714 233,244,2,255,15,182,252,236,15,182,192,252,247,208,139,4,135,129,124,253,
715 252,234,4,239,15,133,244,37,139,44,252,234,248,164,139,141,233,35,136,233, 715 252,234,4,239,15,133,244,37,139,44,252,234,248,165,139,141,233,35,136,233,
716 105,201,239,198,133,233,0,3,141,233,248,1,129,185,233,239,15,133,244,251, 716 105,201,239,198,133,233,0,3,141,233,248,1,129,185,233,239,15,133,244,251,
717 57,129,233,15,133,244,251,129,121,253,4,239,15,132,244,250,248,2,255,252, 717 57,129,233,15,133,244,251,129,121,253,4,239,15,132,244,250,248,2,255,252,
718 246,133,233,235,15,133,244,253,248,3,15,182,70,252,253,139,108,194,4,139, 718 246,133,233,235,15,133,244,253,248,3,15,182,70,252,253,139,108,194,4,139,
@@ -793,31 +793,33 @@ static const unsigned char build_actionlist[16904] = {
793 137,252,245,209,252,237,129,229,239,102,131,172,253,43,233,1,15,132,244,145, 793 137,252,245,209,252,237,129,229,239,102,131,172,253,43,233,1,15,132,244,145,
794 255,141,12,202,255,129,121,253,4,239,15,133,244,255,255,129,121,253,12,239, 794 255,141,12,202,255,129,121,253,4,239,15,133,244,255,255,129,121,253,12,239,
795 15,133,244,57,129,121,253,20,239,15,133,244,57,139,41,131,121,16,0,15,140, 795 15,133,244,57,129,121,253,20,239,15,133,244,57,139,41,131,121,16,0,15,140,
796 244,251,255,139,105,16,133,252,237,15,136,244,251,3,41,15,128,244,247,137, 796 244,251,255,129,121,253,12,239,15,133,244,162,129,121,253,20,239,15,133,244,
797 41,255,59,105,8,199,65,28,237,137,105,24,255,15,142,244,253,248,1,248,6,141, 797 162,255,139,105,16,133,252,237,15,136,244,251,3,41,15,128,244,247,137,41,
798 255,59,105,8,199,65,28,237,137,105,24,255,15,142,244,253,248,1,248,6,141,
798 180,253,134,233,255,141,180,253,134,233,15,183,70,252,254,15,142,245,248, 799 180,253,134,233,255,141,180,253,134,233,15,183,70,252,254,15,142,245,248,
799 1,248,6,255,15,143,244,253,248,6,141,180,253,134,233,248,1,255,248,7,139, 800 1,248,6,255,15,143,244,253,248,6,141,180,253,134,233,248,1,255,248,7,139,
800 6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,5,255,3,41, 801 6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,5,255,3,41,
801 15,128,244,1,137,41,255,15,141,244,7,255,141,180,253,134,233,15,183,70,252, 802 15,128,244,1,137,41,255,15,141,244,7,255,141,180,253,134,233,15,183,70,252,
802 254,15,141,245,255,15,140,244,7,255,252,233,244,6,248,9,255,129,121,253,4, 803 254,15,141,245,255,15,140,244,7,255,252,233,244,6,248,9,255,129,121,253,4,
803 239,255,15,131,244,57,129,121,253,12,239,15,131,244,57,255,139,105,20,255, 804 239,255,15,131,244,57,129,121,253,12,239,15,131,244,57,255,129,121,253,12,
804 129,252,253,239,15,131,244,57,255,252,242,15,16,1,252,242,15,16,73,8,255, 805 239,15,131,244,162,129,121,253,20,239,15,131,244,162,255,139,105,20,255,129,
805 252,242,15,88,65,16,252,242,15,17,1,133,252,237,15,136,244,249,255,15,140, 806 252,253,239,15,131,244,57,255,252,242,15,16,1,252,242,15,16,73,8,255,252,
806 244,249,255,102,15,46,200,248,1,252,242,15,17,65,24,255,221,65,8,221,1,255, 807 242,15,88,65,16,252,242,15,17,1,133,252,237,15,136,244,249,255,15,140,244,
807 220,65,16,221,17,221,81,24,133,252,237,15,136,244,247,255,221,81,24,15,140, 808 249,255,102,15,46,200,248,1,252,242,15,17,65,24,255,221,65,8,221,1,255,220,
808 244,247,255,217,201,248,1,255,15,183,70,252,254,255,15,131,244,7,255,15,131, 809 65,16,221,17,221,81,24,133,252,237,15,136,244,247,255,221,81,24,15,140,244,
809 244,248,141,180,253,134,233,255,141,180,253,134,233,15,183,70,252,254,15, 810 247,255,217,201,248,1,255,15,183,70,252,254,255,15,131,244,7,255,15,131,244,
810 131,245,255,15,130,244,7,255,15,130,244,248,141,180,253,134,233,255,248,3, 811 248,141,180,253,134,233,255,141,180,253,134,233,15,183,70,252,254,15,131,
811 102,15,46,193,252,233,244,1,255,141,12,202,139,105,4,129,252,253,239,15,132, 812 245,255,15,130,244,7,255,15,130,244,248,141,180,253,134,233,255,248,3,102,
812 244,247,255,137,105,252,252,139,41,137,105,252,248,252,233,245,255,141,180, 813 15,46,193,252,233,244,1,255,141,12,202,139,105,4,129,252,253,239,15,132,244,
813 253,134,233,139,1,137,105,252,252,137,65,252,248,255,139,139,233,139,4,129, 814 247,255,137,105,252,252,139,41,137,105,252,248,252,233,245,255,141,180,253,
814 139,128,233,139,108,36,48,137,147,233,137,171,233,252,255,224,255,141,180, 815 134,233,139,1,137,105,252,252,137,65,252,248,255,139,139,233,139,4,129,139,
815 253,134,233,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171, 816 128,233,139,108,36,48,137,147,233,137,171,233,252,255,224,255,141,180,253,
816 255,137,252,245,209,252,237,129,229,239,102,131,172,253,43,233,1,15,132,244, 817 134,233,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,
817 147,255,139,190,233,139,108,36,48,141,12,202,59,141,233,15,135,244,23,15, 818 137,252,245,209,252,237,129,229,239,102,131,172,253,43,233,1,15,132,244,147,
818 182,142,233,57,200,15,134,244,249,248,2,255,15,183,70,252,254,252,233,245, 819 255,139,190,233,139,108,36,48,141,12,202,59,141,233,15,135,244,23,15,182,
819 255,248,3,199,68,194,252,252,237,131,192,1,57,200,15,134,244,3,252,233,244, 820 142,233,57,200,15,134,244,249,248,2,255,15,183,70,252,254,252,233,245,255,
820 2,255,141,44,197,237,141,4,194,139,122,252,248,137,104,252,252,137,120,252, 821 248,3,199,68,194,252,252,237,131,192,1,57,200,15,134,244,3,252,233,244,2,
822 255,141,44,197,237,141,4,194,139,122,252,248,137,104,252,252,137,120,252,
821 248,139,108,36,48,141,12,200,59,141,233,15,135,244,22,137,209,137,194,15, 823 248,139,108,36,48,141,12,200,59,141,233,15,135,244,22,137,209,137,194,15,
822 182,174,233,133,252,237,15,132,244,248,248,1,131,193,8,57,209,15,131,244, 824 182,174,233,133,252,237,15,132,244,248,248,1,131,193,8,57,209,15,131,244,
823 249,139,121,252,248,137,56,139,121,252,252,137,120,4,131,192,8,199,65,252, 825 249,139,121,252,248,137,56,139,121,252,252,137,120,4,131,192,8,199,65,252,
@@ -983,6 +985,7 @@ enum {
983 GLOB_vm_foldarith, 985 GLOB_vm_foldarith,
984 GLOB_vm_cpuid, 986 GLOB_vm_cpuid,
985 GLOB_vm_ffi_call, 987 GLOB_vm_ffi_call,
988 GLOB_assert_bad_for_arg_type,
986 GLOB_BC_MODVN_Z, 989 GLOB_BC_MODVN_Z,
987 GLOB_BC_TGETS_Z, 990 GLOB_BC_TGETS_Z,
988 GLOB_BC_TSETS_Z, 991 GLOB_BC_TSETS_Z,
@@ -1141,6 +1144,7 @@ static const char *const globnames[] = {
1141 "vm_foldarith", 1144 "vm_foldarith",
1142 "vm_cpuid", 1145 "vm_cpuid",
1143 "vm_ffi_call@4", 1146 "vm_ffi_call@4",
1147 "assert_bad_for_arg_type",
1144 "BC_MODVN_Z", 1148 "BC_MODVN_Z",
1145 "BC_TGETS_Z", 1149 "BC_TGETS_Z",
1146 "BC_TSETS_Z", 1150 "BC_TSETS_Z",
@@ -1961,13 +1965,18 @@ static void build_subroutines(BuildCtx *ctx, int cmov, int sse)
1961#endif 1965#endif
1962 dasm_put(Dst, 10916); 1966 dasm_put(Dst, 10916);
1963#endif 1967#endif
1968 dasm_put(Dst, 10923);
1969#ifdef LUA_USE_ASSERT
1970 dasm_put(Dst, 10303);
1971#endif
1972 dasm_put(Dst, 10303);
1964} 1973}
1965 1974
1966/* Generate the code for a single instruction. */ 1975/* Generate the code for a single instruction. */
1967static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse) 1976static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
1968{ 1977{
1969 int vk = 0; 1978 int vk = 0;
1970 dasm_put(Dst, 10923, defop); 1979 dasm_put(Dst, 10926, defop);
1971 1980
1972 switch (op) { 1981 switch (op) {
1973 1982
@@ -1978,57 +1987,57 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
1978 1987
1979 case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT: 1988 case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT:
1980 if (LJ_DUALNUM) { 1989 if (LJ_DUALNUM) {
1981 dasm_put(Dst, 10925, LJ_TISNUM, LJ_TISNUM); 1990 dasm_put(Dst, 10928, LJ_TISNUM, LJ_TISNUM);
1982 switch (op) { 1991 switch (op) {
1983 case BC_ISLT: 1992 case BC_ISLT:
1984 dasm_put(Dst, 10955); 1993 dasm_put(Dst, 10958);
1985 break; 1994 break;
1986 case BC_ISGE: 1995 case BC_ISGE:
1987 dasm_put(Dst, 10960); 1996 dasm_put(Dst, 10963);
1988 break; 1997 break;
1989 case BC_ISLE: 1998 case BC_ISLE:
1990 dasm_put(Dst, 10965); 1999 dasm_put(Dst, 10968);
1991 break; 2000 break;
1992 case BC_ISGT: 2001 case BC_ISGT:
1993 dasm_put(Dst, 10970); 2002 dasm_put(Dst, 10973);
1994 break; 2003 break;
1995 default: break; /* Shut up GCC. */ 2004 default: break; /* Shut up GCC. */
1996 } 2005 }
1997 dasm_put(Dst, 10975, -BCBIAS_J*4, LJ_TISNUM); 2006 dasm_put(Dst, 10978, -BCBIAS_J*4, LJ_TISNUM);
1998 if (sse) { 2007 if (sse) {
1999 dasm_put(Dst, 11028); 2008 dasm_put(Dst, 11031);
2000 } else { 2009 } else {
2001 dasm_put(Dst, 11039); 2010 dasm_put(Dst, 11042);
2002 } 2011 }
2003 dasm_put(Dst, 11050); 2012 dasm_put(Dst, 11053);
2004 if (sse) { 2013 if (sse) {
2005 dasm_put(Dst, 11057); 2014 dasm_put(Dst, 11060);
2006 switch (op) { 2015 switch (op) {
2007 case BC_ISLT: 2016 case BC_ISLT:
2008 dasm_put(Dst, 11077); 2017 dasm_put(Dst, 11080);
2009 break; 2018 break;
2010 case BC_ISGE: 2019 case BC_ISGE:
2011 dasm_put(Dst, 11082); 2020 dasm_put(Dst, 11085);
2012 break; 2021 break;
2013 case BC_ISLE: 2022 case BC_ISLE:
2014 dasm_put(Dst, 11087); 2023 dasm_put(Dst, 11090);
2015 break; 2024 break;
2016 case BC_ISGT: 2025 case BC_ISGT:
2017 dasm_put(Dst, 11092); 2026 dasm_put(Dst, 11095);
2018 break; 2027 break;
2019 default: break; /* Shut up GCC. */ 2028 default: break; /* Shut up GCC. */
2020 } 2029 }
2021 dasm_put(Dst, 11097); 2030 dasm_put(Dst, 11100);
2022 } else { 2031 } else {
2023 dasm_put(Dst, 11102); 2032 dasm_put(Dst, 11105);
2024 } 2033 }
2025 } else { 2034 } else {
2026 dasm_put(Dst, 11110, LJ_TISNUM, LJ_TISNUM); 2035 dasm_put(Dst, 11113, LJ_TISNUM, LJ_TISNUM);
2027 } 2036 }
2028 if (sse) { 2037 if (sse) {
2029 dasm_put(Dst, 11131); 2038 dasm_put(Dst, 11134);
2030 } else { 2039 } else {
2031 dasm_put(Dst, 11152); 2040 dasm_put(Dst, 11155);
2032 if (cmov) { 2041 if (cmov) {
2033 dasm_put(Dst, 3899); 2042 dasm_put(Dst, 3899);
2034 } else { 2043 } else {
@@ -2038,70 +2047,70 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2038 if (LJ_DUALNUM) { 2047 if (LJ_DUALNUM) {
2039 switch (op) { 2048 switch (op) {
2040 case BC_ISLT: 2049 case BC_ISLT:
2041 dasm_put(Dst, 11077); 2050 dasm_put(Dst, 11080);
2042 break; 2051 break;
2043 case BC_ISGE: 2052 case BC_ISGE:
2044 dasm_put(Dst, 11082); 2053 dasm_put(Dst, 11085);
2045 break; 2054 break;
2046 case BC_ISLE: 2055 case BC_ISLE:
2047 dasm_put(Dst, 11087); 2056 dasm_put(Dst, 11090);
2048 break; 2057 break;
2049 case BC_ISGT: 2058 case BC_ISGT:
2050 dasm_put(Dst, 11092); 2059 dasm_put(Dst, 11095);
2051 break; 2060 break;
2052 default: break; /* Shut up GCC. */ 2061 default: break; /* Shut up GCC. */
2053 } 2062 }
2054 dasm_put(Dst, 11097); 2063 dasm_put(Dst, 11100);
2055 } else { 2064 } else {
2056 switch (op) { 2065 switch (op) {
2057 case BC_ISLT: 2066 case BC_ISLT:
2058 dasm_put(Dst, 11168); 2067 dasm_put(Dst, 11171);
2059 break; 2068 break;
2060 case BC_ISGE: 2069 case BC_ISGE:
2061 dasm_put(Dst, 11173); 2070 dasm_put(Dst, 11176);
2062 break; 2071 break;
2063 case BC_ISLE: 2072 case BC_ISLE:
2064 dasm_put(Dst, 11178); 2073 dasm_put(Dst, 11181);
2065 break; 2074 break;
2066 case BC_ISGT: 2075 case BC_ISGT:
2067 dasm_put(Dst, 11183); 2076 dasm_put(Dst, 11186);
2068 break; 2077 break;
2069 default: break; /* Shut up GCC. */ 2078 default: break; /* Shut up GCC. */
2070 } 2079 }
2071 dasm_put(Dst, 11188, -BCBIAS_J*4); 2080 dasm_put(Dst, 11191, -BCBIAS_J*4);
2072 } 2081 }
2073 break; 2082 break;
2074 2083
2075 case BC_ISEQV: case BC_ISNEV: 2084 case BC_ISEQV: case BC_ISNEV:
2076 vk = op == BC_ISEQV; 2085 vk = op == BC_ISEQV;
2077 dasm_put(Dst, 11219); 2086 dasm_put(Dst, 11222);
2078 if (LJ_DUALNUM) { 2087 if (LJ_DUALNUM) {
2079 dasm_put(Dst, 11227, LJ_TISNUM, LJ_TISNUM); 2088 dasm_put(Dst, 11230, LJ_TISNUM, LJ_TISNUM);
2080 if (vk) { 2089 if (vk) {
2081 dasm_put(Dst, 11252); 2090 dasm_put(Dst, 11255);
2082 } else { 2091 } else {
2083 dasm_put(Dst, 11257); 2092 dasm_put(Dst, 11260);
2084 } 2093 }
2085 dasm_put(Dst, 11262, -BCBIAS_J*4, LJ_TISNUM); 2094 dasm_put(Dst, 11265, -BCBIAS_J*4, LJ_TISNUM);
2086 if (sse) { 2095 if (sse) {
2087 dasm_put(Dst, 11313); 2096 dasm_put(Dst, 11316);
2088 } else { 2097 } else {
2089 dasm_put(Dst, 11320); 2098 dasm_put(Dst, 11323);
2090 } 2099 }
2091 dasm_put(Dst, 11324); 2100 dasm_put(Dst, 11327);
2092 if (sse) { 2101 if (sse) {
2093 dasm_put(Dst, 11335); 2102 dasm_put(Dst, 11338);
2094 } else { 2103 } else {
2095 dasm_put(Dst, 11347); 2104 dasm_put(Dst, 11350);
2096 } 2105 }
2097 dasm_put(Dst, 11354); 2106 dasm_put(Dst, 11357);
2098 } else { 2107 } else {
2099 dasm_put(Dst, 11359, LJ_TISNUM, LJ_TISNUM); 2108 dasm_put(Dst, 11362, LJ_TISNUM, LJ_TISNUM);
2100 } 2109 }
2101 if (sse) { 2110 if (sse) {
2102 dasm_put(Dst, 11378); 2111 dasm_put(Dst, 11381);
2103 } else { 2112 } else {
2104 dasm_put(Dst, 11396); 2113 dasm_put(Dst, 11399);
2105 if (cmov) { 2114 if (cmov) {
2106 dasm_put(Dst, 3899); 2115 dasm_put(Dst, 3899);
2107 } else { 2116 } else {
@@ -2110,13 +2119,13 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2110 } 2119 }
2111 iseqne_fp: 2120 iseqne_fp:
2112 if (vk) { 2121 if (vk) {
2113 dasm_put(Dst, 11409); 2122 dasm_put(Dst, 11412);
2114 } else { 2123 } else {
2115 dasm_put(Dst, 11418); 2124 dasm_put(Dst, 11421);
2116 } 2125 }
2117 iseqne_end: 2126 iseqne_end:
2118 if (vk) { 2127 if (vk) {
2119 dasm_put(Dst, 11427, -BCBIAS_J*4); 2128 dasm_put(Dst, 11430, -BCBIAS_J*4);
2120 if (!LJ_HASFFI) { 2129 if (!LJ_HASFFI) {
2121 dasm_put(Dst, 4799); 2130 dasm_put(Dst, 4799);
2122 } 2131 }
@@ -2124,76 +2133,76 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2124 if (!LJ_HASFFI) { 2133 if (!LJ_HASFFI) {
2125 dasm_put(Dst, 4799); 2134 dasm_put(Dst, 4799);
2126 } 2135 }
2127 dasm_put(Dst, 11442, -BCBIAS_J*4); 2136 dasm_put(Dst, 11445, -BCBIAS_J*4);
2128 } 2137 }
2129 if (LJ_DUALNUM && (op == BC_ISEQV || op == BC_ISNEV || 2138 if (LJ_DUALNUM && (op == BC_ISEQV || op == BC_ISNEV ||
2130 op == BC_ISEQN || op == BC_ISNEN)) { 2139 op == BC_ISEQN || op == BC_ISNEN)) {
2131 dasm_put(Dst, 11457); 2140 dasm_put(Dst, 11460);
2132 } else { 2141 } else {
2133 dasm_put(Dst, 11200); 2142 dasm_put(Dst, 11203);
2134 } 2143 }
2135 if (op == BC_ISEQV || op == BC_ISNEV) { 2144 if (op == BC_ISEQV || op == BC_ISNEV) {
2136 dasm_put(Dst, 11462); 2145 dasm_put(Dst, 11465);
2137 if (LJ_HASFFI) { 2146 if (LJ_HASFFI) {
2138 dasm_put(Dst, 11465, LJ_TCDATA, LJ_TCDATA); 2147 dasm_put(Dst, 11468, LJ_TCDATA, LJ_TCDATA);
2139 } 2148 }
2140 dasm_put(Dst, 11484, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq); 2149 dasm_put(Dst, 11487, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq);
2141 if (vk) { 2150 if (vk) {
2142 dasm_put(Dst, 11540); 2151 dasm_put(Dst, 11543);
2143 } else { 2152 } else {
2144 dasm_put(Dst, 11544); 2153 dasm_put(Dst, 11547);
2145 } 2154 }
2146 dasm_put(Dst, 11550); 2155 dasm_put(Dst, 11553);
2147 } else if (LJ_HASFFI) { 2156 } else if (LJ_HASFFI) {
2148 dasm_put(Dst, 11555, LJ_TCDATA); 2157 dasm_put(Dst, 11558, LJ_TCDATA);
2149 if (LJ_DUALNUM && vk) { 2158 if (LJ_DUALNUM && vk) {
2150 dasm_put(Dst, 11562); 2159 dasm_put(Dst, 11565);
2151 } else { 2160 } else {
2152 dasm_put(Dst, 11535); 2161 dasm_put(Dst, 11538);
2153 } 2162 }
2154 dasm_put(Dst, 11567); 2163 dasm_put(Dst, 11570);
2155 } 2164 }
2156 break; 2165 break;
2157 case BC_ISEQS: case BC_ISNES: 2166 case BC_ISEQS: case BC_ISNES:
2158 vk = op == BC_ISEQS; 2167 vk = op == BC_ISEQS;
2159 dasm_put(Dst, 11572, LJ_TSTR); 2168 dasm_put(Dst, 11575, LJ_TSTR);
2160 iseqne_test: 2169 iseqne_test:
2161 if (vk) { 2170 if (vk) {
2162 dasm_put(Dst, 11413); 2171 dasm_put(Dst, 11416);
2163 } else { 2172 } else {
2164 dasm_put(Dst, 2917); 2173 dasm_put(Dst, 2917);
2165 } 2174 }
2166 goto iseqne_end; 2175 goto iseqne_end;
2167 case BC_ISEQN: case BC_ISNEN: 2176 case BC_ISEQN: case BC_ISNEN:
2168 vk = op == BC_ISEQN; 2177 vk = op == BC_ISEQN;
2169 dasm_put(Dst, 11597); 2178 dasm_put(Dst, 11600);
2170 if (LJ_DUALNUM) { 2179 if (LJ_DUALNUM) {
2171 dasm_put(Dst, 11605, LJ_TISNUM, LJ_TISNUM); 2180 dasm_put(Dst, 11608, LJ_TISNUM, LJ_TISNUM);
2172 if (vk) { 2181 if (vk) {
2173 dasm_put(Dst, 11252); 2182 dasm_put(Dst, 11255);
2174 } else { 2183 } else {
2175 dasm_put(Dst, 11257); 2184 dasm_put(Dst, 11260);
2176 } 2185 }
2177 dasm_put(Dst, 11630, -BCBIAS_J*4, LJ_TISNUM); 2186 dasm_put(Dst, 11633, -BCBIAS_J*4, LJ_TISNUM);
2178 if (sse) { 2187 if (sse) {
2179 dasm_put(Dst, 11677); 2188 dasm_put(Dst, 11680);
2180 } else { 2189 } else {
2181 dasm_put(Dst, 11684); 2190 dasm_put(Dst, 11687);
2182 } 2191 }
2183 dasm_put(Dst, 11688); 2192 dasm_put(Dst, 11691);
2184 if (sse) { 2193 if (sse) {
2185 dasm_put(Dst, 11695); 2194 dasm_put(Dst, 11698);
2186 } else { 2195 } else {
2187 dasm_put(Dst, 11707); 2196 dasm_put(Dst, 11710);
2188 } 2197 }
2189 dasm_put(Dst, 11354); 2198 dasm_put(Dst, 11357);
2190 } else { 2199 } else {
2191 dasm_put(Dst, 11714, LJ_TISNUM); 2200 dasm_put(Dst, 11717, LJ_TISNUM);
2192 } 2201 }
2193 if (sse) { 2202 if (sse) {
2194 dasm_put(Dst, 11723); 2203 dasm_put(Dst, 11726);
2195 } else { 2204 } else {
2196 dasm_put(Dst, 11741); 2205 dasm_put(Dst, 11744);
2197 if (cmov) { 2206 if (cmov) {
2198 dasm_put(Dst, 3899); 2207 dasm_put(Dst, 3899);
2199 } else { 2208 } else {
@@ -2203,72 +2212,72 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2203 goto iseqne_fp; 2212 goto iseqne_fp;
2204 case BC_ISEQP: case BC_ISNEP: 2213 case BC_ISEQP: case BC_ISNEP:
2205 vk = op == BC_ISEQP; 2214 vk = op == BC_ISEQP;
2206 dasm_put(Dst, 11754); 2215 dasm_put(Dst, 11757);
2207 if (!LJ_HASFFI) goto iseqne_test; 2216 if (!LJ_HASFFI) goto iseqne_test;
2208 if (vk) { 2217 if (vk) {
2209 dasm_put(Dst, 11767, -BCBIAS_J*4, LJ_TCDATA); 2218 dasm_put(Dst, 11770, -BCBIAS_J*4, LJ_TCDATA);
2210 } else { 2219 } else {
2211 dasm_put(Dst, 11816, LJ_TCDATA, -BCBIAS_J*4); 2220 dasm_put(Dst, 11819, LJ_TCDATA, -BCBIAS_J*4);
2212 } 2221 }
2213 break; 2222 break;
2214 2223
2215 /* -- Unary test and copy ops ------------------------------------------- */ 2224 /* -- Unary test and copy ops ------------------------------------------- */
2216 2225
2217 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF: 2226 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF:
2218 dasm_put(Dst, 11859, LJ_TISTRUECOND); 2227 dasm_put(Dst, 11862, LJ_TISTRUECOND);
2219 if (op == BC_IST || op == BC_ISTC) { 2228 if (op == BC_IST || op == BC_ISTC) {
2220 dasm_put(Dst, 11183); 2229 dasm_put(Dst, 11186);
2221 } else { 2230 } else {
2222 dasm_put(Dst, 11178); 2231 dasm_put(Dst, 11181);
2223 } 2232 }
2224 if (op == BC_ISTC || op == BC_ISFC) { 2233 if (op == BC_ISTC || op == BC_ISFC) {
2225 dasm_put(Dst, 11871); 2234 dasm_put(Dst, 11874);
2226 } 2235 }
2227 dasm_put(Dst, 11188, -BCBIAS_J*4); 2236 dasm_put(Dst, 11191, -BCBIAS_J*4);
2228 break; 2237 break;
2229 2238
2230 /* -- Unary ops --------------------------------------------------------- */ 2239 /* -- Unary ops --------------------------------------------------------- */
2231 2240
2232 case BC_MOV: 2241 case BC_MOV:
2233 dasm_put(Dst, 11882); 2242 dasm_put(Dst, 11885);
2234 break; 2243 break;
2235 case BC_NOT: 2244 case BC_NOT:
2236 dasm_put(Dst, 11915, LJ_TISTRUECOND, LJ_TTRUE); 2245 dasm_put(Dst, 11918, LJ_TISTRUECOND, LJ_TTRUE);
2237 break; 2246 break;
2238 case BC_UNM: 2247 case BC_UNM:
2239 if (LJ_DUALNUM) { 2248 if (LJ_DUALNUM) {
2240 dasm_put(Dst, 11950, LJ_TISNUM, LJ_TISNUM); 2249 dasm_put(Dst, 11953, LJ_TISNUM, LJ_TISNUM);
2241 } else { 2250 } else {
2242 dasm_put(Dst, 12026, LJ_TISNUM); 2251 dasm_put(Dst, 12029, LJ_TISNUM);
2243 } 2252 }
2244 if (sse) { 2253 if (sse) {
2245 dasm_put(Dst, 12037); 2254 dasm_put(Dst, 12040);
2246 } else { 2255 } else {
2247 dasm_put(Dst, 12067); 2256 dasm_put(Dst, 12070);
2248 } 2257 }
2249 if (LJ_DUALNUM) { 2258 if (LJ_DUALNUM) {
2250 dasm_put(Dst, 11457); 2259 dasm_put(Dst, 11460);
2251 } else { 2260 } else {
2252 dasm_put(Dst, 11200); 2261 dasm_put(Dst, 11203);
2253 } 2262 }
2254 break; 2263 break;
2255 case BC_LEN: 2264 case BC_LEN:
2256 dasm_put(Dst, 12076, LJ_TSTR); 2265 dasm_put(Dst, 12079, LJ_TSTR);
2257 if (LJ_DUALNUM) { 2266 if (LJ_DUALNUM) {
2258 dasm_put(Dst, 12090, Dt5(->len), LJ_TISNUM); 2267 dasm_put(Dst, 12093, Dt5(->len), LJ_TISNUM);
2259 } else if (sse) { 2268 } else if (sse) {
2260 dasm_put(Dst, 12104, Dt5(->len)); 2269 dasm_put(Dst, 12107, Dt5(->len));
2261 } else { 2270 } else {
2262 dasm_put(Dst, 12122, Dt5(->len)); 2271 dasm_put(Dst, 12125, Dt5(->len));
2263 } 2272 }
2264 dasm_put(Dst, 12131, LJ_TTAB); 2273 dasm_put(Dst, 12134, LJ_TTAB);
2265 if (LJ_DUALNUM) { 2274 if (LJ_DUALNUM) {
2266 } else if (sse) { 2275 } else if (sse) {
2267 dasm_put(Dst, 12171); 2276 dasm_put(Dst, 12174);
2268 } else { 2277 } else {
2269 dasm_put(Dst, 12177); 2278 dasm_put(Dst, 12180);
2270 } 2279 }
2271 dasm_put(Dst, 12184); 2280 dasm_put(Dst, 12187);
2272 break; 2281 break;
2273 2282
2274 /* -- Binary ops -------------------------------------------------------- */ 2283 /* -- Binary ops -------------------------------------------------------- */
@@ -2276,471 +2285,471 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2276 2285
2277 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV: 2286 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV:
2278 if (LJ_DUALNUM) { 2287 if (LJ_DUALNUM) {
2279 dasm_put(Dst, 12197); 2288 dasm_put(Dst, 12200);
2280 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2289 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2281 switch (vk) { 2290 switch (vk) {
2282 case 0: 2291 case 0:
2283 dasm_put(Dst, 12205, LJ_TISNUM, LJ_TISNUM); 2292 dasm_put(Dst, 12208, LJ_TISNUM, LJ_TISNUM);
2284 break; 2293 break;
2285 case 1: 2294 case 1:
2286 dasm_put(Dst, 12238, LJ_TISNUM, LJ_TISNUM); 2295 dasm_put(Dst, 12241, LJ_TISNUM, LJ_TISNUM);
2287 break; 2296 break;
2288 default: 2297 default:
2289 dasm_put(Dst, 12271, LJ_TISNUM, LJ_TISNUM); 2298 dasm_put(Dst, 12274, LJ_TISNUM, LJ_TISNUM);
2290 break; 2299 break;
2291 } 2300 }
2292 dasm_put(Dst, 12304, LJ_TISNUM); 2301 dasm_put(Dst, 12307, LJ_TISNUM);
2293 if (vk == 1) { 2302 if (vk == 1) {
2294 dasm_put(Dst, 12100); 2303 dasm_put(Dst, 12103);
2295 } else { 2304 } else {
2296 dasm_put(Dst, 11878); 2305 dasm_put(Dst, 11881);
2297 } 2306 }
2298 dasm_put(Dst, 11200); 2307 dasm_put(Dst, 11203);
2299 } else { 2308 } else {
2300 dasm_put(Dst, 12197); 2309 dasm_put(Dst, 12200);
2301 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2310 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2302 switch (vk) { 2311 switch (vk) {
2303 case 0: 2312 case 0:
2304 dasm_put(Dst, 12310, LJ_TISNUM); 2313 dasm_put(Dst, 12313, LJ_TISNUM);
2305 if (LJ_DUALNUM) { 2314 if (LJ_DUALNUM) {
2306 dasm_put(Dst, 12322, LJ_TISNUM); 2315 dasm_put(Dst, 12325, LJ_TISNUM);
2307 } 2316 }
2308 if (sse) { 2317 if (sse) {
2309 dasm_put(Dst, 12333); 2318 dasm_put(Dst, 12336);
2310 } else { 2319 } else {
2311 dasm_put(Dst, 12347); 2320 dasm_put(Dst, 12350);
2312 } 2321 }
2313 break; 2322 break;
2314 case 1: 2323 case 1:
2315 dasm_put(Dst, 12355, LJ_TISNUM); 2324 dasm_put(Dst, 12358, LJ_TISNUM);
2316 if (LJ_DUALNUM) { 2325 if (LJ_DUALNUM) {
2317 dasm_put(Dst, 12367, LJ_TISNUM); 2326 dasm_put(Dst, 12370, LJ_TISNUM);
2318 } 2327 }
2319 if (sse) { 2328 if (sse) {
2320 dasm_put(Dst, 12378); 2329 dasm_put(Dst, 12381);
2321 } else { 2330 } else {
2322 dasm_put(Dst, 12392); 2331 dasm_put(Dst, 12395);
2323 } 2332 }
2324 break; 2333 break;
2325 default: 2334 default:
2326 dasm_put(Dst, 12400, LJ_TISNUM, LJ_TISNUM); 2335 dasm_put(Dst, 12403, LJ_TISNUM, LJ_TISNUM);
2327 if (sse) { 2336 if (sse) {
2328 dasm_put(Dst, 12422); 2337 dasm_put(Dst, 12425);
2329 } else { 2338 } else {
2330 dasm_put(Dst, 12436); 2339 dasm_put(Dst, 12439);
2331 } 2340 }
2332 break; 2341 break;
2333 } 2342 }
2334 if (sse) { 2343 if (sse) {
2335 dasm_put(Dst, 12060); 2344 dasm_put(Dst, 12063);
2336 } else { 2345 } else {
2337 dasm_put(Dst, 12072); 2346 dasm_put(Dst, 12075);
2338 } 2347 }
2339 dasm_put(Dst, 11200); 2348 dasm_put(Dst, 11203);
2340 } 2349 }
2341 break; 2350 break;
2342 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV: 2351 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV:
2343 if (LJ_DUALNUM) { 2352 if (LJ_DUALNUM) {
2344 dasm_put(Dst, 12197); 2353 dasm_put(Dst, 12200);
2345 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2354 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2346 switch (vk) { 2355 switch (vk) {
2347 case 0: 2356 case 0:
2348 dasm_put(Dst, 12444, LJ_TISNUM, LJ_TISNUM); 2357 dasm_put(Dst, 12447, LJ_TISNUM, LJ_TISNUM);
2349 break; 2358 break;
2350 case 1: 2359 case 1:
2351 dasm_put(Dst, 12477, LJ_TISNUM, LJ_TISNUM); 2360 dasm_put(Dst, 12480, LJ_TISNUM, LJ_TISNUM);
2352 break; 2361 break;
2353 default: 2362 default:
2354 dasm_put(Dst, 12510, LJ_TISNUM, LJ_TISNUM); 2363 dasm_put(Dst, 12513, LJ_TISNUM, LJ_TISNUM);
2355 break; 2364 break;
2356 } 2365 }
2357 dasm_put(Dst, 12304, LJ_TISNUM); 2366 dasm_put(Dst, 12307, LJ_TISNUM);
2358 if (vk == 1) { 2367 if (vk == 1) {
2359 dasm_put(Dst, 12100); 2368 dasm_put(Dst, 12103);
2360 } else { 2369 } else {
2361 dasm_put(Dst, 11878); 2370 dasm_put(Dst, 11881);
2362 } 2371 }
2363 dasm_put(Dst, 11200); 2372 dasm_put(Dst, 11203);
2364 } else { 2373 } else {
2365 dasm_put(Dst, 12197); 2374 dasm_put(Dst, 12200);
2366 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2375 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2367 switch (vk) { 2376 switch (vk) {
2368 case 0: 2377 case 0:
2369 dasm_put(Dst, 12310, LJ_TISNUM); 2378 dasm_put(Dst, 12313, LJ_TISNUM);
2370 if (LJ_DUALNUM) { 2379 if (LJ_DUALNUM) {
2371 dasm_put(Dst, 12322, LJ_TISNUM); 2380 dasm_put(Dst, 12325, LJ_TISNUM);
2372 } 2381 }
2373 if (sse) { 2382 if (sse) {
2374 dasm_put(Dst, 12543); 2383 dasm_put(Dst, 12546);
2375 } else { 2384 } else {
2376 dasm_put(Dst, 12557); 2385 dasm_put(Dst, 12560);
2377 } 2386 }
2378 break; 2387 break;
2379 case 1: 2388 case 1:
2380 dasm_put(Dst, 12355, LJ_TISNUM); 2389 dasm_put(Dst, 12358, LJ_TISNUM);
2381 if (LJ_DUALNUM) { 2390 if (LJ_DUALNUM) {
2382 dasm_put(Dst, 12367, LJ_TISNUM); 2391 dasm_put(Dst, 12370, LJ_TISNUM);
2383 } 2392 }
2384 if (sse) { 2393 if (sse) {
2385 dasm_put(Dst, 12565); 2394 dasm_put(Dst, 12568);
2386 } else { 2395 } else {
2387 dasm_put(Dst, 12579); 2396 dasm_put(Dst, 12582);
2388 } 2397 }
2389 break; 2398 break;
2390 default: 2399 default:
2391 dasm_put(Dst, 12400, LJ_TISNUM, LJ_TISNUM); 2400 dasm_put(Dst, 12403, LJ_TISNUM, LJ_TISNUM);
2392 if (sse) { 2401 if (sse) {
2393 dasm_put(Dst, 12587); 2402 dasm_put(Dst, 12590);
2394 } else { 2403 } else {
2395 dasm_put(Dst, 12601); 2404 dasm_put(Dst, 12604);
2396 } 2405 }
2397 break; 2406 break;
2398 } 2407 }
2399 if (sse) { 2408 if (sse) {
2400 dasm_put(Dst, 12060); 2409 dasm_put(Dst, 12063);
2401 } else { 2410 } else {
2402 dasm_put(Dst, 12072); 2411 dasm_put(Dst, 12075);
2403 } 2412 }
2404 dasm_put(Dst, 11200); 2413 dasm_put(Dst, 11203);
2405 } 2414 }
2406 break; 2415 break;
2407 case BC_MULVN: case BC_MULNV: case BC_MULVV: 2416 case BC_MULVN: case BC_MULNV: case BC_MULVV:
2408 if (LJ_DUALNUM) { 2417 if (LJ_DUALNUM) {
2409 dasm_put(Dst, 12197); 2418 dasm_put(Dst, 12200);
2410 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2419 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2411 switch (vk) { 2420 switch (vk) {
2412 case 0: 2421 case 0:
2413 dasm_put(Dst, 12609, LJ_TISNUM, LJ_TISNUM); 2422 dasm_put(Dst, 12612, LJ_TISNUM, LJ_TISNUM);
2414 break; 2423 break;
2415 case 1: 2424 case 1:
2416 dasm_put(Dst, 12643, LJ_TISNUM, LJ_TISNUM); 2425 dasm_put(Dst, 12646, LJ_TISNUM, LJ_TISNUM);
2417 break; 2426 break;
2418 default: 2427 default:
2419 dasm_put(Dst, 12677, LJ_TISNUM, LJ_TISNUM); 2428 dasm_put(Dst, 12680, LJ_TISNUM, LJ_TISNUM);
2420 break; 2429 break;
2421 } 2430 }
2422 dasm_put(Dst, 12304, LJ_TISNUM); 2431 dasm_put(Dst, 12307, LJ_TISNUM);
2423 if (vk == 1) { 2432 if (vk == 1) {
2424 dasm_put(Dst, 12100); 2433 dasm_put(Dst, 12103);
2425 } else { 2434 } else {
2426 dasm_put(Dst, 11878); 2435 dasm_put(Dst, 11881);
2427 } 2436 }
2428 dasm_put(Dst, 11200); 2437 dasm_put(Dst, 11203);
2429 } else { 2438 } else {
2430 dasm_put(Dst, 12197); 2439 dasm_put(Dst, 12200);
2431 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2440 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2432 switch (vk) { 2441 switch (vk) {
2433 case 0: 2442 case 0:
2434 dasm_put(Dst, 12310, LJ_TISNUM); 2443 dasm_put(Dst, 12313, LJ_TISNUM);
2435 if (LJ_DUALNUM) { 2444 if (LJ_DUALNUM) {
2436 dasm_put(Dst, 12322, LJ_TISNUM); 2445 dasm_put(Dst, 12325, LJ_TISNUM);
2437 } 2446 }
2438 if (sse) { 2447 if (sse) {
2439 dasm_put(Dst, 12711); 2448 dasm_put(Dst, 12714);
2440 } else { 2449 } else {
2441 dasm_put(Dst, 12725); 2450 dasm_put(Dst, 12728);
2442 } 2451 }
2443 break; 2452 break;
2444 case 1: 2453 case 1:
2445 dasm_put(Dst, 12355, LJ_TISNUM); 2454 dasm_put(Dst, 12358, LJ_TISNUM);
2446 if (LJ_DUALNUM) { 2455 if (LJ_DUALNUM) {
2447 dasm_put(Dst, 12367, LJ_TISNUM); 2456 dasm_put(Dst, 12370, LJ_TISNUM);
2448 } 2457 }
2449 if (sse) { 2458 if (sse) {
2450 dasm_put(Dst, 12733); 2459 dasm_put(Dst, 12736);
2451 } else { 2460 } else {
2452 dasm_put(Dst, 12747); 2461 dasm_put(Dst, 12750);
2453 } 2462 }
2454 break; 2463 break;
2455 default: 2464 default:
2456 dasm_put(Dst, 12400, LJ_TISNUM, LJ_TISNUM); 2465 dasm_put(Dst, 12403, LJ_TISNUM, LJ_TISNUM);
2457 if (sse) { 2466 if (sse) {
2458 dasm_put(Dst, 12755); 2467 dasm_put(Dst, 12758);
2459 } else { 2468 } else {
2460 dasm_put(Dst, 12769); 2469 dasm_put(Dst, 12772);
2461 } 2470 }
2462 break; 2471 break;
2463 } 2472 }
2464 if (sse) { 2473 if (sse) {
2465 dasm_put(Dst, 12060); 2474 dasm_put(Dst, 12063);
2466 } else { 2475 } else {
2467 dasm_put(Dst, 12072); 2476 dasm_put(Dst, 12075);
2468 } 2477 }
2469 dasm_put(Dst, 11200); 2478 dasm_put(Dst, 11203);
2470 } 2479 }
2471 break; 2480 break;
2472 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV: 2481 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV:
2473 dasm_put(Dst, 12197); 2482 dasm_put(Dst, 12200);
2474 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2483 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2475 switch (vk) { 2484 switch (vk) {
2476 case 0: 2485 case 0:
2477 dasm_put(Dst, 12310, LJ_TISNUM); 2486 dasm_put(Dst, 12313, LJ_TISNUM);
2478 if (LJ_DUALNUM) { 2487 if (LJ_DUALNUM) {
2479 dasm_put(Dst, 12322, LJ_TISNUM); 2488 dasm_put(Dst, 12325, LJ_TISNUM);
2480 } 2489 }
2481 if (sse) { 2490 if (sse) {
2482 dasm_put(Dst, 12777); 2491 dasm_put(Dst, 12780);
2483 } else { 2492 } else {
2484 dasm_put(Dst, 12791); 2493 dasm_put(Dst, 12794);
2485 } 2494 }
2486 break; 2495 break;
2487 case 1: 2496 case 1:
2488 dasm_put(Dst, 12355, LJ_TISNUM); 2497 dasm_put(Dst, 12358, LJ_TISNUM);
2489 if (LJ_DUALNUM) { 2498 if (LJ_DUALNUM) {
2490 dasm_put(Dst, 12367, LJ_TISNUM); 2499 dasm_put(Dst, 12370, LJ_TISNUM);
2491 } 2500 }
2492 if (sse) { 2501 if (sse) {
2493 dasm_put(Dst, 12799); 2502 dasm_put(Dst, 12802);
2494 } else { 2503 } else {
2495 dasm_put(Dst, 12813); 2504 dasm_put(Dst, 12816);
2496 } 2505 }
2497 break; 2506 break;
2498 default: 2507 default:
2499 dasm_put(Dst, 12400, LJ_TISNUM, LJ_TISNUM); 2508 dasm_put(Dst, 12403, LJ_TISNUM, LJ_TISNUM);
2500 if (sse) { 2509 if (sse) {
2501 dasm_put(Dst, 12821); 2510 dasm_put(Dst, 12824);
2502 } else { 2511 } else {
2503 dasm_put(Dst, 12835); 2512 dasm_put(Dst, 12838);
2504 } 2513 }
2505 break; 2514 break;
2506 } 2515 }
2507 if (sse) { 2516 if (sse) {
2508 dasm_put(Dst, 12060); 2517 dasm_put(Dst, 12063);
2509 } else { 2518 } else {
2510 dasm_put(Dst, 12072); 2519 dasm_put(Dst, 12075);
2511 } 2520 }
2512 dasm_put(Dst, 11200); 2521 dasm_put(Dst, 11203);
2513 break; 2522 break;
2514 case BC_MODVN: 2523 case BC_MODVN:
2515 dasm_put(Dst, 12197); 2524 dasm_put(Dst, 12200);
2516 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2525 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2517 switch (vk) { 2526 switch (vk) {
2518 case 0: 2527 case 0:
2519 dasm_put(Dst, 12310, LJ_TISNUM); 2528 dasm_put(Dst, 12313, LJ_TISNUM);
2520 if (LJ_DUALNUM) { 2529 if (LJ_DUALNUM) {
2521 dasm_put(Dst, 12322, LJ_TISNUM); 2530 dasm_put(Dst, 12325, LJ_TISNUM);
2522 } 2531 }
2523 if (sse) { 2532 if (sse) {
2524 dasm_put(Dst, 12843); 2533 dasm_put(Dst, 12846);
2525 } else { 2534 } else {
2526 dasm_put(Dst, 12857); 2535 dasm_put(Dst, 12860);
2527 } 2536 }
2528 break; 2537 break;
2529 case 1: 2538 case 1:
2530 dasm_put(Dst, 12355, LJ_TISNUM); 2539 dasm_put(Dst, 12358, LJ_TISNUM);
2531 if (LJ_DUALNUM) { 2540 if (LJ_DUALNUM) {
2532 dasm_put(Dst, 12367, LJ_TISNUM); 2541 dasm_put(Dst, 12370, LJ_TISNUM);
2533 } 2542 }
2534 if (sse) { 2543 if (sse) {
2535 dasm_put(Dst, 12865); 2544 dasm_put(Dst, 12868);
2536 } else { 2545 } else {
2537 dasm_put(Dst, 12879); 2546 dasm_put(Dst, 12882);
2538 } 2547 }
2539 break; 2548 break;
2540 default: 2549 default:
2541 dasm_put(Dst, 12400, LJ_TISNUM, LJ_TISNUM); 2550 dasm_put(Dst, 12403, LJ_TISNUM, LJ_TISNUM);
2542 if (sse) { 2551 if (sse) {
2543 dasm_put(Dst, 12887); 2552 dasm_put(Dst, 12890);
2544 } else { 2553 } else {
2545 dasm_put(Dst, 12901); 2554 dasm_put(Dst, 12904);
2546 } 2555 }
2547 break; 2556 break;
2548 } 2557 }
2549 dasm_put(Dst, 12909); 2558 dasm_put(Dst, 12912);
2550 if (sse) { 2559 if (sse) {
2551 dasm_put(Dst, 12060); 2560 dasm_put(Dst, 12063);
2552 } else { 2561 } else {
2553 dasm_put(Dst, 12072); 2562 dasm_put(Dst, 12075);
2554 } 2563 }
2555 dasm_put(Dst, 11200); 2564 dasm_put(Dst, 11203);
2556 break; 2565 break;
2557 case BC_MODNV: case BC_MODVV: 2566 case BC_MODNV: case BC_MODVV:
2558 dasm_put(Dst, 12197); 2567 dasm_put(Dst, 12200);
2559 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2568 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2560 switch (vk) { 2569 switch (vk) {
2561 case 0: 2570 case 0:
2562 dasm_put(Dst, 12310, LJ_TISNUM); 2571 dasm_put(Dst, 12313, LJ_TISNUM);
2563 if (LJ_DUALNUM) { 2572 if (LJ_DUALNUM) {
2564 dasm_put(Dst, 12322, LJ_TISNUM); 2573 dasm_put(Dst, 12325, LJ_TISNUM);
2565 } 2574 }
2566 if (sse) { 2575 if (sse) {
2567 dasm_put(Dst, 12843); 2576 dasm_put(Dst, 12846);
2568 } else { 2577 } else {
2569 dasm_put(Dst, 12857); 2578 dasm_put(Dst, 12860);
2570 } 2579 }
2571 break; 2580 break;
2572 case 1: 2581 case 1:
2573 dasm_put(Dst, 12355, LJ_TISNUM); 2582 dasm_put(Dst, 12358, LJ_TISNUM);
2574 if (LJ_DUALNUM) { 2583 if (LJ_DUALNUM) {
2575 dasm_put(Dst, 12367, LJ_TISNUM); 2584 dasm_put(Dst, 12370, LJ_TISNUM);
2576 } 2585 }
2577 if (sse) { 2586 if (sse) {
2578 dasm_put(Dst, 12865); 2587 dasm_put(Dst, 12868);
2579 } else { 2588 } else {
2580 dasm_put(Dst, 12879); 2589 dasm_put(Dst, 12882);
2581 } 2590 }
2582 break; 2591 break;
2583 default: 2592 default:
2584 dasm_put(Dst, 12400, LJ_TISNUM, LJ_TISNUM); 2593 dasm_put(Dst, 12403, LJ_TISNUM, LJ_TISNUM);
2585 if (sse) { 2594 if (sse) {
2586 dasm_put(Dst, 12887); 2595 dasm_put(Dst, 12890);
2587 } else { 2596 } else {
2588 dasm_put(Dst, 12901); 2597 dasm_put(Dst, 12904);
2589 } 2598 }
2590 break; 2599 break;
2591 } 2600 }
2592 dasm_put(Dst, 12915); 2601 dasm_put(Dst, 12918);
2593 break; 2602 break;
2594 case BC_POW: 2603 case BC_POW:
2595 dasm_put(Dst, 12197); 2604 dasm_put(Dst, 12200);
2596 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2605 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2597 switch (vk) { 2606 switch (vk) {
2598 case 0: 2607 case 0:
2599 dasm_put(Dst, 12310, LJ_TISNUM); 2608 dasm_put(Dst, 12313, LJ_TISNUM);
2600 if (LJ_DUALNUM) { 2609 if (LJ_DUALNUM) {
2601 dasm_put(Dst, 12322, LJ_TISNUM); 2610 dasm_put(Dst, 12325, LJ_TISNUM);
2602 } 2611 }
2603 if (sse) { 2612 if (sse) {
2604 dasm_put(Dst, 12843); 2613 dasm_put(Dst, 12846);
2605 } else { 2614 } else {
2606 dasm_put(Dst, 12857); 2615 dasm_put(Dst, 12860);
2607 } 2616 }
2608 break; 2617 break;
2609 case 1: 2618 case 1:
2610 dasm_put(Dst, 12355, LJ_TISNUM); 2619 dasm_put(Dst, 12358, LJ_TISNUM);
2611 if (LJ_DUALNUM) { 2620 if (LJ_DUALNUM) {
2612 dasm_put(Dst, 12367, LJ_TISNUM); 2621 dasm_put(Dst, 12370, LJ_TISNUM);
2613 } 2622 }
2614 if (sse) { 2623 if (sse) {
2615 dasm_put(Dst, 12865); 2624 dasm_put(Dst, 12868);
2616 } else { 2625 } else {
2617 dasm_put(Dst, 12879); 2626 dasm_put(Dst, 12882);
2618 } 2627 }
2619 break; 2628 break;
2620 default: 2629 default:
2621 dasm_put(Dst, 12400, LJ_TISNUM, LJ_TISNUM); 2630 dasm_put(Dst, 12403, LJ_TISNUM, LJ_TISNUM);
2622 if (sse) { 2631 if (sse) {
2623 dasm_put(Dst, 12887); 2632 dasm_put(Dst, 12890);
2624 } else { 2633 } else {
2625 dasm_put(Dst, 12901); 2634 dasm_put(Dst, 12904);
2626 } 2635 }
2627 break; 2636 break;
2628 } 2637 }
2629 dasm_put(Dst, 12920); 2638 dasm_put(Dst, 12923);
2630 if (sse) { 2639 if (sse) {
2631 dasm_put(Dst, 12060); 2640 dasm_put(Dst, 12063);
2632 } else { 2641 } else {
2633 dasm_put(Dst, 12072); 2642 dasm_put(Dst, 12075);
2634 } 2643 }
2635 dasm_put(Dst, 11200); 2644 dasm_put(Dst, 11203);
2636 break; 2645 break;
2637 2646
2638 case BC_CAT: 2647 case BC_CAT:
2639 dasm_put(Dst, 12924, Dt1(->base), Dt1(->base)); 2648 dasm_put(Dst, 12927, Dt1(->base), Dt1(->base));
2640 break; 2649 break;
2641 2650
2642 /* -- Constant ops ------------------------------------------------------ */ 2651 /* -- Constant ops ------------------------------------------------------ */
2643 2652
2644 case BC_KSTR: 2653 case BC_KSTR:
2645 dasm_put(Dst, 13018, LJ_TSTR); 2654 dasm_put(Dst, 13021, LJ_TSTR);
2646 break; 2655 break;
2647 case BC_KCDATA: 2656 case BC_KCDATA:
2648#if LJ_HASFFI 2657#if LJ_HASFFI
2649 dasm_put(Dst, 13018, LJ_TCDATA); 2658 dasm_put(Dst, 13021, LJ_TCDATA);
2650#endif 2659#endif
2651 break; 2660 break;
2652 case BC_KSHORT: 2661 case BC_KSHORT:
2653 if (LJ_DUALNUM) { 2662 if (LJ_DUALNUM) {
2654 dasm_put(Dst, 13051, LJ_TISNUM); 2663 dasm_put(Dst, 13054, LJ_TISNUM);
2655 } else if (sse) { 2664 } else if (sse) {
2656 dasm_put(Dst, 13063); 2665 dasm_put(Dst, 13066);
2657 } else { 2666 } else {
2658 dasm_put(Dst, 13078); 2667 dasm_put(Dst, 13081);
2659 } 2668 }
2660 dasm_put(Dst, 11200); 2669 dasm_put(Dst, 11203);
2661 break; 2670 break;
2662 case BC_KNUM: 2671 case BC_KNUM:
2663 if (sse) { 2672 if (sse) {
2664 dasm_put(Dst, 13086); 2673 dasm_put(Dst, 13089);
2665 } else { 2674 } else {
2666 dasm_put(Dst, 13099); 2675 dasm_put(Dst, 13102);
2667 } 2676 }
2668 dasm_put(Dst, 11200); 2677 dasm_put(Dst, 11203);
2669 break; 2678 break;
2670 case BC_KPRI: 2679 case BC_KPRI:
2671 dasm_put(Dst, 13106); 2680 dasm_put(Dst, 13109);
2672 break; 2681 break;
2673 case BC_KNIL: 2682 case BC_KNIL:
2674 dasm_put(Dst, 13132, LJ_TNIL); 2683 dasm_put(Dst, 13135, LJ_TNIL);
2675 break; 2684 break;
2676 2685
2677 /* -- Upvalue and function ops ------------------------------------------ */ 2686 /* -- Upvalue and function ops ------------------------------------------ */
2678 2687
2679 case BC_UGET: 2688 case BC_UGET:
2680 dasm_put(Dst, 13178, offsetof(GCfuncL, uvptr), DtA(->v)); 2689 dasm_put(Dst, 13181, offsetof(GCfuncL, uvptr), DtA(->v));
2681 break; 2690 break;
2682 case BC_USETV: 2691 case BC_USETV:
2683#define TV2MARKOFS \ 2692#define TV2MARKOFS \
2684 ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv)) 2693 ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv))
2685 dasm_put(Dst, 13222, offsetof(GCfuncL, uvptr), DtA(->closed), DtA(->v), TV2MARKOFS, LJ_GC_BLACK, LJ_TISGCV, LJ_TISNUM - LJ_TISGCV, Dt4(->gch.marked), LJ_GC_WHITES, GG_DISP2G); 2694 dasm_put(Dst, 13225, offsetof(GCfuncL, uvptr), DtA(->closed), DtA(->v), TV2MARKOFS, LJ_GC_BLACK, LJ_TISGCV, LJ_TISNUM - LJ_TISGCV, Dt4(->gch.marked), LJ_GC_WHITES, GG_DISP2G);
2686 dasm_put(Dst, 13312); 2695 dasm_put(Dst, 13315);
2687 break; 2696 break;
2688#undef TV2MARKOFS 2697#undef TV2MARKOFS
2689 case BC_USETS: 2698 case BC_USETS:
2690 dasm_put(Dst, 13324, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G); 2699 dasm_put(Dst, 13327, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G);
2691 break; 2700 break;
2692 case BC_USETN: 2701 case BC_USETN:
2693 dasm_put(Dst, 13415); 2702 dasm_put(Dst, 13418);
2694 if (sse) { 2703 if (sse) {
2695 dasm_put(Dst, 13420); 2704 dasm_put(Dst, 13423);
2696 } else { 2705 } else {
2697 dasm_put(Dst, 11710); 2706 dasm_put(Dst, 11713);
2698 } 2707 }
2699 dasm_put(Dst, 13427, offsetof(GCfuncL, uvptr), DtA(->v)); 2708 dasm_put(Dst, 13430, offsetof(GCfuncL, uvptr), DtA(->v));
2700 if (sse) { 2709 if (sse) {
2701 dasm_put(Dst, 13436); 2710 dasm_put(Dst, 13439);
2702 } else { 2711 } else {
2703 dasm_put(Dst, 13442); 2712 dasm_put(Dst, 13445);
2704 } 2713 }
2705 dasm_put(Dst, 11200); 2714 dasm_put(Dst, 11203);
2706 break; 2715 break;
2707 case BC_USETP: 2716 case BC_USETP:
2708 dasm_put(Dst, 13445, offsetof(GCfuncL, uvptr), DtA(->v)); 2717 dasm_put(Dst, 13448, offsetof(GCfuncL, uvptr), DtA(->v));
2709 break; 2718 break;
2710 case BC_UCLO: 2719 case BC_UCLO:
2711 dasm_put(Dst, 13482, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base)); 2720 dasm_put(Dst, 13485, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base));
2712 break; 2721 break;
2713 2722
2714 case BC_FNEW: 2723 case BC_FNEW:
2715 dasm_put(Dst, 13536, Dt1(->base), Dt1(->base), LJ_TFUNC); 2724 dasm_put(Dst, 13539, Dt1(->base), Dt1(->base), LJ_TFUNC);
2716 break; 2725 break;
2717 2726
2718 /* -- Table ops --------------------------------------------------------- */ 2727 /* -- Table ops --------------------------------------------------------- */
2719 2728
2720 case BC_TNEW: 2729 case BC_TNEW:
2721 dasm_put(Dst, 13607, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB); 2730 dasm_put(Dst, 13610, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB);
2722 break; 2731 break;
2723 case BC_TDUP: 2732 case BC_TDUP:
2724 dasm_put(Dst, 13733, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB); 2733 dasm_put(Dst, 13736, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB);
2725 break; 2734 break;
2726 2735
2727 case BC_GGET: 2736 case BC_GGET:
2728 dasm_put(Dst, 13825, Dt7(->env)); 2737 dasm_put(Dst, 13828, Dt7(->env));
2729 break; 2738 break;
2730 case BC_GSET: 2739 case BC_GSET:
2731 dasm_put(Dst, 13843, Dt7(->env)); 2740 dasm_put(Dst, 13846, Dt7(->env));
2732 break; 2741 break;
2733 2742
2734 case BC_TGETV: 2743 case BC_TGETV:
2735 dasm_put(Dst, 13861, LJ_TTAB); 2744 dasm_put(Dst, 13864, LJ_TTAB);
2736 if (LJ_DUALNUM) { 2745 if (LJ_DUALNUM) {
2737 dasm_put(Dst, 13884, LJ_TISNUM); 2746 dasm_put(Dst, 13887, LJ_TISNUM);
2738 } else { 2747 } else {
2739 dasm_put(Dst, 13898, LJ_TISNUM); 2748 dasm_put(Dst, 13901, LJ_TISNUM);
2740 if (sse) { 2749 if (sse) {
2741 dasm_put(Dst, 13909); 2750 dasm_put(Dst, 13912);
2742 } else { 2751 } else {
2743 dasm_put(Dst, 13930); 2752 dasm_put(Dst, 13933);
2744 if (cmov) { 2753 if (cmov) {
2745 dasm_put(Dst, 3899); 2754 dasm_put(Dst, 3899);
2746 } else { 2755 } else {
@@ -2748,30 +2757,30 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2748 } 2757 }
2749 dasm_put(Dst, 2635); 2758 dasm_put(Dst, 2635);
2750 } 2759 }
2751 dasm_put(Dst, 13940); 2760 dasm_put(Dst, 13943);
2752 } 2761 }
2753 dasm_put(Dst, 13945, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index, LJ_TNIL); 2762 dasm_put(Dst, 13948, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index, LJ_TNIL);
2754 dasm_put(Dst, 14040, LJ_TSTR); 2763 dasm_put(Dst, 14043, LJ_TSTR);
2755 break; 2764 break;
2756 case BC_TGETS: 2765 case BC_TGETS:
2757 dasm_put(Dst, 14058, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); 2766 dasm_put(Dst, 14061, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
2758 dasm_put(Dst, 14146, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 2767 dasm_put(Dst, 14149, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
2759 break; 2768 break;
2760 case BC_TGETB: 2769 case BC_TGETB:
2761 dasm_put(Dst, 14216, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 2770 dasm_put(Dst, 14219, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
2762 dasm_put(Dst, 14315, LJ_TNIL); 2771 dasm_put(Dst, 14318, LJ_TNIL);
2763 break; 2772 break;
2764 2773
2765 case BC_TSETV: 2774 case BC_TSETV:
2766 dasm_put(Dst, 14332, LJ_TTAB); 2775 dasm_put(Dst, 14335, LJ_TTAB);
2767 if (LJ_DUALNUM) { 2776 if (LJ_DUALNUM) {
2768 dasm_put(Dst, 13884, LJ_TISNUM); 2777 dasm_put(Dst, 13887, LJ_TISNUM);
2769 } else { 2778 } else {
2770 dasm_put(Dst, 13898, LJ_TISNUM); 2779 dasm_put(Dst, 13901, LJ_TISNUM);
2771 if (sse) { 2780 if (sse) {
2772 dasm_put(Dst, 13909); 2781 dasm_put(Dst, 13912);
2773 } else { 2782 } else {
2774 dasm_put(Dst, 13930); 2783 dasm_put(Dst, 13933);
2775 if (cmov) { 2784 if (cmov) {
2776 dasm_put(Dst, 3899); 2785 dasm_put(Dst, 3899);
2777 } else { 2786 } else {
@@ -2779,115 +2788,115 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2779 } 2788 }
2780 dasm_put(Dst, 2635); 2789 dasm_put(Dst, 2635);
2781 } 2790 }
2782 dasm_put(Dst, 14355); 2791 dasm_put(Dst, 14358);
2783 } 2792 }
2784 dasm_put(Dst, 14360, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex); 2793 dasm_put(Dst, 14363, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex);
2785 dasm_put(Dst, 14444, LJ_TSTR, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 2794 dasm_put(Dst, 14447, LJ_TSTR, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
2786 break; 2795 break;
2787 case BC_TSETS: 2796 case BC_TSETS:
2788 dasm_put(Dst, 14501, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); 2797 dasm_put(Dst, 14504, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
2789 dasm_put(Dst, 14576, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next)); 2798 dasm_put(Dst, 14579, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next));
2790 dasm_put(Dst, 14668, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt1(->base), Dt1(->base), Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 2799 dasm_put(Dst, 14671, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt1(->base), Dt1(->base), Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
2791 break; 2800 break;
2792 case BC_TSETB: 2801 case BC_TSETB:
2793 dasm_put(Dst, 14764, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable)); 2802 dasm_put(Dst, 14767, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable));
2794 dasm_put(Dst, 14862, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 2803 dasm_put(Dst, 14865, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
2795 break; 2804 break;
2796 2805
2797 case BC_TSETM: 2806 case BC_TSETM:
2798 dasm_put(Dst, 14908, Dt6(->marked), LJ_GC_BLACK, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base)); 2807 dasm_put(Dst, 14911, Dt6(->marked), LJ_GC_BLACK, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base));
2799 dasm_put(Dst, 15057, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 2808 dasm_put(Dst, 15060, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
2800 break; 2809 break;
2801 2810
2802 /* -- Calls and vararg handling ----------------------------------------- */ 2811 /* -- Calls and vararg handling ----------------------------------------- */
2803 2812
2804 case BC_CALL: case BC_CALLM: 2813 case BC_CALL: case BC_CALLM:
2805 dasm_put(Dst, 12201); 2814 dasm_put(Dst, 12204);
2806 if (op == BC_CALLM) { 2815 if (op == BC_CALLM) {
2807 dasm_put(Dst, 15075); 2816 dasm_put(Dst, 15078);
2808 } 2817 }
2809 dasm_put(Dst, 15080, LJ_TFUNC, Dt7(->pc)); 2818 dasm_put(Dst, 15083, LJ_TFUNC, Dt7(->pc));
2810 break; 2819 break;
2811 2820
2812 case BC_CALLMT: 2821 case BC_CALLMT:
2813 dasm_put(Dst, 15075); 2822 dasm_put(Dst, 15078);
2814 break; 2823 break;
2815 case BC_CALLT: 2824 case BC_CALLT:
2816 dasm_put(Dst, 15121, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc)); 2825 dasm_put(Dst, 15124, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc));
2817 dasm_put(Dst, 15239, FRAME_TYPE, Dt7(->pc), PC2PROTO(k), FRAME_VARG, FRAME_TYPEP, FRAME_VARG); 2826 dasm_put(Dst, 15242, FRAME_TYPE, Dt7(->pc), PC2PROTO(k), FRAME_VARG, FRAME_TYPEP, FRAME_VARG);
2818 break; 2827 break;
2819 2828
2820 case BC_ITERC: 2829 case BC_ITERC:
2821 dasm_put(Dst, 15309, LJ_TFUNC, 2+1, Dt7(->pc)); 2830 dasm_put(Dst, 15312, LJ_TFUNC, 2+1, Dt7(->pc));
2822 break; 2831 break;
2823 2832
2824 case BC_ITERN: 2833 case BC_ITERN:
2825#if LJ_HASJIT 2834#if LJ_HASJIT
2826#endif 2835#endif
2827 dasm_put(Dst, 15389, Dt6(->asize), Dt6(->array), LJ_TNIL); 2836 dasm_put(Dst, 15392, Dt6(->asize), Dt6(->array), LJ_TNIL);
2828 if (LJ_DUALNUM) { 2837 if (LJ_DUALNUM) {
2829 dasm_put(Dst, 12095, LJ_TISNUM); 2838 dasm_put(Dst, 12098, LJ_TISNUM);
2830 } else if (sse) { 2839 } else if (sse) {
2831 dasm_put(Dst, 12171); 2840 dasm_put(Dst, 12174);
2832 } else { 2841 } else {
2833 dasm_put(Dst, 15435); 2842 dasm_put(Dst, 15438);
2834 } 2843 }
2835 dasm_put(Dst, 15441); 2844 dasm_put(Dst, 15444);
2836 if (LJ_DUALNUM) { 2845 if (LJ_DUALNUM) {
2837 } else if (sse) { 2846 } else if (sse) {
2838 dasm_put(Dst, 12060); 2847 dasm_put(Dst, 12063);
2839 } else { 2848 } else {
2840 dasm_put(Dst, 12072); 2849 dasm_put(Dst, 12075);
2841 } 2850 }
2842 dasm_put(Dst, 15460, -BCBIAS_J*4); 2851 dasm_put(Dst, 15463, -BCBIAS_J*4);
2843 if (!LJ_DUALNUM && !sse) { 2852 if (!LJ_DUALNUM && !sse) {
2844 dasm_put(Dst, 15511); 2853 dasm_put(Dst, 15514);
2845 } 2854 }
2846 dasm_put(Dst, 15517, Dt6(->hmask), sizeof(Node), Dt6(->node), DtB(->val.it), LJ_TNIL, DtB(->key.gcr), DtB(->key.it), DtB(->val.gcr), DtB(->val.it)); 2855 dasm_put(Dst, 15520, Dt6(->hmask), sizeof(Node), Dt6(->node), DtB(->val.it), LJ_TNIL, DtB(->key.gcr), DtB(->key.it), DtB(->val.gcr), DtB(->val.it));
2847 dasm_put(Dst, 15592); 2856 dasm_put(Dst, 15595);
2848 break; 2857 break;
2849 2858
2850 case BC_ISNEXT: 2859 case BC_ISNEXT:
2851 dasm_put(Dst, 15600, LJ_TFUNC, LJ_TTAB, LJ_TNIL, Dt8(->ffid), FF_next_N, -BCBIAS_J*4, BC_JMP, -BCBIAS_J*4, BC_ITERC); 2860 dasm_put(Dst, 15603, LJ_TFUNC, LJ_TTAB, LJ_TNIL, Dt8(->ffid), FF_next_N, -BCBIAS_J*4, BC_JMP, -BCBIAS_J*4, BC_ITERC);
2852 break; 2861 break;
2853 2862
2854 case BC_VARG: 2863 case BC_VARG:
2855 dasm_put(Dst, 15699, (8+FRAME_VARG), LJ_TNIL, Dt1(->maxstack)); 2864 dasm_put(Dst, 15702, (8+FRAME_VARG), LJ_TNIL, Dt1(->maxstack));
2856 dasm_put(Dst, 15863, Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top)); 2865 dasm_put(Dst, 15866, Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top));
2857 break; 2866 break;
2858 2867
2859 /* -- Returns ----------------------------------------------------------- */ 2868 /* -- Returns ----------------------------------------------------------- */
2860 2869
2861 case BC_RETM: 2870 case BC_RETM:
2862 dasm_put(Dst, 15075); 2871 dasm_put(Dst, 15078);
2863 break; 2872 break;
2864 2873
2865 case BC_RET: case BC_RET0: case BC_RET1: 2874 case BC_RET: case BC_RET0: case BC_RET1:
2866 if (op != BC_RET0) { 2875 if (op != BC_RET0) {
2867 dasm_put(Dst, 15934); 2876 dasm_put(Dst, 15937);
2868 } 2877 }
2869 dasm_put(Dst, 15938, FRAME_TYPE); 2878 dasm_put(Dst, 15941, FRAME_TYPE);
2870 switch (op) { 2879 switch (op) {
2871 case BC_RET: 2880 case BC_RET:
2872 dasm_put(Dst, 15957); 2881 dasm_put(Dst, 15960);
2873 break; 2882 break;
2874 case BC_RET1: 2883 case BC_RET1:
2875 dasm_put(Dst, 16015); 2884 dasm_put(Dst, 16018);
2876 /* fallthrough */ 2885 /* fallthrough */
2877 case BC_RET0: 2886 case BC_RET0:
2878 dasm_put(Dst, 16031); 2887 dasm_put(Dst, 16034);
2879 default: 2888 default:
2880 break; 2889 break;
2881 } 2890 }
2882 dasm_put(Dst, 16042, Dt7(->pc), PC2PROTO(k)); 2891 dasm_put(Dst, 16045, Dt7(->pc), PC2PROTO(k));
2883 if (op == BC_RET) { 2892 if (op == BC_RET) {
2884 dasm_put(Dst, 16084, LJ_TNIL); 2893 dasm_put(Dst, 16087, LJ_TNIL);
2885 } else { 2894 } else {
2886 dasm_put(Dst, 16093, LJ_TNIL); 2895 dasm_put(Dst, 16096, LJ_TNIL);
2887 } 2896 }
2888 dasm_put(Dst, 16100, -FRAME_VARG, FRAME_TYPEP); 2897 dasm_put(Dst, 16103, -FRAME_VARG, FRAME_TYPEP);
2889 if (op != BC_RET0) { 2898 if (op != BC_RET0) {
2890 dasm_put(Dst, 16124); 2899 dasm_put(Dst, 16127);
2891 } 2900 }
2892 dasm_put(Dst, 4883); 2901 dasm_put(Dst, 4883);
2893 break; 2902 break;
@@ -2897,7 +2906,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2897 2906
2898 case BC_FORL: 2907 case BC_FORL:
2899#if LJ_HASJIT 2908#if LJ_HASJIT
2900 dasm_put(Dst, 16128, HOTCOUNT_PCMASK, GG_DISP2HOT); 2909 dasm_put(Dst, 16131, HOTCOUNT_PCMASK, GG_DISP2HOT);
2901#endif 2910#endif
2902 break; 2911 break;
2903 2912
@@ -2909,104 +2918,111 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2909 case BC_FORI: 2918 case BC_FORI:
2910 case BC_IFORL: 2919 case BC_IFORL:
2911 vk = (op == BC_IFORL || op == BC_JFORL); 2920 vk = (op == BC_IFORL || op == BC_JFORL);
2912 dasm_put(Dst, 16149); 2921 dasm_put(Dst, 16152);
2913 if (LJ_DUALNUM) { 2922 if (LJ_DUALNUM) {
2914 dasm_put(Dst, 16153, LJ_TISNUM); 2923 dasm_put(Dst, 16156, LJ_TISNUM);
2915 if (!vk) { 2924 if (!vk) {
2916 dasm_put(Dst, 16163, LJ_TISNUM, LJ_TISNUM); 2925 dasm_put(Dst, 16166, LJ_TISNUM, LJ_TISNUM);
2917 } else { 2926 } else {
2918 dasm_put(Dst, 16192); 2927#ifdef LUA_USE_ASSERT
2928 dasm_put(Dst, 16195, LJ_TISNUM, LJ_TISNUM);
2929#endif
2930 dasm_put(Dst, 16214);
2919 } 2931 }
2920 dasm_put(Dst, 16211, LJ_TISNUM); 2932 dasm_put(Dst, 16233, LJ_TISNUM);
2921 if (op == BC_FORI) { 2933 if (op == BC_FORI) {
2922 dasm_put(Dst, 16222, -BCBIAS_J*4); 2934 dasm_put(Dst, 16244, -BCBIAS_J*4);
2923 } else if (op == BC_JFORI) { 2935 } else if (op == BC_JFORI) {
2924 dasm_put(Dst, 16236, -BCBIAS_J*4, BC_JLOOP); 2936 dasm_put(Dst, 16258, -BCBIAS_J*4, BC_JLOOP);
2925 } else if (op == BC_IFORL) { 2937 } else if (op == BC_IFORL) {
2926 dasm_put(Dst, 16254, -BCBIAS_J*4); 2938 dasm_put(Dst, 16276, -BCBIAS_J*4);
2927 } else { 2939 } else {
2928 dasm_put(Dst, 16246, BC_JLOOP); 2940 dasm_put(Dst, 16268, BC_JLOOP);
2929 } 2941 }
2930 dasm_put(Dst, 16268); 2942 dasm_put(Dst, 16290);
2931 if (vk) { 2943 if (vk) {
2932 dasm_put(Dst, 16291); 2944 dasm_put(Dst, 16313);
2933 } 2945 }
2934 dasm_put(Dst, 16211, LJ_TISNUM); 2946 dasm_put(Dst, 16233, LJ_TISNUM);
2935 if (op == BC_FORI) { 2947 if (op == BC_FORI) {
2936 dasm_put(Dst, 16300); 2948 dasm_put(Dst, 16322);
2937 } else if (op == BC_JFORI) { 2949 } else if (op == BC_JFORI) {
2938 dasm_put(Dst, 16305, -BCBIAS_J*4, BC_JLOOP); 2950 dasm_put(Dst, 16327, -BCBIAS_J*4, BC_JLOOP);
2939 } else if (op == BC_IFORL) { 2951 } else if (op == BC_IFORL) {
2940 dasm_put(Dst, 16319); 2952 dasm_put(Dst, 16341);
2941 } else { 2953 } else {
2942 dasm_put(Dst, 16315, BC_JLOOP); 2954 dasm_put(Dst, 16337, BC_JLOOP);
2943 } 2955 }
2944 dasm_put(Dst, 16324); 2956 dasm_put(Dst, 16346);
2945 } else if (!vk) { 2957 } else if (!vk) {
2946 dasm_put(Dst, 16331, LJ_TISNUM); 2958 dasm_put(Dst, 16353, LJ_TISNUM);
2947 } 2959 }
2948 if (!vk) { 2960 if (!vk) {
2949 dasm_put(Dst, 16337, LJ_TISNUM); 2961 dasm_put(Dst, 16359, LJ_TISNUM);
2962 } else {
2963#ifdef LUA_USE_ASSERT
2964 dasm_put(Dst, 16373, LJ_TISNUM, LJ_TISNUM);
2965#endif
2950 } 2966 }
2951 dasm_put(Dst, 16351); 2967 dasm_put(Dst, 16392);
2952 if (!vk) { 2968 if (!vk) {
2953 dasm_put(Dst, 16355, LJ_TISNUM); 2969 dasm_put(Dst, 16396, LJ_TISNUM);
2954 } 2970 }
2955 if (sse) { 2971 if (sse) {
2956 dasm_put(Dst, 16364); 2972 dasm_put(Dst, 16405);
2957 if (vk) { 2973 if (vk) {
2958 dasm_put(Dst, 16376); 2974 dasm_put(Dst, 16417);
2959 } else { 2975 } else {
2960 dasm_put(Dst, 16395); 2976 dasm_put(Dst, 16436);
2961 } 2977 }
2962 dasm_put(Dst, 16400); 2978 dasm_put(Dst, 16441);
2963 } else { 2979 } else {
2964 dasm_put(Dst, 16413); 2980 dasm_put(Dst, 16454);
2965 if (vk) { 2981 if (vk) {
2966 dasm_put(Dst, 16419); 2982 dasm_put(Dst, 16460);
2967 } else { 2983 } else {
2968 dasm_put(Dst, 16435); 2984 dasm_put(Dst, 16476);
2969 } 2985 }
2970 dasm_put(Dst, 16443); 2986 dasm_put(Dst, 16484);
2971 if (cmov) { 2987 if (cmov) {
2972 dasm_put(Dst, 3899); 2988 dasm_put(Dst, 3899);
2973 } else { 2989 } else {
2974 dasm_put(Dst, 3905); 2990 dasm_put(Dst, 3905);
2975 } 2991 }
2976 if (!cmov) { 2992 if (!cmov) {
2977 dasm_put(Dst, 16448); 2993 dasm_put(Dst, 16489);
2978 } 2994 }
2979 } 2995 }
2980 if (op == BC_FORI) { 2996 if (op == BC_FORI) {
2981 if (LJ_DUALNUM) { 2997 if (LJ_DUALNUM) {
2982 dasm_put(Dst, 16454); 2998 dasm_put(Dst, 16495);
2983 } else { 2999 } else {
2984 dasm_put(Dst, 16459, -BCBIAS_J*4); 3000 dasm_put(Dst, 16500, -BCBIAS_J*4);
2985 } 3001 }
2986 } else if (op == BC_JFORI) { 3002 } else if (op == BC_JFORI) {
2987 dasm_put(Dst, 16469, -BCBIAS_J*4, BC_JLOOP); 3003 dasm_put(Dst, 16510, -BCBIAS_J*4, BC_JLOOP);
2988 } else if (op == BC_IFORL) { 3004 } else if (op == BC_IFORL) {
2989 if (LJ_DUALNUM) { 3005 if (LJ_DUALNUM) {
2990 dasm_put(Dst, 16483); 3006 dasm_put(Dst, 16524);
2991 } else { 3007 } else {
2992 dasm_put(Dst, 16488, -BCBIAS_J*4); 3008 dasm_put(Dst, 16529, -BCBIAS_J*4);
2993 } 3009 }
2994 } else { 3010 } else {
2995 dasm_put(Dst, 16479, BC_JLOOP); 3011 dasm_put(Dst, 16520, BC_JLOOP);
2996 } 3012 }
2997 if (LJ_DUALNUM) { 3013 if (LJ_DUALNUM) {
2998 dasm_put(Dst, 11097); 3014 dasm_put(Dst, 11100);
2999 } else { 3015 } else {
3000 dasm_put(Dst, 11838); 3016 dasm_put(Dst, 11841);
3001 } 3017 }
3002 if (sse) { 3018 if (sse) {
3003 dasm_put(Dst, 16498); 3019 dasm_put(Dst, 16539);
3004 } 3020 }
3005 break; 3021 break;
3006 3022
3007 case BC_ITERL: 3023 case BC_ITERL:
3008#if LJ_HASJIT 3024#if LJ_HASJIT
3009 dasm_put(Dst, 16128, HOTCOUNT_PCMASK, GG_DISP2HOT); 3025 dasm_put(Dst, 16131, HOTCOUNT_PCMASK, GG_DISP2HOT);
3010#endif 3026#endif
3011 break; 3027 break;
3012 3028
@@ -3015,33 +3031,33 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
3015 break; 3031 break;
3016#endif 3032#endif
3017 case BC_IITERL: 3033 case BC_IITERL:
3018 dasm_put(Dst, 16509, LJ_TNIL); 3034 dasm_put(Dst, 16550, LJ_TNIL);
3019 if (op == BC_JITERL) { 3035 if (op == BC_JITERL) {
3020 dasm_put(Dst, 16524, BC_JLOOP); 3036 dasm_put(Dst, 16565, BC_JLOOP);
3021 } else { 3037 } else {
3022 dasm_put(Dst, 16538, -BCBIAS_J*4); 3038 dasm_put(Dst, 16579, -BCBIAS_J*4);
3023 } 3039 }
3024 dasm_put(Dst, 11198); 3040 dasm_put(Dst, 11201);
3025 break; 3041 break;
3026 3042
3027 case BC_LOOP: 3043 case BC_LOOP:
3028#if LJ_HASJIT 3044#if LJ_HASJIT
3029 dasm_put(Dst, 16128, HOTCOUNT_PCMASK, GG_DISP2HOT); 3045 dasm_put(Dst, 16131, HOTCOUNT_PCMASK, GG_DISP2HOT);
3030#endif 3046#endif
3031 break; 3047 break;
3032 3048
3033 case BC_ILOOP: 3049 case BC_ILOOP:
3034 dasm_put(Dst, 11200); 3050 dasm_put(Dst, 11203);
3035 break; 3051 break;
3036 3052
3037 case BC_JLOOP: 3053 case BC_JLOOP:
3038#if LJ_HASJIT 3054#if LJ_HASJIT
3039 dasm_put(Dst, 16554, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L)); 3055 dasm_put(Dst, 16595, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L));
3040#endif 3056#endif
3041 break; 3057 break;
3042 3058
3043 case BC_JMP: 3059 case BC_JMP:
3044 dasm_put(Dst, 16577, -BCBIAS_J*4); 3060 dasm_put(Dst, 16618, -BCBIAS_J*4);
3045 break; 3061 break;
3046 3062
3047 /* -- Function headers -------------------------------------------------- */ 3063 /* -- Function headers -------------------------------------------------- */
@@ -3055,7 +3071,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
3055 3071
3056 case BC_FUNCF: 3072 case BC_FUNCF:
3057#if LJ_HASJIT 3073#if LJ_HASJIT
3058 dasm_put(Dst, 16601, HOTCOUNT_PCMASK, GG_DISP2HOT); 3074 dasm_put(Dst, 16642, HOTCOUNT_PCMASK, GG_DISP2HOT);
3059#endif 3075#endif
3060 case BC_FUNCV: /* NYI: compiled vararg functions. */ 3076 case BC_FUNCV: /* NYI: compiled vararg functions. */
3061 break; 3077 break;
@@ -3065,13 +3081,13 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
3065 break; 3081 break;
3066#endif 3082#endif
3067 case BC_IFUNCF: 3083 case BC_IFUNCF:
3068 dasm_put(Dst, 16622, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams)); 3084 dasm_put(Dst, 16663, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams));
3069 if (op == BC_JFUNCF) { 3085 if (op == BC_JFUNCF) {
3070 dasm_put(Dst, 16652, BC_JLOOP); 3086 dasm_put(Dst, 16693, BC_JLOOP);
3071 } else { 3087 } else {
3072 dasm_put(Dst, 11200); 3088 dasm_put(Dst, 11203);
3073 } 3089 }
3074 dasm_put(Dst, 16661, LJ_TNIL); 3090 dasm_put(Dst, 16702, LJ_TNIL);
3075 break; 3091 break;
3076 3092
3077 case BC_JFUNCV: 3093 case BC_JFUNCV:
@@ -3082,30 +3098,30 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
3082 break; /* NYI: compiled vararg functions. */ 3098 break; /* NYI: compiled vararg functions. */
3083 3099
3084 case BC_IFUNCV: 3100 case BC_IFUNCV:
3085 dasm_put(Dst, 16683, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL); 3101 dasm_put(Dst, 16724, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL);
3086 if (op == BC_JFUNCV) { 3102 if (op == BC_JFUNCV) {
3087 dasm_put(Dst, 16652, BC_JLOOP); 3103 dasm_put(Dst, 16693, BC_JLOOP);
3088 } else { 3104 } else {
3089 dasm_put(Dst, 16774, -4+PC2PROTO(k)); 3105 dasm_put(Dst, 16815, -4+PC2PROTO(k));
3090 } 3106 }
3091 dasm_put(Dst, 16796, LJ_TNIL); 3107 dasm_put(Dst, 16837, LJ_TNIL);
3092 break; 3108 break;
3093 3109
3094 case BC_FUNCC: 3110 case BC_FUNCC:
3095 case BC_FUNCCW: 3111 case BC_FUNCCW:
3096 dasm_put(Dst, 16818, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top)); 3112 dasm_put(Dst, 16859, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top));
3097 if (op == BC_FUNCC) { 3113 if (op == BC_FUNCC) {
3098 dasm_put(Dst, 16847); 3114 dasm_put(Dst, 16888);
3099 } else { 3115 } else {
3100 dasm_put(Dst, 16851); 3116 dasm_put(Dst, 16892);
3101 } 3117 }
3102 dasm_put(Dst, 16859, DISPATCH_GL(vmstate), ~LJ_VMST_C); 3118 dasm_put(Dst, 16900, DISPATCH_GL(vmstate), ~LJ_VMST_C);
3103 if (op == BC_FUNCC) { 3119 if (op == BC_FUNCC) {
3104 dasm_put(Dst, 16868); 3120 dasm_put(Dst, 16909);
3105 } else { 3121 } else {
3106 dasm_put(Dst, 16872, DISPATCH_GL(wrapf)); 3122 dasm_put(Dst, 16913, DISPATCH_GL(wrapf));
3107 } 3123 }
3108 dasm_put(Dst, 16877, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top)); 3124 dasm_put(Dst, 16918, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top));
3109 break; 3125 break;
3110 3126
3111 /* ---------------------------------------------------------------------- */ 3127 /* ---------------------------------------------------------------------- */
@@ -3133,7 +3149,7 @@ static int build_backend(BuildCtx *ctx)
3133 3149
3134 build_subroutines(ctx, cmov, sse); 3150 build_subroutines(ctx, cmov, sse);
3135 3151
3136 dasm_put(Dst, 16902); 3152 dasm_put(Dst, 16943);
3137 for (op = 0; op < BC__MAX; op++) 3153 for (op = 0; op < BC__MAX; op++)
3138 build_ins(ctx, (BCOp)op, op, cmov, sse); 3154 build_ins(ctx, (BCOp)op, op, cmov, sse);
3139 3155