summaryrefslogtreecommitdiff
path: root/src/buildvm_x86.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/buildvm_x86.h')
-rw-r--r--src/buildvm_x86.h688
1 files changed, 346 insertions, 342 deletions
diff --git a/src/buildvm_x86.h b/src/buildvm_x86.h
index cc1ac38d..ef160e61 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[15167] = { 15static const unsigned char build_actionlist[15165] = {
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,252,247,198,237,15,132,244,10,199, 18 20,252,247,198,237,15,132,244,13,248,14,252,247,198,237,15,132,244,10,199,
@@ -406,30 +406,30 @@ static const unsigned char build_actionlist[15167] = {
406 183,70,252,254,252,255,164,253,171,233,248,139,131,198,4,139,77,232,137,76, 406 183,70,252,254,252,255,164,253,171,233,248,139,131,198,4,139,77,232,137,76,
407 36,20,252,233,244,4,248,140,255,139,106,252,248,139,173,233,15,182,133,233, 407 36,20,252,233,244,4,248,140,255,139,106,252,248,139,173,233,15,182,133,233,
408 141,4,194,139,108,36,48,137,149,233,137,133,233,137,252,242,141,139,233,137, 408 141,4,194,139,108,36,48,137,149,233,137,133,233,137,252,242,141,139,233,137,
409 171,233,137,116,36,24,232,251,1,21,252,233,244,3,255,248,141,255,199,131, 409 171,233,137,116,36,24,232,251,1,21,252,233,244,3,255,248,141,137,116,36,24,
410 233,0,0,0,0,252,233,244,247,255,248,142,255,137,171,233,248,1,255,141,68, 410 255,248,142,255,137,116,36,24,131,206,1,248,1,255,141,68,194,252,248,139,
411 194,252,248,139,108,36,48,137,149,233,137,133,233,137,252,242,137,252,233, 411 108,36,48,137,149,233,137,133,233,137,252,242,137,252,233,232,251,1,22,199,
412 137,116,36,24,232,251,1,22,199,68,36,24,0,0,0,0,139,149,233,137,193,139,133, 412 68,36,24,0,0,0,0,255,131,230,252,254,255,139,149,233,137,193,139,133,233,
413 233,41,208,137,205,15,182,78,252,253,193,232,3,131,192,1,252,255,229,248, 413 41,208,137,205,15,182,78,252,253,193,232,3,131,192,1,252,255,229,248,143,
414 143,255,85,141,108,36,12,85,83,82,81,80,15,182,69,252,252,138,101,252,248, 414 255,85,141,108,36,12,85,83,82,81,80,15,182,69,252,252,138,101,252,248,137,
415 137,125,252,252,137,117,252,248,139,93,0,139,139,233,199,131,233,237,137, 415 125,252,252,137,117,252,248,139,93,0,139,139,233,199,131,233,237,137,131,
416 131,233,137,139,233,129,252,236,239,252,247,131,233,237,15,132,244,247,252, 416 233,137,139,233,129,252,236,239,252,247,131,233,237,15,132,244,247,252,242,
417 242,15,17,125,216,252,242,15,17,117,208,252,242,15,17,109,200,252,242,15, 417 15,17,125,216,252,242,15,17,117,208,252,242,15,17,109,200,252,242,15,17,101,
418 17,101,192,252,242,15,17,93,184,252,242,15,17,85,176,252,242,15,17,77,168, 418 192,252,242,15,17,93,184,252,242,15,17,85,176,252,242,15,17,77,168,252,242,
419 252,242,15,17,69,160,248,1,139,171,233,139,147,233,137,171,233,137,149,233, 419 15,17,69,160,248,1,139,171,233,139,147,233,137,171,233,137,149,233,141,84,
420 141,84,36,16,141,139,233,232,251,1,23,137,196,139,149,233,139,116,36,24,137, 420 36,16,141,139,233,232,251,1,23,137,196,139,149,233,139,116,36,24,137,108,
421 108,36,48,255,248,144,255,139,122,252,248,139,191,233,139,191,233,199,131, 421 36,48,255,248,144,255,139,122,252,248,139,191,233,139,191,233,199,131,233,
422 233,0,0,0,0,199,131,233,237,139,6,15,182,204,15,182,232,131,198,4,193,232, 422 0,0,0,0,199,131,233,237,139,6,15,182,204,15,182,232,131,198,4,193,232,16,
423 16,252,255,36,171,255,248,82,255,217,124,36,4,137,68,36,8,102,184,0,4,102, 423 252,255,36,171,255,248,82,255,217,124,36,4,137,68,36,8,102,184,0,4,102,11,
424 11,68,36,4,102,37,252,255,252,247,102,137,68,36,6,217,108,36,6,217,252,252, 424 68,36,4,102,37,252,255,252,247,102,137,68,36,6,217,108,36,6,217,252,252,217,
425 217,108,36,4,139,68,36,8,195,255,248,145,102,15,252,239,210,102,15,118,210, 425 108,36,4,139,68,36,8,195,255,248,145,102,15,252,239,210,102,15,118,210,102,
426 102,15,115,210,1,184,0,0,48,67,102,15,110,216,102,15,112,219,81,15,40,200, 426 15,115,210,1,184,0,0,48,67,102,15,110,216,102,15,112,219,81,15,40,200,102,
427 102,15,84,202,102,15,46,217,15,134,244,247,102,15,85,208,252,242,15,88,203, 427 15,84,202,102,15,46,217,15,134,244,247,102,15,85,208,252,242,15,88,203,252,
428 252,242,15,92,203,102,15,86,202,184,0,0,252,240,63,102,15,110,208,102,15, 428 242,15,92,203,102,15,86,202,184,0,0,252,240,63,102,15,110,208,102,15,112,
429 112,210,81,252,242,15,194,193,1,102,15,84,194,252,242,15,92,200,15,40,193, 429 210,81,252,242,15,194,193,1,102,15,84,194,252,242,15,92,200,15,40,193,248,
430 248,1,195,248,84,255,217,124,36,4,137,68,36,8,102,184,0,8,102,11,68,36,4, 430 1,195,248,84,255,217,124,36,4,137,68,36,8,102,184,0,8,102,11,68,36,4,102,
431 102,37,252,255,252,251,102,137,68,36,6,217,108,36,6,217,252,252,217,108,36, 431 37,252,255,252,251,102,137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,
432 4,139,68,36,8,195,255,248,146,102,15,252,239,210,102,15,118,210,102,15,115, 432 139,68,36,8,195,255,248,146,102,15,252,239,210,102,15,118,210,102,15,115,
433 210,1,184,0,0,48,67,102,15,110,216,102,15,112,219,81,15,40,200,102,15,84, 433 210,1,184,0,0,48,67,102,15,110,216,102,15,112,219,81,15,40,200,102,15,84,
434 202,102,15,46,217,15,134,244,247,102,15,85,208,252,242,15,88,203,252,242, 434 202,102,15,46,217,15,134,244,247,102,15,85,208,252,242,15,88,203,252,242,
435 15,92,203,102,15,86,202,184,0,0,252,240,191,102,15,110,208,102,15,112,210, 435 15,92,203,102,15,86,202,184,0,0,252,240,191,102,15,110,208,102,15,112,210,
@@ -1441,99 +1441,103 @@ static void build_subroutines(BuildCtx *ctx, int cmov, int sse)
1441#endif 1441#endif
1442 dasm_put(Dst, 8157); 1442 dasm_put(Dst, 8157);
1443#if LJ_HASJIT 1443#if LJ_HASJIT
1444 dasm_put(Dst, 8160, DISPATCH_J(L)); 1444 dasm_put(Dst, 7989);
1445#endif 1445#endif
1446 dasm_put(Dst, 8172); 1446 dasm_put(Dst, 8164);
1447#if LJ_HASJIT 1447#if LJ_HASJIT
1448 dasm_put(Dst, 8175, DISPATCH_J(L)); 1448 dasm_put(Dst, 8167);
1449#endif 1449#endif
1450 dasm_put(Dst, 8181, Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top)); 1450 dasm_put(Dst, 8177, Dt1(->base), Dt1(->top));
1451#if LJ_HASJIT 1451#if LJ_HASJIT
1452 dasm_put(Dst, 8247, DISPATCH_GL(vmstate), DISPATCH_GL(vmstate), ~LJ_VMST_EXIT, DISPATCH_J(exitno), DISPATCH_J(parent), 8*8+16, DISPATCH_J(flags), JIT_F_SSE2, DISPATCH_GL(jit_L), DISPATCH_GL(jit_base), DISPATCH_J(L), Dt1(->base), GG_DISP2J, Dt1(->base)); 1452 dasm_put(Dst, 8211);
1453#endif 1453#endif
1454 dasm_put(Dst, 8390); 1454 dasm_put(Dst, 8216, Dt1(->base), Dt1(->top));
1455#if LJ_HASJIT 1455#if LJ_HASJIT
1456 dasm_put(Dst, 8393, Dt7(->pc), PC2PROTO(k), DISPATCH_GL(jit_L), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP); 1456 dasm_put(Dst, 8245, DISPATCH_GL(vmstate), DISPATCH_GL(vmstate), ~LJ_VMST_EXIT, DISPATCH_J(exitno), DISPATCH_J(parent), 8*8+16, DISPATCH_J(flags), JIT_F_SSE2, DISPATCH_GL(jit_L), DISPATCH_GL(jit_base), DISPATCH_J(L), Dt1(->base), GG_DISP2J, Dt1(->base));
1457#endif 1457#endif
1458 dasm_put(Dst, 8433); 1458 dasm_put(Dst, 8388);
1459#if LJ_HASJIT
1460 dasm_put(Dst, 8391, Dt7(->pc), PC2PROTO(k), DISPATCH_GL(jit_L), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP);
1461#endif
1462 dasm_put(Dst, 8431);
1459 if (!sse) { 1463 if (!sse) {
1460 dasm_put(Dst, 8436); 1464 dasm_put(Dst, 8434);
1461 } 1465 }
1462 dasm_put(Dst, 8481); 1466 dasm_put(Dst, 8479);
1463 if (!sse) { 1467 if (!sse) {
1464 dasm_put(Dst, 8583); 1468 dasm_put(Dst, 8581);
1465 } 1469 }
1466 dasm_put(Dst, 8628); 1470 dasm_put(Dst, 8626);
1467 if (!sse) { 1471 if (!sse) {
1468 dasm_put(Dst, 8730); 1472 dasm_put(Dst, 8728);
1469 } 1473 }
1470 dasm_put(Dst, 8769); 1474 dasm_put(Dst, 8767);
1471 if (sse) { 1475 if (sse) {
1472 dasm_put(Dst, 8874); 1476 dasm_put(Dst, 8872);
1473 } else { 1477 } else {
1474 dasm_put(Dst, 9004); 1478 dasm_put(Dst, 9002);
1475 } 1479 }
1476 dasm_put(Dst, 9051); 1480 dasm_put(Dst, 9049);
1477 if (!sse) { 1481 if (!sse) {
1478 dasm_put(Dst, 9125); 1482 dasm_put(Dst, 9123);
1479 if (cmov) { 1483 if (cmov) {
1480 dasm_put(Dst, 9136); 1484 dasm_put(Dst, 9134);
1481 } else { 1485 } else {
1482 dasm_put(Dst, 9140); 1486 dasm_put(Dst, 9138);
1483 } 1487 }
1484 dasm_put(Dst, 9147); 1488 dasm_put(Dst, 9145);
1485 dasm_put(Dst, 9221); 1489 dasm_put(Dst, 9219);
1486 dasm_put(Dst, 9321); 1490 dasm_put(Dst, 9319);
1487 if (cmov) { 1491 if (cmov) {
1488 dasm_put(Dst, 9324); 1492 dasm_put(Dst, 9322);
1489 } else { 1493 } else {
1490 dasm_put(Dst, 9328); 1494 dasm_put(Dst, 9326);
1491 } 1495 }
1492 dasm_put(Dst, 9335); 1496 dasm_put(Dst, 9333);
1493 if (cmov) { 1497 if (cmov) {
1494 dasm_put(Dst, 9136); 1498 dasm_put(Dst, 9134);
1495 } else { 1499 } else {
1496 dasm_put(Dst, 9140); 1500 dasm_put(Dst, 9138);
1497 } 1501 }
1498 dasm_put(Dst, 9353); 1502 dasm_put(Dst, 9351);
1499 } else { 1503 } else {
1500 dasm_put(Dst, 9432); 1504 dasm_put(Dst, 9430);
1501 } 1505 }
1502 dasm_put(Dst, 9435); 1506 dasm_put(Dst, 9433);
1503 dasm_put(Dst, 9520); 1507 dasm_put(Dst, 9518);
1504 dasm_put(Dst, 9651); 1508 dasm_put(Dst, 9649);
1505 dasm_put(Dst, 9850); 1509 dasm_put(Dst, 9848);
1506 if (sse) { 1510 if (sse) {
1507 dasm_put(Dst, 9873); 1511 dasm_put(Dst, 9871);
1508 dasm_put(Dst, 9930); 1512 dasm_put(Dst, 9928);
1509 dasm_put(Dst, 10021); 1513 dasm_put(Dst, 10019);
1510 } else { 1514 } else {
1511 dasm_put(Dst, 10063); 1515 dasm_put(Dst, 10061);
1512 dasm_put(Dst, 10155); 1516 dasm_put(Dst, 10153);
1513 } 1517 }
1514 dasm_put(Dst, 10201); 1518 dasm_put(Dst, 10199);
1515 if (sse) { 1519 if (sse) {
1516 dasm_put(Dst, 10207); 1520 dasm_put(Dst, 10205);
1517 dasm_put(Dst, 10312); 1521 dasm_put(Dst, 10310);
1518 dasm_put(Dst, 10395); 1522 dasm_put(Dst, 10393);
1519 } else { 1523 } else {
1520 dasm_put(Dst, 10467); 1524 dasm_put(Dst, 10465);
1521 dasm_put(Dst, 10550); 1525 dasm_put(Dst, 10548);
1522 if (cmov) { 1526 if (cmov) {
1523 dasm_put(Dst, 10605); 1527 dasm_put(Dst, 10603);
1524 } else { 1528 } else {
1525 dasm_put(Dst, 10624); 1529 dasm_put(Dst, 10622);
1526 } 1530 }
1527 dasm_put(Dst, 10463); 1531 dasm_put(Dst, 10461);
1528 } 1532 }
1529 dasm_put(Dst, 10665); 1533 dasm_put(Dst, 10663);
1530} 1534}
1531 1535
1532/* Generate the code for a single instruction. */ 1536/* Generate the code for a single instruction. */
1533static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse) 1537static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
1534{ 1538{
1535 int vk = 0; 1539 int vk = 0;
1536 dasm_put(Dst, 10719, defop); 1540 dasm_put(Dst, 10717, defop);
1537 1541
1538 switch (op) { 1542 switch (op) {
1539 1543
@@ -1542,617 +1546,617 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
1542 /* Remember: all ops branch for a true comparison, fall through otherwise. */ 1546 /* Remember: all ops branch for a true comparison, fall through otherwise. */
1543 1547
1544 case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT: 1548 case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT:
1545 dasm_put(Dst, 10721, LJ_TISNUM, LJ_TISNUM); 1549 dasm_put(Dst, 10719, LJ_TISNUM, LJ_TISNUM);
1546 if (sse) { 1550 if (sse) {
1547 dasm_put(Dst, 10742); 1551 dasm_put(Dst, 10740);
1548 } else { 1552 } else {
1549 dasm_put(Dst, 10757); 1553 dasm_put(Dst, 10755);
1550 if (cmov) { 1554 if (cmov) {
1551 dasm_put(Dst, 10767); 1555 dasm_put(Dst, 10765);
1552 } else { 1556 } else {
1553 dasm_put(Dst, 10773); 1557 dasm_put(Dst, 10771);
1554 } 1558 }
1555 } 1559 }
1556 switch (op) { 1560 switch (op) {
1557 case BC_ISLT: 1561 case BC_ISLT:
1558 dasm_put(Dst, 10780); 1562 dasm_put(Dst, 10778);
1559 break; 1563 break;
1560 case BC_ISGE: 1564 case BC_ISGE:
1561 dasm_put(Dst, 10016); 1565 dasm_put(Dst, 10014);
1562 break; 1566 break;
1563 case BC_ISLE: 1567 case BC_ISLE:
1564 dasm_put(Dst, 6179); 1568 dasm_put(Dst, 6179);
1565 break; 1569 break;
1566 case BC_ISGT: 1570 case BC_ISGT:
1567 dasm_put(Dst, 10785); 1571 dasm_put(Dst, 10783);
1568 break; 1572 break;
1569 default: break; /* Shut up GCC. */ 1573 default: break; /* Shut up GCC. */
1570 } 1574 }
1571 dasm_put(Dst, 10790, -BCBIAS_J*4); 1575 dasm_put(Dst, 10788, -BCBIAS_J*4);
1572 break; 1576 break;
1573 1577
1574 case BC_ISEQV: case BC_ISNEV: 1578 case BC_ISEQV: case BC_ISNEV:
1575 vk = op == BC_ISEQV; 1579 vk = op == BC_ISEQV;
1576 dasm_put(Dst, 10823, LJ_TISNUM, LJ_TISNUM); 1580 dasm_put(Dst, 10821, LJ_TISNUM, LJ_TISNUM);
1577 if (sse) { 1581 if (sse) {
1578 dasm_put(Dst, 10849); 1582 dasm_put(Dst, 10847);
1579 } else { 1583 } else {
1580 dasm_put(Dst, 10861); 1584 dasm_put(Dst, 10859);
1581 if (cmov) { 1585 if (cmov) {
1582 dasm_put(Dst, 10767); 1586 dasm_put(Dst, 10765);
1583 } else { 1587 } else {
1584 dasm_put(Dst, 10773); 1588 dasm_put(Dst, 10771);
1585 } 1589 }
1586 } 1590 }
1587 iseqne_fp: 1591 iseqne_fp:
1588 if (vk) { 1592 if (vk) {
1589 dasm_put(Dst, 10868); 1593 dasm_put(Dst, 10866);
1590 } else { 1594 } else {
1591 dasm_put(Dst, 10877); 1595 dasm_put(Dst, 10875);
1592 } 1596 }
1593 iseqne_end: 1597 iseqne_end:
1594 if (vk) { 1598 if (vk) {
1595 dasm_put(Dst, 10886, -BCBIAS_J*4); 1599 dasm_put(Dst, 10884, -BCBIAS_J*4);
1596 } else { 1600 } else {
1597 dasm_put(Dst, 10901, -BCBIAS_J*4); 1601 dasm_put(Dst, 10899, -BCBIAS_J*4);
1598 } 1602 }
1599 dasm_put(Dst, 8414); 1603 dasm_put(Dst, 8412);
1600 if (op == BC_ISEQV || op == BC_ISNEV) { 1604 if (op == BC_ISEQV || op == BC_ISNEV) {
1601 dasm_put(Dst, 10916, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq); 1605 dasm_put(Dst, 10914, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq);
1602 if (vk) { 1606 if (vk) {
1603 dasm_put(Dst, 10974); 1607 dasm_put(Dst, 10972);
1604 } else { 1608 } else {
1605 dasm_put(Dst, 10978); 1609 dasm_put(Dst, 10976);
1606 } 1610 }
1607 dasm_put(Dst, 10984); 1611 dasm_put(Dst, 10982);
1608 } 1612 }
1609 break; 1613 break;
1610 case BC_ISEQS: case BC_ISNES: 1614 case BC_ISEQS: case BC_ISNES:
1611 vk = op == BC_ISEQS; 1615 vk = op == BC_ISEQS;
1612 dasm_put(Dst, 10989, LJ_TSTR); 1616 dasm_put(Dst, 10987, LJ_TSTR);
1613 iseqne_test: 1617 iseqne_test:
1614 if (vk) { 1618 if (vk) {
1615 dasm_put(Dst, 10872); 1619 dasm_put(Dst, 10870);
1616 } else { 1620 } else {
1617 dasm_put(Dst, 2809); 1621 dasm_put(Dst, 2809);
1618 } 1622 }
1619 goto iseqne_end; 1623 goto iseqne_end;
1620 case BC_ISEQN: case BC_ISNEN: 1624 case BC_ISEQN: case BC_ISNEN:
1621 vk = op == BC_ISEQN; 1625 vk = op == BC_ISEQN;
1622 dasm_put(Dst, 11012, LJ_TISNUM); 1626 dasm_put(Dst, 11010, LJ_TISNUM);
1623 if (sse) { 1627 if (sse) {
1624 dasm_put(Dst, 11026); 1628 dasm_put(Dst, 11024);
1625 } else { 1629 } else {
1626 dasm_put(Dst, 11038); 1630 dasm_put(Dst, 11036);
1627 if (cmov) { 1631 if (cmov) {
1628 dasm_put(Dst, 10767); 1632 dasm_put(Dst, 10765);
1629 } else { 1633 } else {
1630 dasm_put(Dst, 10773); 1634 dasm_put(Dst, 10771);
1631 } 1635 }
1632 } 1636 }
1633 goto iseqne_fp; 1637 goto iseqne_fp;
1634 case BC_ISEQP: case BC_ISNEP: 1638 case BC_ISEQP: case BC_ISNEP:
1635 vk = op == BC_ISEQP; 1639 vk = op == BC_ISEQP;
1636 dasm_put(Dst, 11045); 1640 dasm_put(Dst, 11043);
1637 goto iseqne_test; 1641 goto iseqne_test;
1638 1642
1639 /* -- Unary test and copy ops ------------------------------------------- */ 1643 /* -- Unary test and copy ops ------------------------------------------- */
1640 1644
1641 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF: 1645 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF:
1642 dasm_put(Dst, 11056, LJ_TISTRUECOND); 1646 dasm_put(Dst, 11054, LJ_TISTRUECOND);
1643 if (op == BC_IST || op == BC_ISTC) { 1647 if (op == BC_IST || op == BC_ISTC) {
1644 dasm_put(Dst, 11068); 1648 dasm_put(Dst, 11066);
1645 } else { 1649 } else {
1646 dasm_put(Dst, 11073); 1650 dasm_put(Dst, 11071);
1647 } 1651 }
1648 if (op == BC_ISTC || op == BC_ISFC) { 1652 if (op == BC_ISTC || op == BC_ISFC) {
1649 dasm_put(Dst, 11078); 1653 dasm_put(Dst, 11076);
1650 } 1654 }
1651 dasm_put(Dst, 11089, -BCBIAS_J*4); 1655 dasm_put(Dst, 11087, -BCBIAS_J*4);
1652 break; 1656 break;
1653 1657
1654 /* -- Unary ops --------------------------------------------------------- */ 1658 /* -- Unary ops --------------------------------------------------------- */
1655 1659
1656 case BC_MOV: 1660 case BC_MOV:
1657 dasm_put(Dst, 11120); 1661 dasm_put(Dst, 11118);
1658 break; 1662 break;
1659 case BC_NOT: 1663 case BC_NOT:
1660 dasm_put(Dst, 11153, LJ_TISTRUECOND, LJ_TTRUE); 1664 dasm_put(Dst, 11151, LJ_TISTRUECOND, LJ_TTRUE);
1661 break; 1665 break;
1662 case BC_UNM: 1666 case BC_UNM:
1663 dasm_put(Dst, 11188, LJ_TISNUM); 1667 dasm_put(Dst, 11186, LJ_TISNUM);
1664 if (sse) { 1668 if (sse) {
1665 dasm_put(Dst, 11199); 1669 dasm_put(Dst, 11197);
1666 } else { 1670 } else {
1667 dasm_put(Dst, 11229); 1671 dasm_put(Dst, 11227);
1668 } 1672 }
1669 dasm_put(Dst, 8414); 1673 dasm_put(Dst, 8412);
1670 break; 1674 break;
1671 case BC_LEN: 1675 case BC_LEN:
1672 dasm_put(Dst, 11238, LJ_TSTR); 1676 dasm_put(Dst, 11236, LJ_TSTR);
1673 if (sse) { 1677 if (sse) {
1674 dasm_put(Dst, 11252, Dt5(->len)); 1678 dasm_put(Dst, 11250, Dt5(->len));
1675 } else { 1679 } else {
1676 dasm_put(Dst, 11270, Dt5(->len)); 1680 dasm_put(Dst, 11268, Dt5(->len));
1677 } 1681 }
1678 dasm_put(Dst, 11279, LJ_TTAB); 1682 dasm_put(Dst, 11277, LJ_TTAB);
1679 if (sse) { 1683 if (sse) {
1680 dasm_put(Dst, 11319); 1684 dasm_put(Dst, 11317);
1681 } else { 1685 } else {
1682 dasm_put(Dst, 11328); 1686 dasm_put(Dst, 11326);
1683 } 1687 }
1684 dasm_put(Dst, 11338); 1688 dasm_put(Dst, 11336);
1685 break; 1689 break;
1686 1690
1687 /* -- Binary ops -------------------------------------------------------- */ 1691 /* -- Binary ops -------------------------------------------------------- */
1688 1692
1689 1693
1690 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV: 1694 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV:
1691 dasm_put(Dst, 11348); 1695 dasm_put(Dst, 11346);
1692 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1696 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1693 switch (vk) { 1697 switch (vk) {
1694 case 0: 1698 case 0:
1695 dasm_put(Dst, 11356, LJ_TISNUM); 1699 dasm_put(Dst, 11354, LJ_TISNUM);
1696 if (sse) { 1700 if (sse) {
1697 dasm_put(Dst, 11368); 1701 dasm_put(Dst, 11366);
1698 } else { 1702 } else {
1699 dasm_put(Dst, 11382); 1703 dasm_put(Dst, 11380);
1700 } 1704 }
1701 break; 1705 break;
1702 case 1: 1706 case 1:
1703 dasm_put(Dst, 11390, LJ_TISNUM); 1707 dasm_put(Dst, 11388, LJ_TISNUM);
1704 if (sse) { 1708 if (sse) {
1705 dasm_put(Dst, 11402); 1709 dasm_put(Dst, 11400);
1706 } else { 1710 } else {
1707 dasm_put(Dst, 11416); 1711 dasm_put(Dst, 11414);
1708 } 1712 }
1709 break; 1713 break;
1710 default: 1714 default:
1711 dasm_put(Dst, 11424, LJ_TISNUM, LJ_TISNUM); 1715 dasm_put(Dst, 11422, LJ_TISNUM, LJ_TISNUM);
1712 if (sse) { 1716 if (sse) {
1713 dasm_put(Dst, 11446); 1717 dasm_put(Dst, 11444);
1714 } else { 1718 } else {
1715 dasm_put(Dst, 11460); 1719 dasm_put(Dst, 11458);
1716 } 1720 }
1717 break; 1721 break;
1718 } 1722 }
1719 if (sse) { 1723 if (sse) {
1720 dasm_put(Dst, 11222); 1724 dasm_put(Dst, 11220);
1721 } else { 1725 } else {
1722 dasm_put(Dst, 11234); 1726 dasm_put(Dst, 11232);
1723 } 1727 }
1724 dasm_put(Dst, 8414); 1728 dasm_put(Dst, 8412);
1725 break; 1729 break;
1726 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV: 1730 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV:
1727 dasm_put(Dst, 11348); 1731 dasm_put(Dst, 11346);
1728 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1732 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1729 switch (vk) { 1733 switch (vk) {
1730 case 0: 1734 case 0:
1731 dasm_put(Dst, 11356, LJ_TISNUM); 1735 dasm_put(Dst, 11354, LJ_TISNUM);
1732 if (sse) { 1736 if (sse) {
1733 dasm_put(Dst, 11468); 1737 dasm_put(Dst, 11466);
1734 } else { 1738 } else {
1735 dasm_put(Dst, 11482); 1739 dasm_put(Dst, 11480);
1736 } 1740 }
1737 break; 1741 break;
1738 case 1: 1742 case 1:
1739 dasm_put(Dst, 11390, LJ_TISNUM); 1743 dasm_put(Dst, 11388, LJ_TISNUM);
1740 if (sse) { 1744 if (sse) {
1741 dasm_put(Dst, 11490); 1745 dasm_put(Dst, 11488);
1742 } else { 1746 } else {
1743 dasm_put(Dst, 11504); 1747 dasm_put(Dst, 11502);
1744 } 1748 }
1745 break; 1749 break;
1746 default: 1750 default:
1747 dasm_put(Dst, 11424, LJ_TISNUM, LJ_TISNUM); 1751 dasm_put(Dst, 11422, LJ_TISNUM, LJ_TISNUM);
1748 if (sse) { 1752 if (sse) {
1749 dasm_put(Dst, 11512); 1753 dasm_put(Dst, 11510);
1750 } else { 1754 } else {
1751 dasm_put(Dst, 11526); 1755 dasm_put(Dst, 11524);
1752 } 1756 }
1753 break; 1757 break;
1754 } 1758 }
1755 if (sse) { 1759 if (sse) {
1756 dasm_put(Dst, 11222); 1760 dasm_put(Dst, 11220);
1757 } else { 1761 } else {
1758 dasm_put(Dst, 11234); 1762 dasm_put(Dst, 11232);
1759 } 1763 }
1760 dasm_put(Dst, 8414); 1764 dasm_put(Dst, 8412);
1761 break; 1765 break;
1762 case BC_MULVN: case BC_MULNV: case BC_MULVV: 1766 case BC_MULVN: case BC_MULNV: case BC_MULVV:
1763 dasm_put(Dst, 11348); 1767 dasm_put(Dst, 11346);
1764 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1768 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1765 switch (vk) { 1769 switch (vk) {
1766 case 0: 1770 case 0:
1767 dasm_put(Dst, 11356, LJ_TISNUM); 1771 dasm_put(Dst, 11354, LJ_TISNUM);
1768 if (sse) { 1772 if (sse) {
1769 dasm_put(Dst, 11534); 1773 dasm_put(Dst, 11532);
1770 } else { 1774 } else {
1771 dasm_put(Dst, 11548); 1775 dasm_put(Dst, 11546);
1772 } 1776 }
1773 break; 1777 break;
1774 case 1: 1778 case 1:
1775 dasm_put(Dst, 11390, LJ_TISNUM); 1779 dasm_put(Dst, 11388, LJ_TISNUM);
1776 if (sse) { 1780 if (sse) {
1777 dasm_put(Dst, 11556); 1781 dasm_put(Dst, 11554);
1778 } else { 1782 } else {
1779 dasm_put(Dst, 11570); 1783 dasm_put(Dst, 11568);
1780 } 1784 }
1781 break; 1785 break;
1782 default: 1786 default:
1783 dasm_put(Dst, 11424, LJ_TISNUM, LJ_TISNUM); 1787 dasm_put(Dst, 11422, LJ_TISNUM, LJ_TISNUM);
1784 if (sse) { 1788 if (sse) {
1785 dasm_put(Dst, 11578); 1789 dasm_put(Dst, 11576);
1786 } else { 1790 } else {
1787 dasm_put(Dst, 11592); 1791 dasm_put(Dst, 11590);
1788 } 1792 }
1789 break; 1793 break;
1790 } 1794 }
1791 if (sse) { 1795 if (sse) {
1792 dasm_put(Dst, 11222); 1796 dasm_put(Dst, 11220);
1793 } else { 1797 } else {
1794 dasm_put(Dst, 11234); 1798 dasm_put(Dst, 11232);
1795 } 1799 }
1796 dasm_put(Dst, 8414); 1800 dasm_put(Dst, 8412);
1797 break; 1801 break;
1798 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV: 1802 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV:
1799 dasm_put(Dst, 11348); 1803 dasm_put(Dst, 11346);
1800 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1804 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1801 switch (vk) { 1805 switch (vk) {
1802 case 0: 1806 case 0:
1803 dasm_put(Dst, 11356, LJ_TISNUM); 1807 dasm_put(Dst, 11354, LJ_TISNUM);
1804 if (sse) { 1808 if (sse) {
1805 dasm_put(Dst, 11600); 1809 dasm_put(Dst, 11598);
1806 } else { 1810 } else {
1807 dasm_put(Dst, 11614); 1811 dasm_put(Dst, 11612);
1808 } 1812 }
1809 break; 1813 break;
1810 case 1: 1814 case 1:
1811 dasm_put(Dst, 11390, LJ_TISNUM); 1815 dasm_put(Dst, 11388, LJ_TISNUM);
1812 if (sse) { 1816 if (sse) {
1813 dasm_put(Dst, 11622); 1817 dasm_put(Dst, 11620);
1814 } else { 1818 } else {
1815 dasm_put(Dst, 11636); 1819 dasm_put(Dst, 11634);
1816 } 1820 }
1817 break; 1821 break;
1818 default: 1822 default:
1819 dasm_put(Dst, 11424, LJ_TISNUM, LJ_TISNUM); 1823 dasm_put(Dst, 11422, LJ_TISNUM, LJ_TISNUM);
1820 if (sse) { 1824 if (sse) {
1821 dasm_put(Dst, 11644); 1825 dasm_put(Dst, 11642);
1822 } else { 1826 } else {
1823 dasm_put(Dst, 11658); 1827 dasm_put(Dst, 11656);
1824 } 1828 }
1825 break; 1829 break;
1826 } 1830 }
1827 if (sse) { 1831 if (sse) {
1828 dasm_put(Dst, 11222); 1832 dasm_put(Dst, 11220);
1829 } else { 1833 } else {
1830 dasm_put(Dst, 11234); 1834 dasm_put(Dst, 11232);
1831 } 1835 }
1832 dasm_put(Dst, 8414); 1836 dasm_put(Dst, 8412);
1833 break; 1837 break;
1834 case BC_MODVN: 1838 case BC_MODVN:
1835 dasm_put(Dst, 11348); 1839 dasm_put(Dst, 11346);
1836 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1840 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1837 switch (vk) { 1841 switch (vk) {
1838 case 0: 1842 case 0:
1839 dasm_put(Dst, 11356, LJ_TISNUM); 1843 dasm_put(Dst, 11354, LJ_TISNUM);
1840 if (sse) { 1844 if (sse) {
1841 dasm_put(Dst, 11666); 1845 dasm_put(Dst, 11664);
1842 } else { 1846 } else {
1843 dasm_put(Dst, 11680); 1847 dasm_put(Dst, 11678);
1844 } 1848 }
1845 break; 1849 break;
1846 case 1: 1850 case 1:
1847 dasm_put(Dst, 11390, LJ_TISNUM); 1851 dasm_put(Dst, 11388, LJ_TISNUM);
1848 if (sse) { 1852 if (sse) {
1849 dasm_put(Dst, 11688); 1853 dasm_put(Dst, 11686);
1850 } else { 1854 } else {
1851 dasm_put(Dst, 11702); 1855 dasm_put(Dst, 11700);
1852 } 1856 }
1853 break; 1857 break;
1854 default: 1858 default:
1855 dasm_put(Dst, 11424, LJ_TISNUM, LJ_TISNUM); 1859 dasm_put(Dst, 11422, LJ_TISNUM, LJ_TISNUM);
1856 if (sse) { 1860 if (sse) {
1857 dasm_put(Dst, 11710); 1861 dasm_put(Dst, 11708);
1858 } else { 1862 } else {
1859 dasm_put(Dst, 11724); 1863 dasm_put(Dst, 11722);
1860 } 1864 }
1861 break; 1865 break;
1862 } 1866 }
1863 dasm_put(Dst, 11732); 1867 dasm_put(Dst, 11730);
1864 if (sse) { 1868 if (sse) {
1865 dasm_put(Dst, 11222); 1869 dasm_put(Dst, 11220);
1866 } else { 1870 } else {
1867 dasm_put(Dst, 11234); 1871 dasm_put(Dst, 11232);
1868 } 1872 }
1869 dasm_put(Dst, 8414); 1873 dasm_put(Dst, 8412);
1870 break; 1874 break;
1871 case BC_MODNV: case BC_MODVV: 1875 case BC_MODNV: case BC_MODVV:
1872 dasm_put(Dst, 11348); 1876 dasm_put(Dst, 11346);
1873 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1877 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1874 switch (vk) { 1878 switch (vk) {
1875 case 0: 1879 case 0:
1876 dasm_put(Dst, 11356, LJ_TISNUM); 1880 dasm_put(Dst, 11354, LJ_TISNUM);
1877 if (sse) { 1881 if (sse) {
1878 dasm_put(Dst, 11666); 1882 dasm_put(Dst, 11664);
1879 } else { 1883 } else {
1880 dasm_put(Dst, 11680); 1884 dasm_put(Dst, 11678);
1881 } 1885 }
1882 break; 1886 break;
1883 case 1: 1887 case 1:
1884 dasm_put(Dst, 11390, LJ_TISNUM); 1888 dasm_put(Dst, 11388, LJ_TISNUM);
1885 if (sse) { 1889 if (sse) {
1886 dasm_put(Dst, 11688); 1890 dasm_put(Dst, 11686);
1887 } else { 1891 } else {
1888 dasm_put(Dst, 11702); 1892 dasm_put(Dst, 11700);
1889 } 1893 }
1890 break; 1894 break;
1891 default: 1895 default:
1892 dasm_put(Dst, 11424, LJ_TISNUM, LJ_TISNUM); 1896 dasm_put(Dst, 11422, LJ_TISNUM, LJ_TISNUM);
1893 if (sse) { 1897 if (sse) {
1894 dasm_put(Dst, 11710); 1898 dasm_put(Dst, 11708);
1895 } else { 1899 } else {
1896 dasm_put(Dst, 11724); 1900 dasm_put(Dst, 11722);
1897 } 1901 }
1898 break; 1902 break;
1899 } 1903 }
1900 dasm_put(Dst, 11738); 1904 dasm_put(Dst, 11736);
1901 break; 1905 break;
1902 case BC_POW: 1906 case BC_POW:
1903 dasm_put(Dst, 11348); 1907 dasm_put(Dst, 11346);
1904 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1908 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1905 switch (vk) { 1909 switch (vk) {
1906 case 0: 1910 case 0:
1907 dasm_put(Dst, 11356, LJ_TISNUM); 1911 dasm_put(Dst, 11354, LJ_TISNUM);
1908 if (sse) { 1912 if (sse) {
1909 dasm_put(Dst, 11666); 1913 dasm_put(Dst, 11664);
1910 } else { 1914 } else {
1911 dasm_put(Dst, 11680); 1915 dasm_put(Dst, 11678);
1912 } 1916 }
1913 break; 1917 break;
1914 case 1: 1918 case 1:
1915 dasm_put(Dst, 11390, LJ_TISNUM); 1919 dasm_put(Dst, 11388, LJ_TISNUM);
1916 if (sse) { 1920 if (sse) {
1917 dasm_put(Dst, 11688); 1921 dasm_put(Dst, 11686);
1918 } else { 1922 } else {
1919 dasm_put(Dst, 11702); 1923 dasm_put(Dst, 11700);
1920 } 1924 }
1921 break; 1925 break;
1922 default: 1926 default:
1923 dasm_put(Dst, 11424, LJ_TISNUM, LJ_TISNUM); 1927 dasm_put(Dst, 11422, LJ_TISNUM, LJ_TISNUM);
1924 if (sse) { 1928 if (sse) {
1925 dasm_put(Dst, 11710); 1929 dasm_put(Dst, 11708);
1926 } else { 1930 } else {
1927 dasm_put(Dst, 11724); 1931 dasm_put(Dst, 11722);
1928 } 1932 }
1929 break; 1933 break;
1930 } 1934 }
1931 dasm_put(Dst, 11743); 1935 dasm_put(Dst, 11741);
1932 if (sse) { 1936 if (sse) {
1933 dasm_put(Dst, 11222); 1937 dasm_put(Dst, 11220);
1934 } else { 1938 } else {
1935 dasm_put(Dst, 11234); 1939 dasm_put(Dst, 11232);
1936 } 1940 }
1937 dasm_put(Dst, 8414); 1941 dasm_put(Dst, 8412);
1938 break; 1942 break;
1939 1943
1940 case BC_CAT: 1944 case BC_CAT:
1941 dasm_put(Dst, 11747, Dt1(->base), Dt1(->base)); 1945 dasm_put(Dst, 11745, Dt1(->base), Dt1(->base));
1942 break; 1946 break;
1943 1947
1944 /* -- Constant ops ------------------------------------------------------ */ 1948 /* -- Constant ops ------------------------------------------------------ */
1945 1949
1946 case BC_KSTR: 1950 case BC_KSTR:
1947 dasm_put(Dst, 11841, LJ_TSTR); 1951 dasm_put(Dst, 11839, LJ_TSTR);
1948 break; 1952 break;
1949 case BC_KSHORT: 1953 case BC_KSHORT:
1950 if (sse) { 1954 if (sse) {
1951 dasm_put(Dst, 11874); 1955 dasm_put(Dst, 11872);
1952 } else { 1956 } else {
1953 dasm_put(Dst, 11889); 1957 dasm_put(Dst, 11887);
1954 } 1958 }
1955 dasm_put(Dst, 8414); 1959 dasm_put(Dst, 8412);
1956 break; 1960 break;
1957 case BC_KNUM: 1961 case BC_KNUM:
1958 if (sse) { 1962 if (sse) {
1959 dasm_put(Dst, 11897); 1963 dasm_put(Dst, 11895);
1960 } else { 1964 } else {
1961 dasm_put(Dst, 11910); 1965 dasm_put(Dst, 11908);
1962 } 1966 }
1963 dasm_put(Dst, 8414); 1967 dasm_put(Dst, 8412);
1964 break; 1968 break;
1965 case BC_KPRI: 1969 case BC_KPRI:
1966 dasm_put(Dst, 11917); 1970 dasm_put(Dst, 11915);
1967 break; 1971 break;
1968 case BC_KNIL: 1972 case BC_KNIL:
1969 dasm_put(Dst, 11943, LJ_TNIL); 1973 dasm_put(Dst, 11941, LJ_TNIL);
1970 break; 1974 break;
1971 1975
1972 /* -- Upvalue and function ops ------------------------------------------ */ 1976 /* -- Upvalue and function ops ------------------------------------------ */
1973 1977
1974 case BC_UGET: 1978 case BC_UGET:
1975 dasm_put(Dst, 11989, offsetof(GCfuncL, uvptr), DtA(->v)); 1979 dasm_put(Dst, 11987, offsetof(GCfuncL, uvptr), DtA(->v));
1976 break; 1980 break;
1977 case BC_USETV: 1981 case BC_USETV:
1978#define TV2MARKOFS \ 1982#define TV2MARKOFS \
1979 ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv)) 1983 ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv))
1980 dasm_put(Dst, 12033, 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); 1984 dasm_put(Dst, 12031, 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);
1981 dasm_put(Dst, 12123); 1985 dasm_put(Dst, 12121);
1982 break; 1986 break;
1983#undef TV2MARKOFS 1987#undef TV2MARKOFS
1984 case BC_USETS: 1988 case BC_USETS:
1985 dasm_put(Dst, 12135, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G); 1989 dasm_put(Dst, 12133, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G);
1986 break; 1990 break;
1987 case BC_USETN: 1991 case BC_USETN:
1988 dasm_put(Dst, 12226); 1992 dasm_put(Dst, 12224);
1989 if (sse) { 1993 if (sse) {
1990 dasm_put(Dst, 12231); 1994 dasm_put(Dst, 12229);
1991 } else { 1995 } else {
1992 dasm_put(Dst, 11041); 1996 dasm_put(Dst, 11039);
1993 } 1997 }
1994 dasm_put(Dst, 12238, offsetof(GCfuncL, uvptr), DtA(->v)); 1998 dasm_put(Dst, 12236, offsetof(GCfuncL, uvptr), DtA(->v));
1995 if (sse) { 1999 if (sse) {
1996 dasm_put(Dst, 12247); 2000 dasm_put(Dst, 12245);
1997 } else { 2001 } else {
1998 dasm_put(Dst, 12253); 2002 dasm_put(Dst, 12251);
1999 } 2003 }
2000 dasm_put(Dst, 8414); 2004 dasm_put(Dst, 8412);
2001 break; 2005 break;
2002 case BC_USETP: 2006 case BC_USETP:
2003 dasm_put(Dst, 12256, offsetof(GCfuncL, uvptr), DtA(->v)); 2007 dasm_put(Dst, 12254, offsetof(GCfuncL, uvptr), DtA(->v));
2004 break; 2008 break;
2005 case BC_UCLO: 2009 case BC_UCLO:
2006 dasm_put(Dst, 12293, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base)); 2010 dasm_put(Dst, 12291, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base));
2007 break; 2011 break;
2008 2012
2009 case BC_FNEW: 2013 case BC_FNEW:
2010 dasm_put(Dst, 12347, Dt1(->base), Dt1(->base), LJ_TFUNC); 2014 dasm_put(Dst, 12345, Dt1(->base), Dt1(->base), LJ_TFUNC);
2011 break; 2015 break;
2012 2016
2013 /* -- Table ops --------------------------------------------------------- */ 2017 /* -- Table ops --------------------------------------------------------- */
2014 2018
2015 case BC_TNEW: 2019 case BC_TNEW:
2016 dasm_put(Dst, 12418, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB); 2020 dasm_put(Dst, 12416, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB);
2017 break; 2021 break;
2018 case BC_TDUP: 2022 case BC_TDUP:
2019 dasm_put(Dst, 12539, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB); 2023 dasm_put(Dst, 12537, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB);
2020 break; 2024 break;
2021 2025
2022 case BC_GGET: 2026 case BC_GGET:
2023 dasm_put(Dst, 12631, Dt7(->env)); 2027 dasm_put(Dst, 12629, Dt7(->env));
2024 break; 2028 break;
2025 case BC_GSET: 2029 case BC_GSET:
2026 dasm_put(Dst, 12649, Dt7(->env)); 2030 dasm_put(Dst, 12647, Dt7(->env));
2027 break; 2031 break;
2028 2032
2029 case BC_TGETV: 2033 case BC_TGETV:
2030 dasm_put(Dst, 12667, LJ_TTAB, LJ_TISNUM); 2034 dasm_put(Dst, 12665, LJ_TTAB, LJ_TISNUM);
2031 if (sse) { 2035 if (sse) {
2032 dasm_put(Dst, 12700); 2036 dasm_put(Dst, 12698);
2033 } else { 2037 } else {
2034 dasm_put(Dst, 12721); 2038 dasm_put(Dst, 12719);
2035 if (cmov) { 2039 if (cmov) {
2036 dasm_put(Dst, 10767); 2040 dasm_put(Dst, 10765);
2037 } else { 2041 } else {
2038 dasm_put(Dst, 10773); 2042 dasm_put(Dst, 10771);
2039 } 2043 }
2040 dasm_put(Dst, 2522); 2044 dasm_put(Dst, 2522);
2041 } 2045 }
2042 dasm_put(Dst, 12731, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 2046 dasm_put(Dst, 12729, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
2043 dasm_put(Dst, 12823, LJ_TSTR); 2047 dasm_put(Dst, 12821, LJ_TSTR);
2044 break; 2048 break;
2045 case BC_TGETS: 2049 case BC_TGETS:
2046 dasm_put(Dst, 12841, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); 2050 dasm_put(Dst, 12839, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
2047 dasm_put(Dst, 12925, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 2051 dasm_put(Dst, 12923, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
2048 break; 2052 break;
2049 case BC_TGETB: 2053 case BC_TGETB:
2050 dasm_put(Dst, 12996, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 2054 dasm_put(Dst, 12994, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
2051 dasm_put(Dst, 11338); 2055 dasm_put(Dst, 11336);
2052 break; 2056 break;
2053 2057
2054 case BC_TSETV: 2058 case BC_TSETV:
2055 dasm_put(Dst, 13095, LJ_TTAB, LJ_TISNUM); 2059 dasm_put(Dst, 13093, LJ_TTAB, LJ_TISNUM);
2056 if (sse) { 2060 if (sse) {
2057 dasm_put(Dst, 12700); 2061 dasm_put(Dst, 12698);
2058 } else { 2062 } else {
2059 dasm_put(Dst, 12721); 2063 dasm_put(Dst, 12719);
2060 if (cmov) { 2064 if (cmov) {
2061 dasm_put(Dst, 10767); 2065 dasm_put(Dst, 10765);
2062 } else { 2066 } else {
2063 dasm_put(Dst, 10773); 2067 dasm_put(Dst, 10771);
2064 } 2068 }
2065 dasm_put(Dst, 2522); 2069 dasm_put(Dst, 2522);
2066 } 2070 }
2067 dasm_put(Dst, 13128, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable)); 2071 dasm_put(Dst, 13126, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable));
2068 dasm_put(Dst, 13211, Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 2072 dasm_put(Dst, 13209, Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
2069 break; 2073 break;
2070 case BC_TSETS: 2074 case BC_TSETS:
2071 dasm_put(Dst, 13273, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); 2075 dasm_put(Dst, 13271, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
2072 dasm_put(Dst, 13348, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next)); 2076 dasm_put(Dst, 13346, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next));
2073 dasm_put(Dst, 13440, 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)); 2077 dasm_put(Dst, 13438, 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));
2074 break; 2078 break;
2075 case BC_TSETB: 2079 case BC_TSETB:
2076 dasm_put(Dst, 13536, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable)); 2080 dasm_put(Dst, 13534, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable));
2077 dasm_put(Dst, 13634, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 2081 dasm_put(Dst, 13632, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
2078 break; 2082 break;
2079 2083
2080 case BC_TSETM: 2084 case BC_TSETM:
2081 dasm_put(Dst, 13680); 2085 dasm_put(Dst, 13678);
2082 if (sse) { 2086 if (sse) {
2083 dasm_put(Dst, 12231); 2087 dasm_put(Dst, 12229);
2084 } else { 2088 } else {
2085 dasm_put(Dst, 13685); 2089 dasm_put(Dst, 13683);
2086 } 2090 }
2087 dasm_put(Dst, 13693, Dt6(->marked), LJ_GC_BLACK); 2091 dasm_put(Dst, 13691, Dt6(->marked), LJ_GC_BLACK);
2088 if (sse) { 2092 if (sse) {
2089 dasm_put(Dst, 13718); 2093 dasm_put(Dst, 13716);
2090 } else { 2094 } else {
2091 dasm_put(Dst, 13725); 2095 dasm_put(Dst, 13723);
2092 } 2096 }
2093 dasm_put(Dst, 13730, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base), Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain)); 2097 dasm_put(Dst, 13728, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base), Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain));
2094 dasm_put(Dst, 13858, Dt6(->gclist)); 2098 dasm_put(Dst, 13856, Dt6(->gclist));
2095 break; 2099 break;
2096 2100
2097 /* -- Calls and vararg handling ----------------------------------------- */ 2101 /* -- Calls and vararg handling ----------------------------------------- */
2098 2102
2099 case BC_CALL: case BC_CALLM: 2103 case BC_CALL: case BC_CALLM:
2100 dasm_put(Dst, 11352); 2104 dasm_put(Dst, 11350);
2101 if (op == BC_CALLM) { 2105 if (op == BC_CALLM) {
2102 dasm_put(Dst, 13866); 2106 dasm_put(Dst, 13864);
2103 } 2107 }
2104 dasm_put(Dst, 13871, LJ_TFUNC, Dt7(->pc)); 2108 dasm_put(Dst, 13869, LJ_TFUNC, Dt7(->pc));
2105 break; 2109 break;
2106 2110
2107 case BC_CALLMT: 2111 case BC_CALLMT:
2108 dasm_put(Dst, 13866); 2112 dasm_put(Dst, 13864);
2109 break; 2113 break;
2110 case BC_CALLT: 2114 case BC_CALLT:
2111 dasm_put(Dst, 13912, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc)); 2115 dasm_put(Dst, 13910, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc));
2112 dasm_put(Dst, 14030, FRAME_TYPE, Dt7(->pc), PC2PROTO(k)); 2116 dasm_put(Dst, 14028, FRAME_TYPE, Dt7(->pc), PC2PROTO(k));
2113 break; 2117 break;
2114 2118
2115 case BC_ITERC: 2119 case BC_ITERC:
2116 dasm_put(Dst, 14087, LJ_TFUNC, 2+1, Dt7(->pc)); 2120 dasm_put(Dst, 14085, LJ_TFUNC, 2+1, Dt7(->pc));
2117 break; 2121 break;
2118 2122
2119 case BC_VARG: 2123 case BC_VARG:
2120 dasm_put(Dst, 14167, Dt7(->pc), PC2PROTO(numparams), (8+FRAME_VARG), LJ_TNIL); 2124 dasm_put(Dst, 14165, Dt7(->pc), PC2PROTO(numparams), (8+FRAME_VARG), LJ_TNIL);
2121 dasm_put(Dst, 14311, Dt1(->maxstack), Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top)); 2125 dasm_put(Dst, 14309, Dt1(->maxstack), Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top));
2122 break; 2126 break;
2123 2127
2124 /* -- Returns ----------------------------------------------------------- */ 2128 /* -- Returns ----------------------------------------------------------- */
2125 2129
2126 case BC_RETM: 2130 case BC_RETM:
2127 dasm_put(Dst, 13866); 2131 dasm_put(Dst, 13864);
2128 break; 2132 break;
2129 2133
2130 case BC_RET: case BC_RET0: case BC_RET1: 2134 case BC_RET: case BC_RET0: case BC_RET1:
2131 if (op != BC_RET0) { 2135 if (op != BC_RET0) {
2132 dasm_put(Dst, 14410); 2136 dasm_put(Dst, 14408);
2133 } 2137 }
2134 dasm_put(Dst, 14414, FRAME_TYPE); 2138 dasm_put(Dst, 14412, FRAME_TYPE);
2135 switch (op) { 2139 switch (op) {
2136 case BC_RET: 2140 case BC_RET:
2137 dasm_put(Dst, 14433); 2141 dasm_put(Dst, 14431);
2138 break; 2142 break;
2139 case BC_RET1: 2143 case BC_RET1:
2140 dasm_put(Dst, 14491); 2144 dasm_put(Dst, 14489);
2141 /* fallthrough */ 2145 /* fallthrough */
2142 case BC_RET0: 2146 case BC_RET0:
2143 dasm_put(Dst, 14507); 2147 dasm_put(Dst, 14505);
2144 default: 2148 default:
2145 break; 2149 break;
2146 } 2150 }
2147 dasm_put(Dst, 14518, Dt7(->pc), PC2PROTO(k)); 2151 dasm_put(Dst, 14516, Dt7(->pc), PC2PROTO(k));
2148 if (op == BC_RET) { 2152 if (op == BC_RET) {
2149 dasm_put(Dst, 14560, LJ_TNIL); 2153 dasm_put(Dst, 14558, LJ_TNIL);
2150 } else { 2154 } else {
2151 dasm_put(Dst, 14569, LJ_TNIL); 2155 dasm_put(Dst, 14567, LJ_TNIL);
2152 } 2156 }
2153 dasm_put(Dst, 14576); 2157 dasm_put(Dst, 14574);
2154 if (op != BC_RET0) { 2158 if (op != BC_RET0) {
2155 dasm_put(Dst, 14597); 2159 dasm_put(Dst, 14595);
2156 } 2160 }
2157 dasm_put(Dst, 4678); 2161 dasm_put(Dst, 4678);
2158 break; 2162 break;
@@ -2162,7 +2166,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2162 2166
2163 case BC_FORL: 2167 case BC_FORL:
2164#if LJ_HASJIT 2168#if LJ_HASJIT
2165 dasm_put(Dst, 14601, HOTCOUNT_PCMASK, GG_DISP2HOT); 2169 dasm_put(Dst, 14599, HOTCOUNT_PCMASK, GG_DISP2HOT);
2166#endif 2170#endif
2167 break; 2171 break;
2168 2172
@@ -2174,57 +2178,57 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2174 case BC_FORI: 2178 case BC_FORI:
2175 case BC_IFORL: 2179 case BC_IFORL:
2176 vk = (op == BC_IFORL || op == BC_JFORL); 2180 vk = (op == BC_IFORL || op == BC_JFORL);
2177 dasm_put(Dst, 14622); 2181 dasm_put(Dst, 14620);
2178 if (!vk) { 2182 if (!vk) {
2179 dasm_put(Dst, 14626, LJ_TISNUM, LJ_TISNUM); 2183 dasm_put(Dst, 14624, LJ_TISNUM, LJ_TISNUM);
2180 } 2184 }
2181 dasm_put(Dst, 14645); 2185 dasm_put(Dst, 14643);
2182 if (!vk) { 2186 if (!vk) {
2183 dasm_put(Dst, 14649, LJ_TISNUM); 2187 dasm_put(Dst, 14647, LJ_TISNUM);
2184 } 2188 }
2185 if (sse) { 2189 if (sse) {
2186 dasm_put(Dst, 14658); 2190 dasm_put(Dst, 14656);
2187 if (vk) { 2191 if (vk) {
2188 dasm_put(Dst, 14670); 2192 dasm_put(Dst, 14668);
2189 } else { 2193 } else {
2190 dasm_put(Dst, 14689); 2194 dasm_put(Dst, 14687);
2191 } 2195 }
2192 dasm_put(Dst, 14694); 2196 dasm_put(Dst, 14692);
2193 } else { 2197 } else {
2194 dasm_put(Dst, 14707); 2198 dasm_put(Dst, 14705);
2195 if (vk) { 2199 if (vk) {
2196 dasm_put(Dst, 14713); 2200 dasm_put(Dst, 14711);
2197 } else { 2201 } else {
2198 dasm_put(Dst, 14729); 2202 dasm_put(Dst, 14727);
2199 } 2203 }
2200 dasm_put(Dst, 14737); 2204 dasm_put(Dst, 14735);
2201 if (cmov) { 2205 if (cmov) {
2202 dasm_put(Dst, 10767); 2206 dasm_put(Dst, 10765);
2203 } else { 2207 } else {
2204 dasm_put(Dst, 10773); 2208 dasm_put(Dst, 10771);
2205 } 2209 }
2206 if (!cmov) { 2210 if (!cmov) {
2207 dasm_put(Dst, 14742); 2211 dasm_put(Dst, 14740);
2208 } 2212 }
2209 } 2213 }
2210 if (op == BC_FORI) { 2214 if (op == BC_FORI) {
2211 dasm_put(Dst, 14748, -BCBIAS_J*4); 2215 dasm_put(Dst, 14746, -BCBIAS_J*4);
2212 } else if (op == BC_JFORI) { 2216 } else if (op == BC_JFORI) {
2213 dasm_put(Dst, 14758, -BCBIAS_J*4, BC_JLOOP); 2217 dasm_put(Dst, 14756, -BCBIAS_J*4, BC_JLOOP);
2214 } else if (op == BC_IFORL) { 2218 } else if (op == BC_IFORL) {
2215 dasm_put(Dst, 14772, -BCBIAS_J*4); 2219 dasm_put(Dst, 14770, -BCBIAS_J*4);
2216 } else { 2220 } else {
2217 dasm_put(Dst, 14768, BC_JLOOP); 2221 dasm_put(Dst, 14766, BC_JLOOP);
2218 } 2222 }
2219 dasm_put(Dst, 10802); 2223 dasm_put(Dst, 10800);
2220 if (sse) { 2224 if (sse) {
2221 dasm_put(Dst, 14782); 2225 dasm_put(Dst, 14780);
2222 } 2226 }
2223 break; 2227 break;
2224 2228
2225 case BC_ITERL: 2229 case BC_ITERL:
2226#if LJ_HASJIT 2230#if LJ_HASJIT
2227 dasm_put(Dst, 14601, HOTCOUNT_PCMASK, GG_DISP2HOT); 2231 dasm_put(Dst, 14599, HOTCOUNT_PCMASK, GG_DISP2HOT);
2228#endif 2232#endif
2229 break; 2233 break;
2230 2234
@@ -2233,33 +2237,33 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2233 break; 2237 break;
2234#endif 2238#endif
2235 case BC_IITERL: 2239 case BC_IITERL:
2236 dasm_put(Dst, 14793, LJ_TNIL); 2240 dasm_put(Dst, 14791, LJ_TNIL);
2237 if (op == BC_JITERL) { 2241 if (op == BC_JITERL) {
2238 dasm_put(Dst, 14808, BC_JLOOP); 2242 dasm_put(Dst, 14806, BC_JLOOP);
2239 } else { 2243 } else {
2240 dasm_put(Dst, 14822, -BCBIAS_J*4); 2244 dasm_put(Dst, 14820, -BCBIAS_J*4);
2241 } 2245 }
2242 dasm_put(Dst, 11099); 2246 dasm_put(Dst, 11097);
2243 break; 2247 break;
2244 2248
2245 case BC_LOOP: 2249 case BC_LOOP:
2246#if LJ_HASJIT 2250#if LJ_HASJIT
2247 dasm_put(Dst, 14601, HOTCOUNT_PCMASK, GG_DISP2HOT); 2251 dasm_put(Dst, 14599, HOTCOUNT_PCMASK, GG_DISP2HOT);
2248#endif 2252#endif
2249 break; 2253 break;
2250 2254
2251 case BC_ILOOP: 2255 case BC_ILOOP:
2252 dasm_put(Dst, 8414); 2256 dasm_put(Dst, 8412);
2253 break; 2257 break;
2254 2258
2255 case BC_JLOOP: 2259 case BC_JLOOP:
2256#if LJ_HASJIT 2260#if LJ_HASJIT
2257 dasm_put(Dst, 14838, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L)); 2261 dasm_put(Dst, 14836, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L));
2258#endif 2262#endif
2259 break; 2263 break;
2260 2264
2261 case BC_JMP: 2265 case BC_JMP:
2262 dasm_put(Dst, 14861, -BCBIAS_J*4); 2266 dasm_put(Dst, 14859, -BCBIAS_J*4);
2263 break; 2267 break;
2264 2268
2265 /* -- Function headers -------------------------------------------------- */ 2269 /* -- Function headers -------------------------------------------------- */
@@ -2282,47 +2286,47 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2282 break; 2286 break;
2283#endif 2287#endif
2284 case BC_IFUNCF: 2288 case BC_IFUNCF:
2285 dasm_put(Dst, 14885, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams)); 2289 dasm_put(Dst, 14883, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams));
2286 if (op == BC_JFUNCF) { 2290 if (op == BC_JFUNCF) {
2287 dasm_put(Dst, 14915, BC_JLOOP); 2291 dasm_put(Dst, 14913, BC_JLOOP);
2288 } else { 2292 } else {
2289 dasm_put(Dst, 8414); 2293 dasm_put(Dst, 8412);
2290 } 2294 }
2291 dasm_put(Dst, 14924, LJ_TNIL); 2295 dasm_put(Dst, 14922, LJ_TNIL);
2292 break; 2296 break;
2293 2297
2294 case BC_JFUNCV: 2298 case BC_JFUNCV:
2295#if !LJ_HASJIT 2299#if !LJ_HASJIT
2296 break; 2300 break;
2297#endif 2301#endif
2298 dasm_put(Dst, 10465); 2302 dasm_put(Dst, 10463);
2299 break; /* NYI: compiled vararg functions. */ 2303 break; /* NYI: compiled vararg functions. */
2300 2304
2301 case BC_IFUNCV: 2305 case BC_IFUNCV:
2302 dasm_put(Dst, 14946, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL); 2306 dasm_put(Dst, 14944, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL);
2303 if (op == BC_JFUNCV) { 2307 if (op == BC_JFUNCV) {
2304 dasm_put(Dst, 14915, BC_JLOOP); 2308 dasm_put(Dst, 14913, BC_JLOOP);
2305 } else { 2309 } else {
2306 dasm_put(Dst, 15037, -4+PC2PROTO(k)); 2310 dasm_put(Dst, 15035, -4+PC2PROTO(k));
2307 } 2311 }
2308 dasm_put(Dst, 15059, LJ_TNIL); 2312 dasm_put(Dst, 15057, LJ_TNIL);
2309 break; 2313 break;
2310 2314
2311 case BC_FUNCC: 2315 case BC_FUNCC:
2312 case BC_FUNCCW: 2316 case BC_FUNCCW:
2313 dasm_put(Dst, 15081, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top)); 2317 dasm_put(Dst, 15079, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top));
2314 if (op == BC_FUNCC) { 2318 if (op == BC_FUNCC) {
2315 dasm_put(Dst, 15110); 2319 dasm_put(Dst, 15108);
2316 } else { 2320 } else {
2317 dasm_put(Dst, 15114); 2321 dasm_put(Dst, 15112);
2318 } 2322 }
2319 dasm_put(Dst, 15122, DISPATCH_GL(vmstate), ~LJ_VMST_C); 2323 dasm_put(Dst, 15120, DISPATCH_GL(vmstate), ~LJ_VMST_C);
2320 if (op == BC_FUNCC) { 2324 if (op == BC_FUNCC) {
2321 dasm_put(Dst, 15131); 2325 dasm_put(Dst, 15129);
2322 } else { 2326 } else {
2323 dasm_put(Dst, 15135, DISPATCH_GL(wrapf)); 2327 dasm_put(Dst, 15133, DISPATCH_GL(wrapf));
2324 } 2328 }
2325 dasm_put(Dst, 15140, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top)); 2329 dasm_put(Dst, 15138, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top));
2326 break; 2330 break;
2327 2331
2328 /* ---------------------------------------------------------------------- */ 2332 /* ---------------------------------------------------------------------- */
@@ -2350,7 +2354,7 @@ static int build_backend(BuildCtx *ctx)
2350 2354
2351 build_subroutines(ctx, cmov, sse); 2355 build_subroutines(ctx, cmov, sse);
2352 2356
2353 dasm_put(Dst, 15165); 2357 dasm_put(Dst, 15163);
2354 for (op = 0; op < BC__MAX; op++) 2358 for (op = 0; op < BC__MAX; op++)
2355 build_ins(ctx, (BCOp)op, op, cmov, sse); 2359 build_ins(ctx, (BCOp)op, op, cmov, sse);
2356 2360