mirror of
https://github.com/lua/lua
synced 2025-01-13 12:59:17 +03:00
optimization for SETLOCAL was too specific.
This commit is contained in:
parent
4aa9ad6514
commit
634c3d57e9
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
** $Id: lopcodes.h,v 1.57 2000/04/12 18:57:19 roberto Exp roberto $
|
** $Id: lopcodes.h,v 1.58 2000/04/13 16:51:01 roberto Exp roberto $
|
||||||
** Opcodes for Lua virtual machine
|
** Opcodes for Lua virtual machine
|
||||||
** See Copyright Notice in lua.h
|
** See Copyright Notice in lua.h
|
||||||
*/
|
*/
|
||||||
@ -108,7 +108,7 @@ OP_PUSHSELF,/* K t t t[KSTR[k]] */
|
|||||||
|
|
||||||
OP_CREATETABLE,/* U - newarray(size = u) */
|
OP_CREATETABLE,/* U - newarray(size = u) */
|
||||||
|
|
||||||
OP_SETLOCAL,/* L B v_b-v_1 - LOC[l]=v_b */
|
OP_SETLOCAL,/* L x - LOC[l]=x */
|
||||||
OP_SETGLOBAL,/* K x - VAR[KSTR[k]]=x */
|
OP_SETGLOBAL,/* K x - VAR[KSTR[k]]=x */
|
||||||
OP_SETTABLE,/* A B v a_a-a_1 i t (pops b values) t[i]=v */
|
OP_SETTABLE,/* A B v a_a-a_1 i t (pops b values) t[i]=v */
|
||||||
|
|
||||||
|
12
ltests.c
12
ltests.c
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
** $Id: ltests.c,v 1.14 2000/04/12 19:56:50 roberto Exp roberto $
|
** $Id: ltests.c,v 1.15 2000/04/13 16:51:01 roberto Exp roberto $
|
||||||
** Internal Module for Debugging of the Lua Implementation
|
** Internal Module for Debugging of the Lua Implementation
|
||||||
** See Copyright Notice in lua.h
|
** See Copyright Notice in lua.h
|
||||||
*/
|
*/
|
||||||
@ -55,7 +55,7 @@ static void setnameval (lua_State *L, lua_Object t, const char *name, int val) {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
static int printop (lua_State *L, Instruction i) {
|
static int pushop (lua_State *L, Instruction i) {
|
||||||
char buff[100];
|
char buff[100];
|
||||||
switch (GET_OPCODE(i)) {
|
switch (GET_OPCODE(i)) {
|
||||||
case OP_END: O("END"); lua_pushstring(L, buff); return 0;
|
case OP_END: O("END"); lua_pushstring(L, buff); return 0;
|
||||||
@ -76,7 +76,7 @@ static int printop (lua_State *L, Instruction i) {
|
|||||||
case OP_GETINDEXED: U("GETINDEXED"); break;
|
case OP_GETINDEXED: U("GETINDEXED"); break;
|
||||||
case OP_PUSHSELF: U("PUSHSELF"); break;
|
case OP_PUSHSELF: U("PUSHSELF"); break;
|
||||||
case OP_CREATETABLE: U("CREATETABLE"); break;
|
case OP_CREATETABLE: U("CREATETABLE"); break;
|
||||||
case OP_SETLOCAL: AB("SETLOCAL"); break;
|
case OP_SETLOCAL: U("SETLOCAL"); break;
|
||||||
case OP_SETGLOBAL: U("SETGLOBAL"); break;
|
case OP_SETGLOBAL: U("SETGLOBAL"); break;
|
||||||
case OP_SETTABLE: AB("SETTABLE"); break;
|
case OP_SETTABLE: AB("SETTABLE"); break;
|
||||||
case OP_SETLIST: AB("SETLIST"); break;
|
case OP_SETLIST: AB("SETLIST"); break;
|
||||||
@ -111,7 +111,7 @@ static int printop (lua_State *L, Instruction i) {
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void printcode (lua_State *L) {
|
static void listcode (lua_State *L) {
|
||||||
lua_Object o = luaL_nonnullarg(L, 1);
|
lua_Object o = luaL_nonnullarg(L, 1);
|
||||||
lua_Object t = lua_createtable(L);
|
lua_Object t = lua_createtable(L);
|
||||||
Instruction *pc;
|
Instruction *pc;
|
||||||
@ -125,7 +125,7 @@ static void printcode (lua_State *L) {
|
|||||||
do {
|
do {
|
||||||
lua_pushobject(L, t);
|
lua_pushobject(L, t);
|
||||||
lua_pushnumber(L, pc - p->code + 1);
|
lua_pushnumber(L, pc - p->code + 1);
|
||||||
res = printop(L, *pc++);
|
res = pushop(L, *pc++);
|
||||||
lua_settable(L);
|
lua_settable(L);
|
||||||
} while (res);
|
} while (res);
|
||||||
lua_pushobject(L, t);
|
lua_pushobject(L, t);
|
||||||
@ -402,7 +402,7 @@ static void testC (lua_State *L) {
|
|||||||
static const struct luaL_reg tests_funcs[] = {
|
static const struct luaL_reg tests_funcs[] = {
|
||||||
{"hash", hash_query},
|
{"hash", hash_query},
|
||||||
{"limits", get_limits},
|
{"limits", get_limits},
|
||||||
{"printcode", printcode},
|
{"listcode", listcode},
|
||||||
{"querystr", string_query},
|
{"querystr", string_query},
|
||||||
{"querytab", table_query},
|
{"querytab", table_query},
|
||||||
{"testC", testC},
|
{"testC", testC},
|
||||||
|
5
lvm.c
5
lvm.c
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
** $Id: lvm.c,v 1.101 2000/04/12 18:57:19 roberto Exp roberto $
|
** $Id: lvm.c,v 1.102 2000/04/13 16:51:01 roberto Exp roberto $
|
||||||
** Lua virtual machine
|
** Lua virtual machine
|
||||||
** See Copyright Notice in lua.h
|
** See Copyright Notice in lua.h
|
||||||
*/
|
*/
|
||||||
@ -456,8 +456,7 @@ StkId luaV_execute (lua_State *L, const Closure *cl, register StkId base) {
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case OP_SETLOCAL:
|
case OP_SETLOCAL:
|
||||||
*(base+GETARG_A(i)) = *(top-1);
|
*(base+GETARG_U(i)) = *(--top);
|
||||||
top -= GETARG_B(i);
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case OP_SETGLOBAL:
|
case OP_SETGLOBAL:
|
||||||
|
Loading…
Reference in New Issue
Block a user