** 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'. */
| 1354 | ** Expression to produce final result will be encoded in 'e1'. |
| 1355 | */ |
| 1356 | static void finishbinexpval (FuncState *fs, expdesc *e1, expdesc *e2, |
| 1357 | OpCode op, int v2, int flip, int line, |
| 1358 | OpCode mmop, TMS event) { |
| 1359 | int v1 = luaK_exp2anyreg(fs, e1); |
| 1360 | int pc = luaK_codeABCk(fs, op, 0, v1, v2, 0); |
| 1361 | freeexps(fs, e1, e2); |
| 1362 | e1->u.info = pc; |
| 1363 | e1->k = VRELOC; /* all those operations are relocatable */ |
| 1364 | luaK_fixline(fs, line); |
| 1365 | luaK_codeABCk(fs, mmop, v1, v2, event, flip); /* to call metamethod */ |
| 1366 | luaK_fixline(fs, line); |
| 1367 | } |
| 1368 | |
| 1369 | |
| 1370 | /* |
no test coverage detected