diff options
author | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2019-07-12 16:47:02 -0300 |
---|---|---|
committer | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2019-07-12 16:47:02 -0300 |
commit | dd6d8db49acda5d5353a0a9c42485d9b4bde419d (patch) | |
tree | 04921fbdf39e4bbf60ba8827c2aa57b7a03f4233 /lvm.c | |
parent | 1fb4d539254b67e7e35ed698250c66d1edff0e08 (diff) | |
download | lua-dd6d8db49acda5d5353a0a9c42485d9b4bde419d.tar.gz lua-dd6d8db49acda5d5353a0a9c42485d9b4bde419d.tar.bz2 lua-dd6d8db49acda5d5353a0a9c42485d9b4bde419d.zip |
Reordering of instructions in the main loop
The instructions in the main interpreter loop were reordered to
the same order of their enumeration in 'lopcodes.h'.
Diffstat (limited to 'lvm.c')
-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); |