Lines Matching refs:opline
214 void zend_optimizer_convert_to_free_op1(zend_op_array *op_array, zend_op *opline) in zend_optimizer_convert_to_free_op1() argument
216 if (opline->op1_type == IS_CV) { in zend_optimizer_convert_to_free_op1()
217 opline->opcode = ZEND_CHECK_VAR; in zend_optimizer_convert_to_free_op1()
218 SET_UNUSED(opline->op2); in zend_optimizer_convert_to_free_op1()
219 SET_UNUSED(opline->result); in zend_optimizer_convert_to_free_op1()
220 opline->extended_value = 0; in zend_optimizer_convert_to_free_op1()
221 } else if (opline->op1_type & (IS_TMP_VAR|IS_VAR)) { in zend_optimizer_convert_to_free_op1()
222 opline->opcode = ZEND_FREE; in zend_optimizer_convert_to_free_op1()
223 SET_UNUSED(opline->op2); in zend_optimizer_convert_to_free_op1()
224 SET_UNUSED(opline->result); in zend_optimizer_convert_to_free_op1()
225 opline->extended_value = 0; in zend_optimizer_convert_to_free_op1()
227 ZEND_ASSERT(opline->op1_type == IS_CONST); in zend_optimizer_convert_to_free_op1()
228 literal_dtor(&ZEND_OP1_LITERAL(opline)); in zend_optimizer_convert_to_free_op1()
229 MAKE_NOP(opline); in zend_optimizer_convert_to_free_op1()
278 zend_op *opline, in zend_optimizer_update_op1_const() argument
281 switch (opline->opcode) { in zend_optimizer_update_op1_const()
283 switch ((opline-1)->opcode) { in zend_optimizer_update_op1_const()
288 opline->op1.constant = zend_optimizer_add_literal(op_array, val); in zend_optimizer_update_op1_const()
292 MAKE_NOP(opline); in zend_optimizer_update_op1_const()
313 opline->op1.constant = zend_optimizer_add_literal(op_array, val); in zend_optimizer_update_op1_const()
314 …opline->extended_value = alloc_cache_slots(op_array, 1) | (opline->extended_value & ZEND_LAST_CATC… in zend_optimizer_update_op1_const()
320 opline->op1.constant = zend_optimizer_add_literal(op_array, val); in zend_optimizer_update_op1_const()
321 opline->extended_value = alloc_cache_slots(op_array, 1); in zend_optimizer_update_op1_const()
327 opline->op1.constant = zend_optimizer_add_literal(op_array, val); in zend_optimizer_update_op1_const()
328 opline->op2.num = alloc_cache_slots(op_array, 1); in zend_optimizer_update_op1_const()
334 opline->op1.constant = zend_optimizer_add_literal(op_array, val); in zend_optimizer_update_op1_const()
335 if (opline->op2_type != IS_CONST) { in zend_optimizer_update_op1_const()
336 opline->result.num = alloc_cache_slots(op_array, 1); in zend_optimizer_update_op1_const()
343 opline->op1.constant = zend_optimizer_add_literal(op_array, val); in zend_optimizer_update_op1_const()
344 if (opline->op2_type != IS_CONST) { in zend_optimizer_update_op1_const()
345 opline->extended_value = alloc_cache_slots(op_array, 1); in zend_optimizer_update_op1_const()
369 opline->op1.constant = zend_optimizer_add_literal(op_array, val); in zend_optimizer_update_op1_const()
370 …if (opline->op2_type == IS_CONST && (opline->extended_value & ~ZEND_FETCH_OBJ_FLAGS) + sizeof(void… in zend_optimizer_update_op1_const()
373 …opline->extended_value = alloc_cache_slots(op_array, 3) | (opline->extended_value & ZEND_FETCH_OBJ… in zend_optimizer_update_op1_const()
377 opline->opcode = ZEND_SEND_VAL; in zend_optimizer_update_op1_const()
378 opline->op1.constant = zend_optimizer_add_literal(op_array, val); in zend_optimizer_update_op1_const()
381 opline->opcode = ZEND_IS_EQUAL; in zend_optimizer_update_op1_const()
382 opline->op1.constant = zend_optimizer_add_literal(op_array, val); in zend_optimizer_update_op1_const()
385 opline->opcode = ZEND_IS_IDENTICAL; in zend_optimizer_update_op1_const()
386 opline->op1.constant = zend_optimizer_add_literal(op_array, val); in zend_optimizer_update_op1_const()
402 opline->op1.constant = zend_optimizer_add_literal(op_array, val); in zend_optimizer_update_op1_const()
404 MAKE_NOP(opline); in zend_optimizer_update_op1_const()
422 if (opline->opcode == ZEND_CONCAT && opline->op2_type == IS_CONST) { in zend_optimizer_update_op1_const()
423 opline->opcode = ZEND_FAST_CONCAT; in zend_optimizer_update_op1_const()
427 opline->op1.constant = zend_optimizer_add_literal(op_array, val); in zend_optimizer_update_op1_const()
431 opline->op1_type = IS_CONST; in zend_optimizer_update_op1_const()
432 if (Z_TYPE(ZEND_OP1_LITERAL(opline)) == IS_STRING) { in zend_optimizer_update_op1_const()
433 zend_string_hash_val(Z_STR(ZEND_OP1_LITERAL(opline))); in zend_optimizer_update_op1_const()
439 zend_op *opline, in zend_optimizer_update_op2_const() argument
444 switch (opline->opcode) { in zend_optimizer_update_op2_const()
452 opline->op2.constant = zend_optimizer_add_literal(op_array, val); in zend_optimizer_update_op2_const()
454 opline->extended_value = alloc_cache_slots(op_array, 1); in zend_optimizer_update_op2_const()
459 opline->op2.constant = zend_optimizer_add_literal(op_array, val); in zend_optimizer_update_op2_const()
461 opline->result.num = alloc_cache_slots(op_array, 1); in zend_optimizer_update_op2_const()
480 opline->op2.constant = zend_optimizer_add_literal(op_array, val); in zend_optimizer_update_op2_const()
482 if (opline->op1_type != IS_CONST) { in zend_optimizer_update_op2_const()
483 …opline->extended_value = alloc_cache_slots(op_array, 1) | (opline->extended_value & (ZEND_RETURNS_… in zend_optimizer_update_op2_const()
495 opline->op2.constant = zend_optimizer_add_literal(op_array, val); in zend_optimizer_update_op2_const()
496 opline->result.num = alloc_cache_slots(op_array, 1); in zend_optimizer_update_op2_const()
504 if (zend_optimizer_classify_function(Z_STR_P(val), opline->extended_value)) { in zend_optimizer_update_op2_const()
510 opline->opcode = ZEND_INIT_FCALL_BY_NAME; in zend_optimizer_update_op2_const()
512 opline->op2.constant = zend_optimizer_add_literal(op_array, val); in zend_optimizer_update_op2_const()
514 opline->result.num = alloc_cache_slots(op_array, 1); in zend_optimizer_update_op2_const()
516 opline->op2.constant = zend_optimizer_add_literal(op_array, val); in zend_optimizer_update_op2_const()
521 opline->op2.constant = zend_optimizer_add_literal(op_array, val); in zend_optimizer_update_op2_const()
523 opline->result.num = alloc_cache_slots(op_array, 2); in zend_optimizer_update_op2_const()
527 opline->op2.constant = zend_optimizer_add_literal(op_array, val); in zend_optimizer_update_op2_const()
529 if (opline->op1_type != IS_CONST) { in zend_optimizer_update_op2_const()
530 opline->result.num = alloc_cache_slots(op_array, 2); in zend_optimizer_update_op2_const()
547 opline->op2.constant = zend_optimizer_add_literal(op_array, val); in zend_optimizer_update_op2_const()
548 opline->extended_value = alloc_cache_slots(op_array, 3); in zend_optimizer_update_op2_const()
552 opline->op2.constant = zend_optimizer_add_literal(op_array, val); in zend_optimizer_update_op2_const()
553 ZEND_ASSERT((opline + 1)->opcode == ZEND_OP_DATA); in zend_optimizer_update_op2_const()
554 (opline + 1)->extended_value = alloc_cache_slots(op_array, 3); in zend_optimizer_update_op2_const()
558 opline->op2.constant = zend_optimizer_add_literal(op_array, val); in zend_optimizer_update_op2_const()
559 … opline->extended_value = alloc_cache_slots(op_array, 3) | (opline->extended_value & ZEND_ISEMPTY); in zend_optimizer_update_op2_const()
578 opline->op2.constant = zend_optimizer_add_literal(op_array, &tmp); in zend_optimizer_update_op2_const()
581 Z_EXTRA(op_array->literals[opline->op2.constant]) = ZEND_EXTRA_VALUE; in zend_optimizer_update_op2_const()
585 opline->op2.constant = zend_optimizer_add_literal(op_array, val); in zend_optimizer_update_op2_const()
596 opline->op2.constant = zend_optimizer_add_literal(op_array, val); in zend_optimizer_update_op2_const()
604 if (opline->opcode == ZEND_CONCAT && opline->op1_type == IS_CONST) { in zend_optimizer_update_op2_const()
605 opline->opcode = ZEND_FAST_CONCAT; in zend_optimizer_update_op2_const()
609 opline->op2.constant = zend_optimizer_add_literal(op_array, val); in zend_optimizer_update_op2_const()
613 opline->op2_type = IS_CONST; in zend_optimizer_update_op2_const()
614 if (Z_TYPE(ZEND_OP2_LITERAL(opline)) == IS_STRING) { in zend_optimizer_update_op2_const()
615 zend_string_hash_val(Z_STR(ZEND_OP2_LITERAL(opline))); in zend_optimizer_update_op2_const()
621 zend_op *opline, in zend_optimizer_replace_by_const() argument
628 while (opline < end) { in zend_optimizer_replace_by_const()
629 if (opline->op1_type == type && in zend_optimizer_replace_by_const()
630 opline->op1.var == var) { in zend_optimizer_replace_by_const()
631 switch (opline->opcode) { in zend_optimizer_replace_by_const()
645 while (opline < end) { in zend_optimizer_replace_by_const()
646 if (opline->op1_type == type && opline->op1.var == var) { in zend_optimizer_replace_by_const()
649 bool is_last = opline->opcode != ZEND_FETCH_LIST_R in zend_optimizer_replace_by_const()
650 && opline->opcode != ZEND_CASE in zend_optimizer_replace_by_const()
651 && opline->opcode != ZEND_CASE_STRICT in zend_optimizer_replace_by_const()
652 && opline->opcode != ZEND_SWITCH_LONG in zend_optimizer_replace_by_const()
653 && opline->opcode != ZEND_SWITCH_STRING in zend_optimizer_replace_by_const()
654 && opline->opcode != ZEND_MATCH in zend_optimizer_replace_by_const()
655 && opline->opcode != ZEND_JMP_NULL in zend_optimizer_replace_by_const()
656 && (opline->opcode != ZEND_FREE in zend_optimizer_replace_by_const()
657 || opline->extended_value != ZEND_FREE_ON_RETURN); in zend_optimizer_replace_by_const()
660 if (!zend_optimizer_update_op1_const(op_array, opline, val)) { in zend_optimizer_replace_by_const()
668 opline++; in zend_optimizer_replace_by_const()
679 MAKE_NOP(opline); in zend_optimizer_replace_by_const()
683 ++opline; in zend_optimizer_replace_by_const()
684 } while (opline->opcode != ZEND_RETURN && opline->opcode != ZEND_RETURN_BY_REF); in zend_optimizer_replace_by_const()
685 ZEND_ASSERT(opline->op1.var == var); in zend_optimizer_replace_by_const()
692 return zend_optimizer_update_op1_const(op_array, opline, val); in zend_optimizer_replace_by_const()
695 if (opline->op2_type == type && in zend_optimizer_replace_by_const()
696 opline->op2.var == var) { in zend_optimizer_replace_by_const()
697 return zend_optimizer_update_op2_const(op_array, opline, val); in zend_optimizer_replace_by_const()
699 opline++; in zend_optimizer_replace_by_const()
706 void zend_optimizer_migrate_jump(zend_op_array *op_array, zend_op *new_opline, zend_op *opline) { in zend_optimizer_migrate_jump() argument
710 ZEND_SET_OP_JMP_ADDR(new_opline, new_opline->op1, ZEND_OP1_JMP_ADDR(opline)); in zend_optimizer_migrate_jump()
724 ZEND_SET_OP_JMP_ADDR(new_opline, new_opline->op2, ZEND_OP2_JMP_ADDR(opline)); in zend_optimizer_migrate_jump()
728 …_TO_OFFSET(op_array, new_opline, ZEND_OFFSET_TO_OPLINE_NUM(op_array, opline, opline->extended_valu… in zend_optimizer_migrate_jump()
731 if (!(opline->extended_value & ZEND_LAST_CATCH)) { in zend_optimizer_migrate_jump()
732 ZEND_SET_OP_JMP_ADDR(new_opline, new_opline->op2, ZEND_OP2_JMP_ADDR(opline)); in zend_optimizer_migrate_jump()
739 HashTable *jumptable = Z_ARRVAL(ZEND_OP2_LITERAL(opline)); in zend_optimizer_migrate_jump()
742 …INE_NUM_TO_OFFSET(op_array, new_opline, ZEND_OFFSET_TO_OPLINE_NUM(op_array, opline, Z_LVAL_P(zv))); in zend_optimizer_migrate_jump()
744 …_TO_OFFSET(op_array, new_opline, ZEND_OFFSET_TO_OPLINE_NUM(op_array, opline, opline->extended_valu… in zend_optimizer_migrate_jump()
751 void zend_optimizer_shift_jump(zend_op_array *op_array, zend_op *opline, uint32_t *shiftlist) { in zend_optimizer_shift_jump() argument
752 switch (opline->opcode) { in zend_optimizer_shift_jump()
755 …ZEND_SET_OP_JMP_ADDR(opline, opline->op1, ZEND_OP1_JMP_ADDR(opline) - shiftlist[ZEND_OP1_JMP_ADDR(… in zend_optimizer_shift_jump()
769 …ZEND_SET_OP_JMP_ADDR(opline, opline->op2, ZEND_OP2_JMP_ADDR(opline) - shiftlist[ZEND_OP2_JMP_ADDR(… in zend_optimizer_shift_jump()
772 if (!(opline->extended_value & ZEND_LAST_CATCH)) { in zend_optimizer_shift_jump()
773 …ZEND_SET_OP_JMP_ADDR(opline, opline->op2, ZEND_OP2_JMP_ADDR(opline) - shiftlist[ZEND_OP2_JMP_ADDR(… in zend_optimizer_shift_jump()
778 …opline->extended_value = ZEND_OPLINE_NUM_TO_OFFSET(op_array, opline, ZEND_OFFSET_TO_OPLINE_NUM(op_… in zend_optimizer_shift_jump()
784 HashTable *jumptable = Z_ARRVAL(ZEND_OP2_LITERAL(opline)); in zend_optimizer_shift_jump()
787 …FFSET(op_array, opline, ZEND_OFFSET_TO_OPLINE_NUM(op_array, opline, Z_LVAL_P(zv)) - shiftlist[ZEND… in zend_optimizer_shift_jump()
789 …opline->extended_value = ZEND_OPLINE_NUM_TO_OFFSET(op_array, opline, ZEND_OFFSET_TO_OPLINE_NUM(op_… in zend_optimizer_shift_jump()
851 const zend_script *script, const zend_op_array *op_array, const zend_op *opline) { in zend_optimizer_get_class_entry_from_op1() argument
852 if (opline->op1_type == IS_CONST) { in zend_optimizer_get_class_entry_from_op1()
853 zval *op1 = CRT_CONSTANT(opline->op1); in zend_optimizer_get_class_entry_from_op1()
857 } else if (opline->op1_type == IS_UNUSED && op_array->scope in zend_optimizer_get_class_entry_from_op1()
859 && ((opline->op1.num & ZEND_FETCH_CLASS_MASK) == ZEND_FETCH_CLASS_SELF in zend_optimizer_get_class_entry_from_op1()
860 || ((opline->op1.num & ZEND_FETCH_CLASS_MASK) == ZEND_FETCH_CLASS_STATIC in zend_optimizer_get_class_entry_from_op1()
868 …const zend_script *script, const zend_op_array *op_array, const zend_op *opline, bool *is_prototyp… in zend_fetch_class_const_info() argument
872 …if (!opline || !op_array || opline->op2_type != IS_CONST || Z_TYPE_P(CRT_CONSTANT(opline->op2)) !=… in zend_fetch_class_const_info()
875 if (opline->op1_type == IS_CONST) { in zend_fetch_class_const_info()
876 zval *op1 = CRT_CONSTANT(opline->op1); in zend_fetch_class_const_info()
887 } else if (opline->op1_type == IS_UNUSED in zend_fetch_class_const_info()
890 int fetch_type = opline->op1.num & ZEND_FETCH_CLASS_MASK; in zend_fetch_class_const_info()
905 …onstant *const_info = zend_hash_find_ptr(&ce->constants_table, Z_STR_P(CRT_CONSTANT(opline->op2))); in zend_fetch_class_const_info()
920 zend_script *script, zend_op_array *op_array, zend_op *opline, bool *is_prototype) in zend_optimizer_get_called_func() argument
923 switch (opline->opcode) { in zend_optimizer_get_called_func()
926 zend_string *function_name = Z_STR_P(CRT_CONSTANT(opline->op2)); in zend_optimizer_get_called_func()
940 if (opline->op2_type == IS_CONST && Z_TYPE_P(CRT_CONSTANT(opline->op2)) == IS_STRING) { in zend_optimizer_get_called_func()
941 zval *function_name = CRT_CONSTANT(opline->op2) + 1; in zend_optimizer_get_called_func()
954 if (opline->op2_type == IS_CONST && Z_TYPE_P(CRT_CONSTANT(opline->op2)) == IS_STRING) { in zend_optimizer_get_called_func()
956 script, op_array, opline); in zend_optimizer_get_called_func()
958 zend_string *func_name = Z_STR_P(CRT_CONSTANT(opline->op2) + 1); in zend_optimizer_get_called_func()
971 if (opline->op1_type == IS_UNUSED in zend_optimizer_get_called_func()
972 && opline->op2_type == IS_CONST && Z_TYPE_P(CRT_CONSTANT(opline->op2)) == IS_STRING in zend_optimizer_get_called_func()
976 zend_string *method_name = Z_STR_P(CRT_CONSTANT(opline->op2) + 1); in zend_optimizer_get_called_func()
1003 zend_string *prop_name = Z_STR_P(CRT_CONSTANT(opline->op1)); in zend_optimizer_get_called_func()
1004 zend_property_hook_kind hook_kind = opline->op2.num; in zend_optimizer_get_called_func()
1023 script, op_array, opline); in zend_optimizer_get_called_func()
1185 zend_op *opline, *end; in zend_revert_pass_two() local
1189 opline = op_array->opcodes; in zend_revert_pass_two()
1190 end = opline + op_array->last; in zend_revert_pass_two()
1191 while (opline < end) { in zend_revert_pass_two()
1192 if (opline->op1_type == IS_CONST) { in zend_revert_pass_two()
1193 ZEND_PASS_TWO_UNDO_CONSTANT(op_array, opline, opline->op1); in zend_revert_pass_two()
1195 if (opline->op2_type == IS_CONST) { in zend_revert_pass_two()
1196 ZEND_PASS_TWO_UNDO_CONSTANT(op_array, opline, opline->op2); in zend_revert_pass_two()
1199 opline->result_type &= (IS_TMP_VAR|IS_VAR|IS_CV|IS_CONST); in zend_revert_pass_two()
1200 opline++; in zend_revert_pass_two()
1215 zend_op *opline, *end; in zend_redo_pass_two() local
1239 opline = op_array->opcodes; in zend_redo_pass_two()
1240 end = opline + op_array->last; in zend_redo_pass_two()
1241 while (opline < end) { in zend_redo_pass_two()
1242 if (opline->op1_type == IS_CONST) { in zend_redo_pass_two()
1243 ZEND_PASS_TWO_UPDATE_CONSTANT(op_array, opline, opline->op1); in zend_redo_pass_two()
1245 if (opline->op2_type == IS_CONST) { in zend_redo_pass_two()
1246 ZEND_PASS_TWO_UPDATE_CONSTANT(op_array, opline, opline->op2); in zend_redo_pass_two()
1249 switch (opline->opcode) { in zend_redo_pass_two()
1253 opline->op1.jmp_addr = &op_array->opcodes[opline->op1.jmp_addr - old_opcodes]; in zend_redo_pass_two()
1267 opline->op2.jmp_addr = &op_array->opcodes[opline->op2.jmp_addr - old_opcodes]; in zend_redo_pass_two()
1270 if (!(opline->extended_value & ZEND_LAST_CATCH)) { in zend_redo_pass_two()
1271 opline->op2.jmp_addr = &op_array->opcodes[opline->op2.jmp_addr - old_opcodes]; in zend_redo_pass_two()
1300 if (opline->result_type & IS_TMP_VAR) { in zend_redo_pass_two()
1302 if (opline + 1 < end) { in zend_redo_pass_two()
1303 if ((opline+1)->opcode == ZEND_JMPZ in zend_redo_pass_two()
1304 && (opline+1)->op1_type == IS_TMP_VAR in zend_redo_pass_two()
1305 && (opline+1)->op1.var == opline->result.var) { in zend_redo_pass_two()
1306 opline->result_type = IS_SMART_BRANCH_JMPZ | IS_TMP_VAR; in zend_redo_pass_two()
1307 } else if ((opline+1)->opcode == ZEND_JMPNZ in zend_redo_pass_two()
1308 && (opline+1)->op1_type == IS_TMP_VAR in zend_redo_pass_two()
1309 && (opline+1)->op1.var == opline->result.var) { in zend_redo_pass_two()
1310 opline->result_type = IS_SMART_BRANCH_JMPNZ | IS_TMP_VAR; in zend_redo_pass_two()
1316 ZEND_VM_SET_OPCODE_HANDLER(opline); in zend_redo_pass_two()
1317 opline++; in zend_redo_pass_two()
1325 zend_op *opline, *end; in zend_redo_pass_two_ex() local
1349 opline = op_array->opcodes; in zend_redo_pass_two_ex()
1350 end = opline + op_array->last; in zend_redo_pass_two_ex()
1351 while (opline < end) { in zend_redo_pass_two_ex()
1352 zend_ssa_op *ssa_op = &ssa->ops[opline - op_array->opcodes]; in zend_redo_pass_two_ex()
1353 …uint32_t op1_info = opline->op1_type == IS_UNUSED ? 0 : (OP1_INFO() & (MAY_BE_UNDEF|MAY_BE_ANY|MAY… in zend_redo_pass_two_ex()
1354 …uint32_t op2_info = opline->op1_type == IS_UNUSED ? 0 : (OP2_INFO() & (MAY_BE_UNDEF|MAY_BE_ANY|MAY… in zend_redo_pass_two_ex()
1356 (opline->opcode == ZEND_PRE_INC || in zend_redo_pass_two_ex()
1357 opline->opcode == ZEND_PRE_DEC || in zend_redo_pass_two_ex()
1358 opline->opcode == ZEND_POST_INC || in zend_redo_pass_two_ex()
1359 opline->opcode == ZEND_POST_DEC) ? in zend_redo_pass_two_ex()
1360 …((ssa->ops[opline - op_array->opcodes].op1_def >= 0) ? (OP1_DEF_INFO() & (MAY_BE_UNDEF|MAY_BE_ANY|… in zend_redo_pass_two_ex()
1361 …(opline->result_type == IS_UNUSED ? 0 : (RES_INFO() & (MAY_BE_UNDEF|MAY_BE_ANY|MAY_BE_REF|MAY_BE_A… in zend_redo_pass_two_ex()
1363 if (opline->op1_type == IS_CONST) { in zend_redo_pass_two_ex()
1364 ZEND_PASS_TWO_UPDATE_CONSTANT(op_array, opline, opline->op1); in zend_redo_pass_two_ex()
1366 if (opline->op2_type == IS_CONST) { in zend_redo_pass_two_ex()
1367 ZEND_PASS_TWO_UPDATE_CONSTANT(op_array, opline, opline->op2); in zend_redo_pass_two_ex()
1371 switch (opline->opcode) { in zend_redo_pass_two_ex()
1375 opline->op1.jmp_addr = &op_array->opcodes[opline->op1.jmp_addr - old_opcodes]; in zend_redo_pass_two_ex()
1389 opline->op2.jmp_addr = &op_array->opcodes[opline->op2.jmp_addr - old_opcodes]; in zend_redo_pass_two_ex()
1392 if (!(opline->extended_value & ZEND_LAST_CATCH)) { in zend_redo_pass_two_ex()
1393 opline->op2.jmp_addr = &op_array->opcodes[opline->op2.jmp_addr - old_opcodes]; in zend_redo_pass_two_ex()
1422 if (opline->result_type & IS_TMP_VAR) { in zend_redo_pass_two_ex()
1424 if (opline + 1 < end) { in zend_redo_pass_two_ex()
1425 if ((opline+1)->opcode == ZEND_JMPZ in zend_redo_pass_two_ex()
1426 && (opline+1)->op1_type == IS_TMP_VAR in zend_redo_pass_two_ex()
1427 && (opline+1)->op1.var == opline->result.var) { in zend_redo_pass_two_ex()
1428 opline->result_type = IS_SMART_BRANCH_JMPZ | IS_TMP_VAR; in zend_redo_pass_two_ex()
1429 } else if ((opline+1)->opcode == ZEND_JMPNZ in zend_redo_pass_two_ex()
1430 && (opline+1)->op1_type == IS_TMP_VAR in zend_redo_pass_two_ex()
1431 && (opline+1)->op1.var == opline->result.var) { in zend_redo_pass_two_ex()
1432 opline->result_type = IS_SMART_BRANCH_JMPNZ | IS_TMP_VAR; in zend_redo_pass_two_ex()
1440 opline->op1_use_type = ssa->var_info[ssa_op->op1_use].type; in zend_redo_pass_two_ex()
1443 opline->op2_use_type = ssa->var_info[ssa_op->op2_use].type; in zend_redo_pass_two_ex()
1446 opline->result_use_type = ssa->var_info[ssa_op->result_use].type; in zend_redo_pass_two_ex()
1449 opline->op1_def_type = ssa->var_info[ssa_op->op1_def].type; in zend_redo_pass_two_ex()
1452 opline->op2_def_type = ssa->var_info[ssa_op->op2_def].type; in zend_redo_pass_two_ex()
1455 opline->result_def_type = ssa->var_info[ssa_op->result_def].type; in zend_redo_pass_two_ex()
1458 zend_vm_set_opcode_handler_ex(opline, op1_info, op2_info, res_info); in zend_redo_pass_two_ex()
1459 opline++; in zend_redo_pass_two_ex()
1485 zend_op *opline, *end; in zend_adjust_fcall_stack_size() local
1487 opline = op_array->opcodes; in zend_adjust_fcall_stack_size()
1488 end = opline + op_array->last; in zend_adjust_fcall_stack_size()
1489 while (opline < end) { in zend_adjust_fcall_stack_size()
1490 if (opline->opcode == ZEND_INIT_FCALL) { in zend_adjust_fcall_stack_size()
1493 Z_STR_P(RT_CONSTANT(opline, opline->op2))); in zend_adjust_fcall_stack_size()
1495 opline->op1.num = zend_vm_calc_used_stack(opline->extended_value, func); in zend_adjust_fcall_stack_size()
1498 opline++; in zend_adjust_fcall_stack_size()
1510 zend_op *opline = call_info->caller_init_opline; in zend_adjust_fcall_stack_size_graph() local
1512 if (opline && call_info->callee_func && opline->opcode == ZEND_INIT_FCALL) { in zend_adjust_fcall_stack_size_graph()
1514 opline->op1.num = zend_vm_calc_used_stack(opline->extended_value, call_info->callee_func); in zend_adjust_fcall_stack_size_graph()