Skip to content

Commit b52c300

Browse files
committed
Merge branch 'PHP-5.4' into PHP-5.5
1 parent e195faa commit b52c300

File tree

2 files changed

+182
-0
lines changed

2 files changed

+182
-0
lines changed

Zend/zend_vm_gen.php

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1180,11 +1180,21 @@ function gen_vm($def, $skel) {
11801180
// Insert header
11811181
out($f, $GLOBALS['header_text']);
11821182

1183+
fputs($f, "#ifndef ZEND_VM_OPCODES_H\n#define ZEND_VM_OPCODES_H\n\n");
1184+
11831185
foreach ($opcodes as $code => $dsc) {
11841186
$code = str_pad((string)$code,$code_len," ",STR_PAD_LEFT);
11851187
$op = str_pad($dsc["op"],$max_opcode_len);
11861188
fputs($f,"#define $op $code\n");
11871189
}
1190+
1191+
fputs($f,"\nconst char *zend_vm_opcodes_map[] = {\n");
1192+
for ($i = 0; $i <= $max_opcode; $i++) {
1193+
fputs($f,"\t".(isset($opcodes[$i]["op"])?'"'.$opcodes[$i]["op"].'"':"NULL").",\n");
1194+
}
1195+
fputs($f, "};\n");
1196+
1197+
fputs($f, "\n#endif");
11881198
fclose($f);
11891199
echo "zend_vm_opcodes.h generated successfully.\n";
11901200

Zend/zend_vm_opcodes.h

Lines changed: 172 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,9 @@
1818
+----------------------------------------------------------------------+
1919
*/
2020

21+
#ifndef ZEND_VM_OPCODES_H
22+
#define ZEND_VM_OPCODES_H
23+
2124
#define ZEND_NOP 0
2225
#define ZEND_ADD 1
2326
#define ZEND_SUB 2
@@ -164,3 +167,172 @@
164167
#define ZEND_GENERATOR_RETURN 161
165168
#define ZEND_FAST_CALL 162
166169
#define ZEND_FAST_RET 163
170+
171+
const char *zend_vm_opcodes_map[] = {
172+
"ZEND_NOP",
173+
"ZEND_ADD",
174+
"ZEND_SUB",
175+
"ZEND_MUL",
176+
"ZEND_DIV",
177+
"ZEND_MOD",
178+
"ZEND_SL",
179+
"ZEND_SR",
180+
"ZEND_CONCAT",
181+
"ZEND_BW_OR",
182+
"ZEND_BW_AND",
183+
"ZEND_BW_XOR",
184+
"ZEND_BW_NOT",
185+
"ZEND_BOOL_NOT",
186+
"ZEND_BOOL_XOR",
187+
"ZEND_IS_IDENTICAL",
188+
"ZEND_IS_NOT_IDENTICAL",
189+
"ZEND_IS_EQUAL",
190+
"ZEND_IS_NOT_EQUAL",
191+
"ZEND_IS_SMALLER",
192+
"ZEND_IS_SMALLER_OR_EQUAL",
193+
"ZEND_CAST",
194+
"ZEND_QM_ASSIGN",
195+
"ZEND_ASSIGN_ADD",
196+
"ZEND_ASSIGN_SUB",
197+
"ZEND_ASSIGN_MUL",
198+
"ZEND_ASSIGN_DIV",
199+
"ZEND_ASSIGN_MOD",
200+
"ZEND_ASSIGN_SL",
201+
"ZEND_ASSIGN_SR",
202+
"ZEND_ASSIGN_CONCAT",
203+
"ZEND_ASSIGN_BW_OR",
204+
"ZEND_ASSIGN_BW_AND",
205+
"ZEND_ASSIGN_BW_XOR",
206+
"ZEND_PRE_INC",
207+
"ZEND_PRE_DEC",
208+
"ZEND_POST_INC",
209+
"ZEND_POST_DEC",
210+
"ZEND_ASSIGN",
211+
"ZEND_ASSIGN_REF",
212+
"ZEND_ECHO",
213+
"ZEND_PRINT",
214+
"ZEND_JMP",
215+
"ZEND_JMPZ",
216+
"ZEND_JMPNZ",
217+
"ZEND_JMPZNZ",
218+
"ZEND_JMPZ_EX",
219+
"ZEND_JMPNZ_EX",
220+
"ZEND_CASE",
221+
"ZEND_SWITCH_FREE",
222+
"ZEND_BRK",
223+
"ZEND_CONT",
224+
"ZEND_BOOL",
225+
"ZEND_INIT_STRING",
226+
"ZEND_ADD_CHAR",
227+
"ZEND_ADD_STRING",
228+
"ZEND_ADD_VAR",
229+
"ZEND_BEGIN_SILENCE",
230+
"ZEND_END_SILENCE",
231+
"ZEND_INIT_FCALL_BY_NAME",
232+
"ZEND_DO_FCALL",
233+
"ZEND_DO_FCALL_BY_NAME",
234+
"ZEND_RETURN",
235+
"ZEND_RECV",
236+
"ZEND_RECV_INIT",
237+
"ZEND_SEND_VAL",
238+
"ZEND_SEND_VAR",
239+
"ZEND_SEND_REF",
240+
"ZEND_NEW",
241+
"ZEND_INIT_NS_FCALL_BY_NAME",
242+
"ZEND_FREE",
243+
"ZEND_INIT_ARRAY",
244+
"ZEND_ADD_ARRAY_ELEMENT",
245+
"ZEND_INCLUDE_OR_EVAL",
246+
"ZEND_UNSET_VAR",
247+
"ZEND_UNSET_DIM",
248+
"ZEND_UNSET_OBJ",
249+
"ZEND_FE_RESET",
250+
"ZEND_FE_FETCH",
251+
"ZEND_EXIT",
252+
"ZEND_FETCH_R",
253+
"ZEND_FETCH_DIM_R",
254+
"ZEND_FETCH_OBJ_R",
255+
"ZEND_FETCH_W",
256+
"ZEND_FETCH_DIM_W",
257+
"ZEND_FETCH_OBJ_W",
258+
"ZEND_FETCH_RW",
259+
"ZEND_FETCH_DIM_RW",
260+
"ZEND_FETCH_OBJ_RW",
261+
"ZEND_FETCH_IS",
262+
"ZEND_FETCH_DIM_IS",
263+
"ZEND_FETCH_OBJ_IS",
264+
"ZEND_FETCH_FUNC_ARG",
265+
"ZEND_FETCH_DIM_FUNC_ARG",
266+
"ZEND_FETCH_OBJ_FUNC_ARG",
267+
"ZEND_FETCH_UNSET",
268+
"ZEND_FETCH_DIM_UNSET",
269+
"ZEND_FETCH_OBJ_UNSET",
270+
"ZEND_FETCH_DIM_TMP_VAR",
271+
"ZEND_FETCH_CONSTANT",
272+
"ZEND_GOTO",
273+
"ZEND_EXT_STMT",
274+
"ZEND_EXT_FCALL_BEGIN",
275+
"ZEND_EXT_FCALL_END",
276+
"ZEND_EXT_NOP",
277+
"ZEND_TICKS",
278+
"ZEND_SEND_VAR_NO_REF",
279+
"ZEND_CATCH",
280+
"ZEND_THROW",
281+
"ZEND_FETCH_CLASS",
282+
"ZEND_CLONE",
283+
"ZEND_RETURN_BY_REF",
284+
"ZEND_INIT_METHOD_CALL",
285+
"ZEND_INIT_STATIC_METHOD_CALL",
286+
"ZEND_ISSET_ISEMPTY_VAR",
287+
"ZEND_ISSET_ISEMPTY_DIM_OBJ",
288+
NULL,
289+
NULL,
290+
NULL,
291+
NULL,
292+
NULL,
293+
NULL,
294+
NULL,
295+
NULL,
296+
NULL,
297+
NULL,
298+
NULL,
299+
NULL,
300+
NULL,
301+
NULL,
302+
NULL,
303+
NULL,
304+
"ZEND_PRE_INC_OBJ",
305+
"ZEND_PRE_DEC_OBJ",
306+
"ZEND_POST_INC_OBJ",
307+
"ZEND_POST_DEC_OBJ",
308+
"ZEND_ASSIGN_OBJ",
309+
NULL,
310+
"ZEND_INSTANCEOF",
311+
"ZEND_DECLARE_CLASS",
312+
"ZEND_DECLARE_INHERITED_CLASS",
313+
"ZEND_DECLARE_FUNCTION",
314+
"ZEND_RAISE_ABSTRACT_ERROR",
315+
"ZEND_DECLARE_CONST",
316+
"ZEND_ADD_INTERFACE",
317+
"ZEND_DECLARE_INHERITED_CLASS_DELAYED",
318+
"ZEND_VERIFY_ABSTRACT_CLASS",
319+
"ZEND_ASSIGN_DIM",
320+
"ZEND_ISSET_ISEMPTY_PROP_OBJ",
321+
"ZEND_HANDLE_EXCEPTION",
322+
"ZEND_USER_OPCODE",
323+
NULL,
324+
"ZEND_JMP_SET",
325+
"ZEND_DECLARE_LAMBDA_FUNCTION",
326+
"ZEND_ADD_TRAIT",
327+
"ZEND_BIND_TRAITS",
328+
"ZEND_SEPARATE",
329+
"ZEND_QM_ASSIGN_VAR",
330+
"ZEND_JMP_SET_VAR",
331+
"ZEND_DISCARD_EXCEPTION",
332+
"ZEND_YIELD",
333+
"ZEND_GENERATOR_RETURN",
334+
"ZEND_FAST_CALL",
335+
"ZEND_FAST_RET",
336+
};
337+
338+
#endif

0 commit comments

Comments
 (0)