/PHP-7.4/ |
H A D | .gdbinit | 138 printf "%s:%d ", $func->op_array.filename->val, $ex->opline->lineno 589 usage: printzn &opline->op1 594 printzn &execute_data->opline.op1 596 printzn &execute_data->opline.op2 598 printzn &execute_data->opline.result 602 dump operands of the current opline
|
H A D | NEWS | 1182 . Fixed bug #78973 (Destructor during CV freeing causes segfault if opline
|
/PHP-7.4/Zend/ |
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.c | 1280 const zend_op *opline; in zend_error_va_list() local 1290 opline = NULL; in zend_error_va_list() 1294 if (ex && ex->opline->opcode == ZEND_HANDLE_EXCEPTION && in zend_error_va_list() 1296 opline = EG(opline_before_exception); in zend_error_va_list() 1300 if (opline) { in zend_error_va_list() 1301 ex->opline = opline; in zend_error_va_list() 1418 EG(current_execute_data)->opline->opcode == ZEND_INCLUDE_OR_EVAL && in zend_error_va_list() 1419 EG(current_execute_data)->opline->extended_value == ZEND_EVAL)) { in zend_error_va_list()
|
H A D | zend.h | 54 (EX(prev_execute_data)->opline->result_type != IS_UNUSED))
|
H A D | zend_builtin_functions.c | 2200 && skip->prev_execute_data->opline->opcode != ZEND_DO_FCALL in skip_internal_handler() 2201 && skip->prev_execute_data->opline->opcode != ZEND_DO_ICALL in skip_internal_handler() 2202 && skip->prev_execute_data->opline->opcode != ZEND_DO_UCALL in skip_internal_handler() 2203 && skip->prev_execute_data->opline->opcode != ZEND_DO_FCALL_BY_NAME in skip_internal_handler() 2252 if (skip->opline->opcode == ZEND_HANDLE_EXCEPTION) { in ZEND_FUNCTION() 2259 lineno = skip->opline->lineno; in ZEND_FUNCTION() 2320 switch (ptr->opline->extended_value) { in ZEND_FUNCTION() 2453 if (skip->opline->opcode == ZEND_HANDLE_EXCEPTION) { in zend_fetch_debug_backtrace() 2460 lineno = skip->opline->lineno; in zend_fetch_debug_backtrace() 2484 ZVAL_LONG(&tmp, prev->opline->lineno); in zend_fetch_debug_backtrace() [all …]
|
H A D | zend_compile.c | 685 opline--; in zend_do_free() 700 opline--; in zend_do_free() 726 opline--; in zend_do_free() 1158 ++opline; in zend_build_delayed_early_binding_list() 1189 zval *lcname = RT_CONSTANT(opline, opline->op1); in zend_do_delayed_early_binding() 2429 opline->result.var = opline->op1.var; in zend_separate_if_call_and_write() 2886 if (opline && opline->opcode == ZEND_FETCH_OBJ_W) { in zend_compile_assign_ref() 4482 opline--; in zend_resolve_goto_label() 8214 opline->op1_type = opline->op2_type; in zend_compile_encaps_list() 8215 opline->op1 = opline->op2; in zend_compile_encaps_list() [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_exceptions.c | 177 EG(current_execute_data)->opline->opcode == ZEND_HANDLE_EXCEPTION) { in zend_throw_exception_internal() 181 EG(opline_before_exception) = EG(current_execute_data)->opline; in zend_throw_exception_internal() 182 EG(current_execute_data)->opline = EG(exception_op); in zend_throw_exception_internal() 201 EG(current_execute_data)->opline = EG(opline_before_exception); in zend_clear_exception()
|
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 | 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_execute.h | 334 ZEND_API zval *zend_get_zval_ptr(const zend_op *opline, int op_type, const znode_op *node, const ze… 393 #define SKIP_EXT_OPLINE(opline) do { \ argument 394 while (UNEXPECTED((opline)->opcode >= ZEND_EXT_STMT \ 395 && (opline)->opcode <= ZEND_TICKS)) { \ 396 (opline)--; \
|
H A D | zend_execute_API.c | 532 if (EG(exception) && ex->opline->opcode == ZEND_HANDLE_EXCEPTION && in zend_get_executed_lineno() 533 ex->opline->lineno == 0 && EG(opline_before_exception)) { in zend_get_executed_lineno() 536 return ex->opline->lineno; in zend_get_executed_lineno() 680 EG(current_execute_data)->opline->opcode != ZEND_DO_FCALL && in zend_call_function() 681 EG(current_execute_data)->opline->opcode != ZEND_DO_ICALL && in zend_call_function() 682 EG(current_execute_data)->opline->opcode != ZEND_DO_UCALL && in zend_call_function() 683 EG(current_execute_data)->opline->opcode != ZEND_DO_FCALL_BY_NAME) { in zend_call_function() 688 dummy_execute_data.opline = NULL; in zend_call_function()
|
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 …]
|
H A D | zend_opcode.c | 509 zend_op *opline = op_array->opcodes, *end=opline+op_array->last; in zend_update_extended_stmts() local 516 opline++; in zend_update_extended_stmts() 520 opline->lineno = (opline+1)->lineno; in zend_update_extended_stmts() 526 opline++; in zend_update_extended_stmts() 781 opline--; in zend_calc_live_ranges() 970 opline->extended_value = ZEND_OPLINE_NUM_TO_OFFSET(op_array, opline, opline->extended_value); in pass_two() 998 opline->extended_value = ZEND_OPLINE_NUM_TO_OFFSET(op_array, opline, opline->extended_value); in pass_two() 1021 opline->extended_value = ZEND_OPLINE_NUM_TO_OFFSET(op_array, opline, opline->extended_value); in pass_two() 1026 ZEND_PASS_TWO_UPDATE_CONSTANT(op_array, opline, opline->op1); in pass_two() 1031 ZEND_PASS_TWO_UPDATE_CONSTANT(op_array, opline, opline->op2); in pass_two() [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_vm_def.h | 3010 opline = OP_JMP_ADDR(opline, opline->op2); 3039 opline = OP_JMP_ADDR(opline, opline->op2); 3071 opline = ZEND_OFFSET_TO_OPLINE(opline, opline->extended_value); 3073 opline = OP_JMP_ADDR(opline, opline->op2); 3111 opline = OP_JMP_ADDR(opline, opline->op2); 3144 opline = OP_JMP_ADDR(opline, opline->op2); 4466 gen_execute_data->opline = opline + 1; 7310 lcname = RT_CONSTANT(opline, opline->op1); 7579 opline = EX(opline); 7597 ZEND_VM_DISPATCH(opline->opcode, opline); [all …]
|
H A D | zend_vm_execute.h | 2652 opline = EX(opline); in ZEND_USER_OPCODE_SPEC_HANDLER() 3373 opline = OP_JMP_ADDR(opline, opline->op2); in ZEND_JMPZ_SPEC_CONST_HANDLER() 3402 opline = OP_JMP_ADDR(opline, opline->op2); in ZEND_JMPNZ_SPEC_CONST_HANDLER() 3436 opline = OP_JMP_ADDR(opline, opline->op2); in ZEND_JMPZNZ_SPEC_CONST_HANDLER() 3474 opline = OP_JMP_ADDR(opline, opline->op2); in ZEND_JMPZ_EX_SPEC_CONST_HANDLER() 3507 opline = OP_JMP_ADDR(opline, opline->op2); in ZEND_JMPNZ_EX_SPEC_CONST_HANDLER() 13430 opline = OP_JMP_ADDR(opline, opline->op2); in ZEND_JMPZ_SPEC_TMPVAR_HANDLER() 13459 opline = OP_JMP_ADDR(opline, opline->op2); in ZEND_JMPNZ_SPEC_TMPVAR_HANDLER() 13493 opline = OP_JMP_ADDR(opline, opline->op2); in ZEND_JMPZNZ_SPEC_TMPVAR_HANDLER() 13531 opline = OP_JMP_ADDR(opline, opline->op2); in ZEND_JMPZ_EX_SPEC_TMPVAR_HANDLER() [all …]
|
/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/ext/opcache/Optimizer/ |
H A D | block_pass.c | 82 #define SET_VAR_SOURCE(opline) Tsource[VAR_NUM(opline->result.var)] = opline argument 193 COPY_NODE(opline->result, opline->op1); in zend_optimize_block() 215 COPY_NODE(opline->op1, opline->op2); in zend_optimize_block() 223 COPY_NODE(opline->op1, opline->op2); in zend_optimize_block() 478 COPY_NODE(opline->op1, opline->op2); in zend_optimize_block() 624 (opline->result_type == opline->op1_type && in zend_optimize_block() 625 opline->result.var == opline->op1.var))) { in zend_optimize_block() 752 COPY_NODE(opline->op1, opline->op2); in zend_optimize_block() 892 if (opline->op1_type == opline->result_type && in zend_optimize_block() 893 opline->op1.var == opline->result.var) { in zend_optimize_block() [all …]
|
H A D | compact_literals.c | 289 opline++; in zend_optimizer_compact_literals() 507 opline->op1.constant = map[opline->op1.constant]; in zend_optimizer_compact_literals() 510 opline->op2.constant = map[opline->op2.constant]; in zend_optimizer_compact_literals() 618 opline->result.num = func_slot[opline->op2.constant]; in zend_optimizer_compact_literals() 622 func_slot[opline->op2.constant] = opline->result.num; in zend_optimizer_compact_literals() 656 opline->result.num = class_slot[opline->op1.constant]; in zend_optimizer_compact_literals() 660 class_slot[opline->op1.constant] = opline->result.num; in zend_optimizer_compact_literals() 751 opline->op2.num = class_slot[opline->op1.constant]; in zend_optimizer_compact_literals() 755 class_slot[opline->op1.constant] = opline->op2.num; in zend_optimizer_compact_literals() 788 opline++; in zend_optimizer_compact_literals() [all …]
|
H A D | compact_vars.c | 38 zend_op *opline = &op_array->opcodes[i]; in zend_optimizer_compact_vars() local 39 if (opline->op1_type & (IS_CV|IS_VAR|IS_TMP_VAR)) { in zend_optimizer_compact_vars() 42 if (opline->op2_type & (IS_CV|IS_VAR|IS_TMP_VAR)) { in zend_optimizer_compact_vars() 45 if (opline->result_type & (IS_CV|IS_VAR|IS_TMP_VAR)) { in zend_optimizer_compact_vars() 47 if (opline->opcode == ZEND_ROPE_INIT) { in zend_optimizer_compact_vars() 86 zend_op *opline = &op_array->opcodes[i]; in zend_optimizer_compact_vars() local 87 if (opline->op1_type & (IS_CV|IS_VAR|IS_TMP_VAR)) { in zend_optimizer_compact_vars() 88 opline->op1.var = NUM_VAR(vars_map[VAR_NUM(opline->op1.var)]); in zend_optimizer_compact_vars() 90 if (opline->op2_type & (IS_CV|IS_VAR|IS_TMP_VAR)) { in zend_optimizer_compact_vars() 91 opline->op2.var = NUM_VAR(vars_map[VAR_NUM(opline->op2.var)]); in zend_optimizer_compact_vars() [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 | dfa_pass.c | 745 COPY_NODE(opline->op1, opline->op2); in zend_dfa_optimize_jmps() 771 COPY_NODE(opline->op1, opline->op2); in zend_dfa_optimize_jmps() 834 opline->op1.num = opline->op2.num; in zend_dfa_optimize_jmps() 900 COPY_NODE(opline->op1, opline->op2); in zend_dfa_optimize_jmps() 1236 opline->result_type = opline->op1_type; in zend_dfa_optimize_op_array() 1237 opline->result.var = opline->op1.var; in zend_dfa_optimize_op_array() 1238 opline->op1_type = opline->op2_type; in zend_dfa_optimize_op_array() 1239 opline->op1.var = opline->op2.var; in zend_dfa_optimize_op_array() 1290 opline->opcode = opline->extended_value; in zend_dfa_optimize_op_array() 1292 opline->result_type = opline->op1_type; in zend_dfa_optimize_op_array() [all …]
|
H A D | escape_analysis.c | 173 switch (opline->opcode) { in is_allocation_def() 208 switch (opline->opcode) { in is_allocation_def() 239 switch (opline->opcode) { in is_local_def() 258 switch (opline->opcode) { in is_local_def() 283 switch (opline->opcode) { in is_escape_use() 336 opline--; in is_escape_use() 338 if (opline->op1_type != IS_CV in is_escape_use() 352 switch (opline->opcode) { in is_escape_use() 354 if (opline->op1_type != IS_CV in is_escape_use() 360 if (opline->op2_type == IS_CV || opline->result_type != IS_UNUSED) { in is_escape_use() [all …]
|