/* Emit code for binary expressions that "produce values" (everything but logical operators 'and'/'or' and comparison operators). Expression to produce final result will be encoded in 'e1'.  */
static void finishbinexpval(FuncState *fs, expdesc *e1, expdesc *e2, OpCode op, int v2, int flip, int line, OpCode mmop, TMS event)
/* Emit code for binary expressions that "produce values" (everything but logical operators 'and'/'or' and comparison operators). Expression to produce final result will be encoded in 'e1'.  */
static void finishbinexpval(FuncState *fs, expdesc *e1, expdesc *e2, OpCode op, int v2, int flip, int line, OpCode mmop, TMS event)
{
  int v1 = luaK_exp2anyreg(fs, e1);
  int pc = luaK_codeABCk(fs, op, 0, v1, v2, 0);
  freeexps(fs, e1, e2);
  e1->u.info = pc;
  e1->k = VRELOC;
  luaK_fixline(fs, line);
  luaK_codeABCk(fs, mmop, v1, v2, event, flip);
  luaK_fixline(fs, line);
}