aboutsummaryrefslogtreecommitdiff
path: root/lvm.c
diff options
context:
space:
mode:
authorRoberto Ierusalimschy <roberto@inf.puc-rio.br>2019-07-12 16:47:02 -0300
committerRoberto Ierusalimschy <roberto@inf.puc-rio.br>2019-07-12 16:47:02 -0300
commitdd6d8db49acda5d5353a0a9c42485d9b4bde419d (patch)
tree04921fbdf39e4bbf60ba8827c2aa57b7a03f4233 /lvm.c
parent1fb4d539254b67e7e35ed698250c66d1edff0e08 (diff)
downloadlua-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.c88
1 files changed, 44 insertions, 44 deletions
diff --git a/lvm.c b/lvm.c
index 4011819d..ec65ea78 100644
--- a/lvm.c
+++ b/lvm.c
@@ -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);