e1 627 lib/lua/lcode.c static int constfolding (OpCode op, expdesc *e1, expdesc *e2) { e1 629 lib/lua/lcode.c if (!isnumeral(e1) || !isnumeral(e2)) return 0; e1 630 lib/lua/lcode.c v1 = e1->u.nval; e1 648 lib/lua/lcode.c e1->u.nval = r; e1 653 lib/lua/lcode.c static void codearith (FuncState *fs, OpCode op, expdesc *e1, expdesc *e2) { e1 654 lib/lua/lcode.c if (constfolding(op, e1, e2)) e1 658 lib/lua/lcode.c int o1 = luaK_exp2RK(fs, e1); e1 660 lib/lua/lcode.c freeexp(fs, e1); e1 665 lib/lua/lcode.c freeexp(fs, e1); e1 667 lib/lua/lcode.c e1->u.s.info = luaK_codeABC(fs, op, 0, o1, o2); e1 668 lib/lua/lcode.c e1->k = VRELOCABLE; e1 673 lib/lua/lcode.c static void codecomp (FuncState *fs, OpCode op, int cond, expdesc *e1, e1 675 lib/lua/lcode.c int o1 = luaK_exp2RK(fs, e1); e1 678 lib/lua/lcode.c freeexp(fs, e1); e1 684 lib/lua/lcode.c e1->u.s.info = condjump(fs, op, cond, o1, o2); e1 685 lib/lua/lcode.c e1->k = VJMP; e1 737 lib/lua/lcode.c LUAI_FUNC void luaK_posfix (FuncState *fs, BinOpr op, expdesc *e1, expdesc *e2) { e1 740 lib/lua/lcode.c lua_assert(e1->t == NO_JUMP); /* list must be closed */ e1 742 lib/lua/lcode.c luaK_concat(fs, &e2->f, e1->f); e1 743 lib/lua/lcode.c *e1 = *e2; e1 747 lib/lua/lcode.c lua_assert(e1->f == NO_JUMP); /* list must be closed */ e1 749 lib/lua/lcode.c luaK_concat(fs, &e2->t, e1->t); e1 750 lib/lua/lcode.c *e1 = *e2; e1 756 lib/lua/lcode.c lua_assert(e1->u.s.info == GETARG_B(getcode(fs, e2))-1); e1 757 lib/lua/lcode.c freeexp(fs, e1); e1 758 lib/lua/lcode.c SETARG_B(getcode(fs, e2), e1->u.s.info); e1 759 lib/lua/lcode.c e1->k = VRELOCABLE; e1->u.s.info = e2->u.s.info; e1 763 lib/lua/lcode.c codearith(fs, OP_CONCAT, e1, e2); e1 767 lib/lua/lcode.c case OPR_ADD: codearith(fs, OP_ADD, e1, e2); break; e1 768 lib/lua/lcode.c case OPR_SUB: codearith(fs, OP_SUB, e1, e2); break; e1 769 lib/lua/lcode.c case OPR_MUL: codearith(fs, OP_MUL, e1, e2); break; e1 770 lib/lua/lcode.c case OPR_DIV: codearith(fs, OP_DIV, e1, e2); break; e1 771 lib/lua/lcode.c case OPR_MOD: codearith(fs, OP_MOD, e1, e2); break; e1 772 lib/lua/lcode.c case OPR_POW: codearith(fs, OP_POW, e1, e2); break; e1 773 lib/lua/lcode.c case OPR_EQ: codecomp(fs, OP_EQ, 1, e1, e2); break; e1 774 lib/lua/lcode.c case OPR_NE: codecomp(fs, OP_EQ, 0, e1, e2); break; e1 775 lib/lua/lcode.c case OPR_LT: codecomp(fs, OP_LT, 1, e1, e2); break; e1 776 lib/lua/lcode.c case OPR_LE: codecomp(fs, OP_LE, 1, e1, e2); break; e1 777 lib/lua/lcode.c case OPR_GT: codecomp(fs, OP_LT, 0, e1, e2); break; e1 778 lib/lua/lcode.c case OPR_GE: codecomp(fs, OP_LE, 0, e1, e2); break;