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