aboutsummaryrefslogtreecommitdiff
path: root/lopcodes.c
diff options
context:
space:
mode:
authorRoberto Ierusalimschy <roberto@inf.puc-rio.br>2019-09-06 14:14:11 -0300
committerRoberto Ierusalimschy <roberto@inf.puc-rio.br>2019-09-06 14:14:11 -0300
commit4518e5df24600cacdb3bab75d640348d28e8b769 (patch)
treec9e8c678e718b5ccec7e7ca120bd68c5634bdfda /lopcodes.c
parent72a094bda7d71050a91a88474d67d39aa2bc1c46 (diff)
downloadlua-4518e5df24600cacdb3bab75d640348d28e8b769.tar.gz
lua-4518e5df24600cacdb3bab75d640348d28e8b769.tar.bz2
lua-4518e5df24600cacdb3bab75d640348d28e8b769.zip
Added macro 'testMMMode'
Macro 'testMMMode' checks whether opcode is an MM opcode.
Diffstat (limited to 'lopcodes.c')
-rw-r--r--lopcodes.c176
1 files changed, 88 insertions, 88 deletions
diff --git a/lopcodes.c b/lopcodes.c
index aede93a5..619592ce 100644
--- a/lopcodes.c
+++ b/lopcodes.c
@@ -18,93 +18,93 @@
18/* ORDER OP */ 18/* ORDER OP */
19 19
20LUAI_DDEF const lu_byte luaP_opmodes[NUM_OPCODES] = { 20LUAI_DDEF const lu_byte luaP_opmodes[NUM_OPCODES] = {
21/* OT IT T A mode opcode */ 21/* MM OT IT T A mode opcode */
22 opmode(0, 0, 0, 1, iABC) /* OP_MOVE */ 22 opmode(0, 0, 0, 0, 1, iABC) /* OP_MOVE */
23 ,opmode(0, 0, 0, 1, iAsBx) /* OP_LOADI */ 23 ,opmode(0, 0, 0, 0, 1, iAsBx) /* OP_LOADI */
24 ,opmode(0, 0, 0, 1, iAsBx) /* OP_LOADF */ 24 ,opmode(0, 0, 0, 0, 1, iAsBx) /* OP_LOADF */
25 ,opmode(0, 0, 0, 1, iABx) /* OP_LOADK */ 25 ,opmode(0, 0, 0, 0, 1, iABx) /* OP_LOADK */
26 ,opmode(0, 0, 0, 1, iABx) /* OP_LOADKX */ 26 ,opmode(0, 0, 0, 0, 1, iABx) /* OP_LOADKX */
27 ,opmode(0, 0, 0, 1, iABC) /* OP_LOADBOOL */ 27 ,opmode(0, 0, 0, 0, 1, iABC) /* OP_LOADBOOL */
28 ,opmode(0, 0, 0, 1, iABC) /* OP_LOADNIL */ 28 ,opmode(0, 0, 0, 0, 1, iABC) /* OP_LOADNIL */
29 ,opmode(0, 0, 0, 1, iABC) /* OP_GETUPVAL */ 29 ,opmode(0, 0, 0, 0, 1, iABC) /* OP_GETUPVAL */
30 ,opmode(0, 0, 0, 0, iABC) /* OP_SETUPVAL */ 30 ,opmode(0, 0, 0, 0, 0, iABC) /* OP_SETUPVAL */
31 ,opmode(0, 0, 0, 1, iABC) /* OP_GETTABUP */ 31 ,opmode(0, 0, 0, 0, 1, iABC) /* OP_GETTABUP */
32 ,opmode(0, 0, 0, 1, iABC) /* OP_GETTABLE */ 32 ,opmode(0, 0, 0, 0, 1, iABC) /* OP_GETTABLE */
33 ,opmode(0, 0, 0, 1, iABC) /* OP_GETI */ 33 ,opmode(0, 0, 0, 0, 1, iABC) /* OP_GETI */
34 ,opmode(0, 0, 0, 1, iABC) /* OP_GETFIELD */ 34 ,opmode(0, 0, 0, 0, 1, iABC) /* OP_GETFIELD */
35 ,opmode(0, 0, 0, 0, iABC) /* OP_SETTABUP */ 35 ,opmode(0, 0, 0, 0, 0, iABC) /* OP_SETTABUP */
36 ,opmode(0, 0, 0, 0, iABC) /* OP_SETTABLE */ 36 ,opmode(0, 0, 0, 0, 0, iABC) /* OP_SETTABLE */
37 ,opmode(0, 0, 0, 0, iABC) /* OP_SETI */ 37 ,opmode(0, 0, 0, 0, 0, iABC) /* OP_SETI */
38 ,opmode(0, 0, 0, 0, iABC) /* OP_SETFIELD */ 38 ,opmode(0, 0, 0, 0, 0, iABC) /* OP_SETFIELD */
39 ,opmode(0, 0, 0, 1, iABC) /* OP_NEWTABLE */ 39 ,opmode(0, 0, 0, 0, 1, iABC) /* OP_NEWTABLE */
40 ,opmode(0, 0, 0, 1, iABC) /* OP_SELF */ 40 ,opmode(0, 0, 0, 0, 1, iABC) /* OP_SELF */
41 ,opmode(0, 0, 0, 1, iABC) /* OP_ADDI */ 41 ,opmode(0, 0, 0, 0, 1, iABC) /* OP_ADDI */
42 ,opmode(0, 0, 0, 1, iABC) /* OP_SUBI */ 42 ,opmode(0, 0, 0, 0, 1, iABC) /* OP_SUBI */
43 ,opmode(0, 0, 0, 1, iABC) /* OP_MULI */ 43 ,opmode(0, 0, 0, 0, 1, iABC) /* OP_MULI */
44 ,opmode(0, 0, 0, 1, iABC) /* OP_MODI */ 44 ,opmode(0, 0, 0, 0, 1, iABC) /* OP_MODI */
45 ,opmode(0, 0, 0, 1, iABC) /* OP_POWI */ 45 ,opmode(0, 0, 0, 0, 1, iABC) /* OP_POWI */
46 ,opmode(0, 0, 0, 1, iABC) /* OP_DIVI */ 46 ,opmode(0, 0, 0, 0, 1, iABC) /* OP_DIVI */
47 ,opmode(0, 0, 0, 1, iABC) /* OP_IDIVI */ 47 ,opmode(0, 0, 0, 0, 1, iABC) /* OP_IDIVI */
48 ,opmode(0, 0, 0, 1, iABC) /* OP_ADDK */ 48 ,opmode(0, 0, 0, 0, 1, iABC) /* OP_ADDK */
49 ,opmode(0, 0, 0, 1, iABC) /* OP_SUBK */ 49 ,opmode(0, 0, 0, 0, 1, iABC) /* OP_SUBK */
50 ,opmode(0, 0, 0, 1, iABC) /* OP_MULK */ 50 ,opmode(0, 0, 0, 0, 1, iABC) /* OP_MULK */
51 ,opmode(0, 0, 0, 1, iABC) /* OP_MODK */ 51 ,opmode(0, 0, 0, 0, 1, iABC) /* OP_MODK */
52 ,opmode(0, 0, 0, 1, iABC) /* OP_POWK */ 52 ,opmode(0, 0, 0, 0, 1, iABC) /* OP_POWK */
53 ,opmode(0, 0, 0, 1, iABC) /* OP_DIVK */ 53 ,opmode(0, 0, 0, 0, 1, iABC) /* OP_DIVK */
54 ,opmode(0, 0, 0, 1, iABC) /* OP_IDIVK */ 54 ,opmode(0, 0, 0, 0, 1, iABC) /* OP_IDIVK */
55 ,opmode(0, 0, 0, 1, iABC) /* OP_BANDK */ 55 ,opmode(0, 0, 0, 0, 1, iABC) /* OP_BANDK */
56 ,opmode(0, 0, 0, 1, iABC) /* OP_BORK */ 56 ,opmode(0, 0, 0, 0, 1, iABC) /* OP_BORK */
57 ,opmode(0, 0, 0, 1, iABC) /* OP_BXORK */ 57 ,opmode(0, 0, 0, 0, 1, iABC) /* OP_BXORK */
58 ,opmode(0, 0, 0, 1, iABC) /* OP_SHRI */ 58 ,opmode(0, 0, 0, 0, 1, iABC) /* OP_SHRI */
59 ,opmode(0, 0, 0, 1, iABC) /* OP_SHLI */ 59 ,opmode(0, 0, 0, 0, 1, iABC) /* OP_SHLI */
60 ,opmode(0, 0, 0, 1, iABC) /* OP_ADD */ 60 ,opmode(0, 0, 0, 0, 1, iABC) /* OP_ADD */
61 ,opmode(0, 0, 0, 1, iABC) /* OP_SUB */ 61 ,opmode(0, 0, 0, 0, 1, iABC) /* OP_SUB */
62 ,opmode(0, 0, 0, 1, iABC) /* OP_MUL */ 62 ,opmode(0, 0, 0, 0, 1, iABC) /* OP_MUL */
63 ,opmode(0, 0, 0, 1, iABC) /* OP_MOD */ 63 ,opmode(0, 0, 0, 0, 1, iABC) /* OP_MOD */
64 ,opmode(0, 0, 0, 1, iABC) /* OP_POW */ 64 ,opmode(0, 0, 0, 0, 1, iABC) /* OP_POW */
65 ,opmode(0, 0, 0, 1, iABC) /* OP_DIV */ 65 ,opmode(0, 0, 0, 0, 1, iABC) /* OP_DIV */
66 ,opmode(0, 0, 0, 1, iABC) /* OP_IDIV */ 66 ,opmode(0, 0, 0, 0, 1, iABC) /* OP_IDIV */
67 ,opmode(0, 0, 0, 1, iABC) /* OP_BAND */ 67 ,opmode(0, 0, 0, 0, 1, iABC) /* OP_BAND */
68 ,opmode(0, 0, 0, 1, iABC) /* OP_BOR */ 68 ,opmode(0, 0, 0, 0, 1, iABC) /* OP_BOR */
69 ,opmode(0, 0, 0, 1, iABC) /* OP_BXOR */ 69 ,opmode(0, 0, 0, 0, 1, iABC) /* OP_BXOR */
70 ,opmode(0, 0, 0, 1, iABC) /* OP_SHL */ 70 ,opmode(0, 0, 0, 0, 1, iABC) /* OP_SHL */
71 ,opmode(0, 0, 0, 1, iABC) /* OP_SHR */ 71 ,opmode(0, 0, 0, 0, 1, iABC) /* OP_SHR */
72 ,opmode(0, 0, 0, 0, iABC) /* OP_MMBIN */ 72 ,opmode(1, 0, 0, 0, 0, iABC) /* OP_MMBIN */
73 ,opmode(0, 0, 0, 0, iABC) /* OP_MMBINI*/ 73 ,opmode(1, 0, 0, 0, 0, iABC) /* OP_MMBINI*/
74 ,opmode(0, 0, 0, 0, iABC) /* OP_MMBINK*/ 74 ,opmode(1, 0, 0, 0, 0, iABC) /* OP_MMBINK*/
75 ,opmode(0, 0, 0, 1, iABC) /* OP_UNM */ 75 ,opmode(0, 0, 0, 0, 1, iABC) /* OP_UNM */
76 ,opmode(0, 0, 0, 1, iABC) /* OP_BNOT */ 76 ,opmode(0, 0, 0, 0, 1, iABC) /* OP_BNOT */
77 ,opmode(0, 0, 0, 1, iABC) /* OP_NOT */ 77 ,opmode(0, 0, 0, 0, 1, iABC) /* OP_NOT */
78 ,opmode(0, 0, 0, 1, iABC) /* OP_LEN */ 78 ,opmode(0, 0, 0, 0, 1, iABC) /* OP_LEN */
79 ,opmode(0, 0, 0, 1, iABC) /* OP_CONCAT */ 79 ,opmode(0, 0, 0, 0, 1, iABC) /* OP_CONCAT */
80 ,opmode(0, 0, 0, 0, iABC) /* OP_CLOSE */ 80 ,opmode(0, 0, 0, 0, 0, iABC) /* OP_CLOSE */
81 ,opmode(0, 0, 0, 0, iABC) /* OP_TBC */ 81 ,opmode(0, 0, 0, 0, 0, iABC) /* OP_TBC */
82 ,opmode(0, 0, 0, 0, isJ) /* OP_JMP */ 82 ,opmode(0, 0, 0, 0, 0, isJ) /* OP_JMP */
83 ,opmode(0, 0, 1, 0, iABC) /* OP_EQ */ 83 ,opmode(0, 0, 0, 1, 0, iABC) /* OP_EQ */
84 ,opmode(0, 0, 1, 0, iABC) /* OP_LT */ 84 ,opmode(0, 0, 0, 1, 0, iABC) /* OP_LT */
85 ,opmode(0, 0, 1, 0, iABC) /* OP_LE */ 85 ,opmode(0, 0, 0, 1, 0, iABC) /* OP_LE */
86 ,opmode(0, 0, 1, 0, iABC) /* OP_EQK */ 86 ,opmode(0, 0, 0, 1, 0, iABC) /* OP_EQK */
87 ,opmode(0, 0, 1, 0, iABC) /* OP_EQI */ 87 ,opmode(0, 0, 0, 1, 0, iABC) /* OP_EQI */
88 ,opmode(0, 0, 1, 0, iABC) /* OP_LTI */ 88 ,opmode(0, 0, 0, 1, 0, iABC) /* OP_LTI */
89 ,opmode(0, 0, 1, 0, iABC) /* OP_LEI */ 89 ,opmode(0, 0, 0, 1, 0, iABC) /* OP_LEI */
90 ,opmode(0, 0, 1, 0, iABC) /* OP_GTI */ 90 ,opmode(0, 0, 0, 1, 0, iABC) /* OP_GTI */
91 ,opmode(0, 0, 1, 0, iABC) /* OP_GEI */ 91 ,opmode(0, 0, 0, 1, 0, iABC) /* OP_GEI */
92 ,opmode(0, 0, 1, 0, iABC) /* OP_TEST */ 92 ,opmode(0, 0, 0, 1, 0, iABC) /* OP_TEST */
93 ,opmode(0, 0, 1, 1, iABC) /* OP_TESTSET */ 93 ,opmode(0, 0, 0, 1, 1, iABC) /* OP_TESTSET */
94 ,opmode(1, 1, 0, 1, iABC) /* OP_CALL */ 94 ,opmode(0, 1, 1, 0, 1, iABC) /* OP_CALL */
95 ,opmode(1, 1, 0, 1, iABC) /* OP_TAILCALL */ 95 ,opmode(0, 1, 1, 0, 1, iABC) /* OP_TAILCALL */
96 ,opmode(0, 1, 0, 0, iABC) /* OP_RETURN */ 96 ,opmode(0, 0, 1, 0, 0, iABC) /* OP_RETURN */
97 ,opmode(0, 0, 0, 0, iABC) /* OP_RETURN0 */ 97 ,opmode(0, 0, 0, 0, 0, iABC) /* OP_RETURN0 */
98 ,opmode(0, 0, 0, 0, iABC) /* OP_RETURN1 */ 98 ,opmode(0, 0, 0, 0, 0, iABC) /* OP_RETURN1 */
99 ,opmode(0, 0, 0, 1, iABx) /* OP_FORLOOP */ 99 ,opmode(0, 0, 0, 0, 1, iABx) /* OP_FORLOOP */
100 ,opmode(0, 0, 0, 1, iABx) /* OP_FORPREP */ 100 ,opmode(0, 0, 0, 0, 1, iABx) /* OP_FORPREP */
101 ,opmode(0, 0, 0, 0, iABx) /* OP_TFORPREP */ 101 ,opmode(0, 0, 0, 0, 0, iABx) /* OP_TFORPREP */
102 ,opmode(0, 0, 0, 0, iABC) /* OP_TFORCALL */ 102 ,opmode(0, 0, 0, 0, 0, iABC) /* OP_TFORCALL */
103 ,opmode(0, 0, 0, 1, iABx) /* OP_TFORLOOP */ 103 ,opmode(0, 0, 0, 0, 1, iABx) /* OP_TFORLOOP */
104 ,opmode(0, 1, 0, 0, iABC) /* OP_SETLIST */ 104 ,opmode(0, 0, 1, 0, 0, iABC) /* OP_SETLIST */
105 ,opmode(0, 0, 0, 1, iABx) /* OP_CLOSURE */ 105 ,opmode(0, 0, 0, 0, 1, iABx) /* OP_CLOSURE */
106 ,opmode(1, 0, 0, 1, iABC) /* OP_VARARG */ 106 ,opmode(0, 1, 0, 0, 1, iABC) /* OP_VARARG */
107 ,opmode(0, 1, 0, 1, iABC) /* OP_VARARGPREP */ 107 ,opmode(0, 0, 1, 0, 1, iABC) /* OP_VARARGPREP */
108 ,opmode(0, 0, 0, 0, iAx) /* OP_EXTRAARG */ 108 ,opmode(0, 0, 0, 0, 0, iAx) /* OP_EXTRAARG */
109}; 109};
110 110