Lines Matching refs:p

677 	zend_jit_trace_rec *p;  in zend_jit_trace_add_phis()  local
691 p = trace_buffer + ZEND_JIT_TRACE_START_REC_SIZE; in zend_jit_trace_add_phis()
692 for (;;p++) { in zend_jit_trace_add_phis()
693 if (p->op == ZEND_JIT_TRACE_VM && level == 0) { in zend_jit_trace_add_phis()
694 const zend_op *opline = p->opline; in zend_jit_trace_add_phis()
706 } else if (p->op == ZEND_JIT_TRACE_INIT_CALL) { in zend_jit_trace_add_phis()
707 } else if (p->op == ZEND_JIT_TRACE_DO_ICALL) { in zend_jit_trace_add_phis()
708 } else if (p->op == ZEND_JIT_TRACE_ENTER) { in zend_jit_trace_add_phis()
710 } else if (p->op == ZEND_JIT_TRACE_BACK) { in zend_jit_trace_add_phis()
717 } else if (p->op == ZEND_JIT_TRACE_END) { in zend_jit_trace_add_phis()
982 static int find_return_ssa_var(zend_jit_trace_rec *p, zend_ssa_op *ssa_op) in find_return_ssa_var() argument
985 if (p->op == ZEND_JIT_TRACE_VM) { in find_return_ssa_var()
986 if (p->opline->opcode == ZEND_DO_UCALL in find_return_ssa_var()
987 || p->opline->opcode == ZEND_DO_FCALL_BY_NAME in find_return_ssa_var()
988 || p->opline->opcode == ZEND_DO_FCALL) { in find_return_ssa_var()
989 if (p->opline->result_type != IS_UNUSED) { in find_return_ssa_var()
994 } else if (p->op >= ZEND_JIT_TRACE_OP1_TYPE && p->op <= ZEND_JIT_TRACE_VAL_INFO) { in find_return_ssa_var()
999 p--; in find_return_ssa_var()
1003 static const zend_op *zend_jit_trace_find_init_fcall_op(zend_jit_trace_rec *p, const zend_op_array … in zend_jit_trace_find_init_fcall_op() argument
1005 if (!(p->info & ZEND_JIT_TRACE_FAKE_INIT_CALL)) { in zend_jit_trace_find_init_fcall_op()
1006 p--; in zend_jit_trace_find_init_fcall_op()
1008 if (p->op == ZEND_JIT_TRACE_VM) { in zend_jit_trace_find_init_fcall_op()
1009 if (p->opline->opcode == ZEND_INIT_FCALL in zend_jit_trace_find_init_fcall_op()
1010 || p->opline->opcode == ZEND_INIT_FCALL_BY_NAME in zend_jit_trace_find_init_fcall_op()
1011 || p->opline->opcode == ZEND_INIT_NS_FCALL_BY_NAME in zend_jit_trace_find_init_fcall_op()
1012 || p->opline->opcode == ZEND_INIT_DYNAMIC_CALL in zend_jit_trace_find_init_fcall_op()
1013 || p->opline->opcode == ZEND_INIT_USER_CALL in zend_jit_trace_find_init_fcall_op()
1014 || p->opline->opcode == ZEND_NEW in zend_jit_trace_find_init_fcall_op()
1015 || p->opline->opcode == ZEND_INIT_METHOD_CALL in zend_jit_trace_find_init_fcall_op()
1016 || p->opline->opcode == ZEND_INIT_STATIC_METHOD_CALL) { in zend_jit_trace_find_init_fcall_op()
1017 return p->opline; in zend_jit_trace_find_init_fcall_op()
1020 } else if (p->op >= ZEND_JIT_TRACE_OP1_TYPE && p->op <= ZEND_JIT_TRACE_VAL_INFO) { in zend_jit_trace_find_init_fcall_op()
1025 p--; in zend_jit_trace_find_init_fcall_op()
1031 p++; in zend_jit_trace_find_init_fcall_op()
1033 if (p->op == ZEND_JIT_TRACE_VM) { in zend_jit_trace_find_init_fcall_op()
1034 opline = p->opline; in zend_jit_trace_find_init_fcall_op()
1036 } else if (p->op == ZEND_JIT_TRACE_INIT_CALL) { in zend_jit_trace_find_init_fcall_op()
1042 p--; in zend_jit_trace_find_init_fcall_op()
1187 zend_jit_trace_rec *p; in zend_jit_trace_build_tssa() local
1206 p = trace_buffer + ZEND_JIT_TRACE_START_REC_SIZE; in zend_jit_trace_build_tssa()
1215 for (;;p++) { in zend_jit_trace_build_tssa()
1216 if (p->op == ZEND_JIT_TRACE_VM) { in zend_jit_trace_build_tssa()
1218 const zend_op *opline = p->opline; in zend_jit_trace_build_tssa()
1241 ssa_ops_count += zend_jit_trace_op_len(p->opline); in zend_jit_trace_build_tssa()
1242 } else if (p->op == ZEND_JIT_TRACE_INIT_CALL) { in zend_jit_trace_build_tssa()
1244 stack_top += zend_jit_trace_frame_size(p->op_array); in zend_jit_trace_build_tssa()
1248 } else if (p->op == ZEND_JIT_TRACE_DO_ICALL) { in zend_jit_trace_build_tssa()
1250 if (p->func in zend_jit_trace_build_tssa()
1251 && p->func != (zend_function*)&zend_pass_function in zend_jit_trace_build_tssa()
1252 && (zend_string_equals_literal(p->func->common.function_name, "extract") in zend_jit_trace_build_tssa()
1253 || zend_string_equals_literal(p->func->common.function_name, "compact") in zend_jit_trace_build_tssa()
1254 || zend_string_equals_literal(p->func->common.function_name, "get_defined_vars"))) { in zend_jit_trace_build_tssa()
1258 frame_size = zend_jit_trace_frame_size(p->op_array); in zend_jit_trace_build_tssa()
1267 } else if (p->op == ZEND_JIT_TRACE_ENTER) { in zend_jit_trace_build_tssa()
1268 op_array = p->op_array; in zend_jit_trace_build_tssa()
1293 } else if (p->op == ZEND_JIT_TRACE_BACK) { in zend_jit_trace_build_tssa()
1295 stack_bottom += zend_jit_trace_frame_size(p->op_array); in zend_jit_trace_build_tssa()
1315 op_array = p->op_array; in zend_jit_trace_build_tssa()
1316 } else if (p->op == ZEND_JIT_TRACE_END) { in zend_jit_trace_build_tssa()
1393 p = trace_buffer + ZEND_JIT_TRACE_START_REC_SIZE; in zend_jit_trace_build_tssa()
1396 for (;;p++) { in zend_jit_trace_build_tssa()
1397 if (p->op == ZEND_JIT_TRACE_VM) { in zend_jit_trace_build_tssa()
1398 opline = p->opline; in zend_jit_trace_build_tssa()
1402 len = zend_jit_trace_op_len(p->opline); in zend_jit_trace_build_tssa()
1412 } else if (p->op == ZEND_JIT_TRACE_ENTER) { in zend_jit_trace_build_tssa()
1415 op_array = p->op_array; in zend_jit_trace_build_tssa()
1420 ZEND_JIT_TRACE_SET_FIRST_SSA_VAR(p->info, ssa_vars_count); in zend_jit_trace_build_tssa()
1424 } else if (p->op == ZEND_JIT_TRACE_BACK) { in zend_jit_trace_build_tssa()
1425 op_array = p->op_array; in zend_jit_trace_build_tssa()
1432 ZEND_JIT_TRACE_SET_FIRST_SSA_VAR(p->info, ssa_vars_count); in zend_jit_trace_build_tssa()
1439 } else if (p->op == ZEND_JIT_TRACE_END) { in zend_jit_trace_build_tssa()
1647 p = trace_buffer + ZEND_JIT_TRACE_START_REC_SIZE; in zend_jit_trace_build_tssa()
1651 for (;;p++) { in zend_jit_trace_build_tssa()
1652 if (p->op == ZEND_JIT_TRACE_VM) { in zend_jit_trace_build_tssa()
1658 opline = p->opline; in zend_jit_trace_build_tssa()
1660 op1_type = orig_op1_type = p->op1_type; in zend_jit_trace_build_tssa()
1661 op2_type = orig_op2_type = p->op2_type; in zend_jit_trace_build_tssa()
1662 op3_type = p->op3_type; in zend_jit_trace_build_tssa()
1676 if ((p+1)->op == ZEND_JIT_TRACE_OP1_TYPE) { in zend_jit_trace_build_tssa()
1678 p++; in zend_jit_trace_build_tssa()
1680 if ((p+1)->op == ZEND_JIT_TRACE_OP2_TYPE) { in zend_jit_trace_build_tssa()
1681 op2_ce = (zend_class_entry*)(p+1)->ce; in zend_jit_trace_build_tssa()
1682 p++; in zend_jit_trace_build_tssa()
1684 if ((p+1)->op == ZEND_JIT_TRACE_VAL_INFO) { in zend_jit_trace_build_tssa()
1685 val_type = (p+1)->op1_type; in zend_jit_trace_build_tssa()
1686 p++; in zend_jit_trace_build_tssa()
2312 } else if (p->op == ZEND_JIT_TRACE_ENTER) { in zend_jit_trace_build_tssa()
2313 op_array = p->op_array; in zend_jit_trace_build_tssa()
2333 TRACE_FRAME_SET_RETURN_SSA_VAR(call, find_return_ssa_var(p - 1, ssa_ops + (idx - 1))); in zend_jit_trace_build_tssa()
2338 v = ZEND_JIT_TRACE_GET_FIRST_SSA_VAR(p->info); in zend_jit_trace_build_tssa()
2383 } else if (p->op == ZEND_JIT_TRACE_BACK) { in zend_jit_trace_build_tssa()
2384 op_array = p->op_array; in zend_jit_trace_build_tssa()
2390 v = ZEND_JIT_TRACE_GET_FIRST_SSA_VAR(p->info); in zend_jit_trace_build_tssa()
2410 zend_jit_trace_rec *q = p + 1; in zend_jit_trace_build_tssa()
2420 ZEND_JIT_TRACE_GET_FIRST_SSA_VAR(p->info) + in zend_jit_trace_build_tssa()
2429 if ((p+1)->op == ZEND_JIT_TRACE_VM) { in zend_jit_trace_build_tssa()
2430 const zend_op *opline = (p+1)->opline - 1; in zend_jit_trace_build_tssa()
2459 } else if (p->op == ZEND_JIT_TRACE_INIT_CALL) { in zend_jit_trace_build_tssa()
2461 TRACE_FRAME_INIT(call, p->func, 0, 0); in zend_jit_trace_build_tssa()
2465 top = zend_jit_trace_call_frame(top, p->op_array); in zend_jit_trace_build_tssa()
2466 if (p->func && p->func->type == ZEND_USER_FUNCTION) { in zend_jit_trace_build_tssa()
2467 for (i = 0; i < p->op_array->last_var + p->op_array->T; i++) { in zend_jit_trace_build_tssa()
2472 && !(p->info & ZEND_JIT_TRACE_FAKE_INIT_CALL)) { in zend_jit_trace_build_tssa()
2473 if (p->func == NULL || (p-1)->op != ZEND_JIT_TRACE_VM) { in zend_jit_trace_build_tssa()
2476 const zend_op *opline = (p-1)->opline; in zend_jit_trace_build_tssa()
2487 frame->used_stack = zend_vm_calc_used_stack(opline->extended_value, (zend_function*)p->func); in zend_jit_trace_build_tssa()
2498 } else if (p->op == ZEND_JIT_TRACE_DO_ICALL) { in zend_jit_trace_build_tssa()
2507 && (p->func->common.fn_flags & ZEND_ACC_HAS_RETURN_TYPE) in zend_jit_trace_build_tssa()
2508 && !(p->func->common.fn_flags & ZEND_ACC_RETURN_REFERENCE)) { in zend_jit_trace_build_tssa()
2516 const zend_function *func = p->func; in zend_jit_trace_build_tssa()
2523 } else if (p->op == ZEND_JIT_TRACE_END) { in zend_jit_trace_build_tssa()
2704 zend_jit_trace_rec *p; in zend_jit_trace_allocate_registers() local
2807 p = trace_buffer + ZEND_JIT_TRACE_START_REC_SIZE; in zend_jit_trace_allocate_registers()
2811 for (;;p++) { in zend_jit_trace_allocate_registers()
2812 if (p->op == ZEND_JIT_TRACE_VM) { in zend_jit_trace_allocate_registers()
2813 const zend_op *opline = p->opline; in zend_jit_trace_allocate_registers()
2818 zend_jit_opline_supports_reg(op_array, ssa, opline, ssa_op, p); in zend_jit_trace_allocate_registers()
3025 } else if (p->op == ZEND_JIT_TRACE_ENTER) { in zend_jit_trace_allocate_registers()
3031 frame->func = (const zend_function*)p->op_array; in zend_jit_trace_allocate_registers()
3033 op_array = p->op_array; in zend_jit_trace_allocate_registers()
3037 j = ZEND_JIT_TRACE_GET_FIRST_SSA_VAR(p->info); in zend_jit_trace_allocate_registers()
3054 } else if (p->op == ZEND_JIT_TRACE_BACK) { in zend_jit_trace_allocate_registers()
3059 op_array = p->op_array; in zend_jit_trace_allocate_registers()
3069 j = ZEND_JIT_TRACE_GET_FIRST_SSA_VAR(p->info); in zend_jit_trace_allocate_registers()
3085 } else if (p->op == ZEND_JIT_TRACE_END) { in zend_jit_trace_allocate_registers()
3953 zend_jit_trace_rec *p, in zend_jit_trace_next_is_send_result() argument
3957 && (p+1)->op == ZEND_JIT_TRACE_VM in zend_jit_trace_next_is_send_result()
3958 && (p+1)->opline == opline + 1 in zend_jit_trace_next_is_send_result()
3970 uint8_t res_type = (p+1)->op1_type; in zend_jit_trace_next_is_send_result()
3992 zend_jit_trace_rec *p; in zend_jit_trace() local
4039 p = trace_buffer; in zend_jit_trace()
4040 ZEND_ASSERT(p->op == ZEND_JIT_TRACE_START); in zend_jit_trace()
4041 op_array = p->op_array; in zend_jit_trace()
4051 opline = p[1].opline; in zend_jit_trace()
4053 p += ZEND_JIT_TRACE_START_REC_SIZE; in zend_jit_trace()
4289 for (;;p++) { in zend_jit_trace()
4290 if (p->op == ZEND_JIT_TRACE_VM) { in zend_jit_trace()
4291 uint8_t op1_type = p->op1_type; in zend_jit_trace()
4292 uint8_t op2_type = p->op2_type; in zend_jit_trace()
4293 uint8_t op3_type = p->op3_type; in zend_jit_trace()
4302 opline = p->opline; in zend_jit_trace()
4316 if ((p+1)->op == ZEND_JIT_TRACE_OP1_TYPE) { in zend_jit_trace()
4317 op1_ce = (zend_class_entry*)(p+1)->ce; in zend_jit_trace()
4318 p++; in zend_jit_trace()
4320 if ((p+1)->op == ZEND_JIT_TRACE_OP2_TYPE) { in zend_jit_trace()
4321 op2_ce = (zend_class_entry*)(p+1)->ce; in zend_jit_trace()
4322 p++; in zend_jit_trace()
4324 if ((p+1)->op == ZEND_JIT_TRACE_VAL_INFO) { in zend_jit_trace()
4325 val_type = (p+1)->op1_type; in zend_jit_trace()
4326 p++; in zend_jit_trace()
4415 && zend_jit_trace_next_is_send_result(opline, p, frame)) { in zend_jit_trace()
4487 && zend_jit_trace_next_is_send_result(opline, p, frame)) { in zend_jit_trace()
4537 if (zend_jit_trace_next_is_send_result(opline, p, frame)) { in zend_jit_trace()
4993 && zend_jit_trace_next_is_send_result(opline, p, frame)) { in zend_jit_trace()
5021 && zend_jit_trace_next_is_send_result(opline, p, frame)) { in zend_jit_trace()
5112 …opline - op_array->opcodes] : -1, op_array, ssa, ssa_op, frame->call_level, p + 1, peek_checked_st… in zend_jit_trace()
5247 …if (!zend_jit_do_fcall(&dasm_state, opline, op_array, op_array_ssa, frame->call_level, -1, p + 1))… in zend_jit_trace()
5267 … const zend_op *exit_opline = zend_jit_trace_get_exit_opline(p + 1, opline + 1, &exit_if_true); in zend_jit_trace()
5315 … const zend_op *exit_opline = zend_jit_trace_get_exit_opline(p + 1, opline + 1, &exit_if_true); in zend_jit_trace()
5355 … const zend_op *exit_opline = zend_jit_trace_get_exit_opline(p + 1, opline + 1, &exit_if_true); in zend_jit_trace()
5380 … const zend_op *exit_opline = zend_jit_trace_get_exit_opline(p + 1, opline + 1, &exit_if_true); in zend_jit_trace()
5413 …ace_handler(&dasm_state, op_array, opline, zend_may_throw(opline, ssa_op, op_array, ssa), p + 1)) { in zend_jit_trace()
5469 p + 1, &zend_jit_traces[ZEND_JIT_TRACE_NUM], in zend_jit_trace()
5493 if ((p+1)->op == ZEND_JIT_TRACE_VM || (p+1)->op == ZEND_JIT_TRACE_END) { in zend_jit_trace()
5497 if ((p+1)->opline == OP_JMP_ADDR(opline, opline->op2)) { in zend_jit_trace()
5509 } else if ((p+1)->opline == opline + 1) { in zend_jit_trace()
5580 … const zend_op *exit_opline = zend_jit_trace_get_exit_opline(p + 1, opline + 1, &exit_if_true); in zend_jit_trace()
5610 … const zend_op *exit_opline = zend_jit_trace_get_exit_opline(p + 1, opline + 1, &exit_if_true); in zend_jit_trace()
5765 … const zend_op *exit_opline = zend_jit_trace_get_exit_opline(p + 1, opline + 1, &exit_if_true); in zend_jit_trace()
6035 …if (!zend_jit_switch(&dasm_state, opline, op_array, op_array_ssa, p+1, &zend_jit_traces[ZEND_JIT_T… in zend_jit_trace()
6078 if ((p+1)->op == ZEND_JIT_TRACE_VM || (p+1)->op == ZEND_JIT_TRACE_END) { in zend_jit_trace()
6082 if ((p+1)->opline == exit_opline) { in zend_jit_trace()
6086 } else if ((p+1)->opline == opline + 1) { in zend_jit_trace()
6171 p + 1, peek_checked_stack - checked_stack, polymorphic_side_trace)) { in zend_jit_trace()
6182 …opline - op_array->opcodes] : -1, op_array, ssa, ssa_op, frame->call_level, p + 1, peek_checked_st… in zend_jit_trace()
6221 zend_may_throw_ex(opline, ssa_op, op_array, ssa, op1_info, op2_info), p + 1)) { in zend_jit_trace()
6224 if ((p+1)->op == ZEND_JIT_TRACE_INIT_CALL && (p+1)->func) { in zend_jit_trace()
6229 zend_jit_may_be_modified((p+1)->func, op_array)) { in zend_jit_trace()
6230 if (!zend_jit_init_fcall_guard(&dasm_state, 0, (p+1)->func, opline+1)) { in zend_jit_trace()
6305 if ((p+1)->op != ZEND_JIT_TRACE_VM) { in zend_jit_trace()
6307 } else if ((p+1)->opline != (opline + 1)) { in zend_jit_trace()
6547 p++; in zend_jit_trace()
6548 if ((p+1)->op == ZEND_JIT_TRACE_OP1_TYPE) { in zend_jit_trace()
6549 p++; in zend_jit_trace()
6554 } else if (p->op == ZEND_JIT_TRACE_ENTER) { in zend_jit_trace()
6556 assert(call && &call->func->op_array == p->op_array); in zend_jit_trace()
6575 && p->op_array->num_args in zend_jit_trace()
6576 && (p->op_array->fn_flags & ZEND_ACC_HAS_TYPE_HINTS) == 0 in zend_jit_trace()
6577 && ((p+1)->op == ZEND_JIT_TRACE_VM in zend_jit_trace()
6578 || (p+1)->op == ZEND_JIT_TRACE_END) in zend_jit_trace()
6580 || TRACE_FRAME_NUM_ARGS(call) < p->op_array->num_args) in zend_jit_trace()
6581 && !zend_jit_trace_opline_guard(&dasm_state, (p+1)->opline)) { in zend_jit_trace()
6588 if ((p+1)->op == ZEND_JIT_TRACE_END) { in zend_jit_trace()
6589 p++; in zend_jit_trace()
6599 op_array = (zend_op_array*)p->op_array; in zend_jit_trace()
6605 if (p->info & ZEND_JIT_TRACE_RETURN_VALUE_USED) { in zend_jit_trace()
6613 int j = ZEND_JIT_TRACE_GET_FIRST_SSA_VAR(p->info); in zend_jit_trace()
6624 } else if (p->op == ZEND_JIT_TRACE_BACK) { in zend_jit_trace()
6625 op_array = (zend_op_array*)p->op_array; in zend_jit_trace()
6642 uint32_t j = ZEND_JIT_TRACE_GET_FIRST_SSA_VAR(p->info); in zend_jit_trace()
6654 j = ZEND_JIT_TRACE_GET_FIRST_SSA_VAR(p->info); in zend_jit_trace()
6673 && (p+1)->op == ZEND_JIT_TRACE_VM) { in zend_jit_trace()
6674 const zend_op *opline = (p+1)->opline - 1; in zend_jit_trace()
6680 } else if (p->op == ZEND_JIT_TRACE_END) { in zend_jit_trace()
6682 } else if (p->op == ZEND_JIT_TRACE_INIT_CALL) { in zend_jit_trace()
6683 const zend_op *init_opline = zend_jit_trace_find_init_fcall_op(p, op_array); in zend_jit_trace()
6692 TRACE_FRAME_INIT(call, p->func, frame_flags, num_args); in zend_jit_trace()
6694 if (!(p->info & ZEND_JIT_TRACE_FAKE_INIT_CALL)) { in zend_jit_trace()
6704 || (!(p->info & ZEND_JIT_TRACE_FAKE_INIT_CALL) in zend_jit_trace()
6709 || (p->func && (!p->func->common.scope || (p->func->common.fn_flags & ZEND_ACC_STATIC)))) in zend_jit_trace()
6711 || (p->func && (!p->func->common.scope || (p->func->common.fn_flags & ZEND_ACC_STATIC)))) in zend_jit_trace()
6717 && !(p->info & ZEND_JIT_TRACE_FAKE_INIT_CALL) in zend_jit_trace()
6718 && p->func && p->func->common.scope && !(p->func->common.fn_flags & ZEND_ACC_STATIC))) { in zend_jit_trace()
6723 top = zend_jit_trace_call_frame(top, p->op_array); in zend_jit_trace()
6724 if (p->func) { in zend_jit_trace()
6725 if (p->func->type == ZEND_USER_FUNCTION) { in zend_jit_trace()
6728 (zend_jit_op_array_trace_extension*)ZEND_FUNC_INFO(p->op_array); in zend_jit_trace()
6731 while (i < p->op_array->num_args) { in zend_jit_trace()
6736 while (i < p->op_array->last_var) { in zend_jit_trace()
6738 && zend_jit_var_may_alias(p->op_array, &jit_extension->func_info.ssa, i) != NO_ALIAS) { in zend_jit_trace()
6745 while (i < p->op_array->last_var + p->op_array->T) { in zend_jit_trace()
6750 for (i = 0; i < p->op_array->last_var + p->op_array->T; i++) { in zend_jit_trace()
6755 ZEND_ASSERT(p->func->type == ZEND_INTERNAL_FUNCTION); in zend_jit_trace()
6756 for (i = 0; i < p->op_array->num_args; i++) { in zend_jit_trace()
6760 if (p->info & ZEND_JIT_TRACE_FAKE_INIT_CALL) { in zend_jit_trace()
6784 && !zend_jit_may_be_modified(p->func, op_array)) { in zend_jit_trace()
6791 zend_jit_trace_rec *q = p + 1; in zend_jit_trace()
6799 ZEND_JIT_TRACE_FAKE_LEVEL(p->info), p->func, opline)) { in zend_jit_trace()
6807 if (p->info & ZEND_JIT_TRACE_FAKE_INIT_CALL) { in zend_jit_trace()
6811 if (p->func) { in zend_jit_trace()
6812 … call->used_stack = zend_vm_calc_used_stack(init_opline->extended_value, (zend_function*)p->func); in zend_jit_trace()
6834 } else if (p->op == ZEND_JIT_TRACE_DO_ICALL) { in zend_jit_trace()
6847 ZEND_ASSERT(p->op == ZEND_JIT_TRACE_END); in zend_jit_trace()
6855 if (p->stop == ZEND_JIT_TRACE_STOP_LOOP in zend_jit_trace()
6856 || p->stop == ZEND_JIT_TRACE_STOP_RECURSIVE_CALL in zend_jit_trace()
6857 || p->stop == ZEND_JIT_TRACE_STOP_RECURSIVE_RET) { in zend_jit_trace()
6874 if (p->stop != ZEND_JIT_TRACE_STOP_RECURSIVE_RET) { in zend_jit_trace()
6876 && !zend_jit_set_ip(&dasm_state, p->opline)) { in zend_jit_trace()
6881 if (p->stop != ZEND_JIT_TRACE_STOP_RECURSIVE_RET) { in zend_jit_trace()
6907 } else if (p->stop == ZEND_JIT_TRACE_STOP_LINK in zend_jit_trace()
6908 || p->stop == ZEND_JIT_TRACE_STOP_INTERPRETER) { in zend_jit_trace()
6910 && (p-1)->op != ZEND_JIT_TRACE_ENTER in zend_jit_trace()
6911 && (p-1)->op != ZEND_JIT_TRACE_BACK in zend_jit_trace()
6934 if (p->stop == ZEND_JIT_TRACE_STOP_LINK) { in zend_jit_trace()
6937 t->link = zend_jit_find_trace(p->opline->handler); in zend_jit_trace()
6948 && !zend_jit_set_ip(&dasm_state, p->opline)) { in zend_jit_trace()
6976 } else if (p->stop == ZEND_JIT_TRACE_STOP_RETURN) { in zend_jit_trace()
6980 ZEND_ASSERT(0 && p->stop); in zend_jit_trace()
6996 if (p->stop == ZEND_JIT_TRACE_STOP_RECURSIVE_CALL) { in zend_jit_trace()
7002 p = trace_buffer + ZEND_JIT_TRACE_START_REC_SIZE; in zend_jit_trace()
7003 for (;;p++) { in zend_jit_trace()
7004 if (p->op == ZEND_JIT_TRACE_VM) { in zend_jit_trace()
7005 opline = p->opline; in zend_jit_trace()
7006 } else if (p->op == ZEND_JIT_TRACE_ENTER) { in zend_jit_trace()
7007 if (p->op_array == rec_op_array) { in zend_jit_trace()
7010 op_array = p->op_array; in zend_jit_trace()
7013 } else if (p->op == ZEND_JIT_TRACE_BACK) { in zend_jit_trace()
7014 op_array = p->op_array; in zend_jit_trace()
7017 } else if (p->op == ZEND_JIT_TRACE_END) { in zend_jit_trace()
7021 } else if (p->stop == ZEND_JIT_TRACE_STOP_LINK in zend_jit_trace()
7022 || p->stop == ZEND_JIT_TRACE_STOP_INTERPRETER) { in zend_jit_trace()
7389 zend_jit_trace_rec *p = trace_buffer; in zend_jit_dump_trace() local
7395 ZEND_ASSERT(p->op == ZEND_JIT_TRACE_START); in zend_jit_dump_trace()
7396 op_array = p->op_array; in zend_jit_dump_trace()
7397 p += ZEND_JIT_TRACE_START_REC_SIZE; in zend_jit_dump_trace()
7417 zend_ssa_phi *p = tssa->blocks[1].phis; in zend_jit_dump_trace() local
7421 while (p) { in zend_jit_dump_trace()
7423 zend_dump_ssa_var(op_array, tssa, p->ssa_var, 0, p->var, ZEND_DUMP_RC_INFERENCE); in zend_jit_dump_trace()
7425 zend_dump_ssa_var(op_array, tssa, p->sources[0], 0, p->var, ZEND_DUMP_RC_INFERENCE); in zend_jit_dump_trace()
7427 zend_dump_ssa_var(op_array, tssa, p->sources[1], 0, p->var, ZEND_DUMP_RC_INFERENCE); in zend_jit_dump_trace()
7429 p = p->next; in zend_jit_dump_trace()
7435 if (p->op == ZEND_JIT_TRACE_VM) { in zend_jit_dump_trace()
7438 opline = p->opline; in zend_jit_dump_trace()
7444 op1_type = p->op1_type; in zend_jit_dump_trace()
7445 op2_type = p->op2_type; in zend_jit_dump_trace()
7446 op3_type = p->op3_type; in zend_jit_dump_trace()
7453 if ((p+1)->op == ZEND_JIT_TRACE_OP1_TYPE) { in zend_jit_dump_trace()
7454 p++; in zend_jit_dump_trace()
7456 ZSTR_VAL(p->ce->name)); in zend_jit_dump_trace()
7466 if ((p+1)->op == ZEND_JIT_TRACE_OP2_TYPE) { in zend_jit_dump_trace()
7467 p++; in zend_jit_dump_trace()
7469 ZSTR_VAL(p->ce->name)); in zend_jit_dump_trace()
7483 if ((p+1)->op == ZEND_JIT_TRACE_VAL_INFO) { in zend_jit_dump_trace()
7490 p++; in zend_jit_dump_trace()
7491 val_type = p->op1_type; in zend_jit_dump_trace()
7516 } else if (p->op == ZEND_JIT_TRACE_ENTER) { in zend_jit_dump_trace()
7517 op_array = p->op_array; in zend_jit_dump_trace()
7528 v = ZEND_JIT_TRACE_GET_FIRST_SSA_VAR(p->info); in zend_jit_dump_trace()
7538 } else if (p->op == ZEND_JIT_TRACE_BACK) { in zend_jit_dump_trace()
7539 op_array = p->op_array; in zend_jit_dump_trace()
7550 v = ZEND_JIT_TRACE_GET_FIRST_SSA_VAR(p->info); in zend_jit_dump_trace()
7563 } else if (p->op == ZEND_JIT_TRACE_INIT_CALL) { in zend_jit_dump_trace()
7564 if (p->func != (zend_function*)&zend_pass_function) { in zend_jit_dump_trace()
7565 …fprintf(stderr, (p->info & ZEND_JIT_TRACE_FAKE_INIT_CALL) ? " %*c>fake_init %s%s%s\n" : " %*… in zend_jit_dump_trace()
7567 (p->func && p->func->common.scope) ? ZSTR_VAL(p->func->common.scope->name) : "", in zend_jit_dump_trace()
7568 (p->func && p->func->common.scope) ? "::" : "", in zend_jit_dump_trace()
7569 p->func ? ZSTR_VAL(p->func->common.function_name) : "???"); in zend_jit_dump_trace()
7574 } else if (p->op == ZEND_JIT_TRACE_DO_ICALL) { in zend_jit_dump_trace()
7575 if (p->func != (zend_function*)&zend_pass_function) { in zend_jit_dump_trace()
7578 p->func->common.scope ? ZSTR_VAL(p->func->common.scope->name) : "", in zend_jit_dump_trace()
7579 p->func->common.scope ? "::" : "", in zend_jit_dump_trace()
7580 ZSTR_VAL(p->func->common.function_name)); in zend_jit_dump_trace()
7585 } else if (p->op == ZEND_JIT_TRACE_END) { in zend_jit_dump_trace()
7588 p++; in zend_jit_dump_trace()