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