aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoberto Ierusalimschy <roberto@inf.puc-rio.br>2001-06-28 16:58:57 -0300
committerRoberto Ierusalimschy <roberto@inf.puc-rio.br>2001-06-28 16:58:57 -0300
commit87a5fae45322dde56306de92d8eb8050506fb9ba (patch)
tree936c39807a47dacf682d91e8aebef6a5e79408a6
parentafed6c6864b0538be3bde402fcb74df01ba78ed4 (diff)
downloadlua-87a5fae45322dde56306de92d8eb8050506fb9ba.tar.gz
lua-87a5fae45322dde56306de92d8eb8050506fb9ba.tar.bz2
lua-87a5fae45322dde56306de92d8eb8050506fb9ba.zip
tables describing opcodes
-rw-r--r--lopcodes.c108
1 files changed, 108 insertions, 0 deletions
diff --git a/lopcodes.c b/lopcodes.c
new file mode 100644
index 00000000..f802f42b
--- /dev/null
+++ b/lopcodes.c
@@ -0,0 +1,108 @@
1/*
2** $Id$
3** extracted automatically from lopcodes.h by mkprint.lua
4** DO NOT EDIT
5** See Copyright Notice in lua.h
6*/
7
8
9#define LUA_PRIVATE
10#include "lua.h"
11
12#include "lopcodes.h"
13
14
15#ifdef LUA_OPNAMES
16
17const l_char *const luaP_opnames[] = {
18 l_s("MOVE"),
19 l_s("LOADK"),
20 l_s("LOADINT"),
21 l_s("LOADNIL"),
22 l_s("LOADUPVAL"),
23 l_s("GETGLOBAL"),
24 l_s("GETTABLE"),
25 l_s("SETGLOBAL"),
26 l_s("SETTABLE"),
27 l_s("NEWTABLE"),
28 l_s("SELF"),
29 l_s("ADD"),
30 l_s("SUB"),
31 l_s("MUL"),
32 l_s("DIV"),
33 l_s("POW"),
34 l_s("UNM"),
35 l_s("NOT"),
36 l_s("CONCAT"),
37 l_s("JMP"),
38 l_s("CJMP"),
39 l_s("TESTEQ"),
40 l_s("TESTNE"),
41 l_s("TESTLT"),
42 l_s("TESTLE"),
43 l_s("TESTGT"),
44 l_s("TESTGE"),
45 l_s("TESTT"),
46 l_s("TESTF"),
47 l_s("NILJMP"),
48 l_s("CALL"),
49 l_s("RETURN"),
50 l_s("FORPREP"),
51 l_s("FORLOOP"),
52 l_s("TFORPREP"),
53 l_s("TFORLOOP"),
54 l_s("SETLIST"),
55 l_s("SETLISTO"),
56 l_s("CLOSURE")
57};
58
59#endif
60
61
62#define opmode(t,a,b,c,sa,k,m) (((t)<<OpModeT) | \
63 ((b)<<OpModeBreg) | ((c)<<OpModeCreg) | \
64 ((sa)<<OpModesetA) | ((k)<<OpModeK) | (m))
65
66const lu_byte luaP_opmodes[] = {
67/* T J B C sA K mode opcode */
68 opmode(0,0,1,0, 1,0,iABC), /* OP_MOVE */
69 opmode(0,0,0,0, 1,1,iABc), /* OP_LOADK */
70 opmode(0,0,0,0, 1,0,iAsBc), /* OP_LOADINT */
71 opmode(0,0,1,0, 1,0,iABC), /* OP_LOADNIL */
72 opmode(0,0,0,0, 1,0,iABc), /* OP_LOADUPVAL */
73 opmode(0,0,0,0, 1,1,iABc), /* OP_GETGLOBAL */
74 opmode(0,0,1,1, 1,0,iABC), /* OP_GETTABLE */
75 opmode(0,0,0,0, 0,1,iABc), /* OP_SETGLOBAL */
76 opmode(0,0,1,1, 0,0,iABC), /* OP_SETTABLE */
77 opmode(0,0,0,0, 1,0,iABc), /* OP_NEWTABLE */
78 opmode(0,0,1,1, 1,0,iABC), /* OP_SELF */
79 opmode(0,0,1,1, 1,0,iABC), /* OP_ADD */
80 opmode(0,0,1,1, 1,0,iABC), /* OP_SUB */
81 opmode(0,0,1,1, 1,0,iABC), /* OP_MUL */
82 opmode(0,0,1,1, 1,0,iABC), /* OP_DIV */
83 opmode(0,0,1,1, 1,0,iABC), /* OP_POW */
84 opmode(0,0,1,0, 1,0,iABC), /* OP_UNM */
85 opmode(0,0,1,0, 1,0,iABC), /* OP_NOT */
86 opmode(0,0,1,1, 1,0,iABC), /* OP_CONCAT */
87 opmode(0,1,0,0, 0,0,iAsBc), /* OP_JMP */
88 opmode(0,1,0,0, 0,0,iAsBc), /* OP_CJMP */
89 opmode(1,0,0,1, 0,0,iABC), /* OP_TESTEQ */
90 opmode(1,0,0,1, 0,0,iABC), /* OP_TESTNE */
91 opmode(1,0,0,1, 0,0,iABC), /* OP_TESTLT */
92 opmode(1,0,0,1, 0,0,iABC), /* OP_TESTLE */
93 opmode(1,0,0,1, 0,0,iABC), /* OP_TESTGT */
94 opmode(1,0,0,1, 0,0,iABC), /* OP_TESTGE */
95 opmode(1,0,1,0, 1,0,iABC), /* OP_TESTT */
96 opmode(1,0,1,0, 1,0,iABC), /* OP_TESTF */
97 opmode(0,0,0,0, 1,0,iAsBc), /* OP_NILJMP */
98 opmode(0,0,0,0, 0,0,iABC), /* OP_CALL */
99 opmode(0,0,0,0, 0,0,iABC), /* OP_RETURN */
100 opmode(0,0,0,0, 0,0,iAsBc), /* OP_FORPREP */
101 opmode(0,0,0,0, 0,0,iAsBc), /* OP_FORLOOP */
102 opmode(0,1,0,0, 0,0,iAsBc), /* OP_TFORPREP */
103 opmode(0,1,0,0, 0,0,iAsBc), /* OP_TFORLOOP */
104 opmode(0,0,0,0, 0,0,iABc), /* OP_SETLIST */
105 opmode(0,0,0,0, 0,0,iABc), /* OP_SETLIST0 */
106 opmode(0,0,0,0, 0,0,iABc) /* OP_CLOSURE */
107};
108