commit c364e9f97ee825be833d50a04a621d58d71af684
parent e3a02e6a9ce0714bf51d20c94b54302bf9939dd8
Author: Roberto Ierusalimschy <roberto@inf.puc-rio.br>
Date: Tue, 23 Feb 1999 10:38:16 -0300
LONGARGW (for completeness).
Diffstat:
2 files changed, 6 insertions(+), 4 deletions(-)
diff --git a/lopcodes.h b/lopcodes.h
@@ -1,5 +1,5 @@
/*
-** $Id: lopcodes.h,v 1.24 1999/02/09 15:58:45 roberto Exp roberto $
+** $Id: lopcodes.h,v 1.25 1999/02/09 18:01:55 roberto Exp roberto $
** Opcodes for Lua virtual machine
** See Copyright Notice in lua.h
*/
@@ -106,6 +106,7 @@ CALLFUNC,/* b c v_c...v_1 f r_b...r_1 f(v1,...,v_c) */
SETLINEW,/* w - - LINE=w */
SETLINE,/* b - - LINE=b */
+LONGARGW,/* w (add w*(1<<16) to arg of next instruction) */
LONGARG /* b (add b*(1<<16) to arg of next instruction) */
} OpCode;
diff --git a/lvm.c b/lvm.c
@@ -1,5 +1,5 @@
/*
-** $Id: lvm.c,v 1.48 1999/02/09 15:58:45 roberto Exp roberto $
+** $Id: lvm.c,v 1.49 1999/02/09 18:01:55 roberto Exp roberto $
** Lua virtual machine
** See Copyright Notice in lua.h
*/
@@ -638,8 +638,9 @@ StkId luaV_execute (Closure *cl, TProtoFunc *tf, StkId base) {
luaD_lineHook(aux);
break;
- case LONGARG:
- aux = highbyte(highbyte(*pc++));
+ case LONGARGW: aux += highbyte(*pc++);
+ case LONGARG: aux += *pc++;
+ aux = highbyte(highbyte(aux));
goto switchentry; /* do not reset "aux" */
}