Skip to content

Commit 0dd2765

Browse files
committed
Merge branch 'PHP-5.4' into PHP-5.5
Conflicts: Zend/zend_vm_opcodes.h
2 parents 560f90e + 61199be commit 0dd2765

File tree

3 files changed

+201
-170
lines changed

3 files changed

+201
-170
lines changed

Zend/zend_vm_gen.php

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1181,22 +1181,32 @@ function gen_vm($def, $skel) {
11811181
out($f, $GLOBALS['header_text']);
11821182

11831183
fputs($f, "#ifndef ZEND_VM_OPCODES_H\n#define ZEND_VM_OPCODES_H\n\n");
1184+
fputs($f, "extern ZEND_API const char *zend_vm_opcodes_map[".($max_opcode + 1)."];\n\n");
11841185

11851186
foreach ($opcodes as $code => $dsc) {
11861187
$code = str_pad((string)$code,$code_len," ",STR_PAD_LEFT);
11871188
$op = str_pad($dsc["op"],$max_opcode_len);
11881189
fputs($f,"#define $op $code\n");
11891190
}
11901191

1191-
fputs($f,"\nstatic const char *zend_vm_opcodes_map[] = {\n");
1192+
fputs($f, "\n#endif");
1193+
fclose($f);
1194+
echo "zend_vm_opcodes.h generated successfully.\n";
1195+
1196+
// zend_vm_opcodes.c
1197+
$f = fopen(__DIR__ . "zend_vm_opcodes.c", "w+") or die("ERROR: Cannot create zend_vm_opcodes.c\n");
1198+
1199+
// Insert header
1200+
out($f, $GLOBALS['header_text']);
1201+
1202+
fputs($f,"const char *zend_vm_opcodes_map[".($max_opcode + 1)."] = {\n");
11921203
for ($i = 0; $i <= $max_opcode; $i++) {
11931204
fputs($f,"\t".(isset($opcodes[$i]["op"])?'"'.$opcodes[$i]["op"].'"':"NULL").",\n");
11941205
}
11951206
fputs($f, "};\n");
11961207

1197-
fputs($f, "\n#endif");
11981208
fclose($f);
1199-
echo "zend_vm_opcodes.h generated successfully.\n";
1209+
echo "zend_vm_opcodes.c generated successfully.\n";
12001210

12011211
// Generate zend_vm_execute.h
12021212
$f = fopen(__DIR__ . "/zend_vm_execute.h", "w+") or die("ERROR: Cannot create zend_vm_execute.h\n");

Zend/zend_vm_opcodes.c

Lines changed: 186 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,186 @@
1+
/*
2+
+----------------------------------------------------------------------+
3+
| Zend Engine |
4+
+----------------------------------------------------------------------+
5+
| Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
6+
+----------------------------------------------------------------------+
7+
| This source file is subject to version 2.00 of the Zend license, |
8+
| that is bundled with this package in the file LICENSE, and is |
9+
| available through the world-wide-web at the following url: |
10+
| http://www.zend.com/license/2_00.txt. |
11+
| If you did not receive a copy of the Zend license and are unable to |
12+
| obtain it through the world-wide-web, please send a note to |
13+
| license@zend.com so we can mail you a copy immediately. |
14+
+----------------------------------------------------------------------+
15+
| Authors: Andi Gutmans <andi@zend.com> |
16+
| Zeev Suraski <zeev@zend.com> |
17+
| Dmitry Stogov <dmitry@zend.com> |
18+
+----------------------------------------------------------------------+
19+
*/
20+
21+
const char *zend_vm_opcodes_map[164] = {
22+
"ZEND_NOP",
23+
"ZEND_ADD",
24+
"ZEND_SUB",
25+
"ZEND_MUL",
26+
"ZEND_DIV",
27+
"ZEND_MOD",
28+
"ZEND_SL",
29+
"ZEND_SR",
30+
"ZEND_CONCAT",
31+
"ZEND_BW_OR",
32+
"ZEND_BW_AND",
33+
"ZEND_BW_XOR",
34+
"ZEND_BW_NOT",
35+
"ZEND_BOOL_NOT",
36+
"ZEND_BOOL_XOR",
37+
"ZEND_IS_IDENTICAL",
38+
"ZEND_IS_NOT_IDENTICAL",
39+
"ZEND_IS_EQUAL",
40+
"ZEND_IS_NOT_EQUAL",
41+
"ZEND_IS_SMALLER",
42+
"ZEND_IS_SMALLER_OR_EQUAL",
43+
"ZEND_CAST",
44+
"ZEND_QM_ASSIGN",
45+
"ZEND_ASSIGN_ADD",
46+
"ZEND_ASSIGN_SUB",
47+
"ZEND_ASSIGN_MUL",
48+
"ZEND_ASSIGN_DIV",
49+
"ZEND_ASSIGN_MOD",
50+
"ZEND_ASSIGN_SL",
51+
"ZEND_ASSIGN_SR",
52+
"ZEND_ASSIGN_CONCAT",
53+
"ZEND_ASSIGN_BW_OR",
54+
"ZEND_ASSIGN_BW_AND",
55+
"ZEND_ASSIGN_BW_XOR",
56+
"ZEND_PRE_INC",
57+
"ZEND_PRE_DEC",
58+
"ZEND_POST_INC",
59+
"ZEND_POST_DEC",
60+
"ZEND_ASSIGN",
61+
"ZEND_ASSIGN_REF",
62+
"ZEND_ECHO",
63+
"ZEND_PRINT",
64+
"ZEND_JMP",
65+
"ZEND_JMPZ",
66+
"ZEND_JMPNZ",
67+
"ZEND_JMPZNZ",
68+
"ZEND_JMPZ_EX",
69+
"ZEND_JMPNZ_EX",
70+
"ZEND_CASE",
71+
"ZEND_SWITCH_FREE",
72+
"ZEND_BRK",
73+
"ZEND_CONT",
74+
"ZEND_BOOL",
75+
"ZEND_INIT_STRING",
76+
"ZEND_ADD_CHAR",
77+
"ZEND_ADD_STRING",
78+
"ZEND_ADD_VAR",
79+
"ZEND_BEGIN_SILENCE",
80+
"ZEND_END_SILENCE",
81+
"ZEND_INIT_FCALL_BY_NAME",
82+
"ZEND_DO_FCALL",
83+
"ZEND_DO_FCALL_BY_NAME",
84+
"ZEND_RETURN",
85+
"ZEND_RECV",
86+
"ZEND_RECV_INIT",
87+
"ZEND_SEND_VAL",
88+
"ZEND_SEND_VAR",
89+
"ZEND_SEND_REF",
90+
"ZEND_NEW",
91+
"ZEND_INIT_NS_FCALL_BY_NAME",
92+
"ZEND_FREE",
93+
"ZEND_INIT_ARRAY",
94+
"ZEND_ADD_ARRAY_ELEMENT",
95+
"ZEND_INCLUDE_OR_EVAL",
96+
"ZEND_UNSET_VAR",
97+
"ZEND_UNSET_DIM",
98+
"ZEND_UNSET_OBJ",
99+
"ZEND_FE_RESET",
100+
"ZEND_FE_FETCH",
101+
"ZEND_EXIT",
102+
"ZEND_FETCH_R",
103+
"ZEND_FETCH_DIM_R",
104+
"ZEND_FETCH_OBJ_R",
105+
"ZEND_FETCH_W",
106+
"ZEND_FETCH_DIM_W",
107+
"ZEND_FETCH_OBJ_W",
108+
"ZEND_FETCH_RW",
109+
"ZEND_FETCH_DIM_RW",
110+
"ZEND_FETCH_OBJ_RW",
111+
"ZEND_FETCH_IS",
112+
"ZEND_FETCH_DIM_IS",
113+
"ZEND_FETCH_OBJ_IS",
114+
"ZEND_FETCH_FUNC_ARG",
115+
"ZEND_FETCH_DIM_FUNC_ARG",
116+
"ZEND_FETCH_OBJ_FUNC_ARG",
117+
"ZEND_FETCH_UNSET",
118+
"ZEND_FETCH_DIM_UNSET",
119+
"ZEND_FETCH_OBJ_UNSET",
120+
"ZEND_FETCH_DIM_TMP_VAR",
121+
"ZEND_FETCH_CONSTANT",
122+
"ZEND_GOTO",
123+
"ZEND_EXT_STMT",
124+
"ZEND_EXT_FCALL_BEGIN",
125+
"ZEND_EXT_FCALL_END",
126+
"ZEND_EXT_NOP",
127+
"ZEND_TICKS",
128+
"ZEND_SEND_VAR_NO_REF",
129+
"ZEND_CATCH",
130+
"ZEND_THROW",
131+
"ZEND_FETCH_CLASS",
132+
"ZEND_CLONE",
133+
"ZEND_RETURN_BY_REF",
134+
"ZEND_INIT_METHOD_CALL",
135+
"ZEND_INIT_STATIC_METHOD_CALL",
136+
"ZEND_ISSET_ISEMPTY_VAR",
137+
"ZEND_ISSET_ISEMPTY_DIM_OBJ",
138+
NULL,
139+
NULL,
140+
NULL,
141+
NULL,
142+
NULL,
143+
NULL,
144+
NULL,
145+
NULL,
146+
NULL,
147+
NULL,
148+
NULL,
149+
NULL,
150+
NULL,
151+
NULL,
152+
NULL,
153+
NULL,
154+
"ZEND_PRE_INC_OBJ",
155+
"ZEND_PRE_DEC_OBJ",
156+
"ZEND_POST_INC_OBJ",
157+
"ZEND_POST_DEC_OBJ",
158+
"ZEND_ASSIGN_OBJ",
159+
NULL,
160+
"ZEND_INSTANCEOF",
161+
"ZEND_DECLARE_CLASS",
162+
"ZEND_DECLARE_INHERITED_CLASS",
163+
"ZEND_DECLARE_FUNCTION",
164+
"ZEND_RAISE_ABSTRACT_ERROR",
165+
"ZEND_DECLARE_CONST",
166+
"ZEND_ADD_INTERFACE",
167+
"ZEND_DECLARE_INHERITED_CLASS_DELAYED",
168+
"ZEND_VERIFY_ABSTRACT_CLASS",
169+
"ZEND_ASSIGN_DIM",
170+
"ZEND_ISSET_ISEMPTY_PROP_OBJ",
171+
"ZEND_HANDLE_EXCEPTION",
172+
"ZEND_USER_OPCODE",
173+
NULL,
174+
"ZEND_JMP_SET",
175+
"ZEND_DECLARE_LAMBDA_FUNCTION",
176+
"ZEND_ADD_TRAIT",
177+
"ZEND_BIND_TRAITS",
178+
"ZEND_SEPARATE",
179+
"ZEND_QM_ASSIGN_VAR",
180+
"ZEND_JMP_SET_VAR",
181+
"ZEND_DISCARD_EXCEPTION",
182+
"ZEND_YIELD",
183+
"ZEND_GENERATOR_RETURN",
184+
"ZEND_FAST_CALL",
185+
"ZEND_FAST_RET",
186+
};

0 commit comments

Comments
 (0)