1 | static const xc_opcode_spec_t xc_opcode_spec[] = { |
---|
2 | OPSPEC( UNUSED, UNUSED, UNUSED, UNUSED) /* 0 NOP */ |
---|
3 | OPSPEC( UNUSED, STD, STD, TMP) /* 1 ADD */ |
---|
4 | OPSPEC( UNUSED, STD, STD, TMP) /* 2 SUB */ |
---|
5 | OPSPEC( UNUSED, STD, STD, TMP) /* 3 MUL */ |
---|
6 | OPSPEC( UNUSED, STD, STD, TMP) /* 4 DIV */ |
---|
7 | OPSPEC( UNUSED, STD, STD, TMP) /* 5 MOD */ |
---|
8 | OPSPEC( UNUSED, STD, STD, TMP) /* 6 SL */ |
---|
9 | OPSPEC( UNUSED, STD, STD, TMP) /* 7 SR */ |
---|
10 | OPSPEC( UNUSED, STD, STD, TMP) /* 8 CONCAT */ |
---|
11 | OPSPEC( UNUSED, STD, STD, TMP) /* 9 BW_OR */ |
---|
12 | OPSPEC( UNUSED, STD, STD, TMP) /* 10 BW_AND */ |
---|
13 | OPSPEC( UNUSED, STD, STD, TMP) /* 11 BW_XOR */ |
---|
14 | OPSPEC( UNUSED, STD, UNUSED, TMP) /* 12 BW_NOT */ |
---|
15 | OPSPEC( UNUSED, STD, STD, TMP) /* 13 BOOL_NOT */ |
---|
16 | OPSPEC( UNUSED, STD, STD, TMP) /* 14 BOOL_XOR */ |
---|
17 | OPSPEC( UNUSED, STD, STD, TMP) /* 15 IS_IDENTICAL */ |
---|
18 | OPSPEC( UNUSED, STD, STD, TMP) /* 16 IS_NOT_IDENTICAL */ |
---|
19 | OPSPEC( UNUSED, STD, STD, TMP) /* 17 IS_EQUAL */ |
---|
20 | OPSPEC( UNUSED, STD, STD, TMP) /* 18 IS_NOT_EQUAL */ |
---|
21 | OPSPEC( UNUSED, STD, STD, TMP) /* 19 IS_SMALLER */ |
---|
22 | OPSPEC( UNUSED, STD, STD, TMP) /* 20 IS_SMALLER_OR_EQUAL */ |
---|
23 | OPSPEC( CAST, STD, UNUSED, TMP) /* 21 CAST */ |
---|
24 | OPSPEC( UNUSED, STD, UNUSED, TMP) /* 22 QM_ASSIGN */ |
---|
25 | OPSPEC( ASSIGN, STD, STD, VAR) /* 23 ASSIGN_ADD */ |
---|
26 | OPSPEC( ASSIGN, STD, STD, VAR) /* 24 ASSIGN_SUB */ |
---|
27 | OPSPEC( ASSIGN, STD, STD, VAR) /* 25 ASSIGN_MUL */ |
---|
28 | OPSPEC( ASSIGN, STD, STD, VAR) /* 26 ASSIGN_DIV */ |
---|
29 | OPSPEC( ASSIGN, STD, STD, VAR) /* 27 ASSIGN_MOD */ |
---|
30 | OPSPEC( ASSIGN, STD, STD, VAR) /* 28 ASSIGN_SL */ |
---|
31 | OPSPEC( ASSIGN, STD, STD, VAR) /* 29 ASSIGN_SR */ |
---|
32 | OPSPEC( ASSIGN, STD, STD, VAR) /* 30 ASSIGN_CONCAT */ |
---|
33 | OPSPEC( ASSIGN, STD, STD, VAR) /* 31 ASSIGN_BW_OR */ |
---|
34 | OPSPEC( ASSIGN, STD, STD, VAR) /* 32 ASSIGN_BW_AND */ |
---|
35 | OPSPEC( ASSIGN, STD, STD, VAR) /* 33 ASSIGN_BW_XOR */ |
---|
36 | OPSPEC( UNUSED, VAR, UNUSED, VAR) /* 34 PRE_INC */ |
---|
37 | OPSPEC( UNUSED, VAR, UNUSED, VAR) /* 35 PRE_DEC */ |
---|
38 | OPSPEC( UNUSED, VAR, UNUSED, TMP) /* 36 POST_INC */ |
---|
39 | OPSPEC( UNUSED, VAR, UNUSED, TMP) /* 37 POST_DEC */ |
---|
40 | OPSPEC( UNUSED, VAR, STD, VAR) /* 38 ASSIGN */ |
---|
41 | OPSPEC( UNUSED, VAR, VAR, VAR) /* 39 ASSIGN_REF */ |
---|
42 | OPSPEC( UNUSED, STD, UNUSED, UNUSED) /* 40 ECHO */ |
---|
43 | OPSPEC( UNUSED, STD, UNUSED, TMP) /* 41 PRINT */ |
---|
44 | OPSPEC( UNUSED, JMPADDR, UNUSED, UNUSED) /* 42 JMP */ |
---|
45 | OPSPEC( UNUSED, STD, JMPADDR, UNUSED) /* 43 JMPZ */ |
---|
46 | OPSPEC( UNUSED, STD, JMPADDR, UNUSED) /* 44 JMPNZ */ |
---|
47 | OPSPEC( OPLINE, STD, OPLINE, UNUSED) /* 45 JMPZNZ */ |
---|
48 | OPSPEC( UNUSED, STD, JMPADDR, TMP) /* 46 JMPZ_EX */ |
---|
49 | OPSPEC( UNUSED, STD, JMPADDR, TMP) /* 47 JMPNZ_EX */ |
---|
50 | OPSPEC( UNUSED, STD, STD, TMP) /* 48 CASE */ |
---|
51 | OPSPEC( BIT, STD, UNUSED, UNUSED) /* 49 SWITCH_FREE */ |
---|
52 | OPSPEC( UNUSED, BRK, STD, UNUSED) /* 50 BRK */ |
---|
53 | OPSPEC( UNUSED, CONT, STD, UNUSED) /* 51 CONT */ |
---|
54 | OPSPEC( UNUSED, STD, UNUSED, TMP) /* 52 BOOL */ |
---|
55 | OPSPEC( UNUSED, UNUSED, UNUSED, TMP) /* 53 INIT_STRING */ |
---|
56 | OPSPEC( UNUSED, STD, STD, TMP) /* 54 ADD_CHAR */ |
---|
57 | OPSPEC( UNUSED, STD, STD, TMP) /* 55 ADD_STRING */ |
---|
58 | OPSPEC( UNUSED, STD, STD, TMP) /* 56 ADD_VAR */ |
---|
59 | OPSPEC( UNUSED, UNUSED, UNUSED, TMP) /* 57 BEGIN_SILENCE */ |
---|
60 | OPSPEC( UNUSED, TMP, UNUSED, UNUSED) /* 58 END_SILENCE */ |
---|
61 | OPSPEC(INIT_FCALL, STD, STD, UNUSED) /* 59 INIT_FCALL_BY_NAME */ |
---|
62 | OPSPEC( FCALL, STD, OPLINE, VAR) /* 60 DO_FCALL */ |
---|
63 | OPSPEC( FCALL, STD, OPLINE, VAR) /* 61 DO_FCALL_BY_NAME */ |
---|
64 | OPSPEC( UNUSED, STD, UNUSED, UNUSED) /* 62 RETURN */ |
---|
65 | OPSPEC( UNUSED, ARG, UNUSED, VAR) /* 63 RECV */ |
---|
66 | OPSPEC( UNUSED, ARG, STD, VAR) /* 64 RECV_INIT */ |
---|
67 | OPSPEC( SEND, STD, ARG, UNUSED) /* 65 SEND_VAL */ |
---|
68 | OPSPEC( SEND, VAR, ARG, UNUSED) /* 66 SEND_VAR */ |
---|
69 | OPSPEC( SEND, VAR, ARG, UNUSED) /* 67 SEND_REF */ |
---|
70 | OPSPEC( UNUSED, CLASS, UNUSED, VAR) /* 68 NEW */ |
---|
71 | #ifdef ZEND_ENGINE_2_3 |
---|
72 | OPSPEC( STD, STD, STD, UNUSED) /* 69 INIT_NS_FCALL_BY_NAME */ |
---|
73 | #else |
---|
74 | OPSPEC( UNUSED, STD, OPLINE, UNUSED) /* 69 JMP_NO_CTOR */ |
---|
75 | #endif |
---|
76 | OPSPEC( UNUSED, TMP, UNUSED, UNUSED) /* 70 FREE */ |
---|
77 | OPSPEC( BIT, STD, STD, TMP) /* 71 INIT_ARRAY */ |
---|
78 | OPSPEC( BIT, STD, STD, TMP) /* 72 ADD_ARRAY_ELEMENT */ |
---|
79 | OPSPEC( UNUSED, STD, INCLUDE, VAR) /* 73 INCLUDE_OR_EVAL */ |
---|
80 | #ifdef ZEND_ENGINE_2_1 |
---|
81 | /* php 5.1 and up */ |
---|
82 | # ifdef ZEND_ENGINE_2_4 |
---|
83 | OPSPEC( UNUSED, STD, STD, UNUSED) /* 74 UNSET_VAR */ |
---|
84 | # else |
---|
85 | OPSPEC( UNUSED, STD, FETCH, UNUSED) /* 74 UNSET_VAR */ |
---|
86 | # endif |
---|
87 | OPSPEC( STD, STD, STD, UNUSED) /* 75 UNSET_DIM */ |
---|
88 | OPSPEC( STD, STD, STD, UNUSED) /* 76 UNSET_OBJ */ |
---|
89 | OPSPEC( BIT, STD, OPLINE, VAR) /* 77 FE_RESET */ |
---|
90 | #else |
---|
91 | /* <= php 5.0 */ |
---|
92 | /* though there is no ISSET_ISEMPTY in php 5.0 it's better to leave it here i guess */ |
---|
93 | OPSPEC( UNUSED, STD, UNUSED, UNUSED) |
---|
94 | OPSPEC( UNUSED, VAR, STD, UNUSED) |
---|
95 | OPSPEC( UNUSED, VAR, ISSET, TMP) |
---|
96 | OPSPEC( BIT, STD, UNUSED, VAR) |
---|
97 | #endif |
---|
98 | OPSPEC( FE, STD, OPLINE, TMP) /* 78 FE_FETCH */ |
---|
99 | OPSPEC( UNUSED, STD, UNUSED, UNUSED) /* 79 EXIT */ |
---|
100 | OPSPEC( UNUSED, STD, FETCH, VAR) /* 80 FETCH_R */ |
---|
101 | OPSPEC( FETCH, VAR, STD, VAR) /* 81 FETCH_DIM_R */ |
---|
102 | OPSPEC( UNUSED, VAR_2, STD, VAR) /* 82 FETCH_OBJ_R */ |
---|
103 | OPSPEC( UNUSED, STD, FETCH, VAR) /* 83 FETCH_W */ |
---|
104 | OPSPEC( UNUSED, VAR, STD, VAR) /* 84 FETCH_DIM_W */ |
---|
105 | OPSPEC( UNUSED, VAR_2, STD, VAR) /* 85 FETCH_OBJ_W */ |
---|
106 | OPSPEC( UNUSED, STD, FETCH, VAR) /* 86 FETCH_RW */ |
---|
107 | OPSPEC( UNUSED, VAR, STD, VAR) /* 87 FETCH_DIM_RW */ |
---|
108 | OPSPEC( UNUSED, VAR_2, STD, VAR) /* 88 FETCH_OBJ_RW */ |
---|
109 | OPSPEC( UNUSED, STD, FETCH, VAR) /* 89 FETCH_IS */ |
---|
110 | OPSPEC( UNUSED, VAR, STD, VAR) /* 90 FETCH_DIM_IS */ |
---|
111 | OPSPEC( UNUSED, VAR_2, STD, VAR) /* 91 FETCH_OBJ_IS */ |
---|
112 | OPSPEC( ARG, STD, FETCH, VAR) /* 92 FETCH_FUNC_ARG */ |
---|
113 | OPSPEC( ARG, VAR, STD, VAR) /* 93 FETCH_DIM_FUNC_ARG */ |
---|
114 | OPSPEC( ARG, VAR_2, STD, VAR) /* 94 FETCH_OBJ_FUNC_ARG */ |
---|
115 | OPSPEC( UNUSED, STD, FETCH, VAR) /* 95 FETCH_UNSET */ |
---|
116 | OPSPEC( UNUSED, VAR, STD, VAR) /* 96 FETCH_DIM_UNSET */ |
---|
117 | OPSPEC( UNUSED, VAR_2, STD, VAR) /* 97 FETCH_OBJ_UNSET */ |
---|
118 | OPSPEC( UNUSED, STD, STD, VAR) /* 98 FETCH_DIM_TMP_VAR */ |
---|
119 | #ifdef ZEND_ENGINE_2_3 |
---|
120 | OPSPEC( UNUSED, VAR_2, STD, TMP) /* 99 FETCH_CONSTANT */ |
---|
121 | #else |
---|
122 | OPSPEC( UNUSED, UCLASS, STD, TMP) /* 99 FETCH_CONSTANT */ |
---|
123 | #endif |
---|
124 | #ifdef ZEND_ENGINE_2_3 |
---|
125 | OPSPEC( STD, JMPADDR, STD, UNUSED) /* 100 GOTO */ |
---|
126 | #else |
---|
127 | OPSPEC( DECLARE, STD, STD, UNUSED) /* 100 DECLARE_FUNCTION_OR_CLASS */ |
---|
128 | #endif |
---|
129 | OPSPEC( STD, STD, STD, STD) /* 101 EXT_STMT */ |
---|
130 | OPSPEC( STD, STD, STD, STD) /* 102 EXT_FCALL_BEGIN */ |
---|
131 | OPSPEC( STD, STD, STD, STD) /* 103 EXT_FCALL_END */ |
---|
132 | OPSPEC( UNUSED, UNUSED, UNUSED, UNUSED) /* 104 EXT_NOP */ |
---|
133 | OPSPEC( UNUSED, STD, UNUSED, UNUSED) /* 105 TICKS */ |
---|
134 | OPSPEC(SEND_NOREF, VAR, ARG, UNUSED) /* 106 SEND_VAR_NO_REF */ |
---|
135 | OPSPEC( OPLINE, CLASS, STD, UNUSED) /* 107 CATCH */ |
---|
136 | OPSPEC( UNUSED, STD, OPLINE, UNUSED) /* 108 THROW */ |
---|
137 | OPSPEC( FCLASS, STD, STD, CLASS) /* 109 FETCH_CLASS */ |
---|
138 | OPSPEC( UNUSED, STD, UNUSED, VAR) /* 110 CLONE */ |
---|
139 | |
---|
140 | #ifdef ZEND_ENGINE_2_4 |
---|
141 | OPSPEC( UNUSED, STD, UNUSED, UNUSED) /* 111 RETURN_BY_REF */ |
---|
142 | #else |
---|
143 | OPSPEC( UNUSED, STD, UNUSED, UNUSED) /* 111 INIT_CTOR_CALL */ |
---|
144 | #endif |
---|
145 | |
---|
146 | OPSPEC( UNUSED, STD, STD, VAR) /* 112 INIT_METHOD_CALL */ |
---|
147 | #ifdef ZEND_ENGINE_2_3 |
---|
148 | OPSPEC( UNUSED, STD, STD, UNUSED) /* 113 INIT_STATIC_METHOD_CALL */ |
---|
149 | #else |
---|
150 | OPSPEC( UNUSED, UCLASS, STD, UNUSED) /* 113 INIT_STATIC_METHOD_CALL */ |
---|
151 | #endif |
---|
152 | OPSPEC( ISSET, STD, FETCH, TMP) /* 114 ISSET_ISEMPTY_VAR */ |
---|
153 | OPSPEC( ISSET, STD, STD, TMP) /* 115 ISSET_ISEMPTY_DIM_OBJ */ |
---|
154 | |
---|
155 | OPSPEC( UNUSED, CLASS, STD, UNUSED) /* 116 IMPORT_FUNCTION */ |
---|
156 | OPSPEC( UNUSED, CLASS, STD, UNUSED) /* 117 IMPORT_CLASS */ |
---|
157 | OPSPEC( UNUSED, CLASS, STD, UNUSED) /* 118 IMPORT_CONST */ |
---|
158 | OPSPEC( STD, STD, STD, STD) /* 119 OP_119 */ |
---|
159 | OPSPEC( STD, STD, STD, STD) /* 120 OP_120 */ |
---|
160 | OPSPEC( UNUSED, STD, STD, VAR) /* 121 ASSIGN_ADD_OBJ */ |
---|
161 | OPSPEC( UNUSED, STD, STD, VAR) /* 122 ASSIGN_SUB_OBJ */ |
---|
162 | OPSPEC( UNUSED, STD, STD, VAR) /* 123 ASSIGN_MUL_OBJ */ |
---|
163 | OPSPEC( UNUSED, STD, STD, VAR) /* 124 ASSIGN_DIV_OBJ */ |
---|
164 | OPSPEC( UNUSED, STD, STD, VAR) /* 125 ASSIGN_MOD_OBJ */ |
---|
165 | OPSPEC( UNUSED, STD, STD, VAR) /* 126 ASSIGN_SL_OBJ */ |
---|
166 | OPSPEC( UNUSED, STD, STD, VAR) /* 127 ASSIGN_SR_OBJ */ |
---|
167 | OPSPEC( UNUSED, STD, STD, VAR) /* 128 ASSIGN_CONCAT_OBJ */ |
---|
168 | OPSPEC( UNUSED, STD, STD, VAR) /* 129 ASSIGN_BW_OR_OBJ */ |
---|
169 | OPSPEC( UNUSED, STD, STD, VAR) /* 130 ASSIGN_BW_AND_OBJ */ |
---|
170 | OPSPEC( UNUSED, STD, STD, VAR) /* 131 ASSIGN_BW_XOR_OBJ */ |
---|
171 | |
---|
172 | OPSPEC( UNUSED, STD, STD, VAR) /* 132 PRE_INC_OBJ */ |
---|
173 | OPSPEC( UNUSED, STD, STD, VAR) /* 133 PRE_DEC_OBJ */ |
---|
174 | OPSPEC( UNUSED, STD, STD, TMP) /* 134 POST_INC_OBJ */ |
---|
175 | OPSPEC( UNUSED, STD, STD, TMP) /* 135 POST_DEC_OBJ */ |
---|
176 | OPSPEC( UNUSED, STD, STD, VAR) /* 136 ASSIGN_OBJ */ |
---|
177 | OPSPEC( UNUSED, STD, STD, STD) /* 137 OP_DATA */ |
---|
178 | OPSPEC( UNUSED, STD, CLASS, TMP) /* 138 INSTANCEOF */ |
---|
179 | OPSPEC( UNUSED, STD, STD, CLASS) /* 139 DECLARE_CLASS */ |
---|
180 | OPSPEC( CLASS, STD, STD, CLASS) /* 140 DECLARE_INHERITED_CLASS */ |
---|
181 | OPSPEC( UNUSED, STD, STD, UNUSED) /* 141 DECLARE_FUNCTION */ |
---|
182 | OPSPEC( UNUSED, UNUSED, UNUSED, UNUSED) /* 142 RAISE_ABSTRACT_ERROR */ |
---|
183 | #ifdef ZEND_ENGINE_2_3 |
---|
184 | OPSPEC( DECLARE, STD, STD, UNUSED) /* 143 DECLARE_CONST */ |
---|
185 | #else |
---|
186 | OPSPEC( UNUSED, UNUSED, UNUSED, UNUSED) /* 143 UNDEF-143 */ |
---|
187 | #endif |
---|
188 | #ifdef ZEND_ENGINE_2_3 |
---|
189 | OPSPEC( IFACE, CLASS, STD, UNUSED) /* 144 ADD_INTERFACE */ |
---|
190 | #else |
---|
191 | OPSPEC( IFACE, CLASS, CLASS, UNUSED) /* 144 ADD_INTERFACE */ |
---|
192 | #endif |
---|
193 | #ifdef ZEND_ENGINE_2_3 |
---|
194 | OPSPEC( CLASS, STD, STD, OPLINE) /* 145 DECLARE_INHERITED_CLASS_DELAYED */ |
---|
195 | #else |
---|
196 | OPSPEC( UNUSED, CLASS, STD, UNUSED) /* 145 VERIFY_INSTANCEOF */ |
---|
197 | #endif |
---|
198 | OPSPEC( UNUSED, CLASS, UNUSED, UNUSED) /* 146 VERIFY_ABSTRACT_CLASS */ |
---|
199 | OPSPEC( UNUSED, STD, STD, VAR) /* 147 ASSIGN_DIM */ |
---|
200 | OPSPEC( ISSET, STD, STD, TMP) /* 148 ISSET_ISEMPTY_PROP_OBJ */ |
---|
201 | OPSPEC( STD, UNUSED, UNUSED, STD) /* 149 HANDLE_EXCEPTION */ |
---|
202 | OPSPEC( STD, UNUSED, UNUSED, STD) /* 150 USER_OPCODE */ |
---|
203 | #ifdef ZEND_ENGINE_2_3 |
---|
204 | OPSPEC( UNUSED, UNUSED, UNUSED, UNUSED) /* 151 UNDEF */ |
---|
205 | OPSPEC( UNUSED, STD, JMPADDR, TMP) /* 152 JMP_SET */ |
---|
206 | OPSPEC( UNUSED, STD, STD, TMP) /* 153 DECLARE_LAMBDA_FUNCTION */ |
---|
207 | #endif |
---|
208 | #ifdef ZEND_ENGINE_2_4 |
---|
209 | OPSPEC( UNUSED, UNUSED, UNUSED, UNUSED) /* 154 ADD_TRAIT */ |
---|
210 | OPSPEC( UNUSED, UNUSED, UNUSED, UNUSED) /* 155 BIND_TRAITS */ |
---|
211 | OPSPEC( UNUSED, UNUSED, UNUSED, UNUSED) /* 156 SEPARATE */ |
---|
212 | OPSPEC( UNUSED, UNUSED, UNUSED, UNUSED) /* 157 QM_ASSIGN_VAR */ |
---|
213 | OPSPEC( UNUSED, UNUSED, UNUSED, UNUSED) /* 158 JMP_SET_VAR */ |
---|
214 | #endif |
---|
215 | #ifdef ZEND_ENGINE_2_5 |
---|
216 | OPSPEC( UNUSED, UNUSED, UNUSED, UNUSED) /* 159 DISCARD_EXCEPTION */ |
---|
217 | OPSPEC( UNUSED, STD, STD, UNUSED) /* 160 YIELD */ |
---|
218 | OPSPEC( UNUSED, STD, UNUSED, UNUSED) /* 161 GENERATOR_RETURN */ |
---|
219 | OPSPEC( UNUSED, JMPADDR, UNUSED, UNUSED) /* 162 FAST_CALL */ |
---|
220 | OPSPEC( UNUSED, UNUSED, UNUSED, UNUSED) /* 163 FAST_RET */ |
---|
221 | #endif |
---|
222 | }; |
---|