Lines Matching refs:e2

535 static void freeexps (FuncState *fs, expdesc *e1, expdesc *e2) {  in freeexps()  argument
537 int r2 = (e2->k == VNONRELOC) ? e2->u.info : -1; in freeexps()
1320 const expdesc *e2) { in constfolding() argument
1322 if (!tonumeral(e1, &v1) || !tonumeral(e2, &v2) || !validop(op, &v1, &v2)) in constfolding()
1360 static void finishbinexpval (FuncState *fs, expdesc *e1, expdesc *e2, in finishbinexpval() argument
1365 freeexps(fs, e1, e2); in finishbinexpval()
1379 expdesc *e1, expdesc *e2, int line) { in codebinexpval() argument
1380 int v2 = luaK_exp2anyreg(fs, e2); /* both operands are in registers */ in codebinexpval()
1382 finishbinexpval(fs, e1, e2, op, v2, 0, line, OP_MMBIN, in codebinexpval()
1391 expdesc *e1, expdesc *e2, int flip, int line, in codebini() argument
1393 int v2 = int2sC(cast_int(e2->u.ival)); /* immediate operand */ in codebini()
1394 lua_assert(e2->k == VKINT); in codebini()
1395 finishbinexpval(fs, e1, e2, op, v2, flip, line, OP_MMBINI, event); in codebini()
1402 static int finishbinexpneg (FuncState *fs, expdesc *e1, expdesc *e2, in finishbinexpneg() argument
1404 if (!luaK_isKint(e2)) in finishbinexpneg()
1407 lua_Integer i2 = e2->u.ival; in finishbinexpneg()
1412 finishbinexpval(fs, e1, e2, op, int2sC(-v2), 0, line, OP_MMBINI, event); in finishbinexpneg()
1421 static void swapexps (expdesc *e1, expdesc *e2) { in swapexps() argument
1422 expdesc temp = *e1; *e1 = *e2; *e2 = temp; /* swap 'e1' and 'e2' */ in swapexps()
1431 expdesc *e1, expdesc *e2, int flip, int line) { in codearith() argument
1433 if (tonumeral(e2, NULL) && luaK_exp2K(fs, e2)) { /* K operand? */ in codearith()
1434 int v2 = e2->u.info; /* K index */ in codearith()
1436 finishbinexpval(fs, e1, e2, op, v2, flip, line, OP_MMBINK, event); in codearith()
1441 swapexps(e1, e2); /* back to original order */ in codearith()
1442 codebinexpval(fs, op, e1, e2, line); /* use standard operators */ in codearith()
1453 expdesc *e1, expdesc *e2, int line) { in codecommutative() argument
1456 swapexps(e1, e2); /* change order */ in codecommutative()
1459 if (op == OPR_ADD && isSCint(e2)) /* immediate operand? */ in codecommutative()
1460 codebini(fs, cast(OpCode, OP_ADDI), e1, e2, flip, line, TM_ADD); in codecommutative()
1462 codearith(fs, op, e1, e2, flip, line); in codecommutative()
1471 expdesc *e1, expdesc *e2, int line) { in codebitwise() argument
1476 swapexps(e1, e2); /* 'e2' will be the constant operand */ in codebitwise()
1479 else if (!(e2->k == VKINT && luaK_exp2RK(fs, e2))) { /* no constants? */ in codebitwise()
1481 codebinexpval(fs, op, e1, e2, line); /* all-register opcodes */ in codebitwise()
1484 v2 = e2->u.info; /* index in K array */ in codebitwise()
1487 finishbinexpval(fs, e1, e2, op, v2, flip, line, OP_MMBINK, in codebitwise()
1496 static void codeorder (FuncState *fs, OpCode op, expdesc *e1, expdesc *e2) { in codeorder() argument
1500 if (isSCnumber(e2, &im, &isfloat)) { in codeorder()
1508 r1 = luaK_exp2anyreg(fs, e2); in codeorder()
1514 r2 = luaK_exp2anyreg(fs, e2); in codeorder()
1516 freeexps(fs, e1, e2); in codeorder()
1526 static void codeeq (FuncState *fs, BinOpr opr, expdesc *e1, expdesc *e2) { in codeeq() argument
1533 swapexps(e1, e2); in codeeq()
1536 if (isSCnumber(e2, &im, &isfloat)) { in codeeq()
1540 else if (luaK_exp2RK(fs, e2)) { /* 1st expression is constant? */ in codeeq()
1542 r2 = e2->u.info; /* constant index */ in codeeq()
1546 r2 = luaK_exp2anyreg(fs, e2); in codeeq()
1548 freeexps(fs, e1, e2); in codeeq()
1626 static void codeconcat (FuncState *fs, expdesc *e1, expdesc *e2, int line) { in codeconcat() argument
1631 freeexp(fs, e2); in codeconcat()
1637 freeexp(fs, e2); in codeconcat()
1647 expdesc *e1, expdesc *e2, int line) { in luaK_posfix() argument
1648 luaK_dischargevars(fs, e2); in luaK_posfix()
1649 if (foldbinop(opr) && constfolding(fs, opr + LUA_OPADD, e1, e2)) in luaK_posfix()
1654 luaK_concat(fs, &e2->f, e1->f); in luaK_posfix()
1655 *e1 = *e2; in luaK_posfix()
1660 luaK_concat(fs, &e2->t, e1->t); in luaK_posfix()
1661 *e1 = *e2; in luaK_posfix()
1665 luaK_exp2nextreg(fs, e2); in luaK_posfix()
1666 codeconcat(fs, e1, e2, line); in luaK_posfix()
1670 codecommutative(fs, opr, e1, e2, line); in luaK_posfix()
1674 if (finishbinexpneg(fs, e1, e2, OP_ADDI, line, TM_SUB)) in luaK_posfix()
1679 codearith(fs, opr, e1, e2, 0, line); in luaK_posfix()
1683 codebitwise(fs, opr, e1, e2, line); in luaK_posfix()
1688 swapexps(e1, e2); in luaK_posfix()
1689 codebini(fs, OP_SHLI, e1, e2, 1, line, TM_SHL); /* I << r2 */ in luaK_posfix()
1691 else if (finishbinexpneg(fs, e1, e2, OP_SHRI, line, TM_SHL)) { in luaK_posfix()
1695 codebinexpval(fs, OP_SHL, e1, e2, line); in luaK_posfix()
1699 if (isSCint(e2)) in luaK_posfix()
1700 codebini(fs, OP_SHRI, e1, e2, 0, line, TM_SHR); /* r1 >> I */ in luaK_posfix()
1702 codebinexpval(fs, OP_SHR, e1, e2, line); in luaK_posfix()
1706 codeeq(fs, opr, e1, e2); in luaK_posfix()
1711 codeorder(fs, op, e1, e2); in luaK_posfix()
1717 swapexps(e1, e2); in luaK_posfix()
1718 codeorder(fs, op, e1, e2); in luaK_posfix()