/PHP-7.4/ext/opcache/Optimizer/ |
H A D | scdf.c | 124 zend_op *opline = &scdf->op_array->opcodes[i]; in scdf_solve() local 126 if (opline->opcode == ZEND_OP_DATA) { in scdf_solve() 127 opline--; in scdf_solve() 130 scdf->handlers.visit_instr(scdf, opline, ssa_op); in scdf_solve() 161 zend_op *opline = NULL; in scdf_solve() local 164 opline = &scdf->op_array->opcodes[j]; in scdf_solve() 166 if (opline->opcode != ZEND_OP_DATA) { in scdf_solve() 174 if (opline->opcode == ZEND_OP_DATA) { in scdf_solve() 175 opline--; in scdf_solve() 197 zend_op *opline = &op_array->opcodes[i]; in kept_alive_by_loop_var_free() local [all …]
|
H A D | dce.c | 79 switch (opline->opcode) { in may_have_side_effects() 176 if (opline->op2_type != IS_CONST in may_have_side_effects() 214 opline++; in may_have_side_effects() 216 if (opline->op1_type != IS_CONST in may_have_side_effects() 276 || (opline->opcode == ZEND_ASSIGN in add_operands_to_worklists() 381 if (opline->opcode == ZEND_NOP) { in dce_instr() 394 && opline->opcode != ZEND_CASE) { in dce_instr() 396 free_var_type = opline->op1_type; in dce_instr() 409 free_var_type = opline->op2_type; in dce_instr() 418 opline->opcode = ZEND_FREE; in dce_instr() [all …]
|
H A D | zend_call_graph.c | 89 zend_op *opline = op_array->opcodes; in zend_analyze_calls() local 90 zend_op *end = opline + op_array->last; in zend_analyze_calls() 99 while (opline != end) { in zend_analyze_calls() 100 switch (opline->opcode) { in zend_analyze_calls() 110 call_info->caller_init_opline = opline; in zend_analyze_calls() 113 call_info->num_args = opline->extended_value; in zend_analyze_calls() 150 call_info->caller_call_opline = opline; in zend_analyze_calls() 165 uint32_t num = opline->op2.num; in zend_analyze_calls() 170 call_info->arg_info[num].opline = opline; in zend_analyze_calls() 185 opline++; in zend_analyze_calls() [all …]
|
H A D | zend_cfg.h | 105 #define CRT_CONSTANT_EX(op_array, opline, node, rt_constants) \ argument 107 RT_CONSTANT(opline, (node)) \ 113 CRT_CONSTANT_EX(op_array, opline, node, (build_flags & ZEND_RT_CONSTANTS)) 115 #define RETURN_VALUE_USED(opline) \ argument 116 ((opline)->result_type != IS_UNUSED)
|
H A D | ssa_integrity.c | 179 zend_op *opline = &op_array->opcodes[i]; in ssa_verify_integrity() local 180 if (is_var_type(opline->op1_type)) { in ssa_verify_integrity() 189 if (is_var_type(opline->op2_type)) { in ssa_verify_integrity() 198 if (is_var_type(opline->result_type)) { in ssa_verify_integrity() 216 if (VAR_NUM(opline->op1.var) != ssa->vars[ssa_op->op1_use].var) { in ssa_verify_integrity() 218 VAR(ssa_op->op1_use), VAR_NUM(opline->op1.var), INSTR(i)); in ssa_verify_integrity() 229 if (VAR_NUM(opline->op2.var) != ssa->vars[ssa_op->op2_use].var) { in ssa_verify_integrity() 231 VAR(ssa_op->op2_use), VAR_NUM(opline->op2.var), INSTR(i)); in ssa_verify_integrity() 255 if (VAR_NUM(opline->op1.var) != ssa->vars[ssa_op->op1_def].var) { in ssa_verify_integrity() 257 VAR(ssa_op->op1_def), VAR_NUM(opline->op1.var), INSTR(i)); in ssa_verify_integrity() [all …]
|
H A D | zend_ssa.h | 151 void zend_ssa_remove_instr(zend_ssa *ssa, zend_op *opline, zend_ssa_op *ssa_op); 215 static zend_always_inline zend_bool zend_ssa_is_no_val_use(const zend_op *opline, const zend_ssa_op… in zend_ssa_is_no_val_use() argument 217 if (opline->opcode == ZEND_ASSIGN || opline->opcode == ZEND_UNSET_CV) { in zend_ssa_is_no_val_use() 225 && opline->opcode != ZEND_ADD_ARRAY_ELEMENT in zend_ssa_is_no_val_use() 226 && opline->opcode != ZEND_ADD_ARRAY_UNPACK) { in zend_ssa_is_no_val_use()
|
H A D | scdf.h | 40 struct _scdf_ctx *scdf, zend_op *opline, zend_ssa_op *ssa_op); 45 zend_op *opline, zend_ssa_op *ssa_op);
|
H A D | zend_call_graph.h | 27 zend_op *opline; member
|
/PHP-7.4/Zend/ |
H A D | zend_execute.c | 1433 const zend_op *opline = EX(opline); in zend_wrong_string_offset() local 1455 opline++; in zend_wrong_string_offset() 1527 opline++; in zend_wrong_string_offset() 3006 zval *class_name = RT_CONSTANT(opline, opline->op2); in zend_fetch_static_property_address_ex() 3038 name = Z_STR_P(RT_CONSTANT(opline, opline->op1)); in zend_fetch_static_property_address_ex() 3733 EX(opline) = opline; in zend_init_func_execute_data() 3832 opline--; in cleanup_unfinished_calls() 4448 …char *)zend_memrchr(Z_STRVAL_P(RT_CONSTANT(opline, opline->op2)), '\\', Z_STRLEN_P(RT_CONSTANT(opl… in _zend_quick_get_constant() 4450 ZVAL_STR_COPY(EX_VAR(opline->result.var), Z_STR_P(RT_CONSTANT(opline, opline->op2))); in _zend_quick_get_constant() 4454 …actual, Z_STRLEN_P(RT_CONSTANT(opline, opline->op2)) - (actual - Z_STRVAL_P(RT_CONSTANT(opline, op… in _zend_quick_get_constant() [all …]
|
H A D | zend_compile.h | 32 #define MAKE_NOP(opline) do { \ argument 33 (opline)->op1.num = 0; \ 34 (opline)->op2.num = 0; \ 35 (opline)->result.num = 0; \ 36 (opline)->opcode = ZEND_NOP; \ 37 (opline)->op1_type = IS_UNUSED; \ 38 (opline)->op2_type = IS_UNUSED; \ 39 (opline)->result_type = IS_UNUSED; \ 602 ((char*)(target) - (char*)(opline)) 616 # define OP_JMP_ADDR(opline, node) \ argument [all …]
|
H A D | zend_vm.h | 38 #define ZEND_VM_SET_OPCODE_HANDLER(opline) zend_vm_set_opcode_handler(opline) argument
|
H A D | zend_exceptions.h | 74 if (EX(opline)->opcode != ZEND_HANDLE_EXCEPTION) { in zend_rethrow_exception() 75 EG(opline_before_exception) = EX(opline); in zend_rethrow_exception() 76 EX(opline) = EG(exception_op); in zend_rethrow_exception()
|
H A D | README.md | 88 opline->op<X>.op_type 90 get_zval_ptr(&opline->op<X>, EX(Ts), &free_op<X>, <TYPE>) 92 get_zval_ptr_ptr(&opline->op<X>, EX(Ts), &free_op<X>, <TYPE>) 94 get_obj_zval_ptr(&opline->op<X>, EX(Ts), &free_op<X>, <TYPE>) 96 get_obj_zval_ptr_ptr(&opline->op<X>, EX(Ts), &free_op<X>, <TYPE>)
|
H A D | zend_generators.c | 99 if (execute_data->opline != op_array->opcodes) { in zend_generator_cleanup_unfinished_execution() 101 uint32_t op_num = execute_data->opline - op_array->opcodes - 1; in zend_generator_cleanup_unfinished_execution() 198 op_num = ex->opline - ex->func->op_array.opcodes - 1; in zend_generator_dtor_storage() 226 ex->opline = &ex->func->op_array.opcodes[try_catch->finally_op]; in zend_generator_dtor_storage() 296 if (execute_data->opline != op_array->opcodes) { in calc_gc_buffer_size() 298 uint32_t i, op_num = execute_data->opline - op_array->opcodes - 1; in calc_gc_buffer_size() 390 if (execute_data->opline != op_array->opcodes) { in zend_generator_get_gc() 391 uint32_t i, op_num = execute_data->opline - op_array->opcodes - 1; in zend_generator_get_gc() 490 generator->execute_data->opline--; in zend_generator_throw_exception() 496 generator->execute_data->opline++; in zend_generator_throw_exception() [all …]
|
/PHP-7.4/sapi/phpdbg/ |
H A D | phpdbg_bp.h | 88 zend_ulong opline; member 96 zend_ulong opline; member 132 PHPDBG_API void phpdbg_set_breakpoint_opline(zend_ulong opline); 133 PHPDBG_API void phpdbg_set_breakpoint_opline_ex(phpdbg_opline_ptr_t opline); 134 …void phpdbg_set_breakpoint_method_opline(const char *class, const char *method, zend_ulong opline); 135 PHPDBG_API void phpdbg_set_breakpoint_function_opline(const char *function, zend_ulong opline); 136 PHPDBG_API void phpdbg_set_breakpoint_file_opline(const char *file, zend_ulong opline);
|
H A D | phpdbg_bp.c | 491 new_break.opline = opline; in phpdbg_set_breakpoint_opline() 521 opline_break.opline = brake->opline = (zend_ulong)(op_array->opcodes + brake->opline_num); in phpdbg_resolve_op_array_break() 570 opline_break->opline); in phpdbg_resolve_op_array_breaks() 653 new_break.opline_num = opline; in phpdbg_set_breakpoint_method_opline() 654 new_break.opline = 0; in phpdbg_set_breakpoint_method_opline() 705 new_break.opline_num = opline; in phpdbg_set_breakpoint_function_opline() 706 new_break.opline = 0; in phpdbg_set_breakpoint_function_opline() 751 new_break.opline_num = opline; in phpdbg_set_breakpoint_file_opline() 752 new_break.opline = 0; in phpdbg_set_breakpoint_file_opline() 817 new_break.opline = (zend_ulong) opline; in phpdbg_set_breakpoint_opline_ex() [all …]
|
H A D | phpdbg_prompt.c | 613 const zend_op *opline = op_array->opcodes; in phpdbg_skip_line_helper() local 618 if (opline->lineno != ex->opline->lineno in phpdbg_skip_line_helper() 619 || opline->opcode == ZEND_RETURN in phpdbg_skip_line_helper() 620 || opline->opcode == ZEND_FAST_RET in phpdbg_skip_line_helper() 622 || opline->opcode == ZEND_EXIT in phpdbg_skip_line_helper() 623 || opline->opcode == ZEND_YIELD in phpdbg_skip_line_helper() 624 || opline->opcode == ZEND_YIELD_FROM in phpdbg_skip_line_helper() 626 zend_hash_index_update_ptr(&PHPDBG_G(seek), (zend_ulong) opline, (void *) opline); in phpdbg_skip_line_helper() 658 const zend_op *opline = op_array->opcodes; in phpdbg_seek_to_end() local 662 switch (opline->opcode) { in phpdbg_seek_to_end() [all …]
|
H A D | phpdbg_print.c | 34 …PHPDBG_PRINT_COMMAND_D(opline, "print out the instruction in the current opline", 'o'… 42 PHPDBG_PRINT(opline) /* {{{ */ in PHPDBG_PRINT() argument 60 zend_op *opline = &(op_array->opcodes[0]); in phpdbg_print_function_helper() local 71 opline, in phpdbg_print_function_helper() 79 opline, in phpdbg_print_function_helper() 84 char *decode = phpdbg_decode_opline(op_array, opline); in phpdbg_print_function_helper() 86 opline->lineno, in phpdbg_print_function_helper() 90 opline++; in phpdbg_print_function_helper()
|
H A D | phpdbg_print.h | 32 PHPDBG_PRINT(opline);
|
/PHP-7.4/ext/opcache/ |
H A D | zend_persist.c | 390 zend_op *opline = new_opcodes; in zend_persist_op_array_ex() local 394 for (; opline < end ; opline++, offset++) { in zend_persist_op_array_ex() 402 zend_vm_set_opcode_handler_ex(opline, 1 << Z_TYPE_P(opline->op1.zv), 0, 0); in zend_persist_op_array_ex() 410 opline->op1.constant = in zend_persist_op_array_ex() 414 (char*)opline; in zend_persist_op_array_ex() 422 opline->op2.constant = in zend_persist_op_array_ex() 426 (char*)opline; in zend_persist_op_array_ex() 432 switch (opline->opcode) { in zend_persist_op_array_ex() 435 opline->op1.jmp_addr = &new_opcodes[opline->op1.jmp_addr - op_array->opcodes]; in zend_persist_op_array_ex() 449 opline->op2.jmp_addr = &new_opcodes[opline->op2.jmp_addr - op_array->opcodes]; in zend_persist_op_array_ex() [all …]
|
H A D | zend_file_cache.c | 461 zend_op *opline, *end; local 470 UNSERIALIZE_PTR(opline); 472 while (opline < end) { 482 opline->op1.constant = RT_CONSTANT(opline, opline->op1) - literals; 485 opline->op2.constant = RT_CONSTANT(opline, opline->op2) - literals; 522 opline++; 1180 zend_op *opline, *end; local 1185 while (opline < end) { 1195 ZEND_PASS_TWO_UPDATE_CONSTANT(op_array, opline, opline->op1); 1198 ZEND_PASS_TWO_UPDATE_CONSTANT(op_array, opline, opline->op2); [all …]
|
H A D | ZendAccelerator.c | 3863 key = Z_STR_P(RT_CONSTANT(opline, opline->op1) + 1); in preload_link() 3865 MAKE_NOP(opline); in preload_link() 3869 opline++; in preload_link() 3991 Z_TYPE_P(RT_CONSTANT(opline, opline->op1)) == IS_STRING) { in preload_remove_empty_includes() 4012 opline++; in preload_remove_empty_includes() 4031 Z_TYPE_P(RT_CONSTANT(opline, opline->op1)) == IS_STRING) { in preload_remove_empty_includes() 4038 MAKE_NOP(opline); in preload_remove_empty_includes() 4040 …if (!IS_ABSOLUTE_PATH(Z_STRVAL_P(RT_CONSTANT(opline, opline->op1)), Z_STRLEN_P(RT_CONSTANT(opline,… in preload_remove_empty_includes() 4042 zend_string_release(Z_STR_P(RT_CONSTANT(opline, opline->op1))); in preload_remove_empty_includes() 4043 ZVAL_STR_COPY(RT_CONSTANT(opline, opline->op1), resolved_path); in preload_remove_empty_includes() [all …]
|
/PHP-7.4/sapi/fpm/fpm/ |
H A D | fpm_php_trace.c | 160 if (0 > fpm_trace_get_long(prev + offsetof(zend_execute_data, opline), &l)) { in fpm_php_trace_dump() 165 long opline = l; in fpm_php_trace_dump() local 168 if (0 > fpm_trace_get_long(opline + offsetof(struct _zend_op, lineno), &l)) { in fpm_php_trace_dump()
|
/PHP-7.4/Zend/tests/ |
H A D | bug78973.phpt | 2 Bug #78973: Destructor during CV freeing causes segfault if opline never saved
|
/PHP-7.4/sapi/phpdbg/tests/ |
H A D | generator_run.phpt | 2 Ensure proper saving of EX(opline)
|