aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lopcodes.c88
-rw-r--r--lopcodes.h5
-rw-r--r--lopnames.h94
-rw-r--r--ltests.c7
4 files changed, 100 insertions, 94 deletions
diff --git a/lopcodes.c b/lopcodes.c
index 823d3485..1a3b0e6a 100644
--- a/lopcodes.c
+++ b/lopcodes.c
@@ -1,5 +1,5 @@
1/* 1/*
2** $Id: lopcodes.c,v 1.81 2018/04/04 14:23:41 roberto Exp roberto $ 2** $Id: lopcodes.c,v 1.83 2018/06/26 18:00:55 roberto Exp $
3** Opcodes for Lua virtual machine 3** Opcodes for Lua virtual machine
4** See Copyright Notice in lua.h 4** See Copyright Notice in lua.h
5*/ 5*/
@@ -17,92 +17,6 @@
17 17
18/* ORDER OP */ 18/* ORDER OP */
19 19
20#if defined(LUAI_DEFOPNAMES)
21
22LUAI_DDEF const char *const luaP_opnames[NUM_OPCODES+1] = {
23 "MOVE",
24 "LOADI",
25 "LOADF",
26 "LOADK",
27 "LOADKX",
28 "LOADBOOL",
29 "LOADNIL",
30 "GETUPVAL",
31 "SETUPVAL",
32 "GETTABUP",
33 "GETTABLE",
34 "GETI",
35 "GETFIELD",
36 "SETTABUP",
37 "SETTABLE",
38 "SETI",
39 "SETFIELD",
40 "NEWTABLE",
41 "SELF",
42 "ADDI",
43 "SUBI",
44 "MULI",
45 "MODI",
46 "POWI",
47 "DIVI",
48 "IDIVI",
49 "BANDK",
50 "BORK",
51 "BXORK",
52 "SHRI",
53 "SHLI",
54 "ADD",
55 "SUB",
56 "MUL",
57 "MOD",
58 "POW",
59 "DIV",
60 "IDIV",
61 "BAND",
62 "BOR",
63 "BXOR",
64 "SHL",
65 "SHR",
66 "UNM",
67 "BNOT",
68 "NOT",
69 "LEN",
70 "CONCAT",
71 "CLOSE",
72 "JMP",
73 "EQ",
74 "LT",
75 "LE",
76 "EQK",
77 "EQI",
78 "LTI",
79 "LEI",
80 "GTI",
81 "GEI",
82 "TEST",
83 "TESTSET",
84 "CALL",
85 "TAILCALL",
86 "RETURN",
87 "RETURN0",
88 "RETURN1",
89 "FORLOOP1",
90 "FORPREP1",
91 "FORLOOP",
92 "FORPREP",
93 "TFORCALL",
94 "TFORLOOP",
95 "SETLIST",
96 "CLOSURE",
97 "VARARG",
98 "PREPVARARG",
99 "EXTRAARG",
100 NULL
101};
102
103#endif
104
105
106LUAI_DDEF const lu_byte luaP_opmodes[NUM_OPCODES] = { 20LUAI_DDEF const lu_byte luaP_opmodes[NUM_OPCODES] = {
107/* OT IT T A mode opcode */ 21/* OT IT T A mode opcode */
108 opmode(0, 0, 0, 1, iABC) /* OP_MOVE */ 22 opmode(0, 0, 0, 1, iABC) /* OP_MOVE */
diff --git a/lopcodes.h b/lopcodes.h
index 821bb196..d7b5dfe0 100644
--- a/lopcodes.h
+++ b/lopcodes.h
@@ -1,5 +1,5 @@
1/* 1/*
2** $Id: lopcodes.h,v 1.192 2018/06/08 19:07:27 roberto Exp roberto $ 2** $Id: lopcodes.h,v 1.194 2018/06/26 18:00:55 roberto Exp $
3** Opcodes for Lua virtual machine 3** Opcodes for Lua virtual machine
4** See Copyright Notice in lua.h 4** See Copyright Notice in lua.h
5*/ 5*/
@@ -358,9 +358,6 @@ LUAI_DDEC(const lu_byte luaP_opmodes[NUM_OPCODES];)
358#define opmode(ot,it,t,a,m) (((ot)<<6) | ((it)<<5) | ((t)<<4) | ((a)<<3) | (m)) 358#define opmode(ot,it,t,a,m) (((ot)<<6) | ((it)<<5) | ((t)<<4) | ((a)<<3) | (m))
359 359
360 360
361LUAI_DDEC(const char *const luaP_opnames[NUM_OPCODES+1];) /* opcode names */
362
363
364/* number of list items to accumulate before a SETLIST instruction */ 361/* number of list items to accumulate before a SETLIST instruction */
365#define LFIELDS_PER_FLUSH 50 362#define LFIELDS_PER_FLUSH 50
366 363
diff --git a/lopnames.h b/lopnames.h
new file mode 100644
index 00000000..ab434b59
--- /dev/null
+++ b/lopnames.h
@@ -0,0 +1,94 @@
1/*
2** $Id: lopnames.h,v 1.1 2018/06/26 18:00:55 roberto Exp $
3** Opcode names
4** See Copyright Notice in lua.h
5*/
6
7#if !defined(lopnames_h)
8#define lopnames_h
9
10/* ORDER OP */
11
12static const char *const opnames[] = {
13 "MOVE",
14 "LOADI",
15 "LOADF",
16 "LOADK",
17 "LOADKX",
18 "LOADBOOL",
19 "LOADNIL",
20 "GETUPVAL",
21 "SETUPVAL",
22 "GETTABUP",
23 "GETTABLE",
24 "GETI",
25 "GETFIELD",
26 "SETTABUP",
27 "SETTABLE",
28 "SETI",
29 "SETFIELD",
30 "NEWTABLE",
31 "SELF",
32 "ADDI",
33 "SUBI",
34 "MULI",
35 "MODI",
36 "POWI",
37 "DIVI",
38 "IDIVI",
39 "BANDK",
40 "BORK",
41 "BXORK",
42 "SHRI",
43 "SHLI",
44 "ADD",
45 "SUB",
46 "MUL",
47 "MOD",
48 "POW",
49 "DIV",
50 "IDIV",
51 "BAND",
52 "BOR",
53 "BXOR",
54 "SHL",
55 "SHR",
56 "UNM",
57 "BNOT",
58 "NOT",
59 "LEN",
60 "CONCAT",
61 "CLOSE",
62 "JMP",
63 "EQ",
64 "LT",
65 "LE",
66 "EQK",
67 "EQI",
68 "LTI",
69 "LEI",
70 "GTI",
71 "GEI",
72 "TEST",
73 "TESTSET",
74 "CALL",
75 "TAILCALL",
76 "RETURN",
77 "RETURN0",
78 "RETURN1",
79 "FORLOOP1",
80 "FORPREP1",
81 "FORLOOP",
82 "FORPREP",
83 "TFORCALL",
84 "TFORLOOP",
85 "SETLIST",
86 "CLOSURE",
87 "VARARG",
88 "PREPVARARG",
89 "EXTRAARG",
90 NULL
91};
92
93#endif
94
diff --git a/ltests.c b/ltests.c
index 82d6463a..ac548a95 100644
--- a/ltests.c
+++ b/ltests.c
@@ -1,5 +1,5 @@
1/* 1/*
2** $Id: ltests.c,v 2.244 2018/06/11 14:19:50 roberto Exp roberto $ 2** $Id: ltests.c,v 2.246 2018/06/26 18:00:55 roberto Exp roberto $
3** Internal Module for Debugging of the Lua Implementation 3** Internal Module for Debugging of the Lua Implementation
4** See Copyright Notice in lua.h 4** See Copyright Notice in lua.h
5*/ 5*/
@@ -27,6 +27,7 @@
27#include "lfunc.h" 27#include "lfunc.h"
28#include "lmem.h" 28#include "lmem.h"
29#include "lopcodes.h" 29#include "lopcodes.h"
30#include "lopnames.h"
30#include "lstate.h" 31#include "lstate.h"
31#include "lstring.h" 32#include "lstring.h"
32#include "ltable.h" 33#include "ltable.h"
@@ -523,7 +524,7 @@ int lua_checkmemory (lua_State *L) {
523static char *buildop (Proto *p, int pc, char *buff) { 524static char *buildop (Proto *p, int pc, char *buff) {
524 Instruction i = p->code[pc]; 525 Instruction i = p->code[pc];
525 OpCode o = GET_OPCODE(i); 526 OpCode o = GET_OPCODE(i);
526 const char *name = luaP_opnames[o]; 527 const char *name = opnames[o];
527 int line = luaG_getfuncline(p, pc); 528 int line = luaG_getfuncline(p, pc);
528 sprintf(buff, "(%4d) %4d - ", line, pc); 529 sprintf(buff, "(%4d) %4d - ", line, pc);
529 switch (getOpMode(o)) { 530 switch (getOpMode(o)) {
@@ -599,7 +600,7 @@ static int printcode (lua_State *L) {
599 printf("numparams: %d\n", p->numparams); 600 printf("numparams: %d\n", p->numparams);
600 for (pc=0; pc<p->sizecode; pc++) { 601 for (pc=0; pc<p->sizecode; pc++) {
601 char buff[100]; 602 char buff[100];
602 printf("%d\t%s\n", pc + 1, buildop(p, pc, buff)); 603 printf("%s\n", buildop(p, pc, buff));
603 } 604 }
604 return 0; 605 return 0;
605} 606}