xref: /PHP-5.5/Zend/zend_vm_execute.skl (revision fa30e475)
1{%DEFINES%}
2
3ZEND_API void {%EXECUTOR_NAME%}_ex(zend_execute_data *execute_data TSRMLS_DC)
4{
5	DCL_OPLINE
6	zend_bool original_in_execution;
7
8	{%HELPER_VARS%}
9
10	{%INTERNAL_LABELS%}
11
12	original_in_execution = EG(in_execution);
13	EG(in_execution) = 1;
14
15	if (0) {
16zend_vm_enter:
17		execute_data = i_create_execute_data_from_op_array(EG(active_op_array), 1 TSRMLS_CC);
18	}
19
20	LOAD_REGS();
21	LOAD_OPLINE();
22
23	while (1) {
24    {%ZEND_VM_CONTINUE_LABEL%}
25#ifdef ZEND_WIN32
26		if (EG(timed_out)) {
27			zend_timeout(0);
28		}
29#endif
30
31		{%ZEND_VM_DISPATCH%} {
32			{%INTERNAL_EXECUTOR%}
33		}
34
35	}
36	zend_error_noreturn(E_ERROR, "Arrived at end of main loop which shouldn't happen");
37}
38
39ZEND_API void zend_{%EXECUTOR_NAME%}(zend_op_array *op_array TSRMLS_DC)
40{
41	if (EG(exception)) {
42		return;
43	}
44	zend_{%EXECUTOR_NAME%}_ex(i_create_execute_data_from_op_array(op_array, 0 TSRMLS_CC) TSRMLS_CC);
45}
46
47{%EXTERNAL_EXECUTOR%}
48
49void {%INITIALIZER_NAME%}(void)
50{
51  {%EXTERNAL_LABELS%}
52}
53