diff options
| -rw-r--r-- | lvm.c | 88 |
1 files changed, 44 insertions, 44 deletions
| @@ -1097,11 +1097,6 @@ void luaV_execute (lua_State *L, CallInfo *ci) { | |||
| 1097 | setobjs2s(L, ra, RB(i)); | 1097 | setobjs2s(L, ra, RB(i)); |
| 1098 | vmbreak; | 1098 | vmbreak; |
| 1099 | } | 1099 | } |
| 1100 | vmcase(OP_LOADK) { | ||
| 1101 | TValue *rb = k + GETARG_Bx(i); | ||
| 1102 | setobj2s(L, ra, rb); | ||
| 1103 | vmbreak; | ||
| 1104 | } | ||
| 1105 | vmcase(OP_LOADI) { | 1100 | vmcase(OP_LOADI) { |
| 1106 | lua_Integer b = GETARG_sBx(i); | 1101 | lua_Integer b = GETARG_sBx(i); |
| 1107 | setivalue(s2v(ra), b); | 1102 | setivalue(s2v(ra), b); |
| @@ -1112,6 +1107,11 @@ void luaV_execute (lua_State *L, CallInfo *ci) { | |||
| 1112 | setfltvalue(s2v(ra), cast_num(b)); | 1107 | setfltvalue(s2v(ra), cast_num(b)); |
| 1113 | vmbreak; | 1108 | vmbreak; |
| 1114 | } | 1109 | } |
| 1110 | vmcase(OP_LOADK) { | ||
| 1111 | TValue *rb = k + GETARG_Bx(i); | ||
| 1112 | setobj2s(L, ra, rb); | ||
| 1113 | vmbreak; | ||
| 1114 | } | ||
| 1115 | vmcase(OP_LOADKX) { | 1115 | vmcase(OP_LOADKX) { |
| 1116 | TValue *rb; | 1116 | TValue *rb; |
| 1117 | rb = k + GETARG_Ax(*pc); pc++; | 1117 | rb = k + GETARG_Ax(*pc); pc++; |
| @@ -1331,6 +1331,45 @@ void luaV_execute (lua_State *L, CallInfo *ci) { | |||
| 1331 | op_arithK(L, luaV_idiv, luai_numidiv, TM_IDIV, 0); | 1331 | op_arithK(L, luaV_idiv, luai_numidiv, TM_IDIV, 0); |
| 1332 | vmbreak; | 1332 | vmbreak; |
| 1333 | } | 1333 | } |
| 1334 | vmcase(OP_BANDK) { | ||
| 1335 | op_bitwiseK(L, l_band, TM_BAND); | ||
| 1336 | vmbreak; | ||
| 1337 | } | ||
| 1338 | vmcase(OP_BORK) { | ||
| 1339 | op_bitwiseK(L, l_bor, TM_BOR); | ||
| 1340 | vmbreak; | ||
| 1341 | } | ||
| 1342 | vmcase(OP_BXORK) { | ||
| 1343 | op_bitwiseK(L, l_bxor, TM_BXOR); | ||
| 1344 | vmbreak; | ||
| 1345 | } | ||
| 1346 | vmcase(OP_SHRI) { | ||
| 1347 | TValue *rb = vRB(i); | ||
| 1348 | int ic = GETARG_sC(i); | ||
| 1349 | lua_Integer ib; | ||
| 1350 | if (tointegerns(rb, &ib)) { | ||
| 1351 | setivalue(s2v(ra), luaV_shiftl(ib, -ic)); | ||
| 1352 | } | ||
| 1353 | else { | ||
| 1354 | TMS ev = TM_SHR; | ||
| 1355 | if (TESTARG_k(i)) { | ||
| 1356 | ic = -ic; ev = TM_SHL; | ||
| 1357 | } | ||
| 1358 | Protect(luaT_trybiniTM(L, rb, ic, 0, ra, ev)); | ||
| 1359 | } | ||
| 1360 | vmbreak; | ||
| 1361 | } | ||
| 1362 | vmcase(OP_SHLI) { | ||
| 1363 | TValue *rb = vRB(i); | ||
| 1364 | int ic = GETARG_sC(i); | ||
| 1365 | lua_Integer ib; | ||
| 1366 | if (tointegerns(rb, &ib)) { | ||
| 1367 | setivalue(s2v(ra), luaV_shiftl(ic, ib)); | ||
| 1368 | } | ||
| 1369 | else | ||
| 1370 | Protect(luaT_trybiniTM(L, rb, ic, 1, ra, TM_SHL)); | ||
| 1371 | vmbreak; | ||
| 1372 | } | ||
| 1334 | vmcase(OP_ADD) { | 1373 | vmcase(OP_ADD) { |
| 1335 | op_arith(L, l_addi, luai_numadd, TM_ADD); | 1374 | op_arith(L, l_addi, luai_numadd, TM_ADD); |
| 1336 | vmbreak; | 1375 | vmbreak; |
| @@ -1359,18 +1398,6 @@ void luaV_execute (lua_State *L, CallInfo *ci) { | |||
| 1359 | op_arith(L, luaV_idiv, luai_numidiv, TM_IDIV); | 1398 | op_arith(L, luaV_idiv, luai_numidiv, TM_IDIV); |
| 1360 | vmbreak; | 1399 | vmbreak; |
| 1361 | } | 1400 | } |
| 1362 | vmcase(OP_BANDK) { | ||
| 1363 | op_bitwiseK(L, l_band, TM_BAND); | ||
| 1364 | vmbreak; | ||
| 1365 | } | ||
| 1366 | vmcase(OP_BORK) { | ||
| 1367 | op_bitwiseK(L, l_bor, TM_BOR); | ||
| 1368 | vmbreak; | ||
| 1369 | } | ||
| 1370 | vmcase(OP_BXORK) { | ||
| 1371 | op_bitwiseK(L, l_bxor, TM_BXOR); | ||
| 1372 | vmbreak; | ||
| 1373 | } | ||
| 1374 | vmcase(OP_BAND) { | 1401 | vmcase(OP_BAND) { |
| 1375 | op_bitwise(L, l_band, TM_BAND); | 1402 | op_bitwise(L, l_band, TM_BAND); |
| 1376 | vmbreak; | 1403 | vmbreak; |
| @@ -1383,33 +1410,6 @@ void luaV_execute (lua_State *L, CallInfo *ci) { | |||
| 1383 | op_bitwise(L, l_bxor, TM_BXOR); | 1410 | op_bitwise(L, l_bxor, TM_BXOR); |
| 1384 | vmbreak; | 1411 | vmbreak; |
| 1385 | } | 1412 | } |
| 1386 | vmcase(OP_SHRI) { | ||
| 1387 | TValue *rb = vRB(i); | ||
| 1388 | int ic = GETARG_sC(i); | ||
| 1389 | lua_Integer ib; | ||
| 1390 | if (tointegerns(rb, &ib)) { | ||
| 1391 | setivalue(s2v(ra), luaV_shiftl(ib, -ic)); | ||
| 1392 | } | ||
| 1393 | else { | ||
| 1394 | TMS ev = TM_SHR; | ||
| 1395 | if (TESTARG_k(i)) { | ||
| 1396 | ic = -ic; ev = TM_SHL; | ||
| 1397 | } | ||
| 1398 | Protect(luaT_trybiniTM(L, rb, ic, 0, ra, ev)); | ||
| 1399 | } | ||
| 1400 | vmbreak; | ||
| 1401 | } | ||
| 1402 | vmcase(OP_SHLI) { | ||
| 1403 | TValue *rb = vRB(i); | ||
| 1404 | int ic = GETARG_sC(i); | ||
| 1405 | lua_Integer ib; | ||
| 1406 | if (tointegerns(rb, &ib)) { | ||
| 1407 | setivalue(s2v(ra), luaV_shiftl(ic, ib)); | ||
| 1408 | } | ||
| 1409 | else | ||
| 1410 | Protect(luaT_trybiniTM(L, rb, ic, 1, ra, TM_SHL)); | ||
| 1411 | vmbreak; | ||
| 1412 | } | ||
| 1413 | vmcase(OP_SHR) { | 1413 | vmcase(OP_SHR) { |
| 1414 | TValue *rb = vRB(i); | 1414 | TValue *rb = vRB(i); |
| 1415 | TValue *rc = vRC(i); | 1415 | TValue *rc = vRC(i); |
