diff options
author | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2001-06-28 16:58:57 -0300 |
---|---|---|
committer | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2001-06-28 16:58:57 -0300 |
commit | 87a5fae45322dde56306de92d8eb8050506fb9ba (patch) | |
tree | 936c39807a47dacf682d91e8aebef6a5e79408a6 | |
parent | afed6c6864b0538be3bde402fcb74df01ba78ed4 (diff) | |
download | lua-87a5fae45322dde56306de92d8eb8050506fb9ba.tar.gz lua-87a5fae45322dde56306de92d8eb8050506fb9ba.tar.bz2 lua-87a5fae45322dde56306de92d8eb8050506fb9ba.zip |
tables describing opcodes
-rw-r--r-- | lopcodes.c | 108 |
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 | |||
17 | const 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 | |||
66 | const 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 | |||