/* Emit code for binary expressions that "produce values" over two registers.  */
static void codebinexpval(FuncState *fs, OpCode op, expdesc *e1, expdesc *e2, int line)
/* Emit code for binary expressions that "produce values" over two registers.  */
static void codebinexpval(FuncState *fs, OpCode op, expdesc *e1, expdesc *e2, int line)
{
  int v2 = luaK_exp2anyreg(fs, e2);
  lua_assert(OP_ADD <= op && op <= OP_SHR);
  finishbinexpval(fs, e1, e2, op, v2, 0, line, OP_MMBIN,
                  cast(TMS, (op - OP_ADD) + TM_ADD));
}