Skip to content

Commit 2874eba

Browse files
committed
Merge branch 'PHP-5.5' into PHP-5.6
Conflicts: Zend/zend_vm_opcodes.h
2 parents b14f318 + 00cc4dc commit 2874eba

File tree

3 files changed

+202
-171
lines changed

3 files changed

+202
-171
lines changed

Zend/zend_vm_gen.php

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

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

12121213
foreach ($opcodes as $code => $dsc) {
12131214
$code = str_pad((string)$code,$code_len," ",STR_PAD_LEFT);
12141215
$op = str_pad($dsc["op"],$max_opcode_len);
12151216
fputs($f,"#define $op $code\n");
12161217
}
12171218

1218-
fputs($f,"\nstatic const char *zend_vm_opcodes_map[] = {\n");
1219+
fputs($f, "\n#endif");
1220+
fclose($f);
1221+
echo "zend_vm_opcodes.h generated successfully.\n";
1222+
1223+
// zend_vm_opcodes.c
1224+
$f = fopen(__DIR__ . "/zend_vm_opcodes.c", "w+") or die("ERROR: Cannot create zend_vm_opcodes.c\n");
1225+
1226+
// Insert header
1227+
out($f, $GLOBALS['header_text']);
1228+
1229+
fputs($f,"const char *zend_vm_opcodes_map[".($max_opcode + 1)."] = {\n");
12191230
for ($i = 0; $i <= $max_opcode; $i++) {
12201231
fputs($f,"\t".(isset($opcodes[$i]["op"])?'"'.$opcodes[$i]["op"].'"':"NULL").",\n");
12211232
}
12221233
fputs($f, "};\n");
12231234

1224-
fputs($f, "\n#endif");
12251235
fclose($f);
1226-
echo "zend_vm_opcodes.h generated successfully.\n";
1236+
echo "zend_vm_opcodes.c generated successfully.\n";
12271237

12281238
// Generate zend_vm_execute.h
12291239
$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: 187 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,187 @@
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+
| [email protected] so we can mail you a copy immediately. |
14+
+----------------------------------------------------------------------+
15+
| Authors: Andi Gutmans <[email protected]> |
16+
| Zeev Suraski <[email protected]> |
17+
| Dmitry Stogov <[email protected]> |
18+
+----------------------------------------------------------------------+
19+
*/
20+
21+
const char *zend_vm_opcodes_map[165] = {
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+
"ZEND_RECV_VARIADIC",
187+
};

0 commit comments

Comments
 (0)