source: trunk/src/lua/lopcodes.c @ 2542

Last change on this file since 2542 was 2542, checked in by sam, 10 years ago

lua: compilation fixes for non-quite-POSIX platforms.

File size: 3.1 KB
Line 
1/*
2** $Id: lopcodes.c,v 1.49 2012/05/14 13:34:18 roberto Exp $
3** Opcodes for Lua virtual machine
4** See Copyright Notice in lua.h
5*/
6
7#if defined HAVE_CONFIG_H // LOL BEGIN
8#   include "config.h"
9#endif // LOL END
10
11#define lopcodes_c
12#define LUA_CORE
13
14
15#include "lopcodes.h"
16
17
18/* ORDER OP */
19
20LUAI_DDEF const char *const luaP_opnames[NUM_OPCODES+1] = {
21  "MOVE",
22  "LOADK",
23  "LOADKX",
24  "LOADBOOL",
25  "LOADNIL",
26  "GETUPVAL",
27  "GETTABUP",
28  "GETTABLE",
29  "SETTABUP",
30  "SETUPVAL",
31  "SETTABLE",
32  "NEWTABLE",
33  "SELF",
34  "ADD",
35  "SUB",
36  "MUL",
37  "DIV",
38  "MOD",
39  "POW",
40  "UNM",
41  "NOT",
42  "LEN",
43  "CONCAT",
44  "JMP",
45  "EQ",
46  "LT",
47  "LE",
48  "TEST",
49  "TESTSET",
50  "CALL",
51  "TAILCALL",
52  "RETURN",
53  "FORLOOP",
54  "FORPREP",
55  "TFORCALL",
56  "TFORLOOP",
57  "SETLIST",
58  "CLOSURE",
59  "VARARG",
60  "EXTRAARG",
61  NULL
62};
63
64
65#define opmode(t,a,b,c,m) (((t)<<7) | ((a)<<6) | ((b)<<4) | ((c)<<2) | (m))
66
67LUAI_DDEF const lu_byte luaP_opmodes[NUM_OPCODES] = {
68/*       T  A    B       C     mode                opcode       */
69  opmode(0, 1, OpArgR, OpArgN, iABC)            /* OP_MOVE */
70 ,opmode(0, 1, OpArgK, OpArgN, iABx)            /* OP_LOADK */
71 ,opmode(0, 1, OpArgN, OpArgN, iABx)            /* OP_LOADKX */
72 ,opmode(0, 1, OpArgU, OpArgU, iABC)            /* OP_LOADBOOL */
73 ,opmode(0, 1, OpArgU, OpArgN, iABC)            /* OP_LOADNIL */
74 ,opmode(0, 1, OpArgU, OpArgN, iABC)            /* OP_GETUPVAL */
75 ,opmode(0, 1, OpArgU, OpArgK, iABC)            /* OP_GETTABUP */
76 ,opmode(0, 1, OpArgR, OpArgK, iABC)            /* OP_GETTABLE */
77 ,opmode(0, 0, OpArgK, OpArgK, iABC)            /* OP_SETTABUP */
78 ,opmode(0, 0, OpArgU, OpArgN, iABC)            /* OP_SETUPVAL */
79 ,opmode(0, 0, OpArgK, OpArgK, iABC)            /* OP_SETTABLE */
80 ,opmode(0, 1, OpArgU, OpArgU, iABC)            /* OP_NEWTABLE */
81 ,opmode(0, 1, OpArgR, OpArgK, iABC)            /* OP_SELF */
82 ,opmode(0, 1, OpArgK, OpArgK, iABC)            /* OP_ADD */
83 ,opmode(0, 1, OpArgK, OpArgK, iABC)            /* OP_SUB */
84 ,opmode(0, 1, OpArgK, OpArgK, iABC)            /* OP_MUL */
85 ,opmode(0, 1, OpArgK, OpArgK, iABC)            /* OP_DIV */
86 ,opmode(0, 1, OpArgK, OpArgK, iABC)            /* OP_MOD */
87 ,opmode(0, 1, OpArgK, OpArgK, iABC)            /* OP_POW */
88 ,opmode(0, 1, OpArgR, OpArgN, iABC)            /* OP_UNM */
89 ,opmode(0, 1, OpArgR, OpArgN, iABC)            /* OP_NOT */
90 ,opmode(0, 1, OpArgR, OpArgN, iABC)            /* OP_LEN */
91 ,opmode(0, 1, OpArgR, OpArgR, iABC)            /* OP_CONCAT */
92 ,opmode(0, 0, OpArgR, OpArgN, iAsBx)           /* OP_JMP */
93 ,opmode(1, 0, OpArgK, OpArgK, iABC)            /* OP_EQ */
94 ,opmode(1, 0, OpArgK, OpArgK, iABC)            /* OP_LT */
95 ,opmode(1, 0, OpArgK, OpArgK, iABC)            /* OP_LE */
96 ,opmode(1, 0, OpArgN, OpArgU, iABC)            /* OP_TEST */
97 ,opmode(1, 1, OpArgR, OpArgU, iABC)            /* OP_TESTSET */
98 ,opmode(0, 1, OpArgU, OpArgU, iABC)            /* OP_CALL */
99 ,opmode(0, 1, OpArgU, OpArgU, iABC)            /* OP_TAILCALL */
100 ,opmode(0, 0, OpArgU, OpArgN, iABC)            /* OP_RETURN */
101 ,opmode(0, 1, OpArgR, OpArgN, iAsBx)           /* OP_FORLOOP */
102 ,opmode(0, 1, OpArgR, OpArgN, iAsBx)           /* OP_FORPREP */
103 ,opmode(0, 0, OpArgN, OpArgU, iABC)            /* OP_TFORCALL */
104 ,opmode(0, 1, OpArgR, OpArgN, iAsBx)           /* OP_TFORLOOP */
105 ,opmode(0, 0, OpArgU, OpArgU, iABC)            /* OP_SETLIST */
106 ,opmode(0, 1, OpArgU, OpArgN, iABx)            /* OP_CLOSURE */
107 ,opmode(0, 1, OpArgU, OpArgN, iABC)            /* OP_VARARG */
108 ,opmode(0, 0, OpArgU, OpArgU, iAx)             /* OP_EXTRAARG */
109};
110
Note: See TracBrowser for help on using the repository browser.