Skip to content

Commit 85251ec

Browse files
committed
Merge remote-tracking branch 'origin/master' into str_size_and_int64
2 parents e11fbd9 + 2bf271b commit 85251ec

File tree

8 files changed

+216
-174
lines changed

8 files changed

+216
-174
lines changed

Zend/Makefile.am

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ libZend_la_SOURCES=\
1010
zend_ini_parser.y zend_ini_scanner.l \
1111
zend_alloc.c zend_compile.c zend_constants.c zend_dynamic_array.c \
1212
zend_execute.c zend_execute_API.c zend_highlight.c zend_llist.c \
13-
zend_opcode.c zend_operators.c zend_ptr_stack.c zend_stack.c \
13+
zend_vm_opcodes.c zend_opcode.c zend_operators.c zend_ptr_stack.c zend_stack.c \
1414
zend_variables.c zend.c zend_API.c zend_extensions.c zend_hash.c \
1515
zend_list.c zend_indent.c zend_builtin_functions.c zend_sprintf.c \
1616
zend_ini.c zend_qsort.c zend_objects.c zend_object_handlers.c \

Zend/Zend.dsp

Lines changed: 4 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Zend/ZendTS.dsp

Lines changed: 4 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Zend/zend_vm_gen.php

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1208,22 +1208,33 @@ 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+
fputs($f,"#include <stdio.h>\n\n");
1229+
1230+
fputs($f,"const char *zend_vm_opcodes_map[".($max_opcode + 1)."] = {\n");
12191231
for ($i = 0; $i <= $max_opcode; $i++) {
12201232
fputs($f,"\t".(isset($opcodes[$i]["op"])?'"'.$opcodes[$i]["op"].'"':"NULL").",\n");
12211233
}
12221234
fputs($f, "};\n");
12231235

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

12281239
// Generate zend_vm_execute.h
12291240
$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: 189 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,189 @@
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+
#include <stdio.h>
22+
23+
const char *zend_vm_opcodes_map[165] = {
24+
"ZEND_NOP",
25+
"ZEND_ADD",
26+
"ZEND_SUB",
27+
"ZEND_MUL",
28+
"ZEND_DIV",
29+
"ZEND_MOD",
30+
"ZEND_SL",
31+
"ZEND_SR",
32+
"ZEND_CONCAT",
33+
"ZEND_BW_OR",
34+
"ZEND_BW_AND",
35+
"ZEND_BW_XOR",
36+
"ZEND_BW_NOT",
37+
"ZEND_BOOL_NOT",
38+
"ZEND_BOOL_XOR",
39+
"ZEND_IS_IDENTICAL",
40+
"ZEND_IS_NOT_IDENTICAL",
41+
"ZEND_IS_EQUAL",
42+
"ZEND_IS_NOT_EQUAL",
43+
"ZEND_IS_SMALLER",
44+
"ZEND_IS_SMALLER_OR_EQUAL",
45+
"ZEND_CAST",
46+
"ZEND_QM_ASSIGN",
47+
"ZEND_ASSIGN_ADD",
48+
"ZEND_ASSIGN_SUB",
49+
"ZEND_ASSIGN_MUL",
50+
"ZEND_ASSIGN_DIV",
51+
"ZEND_ASSIGN_MOD",
52+
"ZEND_ASSIGN_SL",
53+
"ZEND_ASSIGN_SR",
54+
"ZEND_ASSIGN_CONCAT",
55+
"ZEND_ASSIGN_BW_OR",
56+
"ZEND_ASSIGN_BW_AND",
57+
"ZEND_ASSIGN_BW_XOR",
58+
"ZEND_PRE_INC",
59+
"ZEND_PRE_DEC",
60+
"ZEND_POST_INC",
61+
"ZEND_POST_DEC",
62+
"ZEND_ASSIGN",
63+
"ZEND_ASSIGN_REF",
64+
"ZEND_ECHO",
65+
"ZEND_PRINT",
66+
"ZEND_JMP",
67+
"ZEND_JMPZ",
68+
"ZEND_JMPNZ",
69+
"ZEND_JMPZNZ",
70+
"ZEND_JMPZ_EX",
71+
"ZEND_JMPNZ_EX",
72+
"ZEND_CASE",
73+
"ZEND_SWITCH_FREE",
74+
"ZEND_BRK",
75+
"ZEND_CONT",
76+
"ZEND_BOOL",
77+
"ZEND_INIT_STRING",
78+
"ZEND_ADD_CHAR",
79+
"ZEND_ADD_STRING",
80+
"ZEND_ADD_VAR",
81+
"ZEND_BEGIN_SILENCE",
82+
"ZEND_END_SILENCE",
83+
"ZEND_INIT_FCALL_BY_NAME",
84+
"ZEND_DO_FCALL",
85+
"ZEND_DO_FCALL_BY_NAME",
86+
"ZEND_RETURN",
87+
"ZEND_RECV",
88+
"ZEND_RECV_INIT",
89+
"ZEND_SEND_VAL",
90+
"ZEND_SEND_VAR",
91+
"ZEND_SEND_REF",
92+
"ZEND_NEW",
93+
"ZEND_INIT_NS_FCALL_BY_NAME",
94+
"ZEND_FREE",
95+
"ZEND_INIT_ARRAY",
96+
"ZEND_ADD_ARRAY_ELEMENT",
97+
"ZEND_INCLUDE_OR_EVAL",
98+
"ZEND_UNSET_VAR",
99+
"ZEND_UNSET_DIM",
100+
"ZEND_UNSET_OBJ",
101+
"ZEND_FE_RESET",
102+
"ZEND_FE_FETCH",
103+
"ZEND_EXIT",
104+
"ZEND_FETCH_R",
105+
"ZEND_FETCH_DIM_R",
106+
"ZEND_FETCH_OBJ_R",
107+
"ZEND_FETCH_W",
108+
"ZEND_FETCH_DIM_W",
109+
"ZEND_FETCH_OBJ_W",
110+
"ZEND_FETCH_RW",
111+
"ZEND_FETCH_DIM_RW",
112+
"ZEND_FETCH_OBJ_RW",
113+
"ZEND_FETCH_IS",
114+
"ZEND_FETCH_DIM_IS",
115+
"ZEND_FETCH_OBJ_IS",
116+
"ZEND_FETCH_FUNC_ARG",
117+
"ZEND_FETCH_DIM_FUNC_ARG",
118+
"ZEND_FETCH_OBJ_FUNC_ARG",
119+
"ZEND_FETCH_UNSET",
120+
"ZEND_FETCH_DIM_UNSET",
121+
"ZEND_FETCH_OBJ_UNSET",
122+
"ZEND_FETCH_DIM_TMP_VAR",
123+
"ZEND_FETCH_CONSTANT",
124+
"ZEND_GOTO",
125+
"ZEND_EXT_STMT",
126+
"ZEND_EXT_FCALL_BEGIN",
127+
"ZEND_EXT_FCALL_END",
128+
"ZEND_EXT_NOP",
129+
"ZEND_TICKS",
130+
"ZEND_SEND_VAR_NO_REF",
131+
"ZEND_CATCH",
132+
"ZEND_THROW",
133+
"ZEND_FETCH_CLASS",
134+
"ZEND_CLONE",
135+
"ZEND_RETURN_BY_REF",
136+
"ZEND_INIT_METHOD_CALL",
137+
"ZEND_INIT_STATIC_METHOD_CALL",
138+
"ZEND_ISSET_ISEMPTY_VAR",
139+
"ZEND_ISSET_ISEMPTY_DIM_OBJ",
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+
NULL,
155+
NULL,
156+
"ZEND_PRE_INC_OBJ",
157+
"ZEND_PRE_DEC_OBJ",
158+
"ZEND_POST_INC_OBJ",
159+
"ZEND_POST_DEC_OBJ",
160+
"ZEND_ASSIGN_OBJ",
161+
NULL,
162+
"ZEND_INSTANCEOF",
163+
"ZEND_DECLARE_CLASS",
164+
"ZEND_DECLARE_INHERITED_CLASS",
165+
"ZEND_DECLARE_FUNCTION",
166+
"ZEND_RAISE_ABSTRACT_ERROR",
167+
"ZEND_DECLARE_CONST",
168+
"ZEND_ADD_INTERFACE",
169+
"ZEND_DECLARE_INHERITED_CLASS_DELAYED",
170+
"ZEND_VERIFY_ABSTRACT_CLASS",
171+
"ZEND_ASSIGN_DIM",
172+
"ZEND_ISSET_ISEMPTY_PROP_OBJ",
173+
"ZEND_HANDLE_EXCEPTION",
174+
"ZEND_USER_OPCODE",
175+
NULL,
176+
"ZEND_JMP_SET",
177+
"ZEND_DECLARE_LAMBDA_FUNCTION",
178+
"ZEND_ADD_TRAIT",
179+
"ZEND_BIND_TRAITS",
180+
"ZEND_SEPARATE",
181+
"ZEND_QM_ASSIGN_VAR",
182+
"ZEND_JMP_SET_VAR",
183+
"ZEND_DISCARD_EXCEPTION",
184+
"ZEND_YIELD",
185+
"ZEND_GENERATOR_RETURN",
186+
"ZEND_FAST_CALL",
187+
"ZEND_FAST_RET",
188+
"ZEND_RECV_VARIADIC",
189+
};

0 commit comments

Comments
 (0)