aboutsummaryrefslogtreecommitdiff
path: root/lvm.c
diff options
context:
space:
mode:
authorRoberto Ierusalimschy <roberto@inf.puc-rio.br>2017-09-28 13:53:29 -0300
committerRoberto Ierusalimschy <roberto@inf.puc-rio.br>2017-09-28 13:53:29 -0300
commit722bdbe17d0192baf72978f88069d12a921e9bfb (patch)
tree78da619d4799721e67a760bf4220b568f636cb86 /lvm.c
parent1b100335839e13021b4731f0407b87e4f7544dc0 (diff)
downloadlua-722bdbe17d0192baf72978f88069d12a921e9bfb.tar.gz
lua-722bdbe17d0192baf72978f88069d12a921e9bfb.tar.bz2
lua-722bdbe17d0192baf72978f88069d12a921e9bfb.zip
no more 'getBMode'-'getCMode' (imprecise + we will need more space
for op mode) + better control of op modes
Diffstat (limited to 'lvm.c')
-rw-r--r--lvm.c19
1 files changed, 8 insertions, 11 deletions
diff --git a/lvm.c b/lvm.c
index f34f3dfe..fd02ad5b 100644
--- a/lvm.c
+++ b/lvm.c
@@ -1,5 +1,5 @@
1/* 1/*
2** $Id: lvm.c,v 2.294 2017/09/26 18:14:45 roberto Exp roberto $ 2** $Id: lvm.c,v 2.295 2017/09/27 18:59:08 roberto Exp roberto $
3** Lua virtual machine 3** Lua virtual machine
4** See Copyright Notice in lua.h 4** See Copyright Notice in lua.h
5*/ 5*/
@@ -733,14 +733,13 @@ void luaV_finishOp (lua_State *L) {
733 733
734 734
735#define RA(i) (base+GETARG_A(i)) 735#define RA(i) (base+GETARG_A(i))
736#define RB(i) check_exp(getBMode(GET_OPCODE(i)) == OpArgR, base+GETARG_Br(i)) 736#define RB(i) (base+GETARG_Br(i))
737#define vRB(i) s2v(RB(i)) 737#define vRB(i) s2v(RB(i))
738#define KB(i) check_exp(getBMode(GET_OPCODE(i)) == OpArgK, k+GETARG_B(i)) 738#define KB(i) (k+GETARG_B(i))
739#define RC(i) check_exp(getCMode(GET_OPCODE(i)) == OpArgR, base+GETARG_C(i)) 739#define RC(i) (base+GETARG_C(i))
740#define vRC(i) s2v(RC(i)) 740#define vRC(i) s2v(RC(i))
741#define KC(i) check_exp(getCMode(GET_OPCODE(i)) == OpArgK, k+GETARG_C(i)) 741#define KC(i) (k+GETARG_C(i))
742#define RKC(i) check_exp(getCMode(GET_OPCODE(i)) == OpArgK, \ 742#define RKC(i) ((GETARG_Ck(i)) ? k + GETARG_Cr(i) : s2v(base + GETARG_Cr(i)))
743 (GETARG_Ck(i)) ? k + GETARG_Cr(i) : s2v(base + GETARG_Cr(i)))
744 743
745 744
746 745
@@ -834,8 +833,7 @@ void luaV_execute (lua_State *L) {
834 } 833 }
835 vmcase(OP_LOADKX) { 834 vmcase(OP_LOADKX) {
836 TValue *rb; 835 TValue *rb;
837 lua_assert(GET_OPCODE(*pc) == OP_EXTRAARG); 836 rb = k + GETARG_Ax(*pc); pc++;
838 rb = k + GETARG_Ax(*pc++);
839 setobj2s(L, ra, rb); 837 setobj2s(L, ra, rb);
840 vmbreak; 838 vmbreak;
841 } 839 }
@@ -1409,8 +1407,7 @@ void luaV_execute (lua_State *L) {
1409 Table *h; 1407 Table *h;
1410 if (n == 0) n = cast_int(L->top - ra) - 1; 1408 if (n == 0) n = cast_int(L->top - ra) - 1;
1411 if (c == 0) { 1409 if (c == 0) {
1412 lua_assert(GET_OPCODE(*pc) == OP_EXTRAARG); 1410 c = GETARG_Ax(*pc); pc++;
1413 c = GETARG_Ax(*pc++);
1414 } 1411 }
1415 h = hvalue(s2v(ra)); 1412 h = hvalue(s2v(ra));
1416 last = ((c-1)*LFIELDS_PER_FLUSH) + n; 1413 last = ((c-1)*LFIELDS_PER_FLUSH) + n;