e2 627 lib/lua/lcode.c static int constfolding (OpCode op, expdesc *e1, expdesc *e2) { e2 629 lib/lua/lcode.c if (!isnumeral(e1) || !isnumeral(e2)) return 0; e2 631 lib/lua/lcode.c v2 = e2->u.nval; e2 653 lib/lua/lcode.c static void codearith (FuncState *fs, OpCode op, expdesc *e1, expdesc *e2) { e2 654 lib/lua/lcode.c if (constfolding(op, e1, e2)) e2 657 lib/lua/lcode.c int o2 = (op != OP_UNM && op != OP_LEN) ? luaK_exp2RK(fs, e2) : 0; e2 661 lib/lua/lcode.c freeexp(fs, e2); e2 664 lib/lua/lcode.c freeexp(fs, e2); e2 674 lib/lua/lcode.c expdesc *e2) { e2 676 lib/lua/lcode.c int o2 = luaK_exp2RK(fs, e2); e2 677 lib/lua/lcode.c freeexp(fs, e2); e2 690 lib/lua/lcode.c expdesc e2; e2 691 lib/lua/lcode.c e2.t = e2.f = NO_JUMP; e2.k = VKNUM; e2.u.nval = 0; e2 696 lib/lua/lcode.c codearith(fs, OP_UNM, e, &e2); e2 702 lib/lua/lcode.c codearith(fs, OP_LEN, e, &e2); e2 737 lib/lua/lcode.c LUAI_FUNC void luaK_posfix (FuncState *fs, BinOpr op, expdesc *e1, expdesc *e2) { e2 741 lib/lua/lcode.c luaK_dischargevars(fs, e2); e2 742 lib/lua/lcode.c luaK_concat(fs, &e2->f, e1->f); e2 743 lib/lua/lcode.c *e1 = *e2; e2 748 lib/lua/lcode.c luaK_dischargevars(fs, e2); e2 749 lib/lua/lcode.c luaK_concat(fs, &e2->t, e1->t); e2 750 lib/lua/lcode.c *e1 = *e2; e2 754 lib/lua/lcode.c luaK_exp2val(fs, e2); e2 755 lib/lua/lcode.c if (e2->k == VRELOCABLE && GET_OPCODE(getcode(fs, e2)) == OP_CONCAT) { e2 756 lib/lua/lcode.c lua_assert(e1->u.s.info == GETARG_B(getcode(fs, e2))-1); e2 758 lib/lua/lcode.c SETARG_B(getcode(fs, e2), e1->u.s.info); e2 759 lib/lua/lcode.c e1->k = VRELOCABLE; e1->u.s.info = e2->u.s.info; e2 762 lib/lua/lcode.c luaK_exp2nextreg(fs, e2); /* operand must be on the 'stack' */ e2 763 lib/lua/lcode.c codearith(fs, OP_CONCAT, e1, e2); e2 767 lib/lua/lcode.c case OPR_ADD: codearith(fs, OP_ADD, e1, e2); break; e2 768 lib/lua/lcode.c case OPR_SUB: codearith(fs, OP_SUB, e1, e2); break; e2 769 lib/lua/lcode.c case OPR_MUL: codearith(fs, OP_MUL, e1, e2); break; e2 770 lib/lua/lcode.c case OPR_DIV: codearith(fs, OP_DIV, e1, e2); break; e2 771 lib/lua/lcode.c case OPR_MOD: codearith(fs, OP_MOD, e1, e2); break; e2 772 lib/lua/lcode.c case OPR_POW: codearith(fs, OP_POW, e1, e2); break; e2 773 lib/lua/lcode.c case OPR_EQ: codecomp(fs, OP_EQ, 1, e1, e2); break; e2 774 lib/lua/lcode.c case OPR_NE: codecomp(fs, OP_EQ, 0, e1, e2); break; e2 775 lib/lua/lcode.c case OPR_LT: codecomp(fs, OP_LT, 1, e1, e2); break; e2 776 lib/lua/lcode.c case OPR_LE: codecomp(fs, OP_LE, 1, e1, e2); break; e2 777 lib/lua/lcode.c case OPR_GT: codecomp(fs, OP_LT, 0, e1, e2); break; e2 778 lib/lua/lcode.c case OPR_GE: codecomp(fs, OP_LE, 0, e1, e2); break;