Lines Matching refs:opline

682 		zend_op *opline = &CG(active_op_array)->opcodes[CG(active_op_array)->last-1];  in zend_do_free()  local
684 while (opline->opcode == ZEND_END_SILENCE) { in zend_do_free()
685 opline--; in zend_do_free()
688 if (opline->result_type == IS_TMP_VAR && opline->result.var == op1->u.op.var) { in zend_do_free()
689 if (opline->opcode == ZEND_BOOL || opline->opcode == ZEND_BOOL_NOT) { in zend_do_free()
696 zend_op *opline = &CG(active_op_array)->opcodes[CG(active_op_array)->last-1]; in zend_do_free() local
697 while (opline->opcode == ZEND_END_SILENCE || in zend_do_free()
698 opline->opcode == ZEND_EXT_FCALL_END || in zend_do_free()
699 opline->opcode == ZEND_OP_DATA) { in zend_do_free()
700 opline--; in zend_do_free()
702 if (opline->result_type == IS_VAR in zend_do_free()
703 && opline->result.var == op1->u.op.var) { in zend_do_free()
704 if (opline->opcode == ZEND_FETCH_THIS) { in zend_do_free()
705 opline->opcode = ZEND_NOP; in zend_do_free()
706 opline->result_type = IS_UNUSED; in zend_do_free()
708 opline->result_type = IS_UNUSED; in zend_do_free()
711 while (opline >= CG(active_op_array)->opcodes) { in zend_do_free()
712 if ((opline->opcode == ZEND_FETCH_LIST_R || in zend_do_free()
713 opline->opcode == ZEND_FETCH_LIST_W) && in zend_do_free()
714 opline->op1_type == IS_VAR && in zend_do_free()
715 opline->op1.var == op1->u.op.var) { in zend_do_free()
719 if (opline->result_type == IS_VAR in zend_do_free()
720 && opline->result.var == op1->u.op.var) { in zend_do_free()
721 if (opline->opcode == ZEND_NEW) { in zend_do_free()
726 opline--; in zend_do_free()
1150 zend_op *opline = op_array->opcodes; in zend_build_delayed_early_binding_list() local
1151 zend_op *end = opline + op_array->last; in zend_build_delayed_early_binding_list()
1153 while (opline < end) { in zend_build_delayed_early_binding_list()
1154 if (opline->opcode == ZEND_DECLARE_CLASS_DELAYED) { in zend_build_delayed_early_binding_list()
1155 *prev_opline_num = opline - op_array->opcodes; in zend_build_delayed_early_binding_list()
1156 prev_opline_num = &opline->result.opline_num; in zend_build_delayed_early_binding_list()
1158 ++opline; in zend_build_delayed_early_binding_list()
1188 const zend_op *opline = &op_array->opcodes[opline_num]; in zend_do_delayed_early_binding() local
1189 zval *lcname = RT_CONSTANT(opline, opline->op1); in zend_do_delayed_early_binding()
1194 zend_string *lc_parent_name = Z_STR_P(RT_CONSTANT(opline, opline->op2)); in zend_do_delayed_early_binding()
1200 ((void**)((char*)run_time_cache + opline->extended_value))[0] = ce; in zend_do_delayed_early_binding()
1528 zend_op *opline; in zend_do_extended_stmt() local
1534 opline = get_next_op(); in zend_do_extended_stmt()
1536 opline->opcode = ZEND_EXT_STMT; in zend_do_extended_stmt()
1542 zend_op *opline; in zend_do_extended_fcall_begin() local
1548 opline = get_next_op(); in zend_do_extended_fcall_begin()
1550 opline->opcode = ZEND_EXT_FCALL_BEGIN; in zend_do_extended_fcall_begin()
1556 zend_op *opline; in zend_do_extended_fcall_end() local
1562 opline = get_next_op(); in zend_do_extended_fcall_end()
1564 opline->opcode = ZEND_EXT_FCALL_END; in zend_do_extended_fcall_end()
1831 static void zend_adjust_for_fetch_type(zend_op *opline, znode *result, uint32_t type) /* {{{ */ in zend_adjust_for_fetch_type() argument
1833 zend_uchar factor = (opline->opcode == ZEND_FETCH_STATIC_PROP_R) ? 1 : 3; in zend_adjust_for_fetch_type()
1837 opline->result_type = IS_TMP_VAR; in zend_adjust_for_fetch_type()
1841 opline->opcode += 1 * factor; in zend_adjust_for_fetch_type()
1844 opline->opcode += 2 * factor; in zend_adjust_for_fetch_type()
1847 opline->result_type = IS_TMP_VAR; in zend_adjust_for_fetch_type()
1849 opline->opcode += 3 * factor; in zend_adjust_for_fetch_type()
1852 opline->opcode += 4 * factor; in zend_adjust_for_fetch_type()
1855 opline->opcode += 5 * factor; in zend_adjust_for_fetch_type()
1862 static inline void zend_make_var_result(znode *result, zend_op *opline) /* {{{ */ in zend_make_var_result() argument
1864 opline->result_type = IS_VAR; in zend_make_var_result()
1865 opline->result.var = get_temporary_variable(); in zend_make_var_result()
1866 GET_NODE(result, opline->result); in zend_make_var_result()
1870 static inline void zend_make_tmp_result(znode *result, zend_op *opline) /* {{{ */ in zend_make_tmp_result() argument
1872 opline->result_type = IS_TMP_VAR; in zend_make_tmp_result()
1873 opline->result.var = get_temporary_variable(); in zend_make_tmp_result()
1874 GET_NODE(result, opline->result); in zend_make_tmp_result()
1880 zend_op *opline = get_next_op(); in zend_emit_op() local
1881 opline->opcode = opcode; in zend_emit_op()
1884 SET_NODE(opline->op1, op1); in zend_emit_op()
1888 SET_NODE(opline->op2, op2); in zend_emit_op()
1892 zend_make_var_result(result, opline); in zend_emit_op()
1894 return opline; in zend_emit_op()
1900 zend_op *opline = get_next_op(); in zend_emit_op_tmp() local
1901 opline->opcode = opcode; in zend_emit_op_tmp()
1904 SET_NODE(opline->op1, op1); in zend_emit_op_tmp()
1908 SET_NODE(opline->op2, op2); in zend_emit_op_tmp()
1912 zend_make_tmp_result(result, opline); in zend_emit_op_tmp()
1915 return opline; in zend_emit_op_tmp()
1921 zend_op *opline; in zend_emit_tick() local
1928 opline = get_next_op(); in zend_emit_tick()
1930 opline->opcode = ZEND_TICKS; in zend_emit_tick()
1931 opline->extended_value = FC(declarables).ticks; in zend_emit_tick()
1944 zend_op *opline = zend_emit_op(NULL, ZEND_JMP, NULL, NULL); in zend_emit_jump() local
1945 opline->op1.opline_num = opnum_target; in zend_emit_jump()
1950 ZEND_API int zend_is_smart_branch(zend_op *opline) /* {{{ */ in zend_is_smart_branch() argument
1952 switch (opline->opcode) { in zend_is_smart_branch()
1980 zend_op *opline; in zend_emit_cond_jump() local
1989 opline = zend_emit_op(NULL, opcode, cond, NULL); in zend_emit_cond_jump()
1990 opline->op2.opline_num = opnum_target; in zend_emit_cond_jump()
1997 zend_op *opline = &CG(active_op_array)->opcodes[opnum_jump]; in zend_update_jump_target() local
1998 switch (opline->opcode) { in zend_update_jump_target()
2000 opline->op1.opline_num = opnum_target; in zend_update_jump_target()
2008 opline->op2.opline_num = opnum_target; in zend_update_jump_target()
2051 zend_op *opline = NULL, *oplines = zend_stack_base(&CG(delayed_oplines_stack)); in zend_delayed_compile_end() local
2056 opline = get_next_op(); in zend_delayed_compile_end()
2057 memcpy(opline, &oplines[i], sizeof(zend_op)); in zend_delayed_compile_end()
2060 return opline; in zend_delayed_compile_end()
2108 zend_op *opline; in zend_emit_return_type_check() local
2148 opline = zend_emit_op(NULL, ZEND_VERIFY_RETURN_TYPE, expr, NULL); in zend_emit_return_type_check()
2150 opline->result_type = expr->op_type = IS_TMP_VAR; in zend_emit_return_type_check()
2151 opline->result.var = expr->u.op.var = get_temporary_variable(); in zend_emit_return_type_check()
2154 opline->op2.num = CG(active_op_array)->cache_size; in zend_emit_return_type_check()
2157 opline->op2.num = -1; in zend_emit_return_type_check()
2248 static inline void zend_handle_numeric_dim(zend_op *opline, znode *dim_node) /* {{{ */ in zend_handle_numeric_dim() argument
2258 ZEND_ASSERT(opline->op2.constant + 1 == c); in zend_handle_numeric_dim()
2259 ZVAL_LONG(CT_CONSTANT(opline->op2), index); in zend_handle_numeric_dim()
2260 Z_EXTRA_P(CT_CONSTANT(opline->op2)) = ZEND_EXTRA_VALUE; in zend_handle_numeric_dim()
2267 static inline void zend_set_class_name_op1(zend_op *opline, znode *class_node) /* {{{ */ in zend_set_class_name_op1() argument
2270 opline->op1_type = IS_CONST; in zend_set_class_name_op1()
2271 opline->op1.constant = zend_add_class_name_literal( in zend_set_class_name_op1()
2274 SET_NODE(opline->op1, class_node); in zend_set_class_name_op1()
2309 zend_op *opline = zend_emit_op(result, ZEND_FETCH_CLASS, NULL, &name_node); in zend_compile_class_ref() local
2310 opline->op1.num = ZEND_FETCH_CLASS_DEFAULT | fetch_flags; in zend_compile_class_ref()
2369 zend_op *opline; in zend_compile_simple_var_no_cv() local
2377 opline = zend_delayed_emit_op(result, ZEND_FETCH_R, &name_node, NULL); in zend_compile_simple_var_no_cv()
2379 opline = zend_emit_op(result, ZEND_FETCH_R, &name_node, NULL); in zend_compile_simple_var_no_cv()
2385 opline->extended_value = ZEND_FETCH_GLOBAL; in zend_compile_simple_var_no_cv()
2387 opline->extended_value = ZEND_FETCH_LOCAL; in zend_compile_simple_var_no_cv()
2390 zend_adjust_for_fetch_type(opline, result, type); in zend_compile_simple_var_no_cv()
2391 return opline; in zend_compile_simple_var_no_cv()
2409 zend_op *opline = zend_emit_op(result, ZEND_FETCH_THIS, NULL, NULL); in zend_compile_simple_var() local
2411 opline->result_type = IS_TMP_VAR; in zend_compile_simple_var()
2415 return opline; in zend_compile_simple_var()
2427 zend_op *opline = zend_emit_op(NULL, ZEND_SEPARATE, node, NULL); in zend_separate_if_call_and_write() local
2428 opline->result_type = IS_VAR; in zend_separate_if_call_and_write()
2429 opline->result.var = opline->op1.var; in zend_separate_if_call_and_write()
2458 zend_op *opline; in zend_delayed_compile_dim() local
2462 opline = zend_delayed_compile_var(&var_node, var_ast, type, 0); in zend_delayed_compile_dim()
2463 …if (opline && type == BP_VAR_W && (opline->opcode == ZEND_FETCH_STATIC_PROP_W || opline->opcode ==… in zend_delayed_compile_dim()
2464 opline->extended_value |= ZEND_FETCH_DIM_WRITE; in zend_delayed_compile_dim()
2481 opline = zend_delayed_emit_op(result, ZEND_FETCH_DIM_R, &var_node, &dim_node); in zend_delayed_compile_dim()
2482 zend_adjust_for_fetch_type(opline, result, type); in zend_delayed_compile_dim()
2485 zend_handle_numeric_dim(opline, &dim_node); in zend_delayed_compile_dim()
2487 return opline; in zend_delayed_compile_dim()
2505 zend_op *opline; in zend_delayed_compile_prop() local
2511 opline = zend_delayed_compile_var(&obj_node, obj_ast, type, 0); in zend_delayed_compile_prop()
2512 …if (opline && type == BP_VAR_W && (opline->opcode == ZEND_FETCH_STATIC_PROP_W || opline->opcode ==… in zend_delayed_compile_prop()
2513 opline->extended_value |= ZEND_FETCH_OBJ_WRITE; in zend_delayed_compile_prop()
2520 opline = zend_delayed_emit_op(result, ZEND_FETCH_OBJ_R, &obj_node, &prop_node); in zend_delayed_compile_prop()
2521 if (opline->op2_type == IS_CONST) { in zend_delayed_compile_prop()
2522 convert_to_string(CT_CONSTANT(opline->op2)); in zend_delayed_compile_prop()
2523 opline->extended_value = zend_alloc_cache_slots(3); in zend_delayed_compile_prop()
2526 zend_adjust_for_fetch_type(opline, result, type); in zend_delayed_compile_prop()
2527 return opline; in zend_delayed_compile_prop()
2534 zend_op *opline = zend_delayed_compile_prop(result, ast, type); in zend_compile_prop() local
2536 opline->extended_value |= ZEND_FETCH_REF; in zend_compile_prop()
2548 zend_op *opline; in zend_compile_static_prop() local
2555 opline = zend_delayed_emit_op(result, ZEND_FETCH_STATIC_PROP_R, &prop_node, NULL); in zend_compile_static_prop()
2557 opline = zend_emit_op(result, ZEND_FETCH_STATIC_PROP_R, &prop_node, NULL); in zend_compile_static_prop()
2559 if (opline->op1_type == IS_CONST) { in zend_compile_static_prop()
2560 convert_to_string(CT_CONSTANT(opline->op1)); in zend_compile_static_prop()
2561 opline->extended_value = zend_alloc_cache_slots(3); in zend_compile_static_prop()
2564 opline->op2_type = IS_CONST; in zend_compile_static_prop()
2565 opline->op2.constant = zend_add_class_name_literal( in zend_compile_static_prop()
2567 if (opline->op1_type != IS_CONST) { in zend_compile_static_prop()
2568 opline->extended_value = zend_alloc_cache_slot(); in zend_compile_static_prop()
2571 SET_NODE(opline->op2, &class_node); in zend_compile_static_prop()
2575 opline->extended_value |= ZEND_FETCH_REF; in zend_compile_static_prop()
2578 zend_adjust_for_fetch_type(opline, result, type); in zend_compile_static_prop()
2579 return opline; in zend_compile_static_prop()
2638 zend_op *opline; in zend_compile_list_assign() local
2681 opline = zend_emit_op(&fetch_result, in zend_compile_list_assign()
2685 zend_handle_numeric_dim(opline, &dim_node); in zend_compile_list_assign()
2755 zend_op *opline; in zend_compile_assign() local
2777 opline = zend_delayed_compile_end(offset); in zend_compile_assign()
2778 opline->opcode = ZEND_ASSIGN_STATIC_PROP; in zend_compile_assign()
2800 opline = zend_delayed_compile_end(offset); in zend_compile_assign()
2801 opline->opcode = ZEND_ASSIGN_DIM; in zend_compile_assign()
2803 opline = zend_emit_op_data(&expr_node); in zend_compile_assign()
2810 opline = zend_delayed_compile_end(offset); in zend_compile_assign()
2811 opline->opcode = ZEND_ASSIGN_OBJ; in zend_compile_assign()
2854 zend_op *opline; in zend_compile_assign_ref() local
2878 opline = zend_delayed_compile_end(offset); in zend_compile_assign_ref()
2886 if (opline && opline->opcode == ZEND_FETCH_OBJ_W) { in zend_compile_assign_ref()
2887 opline->opcode = ZEND_ASSIGN_OBJ_REF; in zend_compile_assign_ref()
2888 opline->extended_value &= ~ZEND_FETCH_REF; in zend_compile_assign_ref()
2889 opline->extended_value |= flags; in zend_compile_assign_ref()
2892 } else if (opline && opline->opcode == ZEND_FETCH_STATIC_PROP_W) { in zend_compile_assign_ref()
2893 opline->opcode = ZEND_ASSIGN_STATIC_PROP_REF; in zend_compile_assign_ref()
2894 opline->extended_value &= ~ZEND_FETCH_REF; in zend_compile_assign_ref()
2895 opline->extended_value |= flags; in zend_compile_assign_ref()
2899 opline = zend_emit_op(result, ZEND_ASSIGN_REF, &target_node, &source_node); in zend_compile_assign_ref()
2900 opline->extended_value = flags; in zend_compile_assign_ref()
2922 zend_op *opline; in zend_compile_compound_assign() local
2933 opline = zend_emit_op(result, ZEND_ASSIGN_OP, &var_node, &expr_node); in zend_compile_compound_assign()
2934 opline->extended_value = opcode; in zend_compile_compound_assign()
2941 opline = zend_delayed_compile_end(offset); in zend_compile_compound_assign()
2942 cache_slot = opline->extended_value; in zend_compile_compound_assign()
2943 opline->opcode = ZEND_ASSIGN_STATIC_PROP_OP; in zend_compile_compound_assign()
2944 opline->extended_value = opcode; in zend_compile_compound_assign()
2946 opline = zend_emit_op_data(&expr_node); in zend_compile_compound_assign()
2947 opline->extended_value = cache_slot; in zend_compile_compound_assign()
2954 opline = zend_delayed_compile_end(offset); in zend_compile_compound_assign()
2955 opline->opcode = ZEND_ASSIGN_DIM_OP; in zend_compile_compound_assign()
2956 opline->extended_value = opcode; in zend_compile_compound_assign()
2965 opline = zend_delayed_compile_end(offset); in zend_compile_compound_assign()
2966 cache_slot = opline->extended_value; in zend_compile_compound_assign()
2967 opline->opcode = ZEND_ASSIGN_OBJ_OP; in zend_compile_compound_assign()
2968 opline->extended_value = opcode; in zend_compile_compound_assign()
2970 opline = zend_emit_op_data(&expr_node); in zend_compile_compound_assign()
2971 opline->extended_value = cache_slot; in zend_compile_compound_assign()
2990 zend_op *opline; in zend_compile_args() local
2998 opline = zend_emit_op(NULL, ZEND_SEND_UNPACK, &arg_node, NULL); in zend_compile_args()
2999 opline->op2.num = arg_count; in zend_compile_args()
3000 opline->result.var = (uint32_t)(zend_intptr_t)ZEND_CALL_ARG(NULL, arg_count); in zend_compile_args()
3055 opline = zend_emit_op(NULL, ZEND_CHECK_FUNC_ARG, NULL, NULL); in zend_compile_args()
3056 opline->op2.num = arg_num; in zend_compile_args()
3098 opline = zend_emit_op(NULL, opcode, &arg_node, NULL); in zend_compile_args()
3099 opline->op2.opline_num = arg_num; in zend_compile_args()
3100 opline->result.var = (uint32_t)(zend_intptr_t)ZEND_CALL_ARG(NULL, arg_num); in zend_compile_args()
3135 zend_op *opline; in zend_compile_call_common() local
3143 opline = &CG(active_op_array)->opcodes[opnum_init]; in zend_compile_call_common()
3144 opline->extended_value = arg_count; in zend_compile_call_common()
3146 if (opline->opcode == ZEND_INIT_FCALL) { in zend_compile_call_common()
3147 opline->op1.num = zend_vm_calc_used_stack(arg_count, fbc); in zend_compile_call_common()
3150 opline = zend_emit_op(result, zend_get_call_op(opline, fbc), NULL, NULL); in zend_compile_call_common()
3170 zend_op *opline = get_next_op(); in zend_compile_ns_call() local
3171 opline->opcode = ZEND_INIT_NS_FCALL_BY_NAME; in zend_compile_ns_call()
3172 opline->op2_type = IS_CONST; in zend_compile_ns_call()
3173 opline->op2.constant = zend_add_ns_func_name_literal( in zend_compile_ns_call()
3175 opline->result.num = zend_alloc_cache_slot(); in zend_compile_ns_call()
3189 zend_op *opline = get_next_op(); in zend_compile_dynamic_call() local
3191 opline->opcode = ZEND_INIT_STATIC_METHOD_CALL; in zend_compile_dynamic_call()
3192 opline->op1_type = IS_CONST; in zend_compile_dynamic_call()
3193 opline->op1.constant = zend_add_class_name_literal(class); in zend_compile_dynamic_call()
3194 opline->op2_type = IS_CONST; in zend_compile_dynamic_call()
3195 opline->op2.constant = zend_add_func_name_literal(method); in zend_compile_dynamic_call()
3197 opline->result.num = zend_alloc_cache_slots(2); in zend_compile_dynamic_call()
3200 zend_op *opline = get_next_op(); in zend_compile_dynamic_call() local
3202 opline->opcode = ZEND_INIT_FCALL_BY_NAME; in zend_compile_dynamic_call()
3203 opline->op2_type = IS_CONST; in zend_compile_dynamic_call()
3204 opline->op2.constant = zend_add_func_name_literal(str); in zend_compile_dynamic_call()
3205 opline->result.num = zend_alloc_cache_slot(); in zend_compile_dynamic_call()
3252 zend_op *opline; in zend_compile_func_typecheck() local
3259 opline = zend_emit_op_tmp(result, ZEND_TYPE_CHECK, &arg_node, NULL); in zend_compile_func_typecheck()
3261 opline->extended_value = (1 << type); in zend_compile_func_typecheck()
3263 opline->extended_value = (1 << IS_FALSE) | (1 << IS_TRUE); in zend_compile_func_typecheck()
3272 zend_op *opline; in zend_compile_func_cast() local
3279 opline = zend_emit_op_tmp(result, ZEND_CAST, &arg_node, NULL); in zend_compile_func_cast()
3280 opline->extended_value = type; in zend_compile_func_cast()
3288 zend_op *opline; in zend_compile_func_defined() local
3308 opline = zend_emit_op_tmp(result, ZEND_DEFINED, NULL, NULL); in zend_compile_func_defined()
3309 opline->op1_type = IS_CONST; in zend_compile_func_defined()
3310 LITERAL_STR(opline->op1, name); in zend_compile_func_defined()
3311 opline->extended_value = zend_alloc_cache_slot(); in zend_compile_func_defined()
3368 zend_op *opline; in zend_try_compile_ct_bound_init_user_func() local
3387 opline = zend_emit_op(NULL, ZEND_INIT_FCALL, NULL, NULL); in zend_try_compile_ct_bound_init_user_func()
3388 opline->extended_value = num_args; in zend_try_compile_ct_bound_init_user_func()
3389 opline->op1.num = zend_vm_calc_used_stack(num_args, fbc); in zend_try_compile_ct_bound_init_user_func()
3390 opline->op2_type = IS_CONST; in zend_try_compile_ct_bound_init_user_func()
3391 LITERAL_STR(opline->op2, lcname); in zend_try_compile_ct_bound_init_user_func()
3392 opline->result.num = zend_alloc_cache_slot(); in zend_try_compile_ct_bound_init_user_func()
3400 zend_op *opline; in zend_compile_init_user_func() local
3409 opline = zend_emit_op(NULL, ZEND_INIT_USER_CALL, NULL, &name_node); in zend_compile_init_user_func()
3410 opline->op1_type = IS_CONST; in zend_compile_init_user_func()
3411 LITERAL_STR(opline->op1, zend_string_copy(orig_func_name)); in zend_compile_init_user_func()
3412 opline->extended_value = num_args; in zend_compile_init_user_func()
3443 zend_op *opline; in zend_compile_func_cufa() local
3448 opline = zend_emit_op(NULL, ZEND_SEND_ARRAY, &arg_node, &len_node); in zend_compile_func_cufa()
3449 opline->extended_value = Z_LVAL_P(zv); in zend_compile_func_cufa()
3478 zend_op *opline; in zend_compile_func_cuf() local
3482 opline = zend_emit_op(NULL, ZEND_SEND_USER, &arg_node, NULL); in zend_compile_func_cuf()
3483 opline->op2.num = i; in zend_compile_func_cuf()
3484 opline->result.var = (uint32_t)(zend_intptr_t)ZEND_CALL_ARG(NULL, i); in zend_compile_func_cuf()
3496 zend_op *opline; in zend_compile_assert() local
3505 opline = zend_emit_op(NULL, ZEND_INIT_FCALL, NULL, &name_node); in zend_compile_assert()
3507 opline = zend_emit_op(NULL, ZEND_INIT_NS_FCALL_BY_NAME, NULL, NULL); in zend_compile_assert()
3508 opline->op2_type = IS_CONST; in zend_compile_assert()
3509 opline->op2.constant = zend_add_ns_func_name_literal(name); in zend_compile_assert()
3511 opline->result.num = zend_alloc_cache_slot(); in zend_compile_assert()
3524 opline = &CG(active_op_array)->opcodes[check_op_number]; in zend_compile_assert()
3525 opline->op2.opline_num = get_next_op_number(); in zend_compile_assert()
3526 SET_NODE(opline->result, result); in zend_compile_assert()
3541 zend_op *opline; in zend_compile_func_in_array() local
3615 opline = zend_emit_op_tmp(result, ZEND_IN_ARRAY, &needly, &array); in zend_compile_func_in_array()
3616 opline->extended_value = strict; in zend_compile_func_in_array()
3625 zend_op *opline; in zend_compile_func_count() local
3632 opline = zend_emit_op_tmp(result, ZEND_COUNT, &arg_node, NULL); in zend_compile_func_count()
3633 opline->extended_value = zend_string_equals_literal(lcname, "sizeof"); in zend_compile_func_count()
3864 zend_op *opline; in zend_compile_call() local
3898 opline = zend_emit_op(NULL, ZEND_INIT_FCALL, NULL, &name_node); in zend_compile_call()
3899 opline->result.num = zend_alloc_cache_slot(); in zend_compile_call()
3913 zend_op *opline; in zend_compile_method_call() local
3924 opline = zend_emit_op(NULL, ZEND_INIT_METHOD_CALL, &obj_node, NULL); in zend_compile_method_call()
3931 opline->op2_type = IS_CONST; in zend_compile_method_call()
3932 opline->op2.constant = zend_add_func_name_literal( in zend_compile_method_call()
3934 opline->result.num = zend_alloc_cache_slots(2); in zend_compile_method_call()
3936 SET_NODE(opline->op2, &method_node); in zend_compile_method_call()
3940 if (opline->op1_type == IS_UNUSED && opline->op2_type == IS_CONST && in zend_compile_method_call()
3942 zend_string *lcname = Z_STR_P(CT_CONSTANT(opline->op2) + 1); in zend_compile_method_call()
3969 zend_op *opline; in zend_compile_static_call() local
3986 opline = get_next_op(); in zend_compile_static_call()
3987 opline->opcode = ZEND_INIT_STATIC_METHOD_CALL; in zend_compile_static_call()
3989 zend_set_class_name_op1(opline, &class_node); in zend_compile_static_call()
3992 opline->op2_type = IS_CONST; in zend_compile_static_call()
3993 opline->op2.constant = zend_add_func_name_literal( in zend_compile_static_call()
3995 opline->result.num = zend_alloc_cache_slots(2); in zend_compile_static_call()
3997 if (opline->op1_type == IS_CONST) { in zend_compile_static_call()
3998 opline->result.num = zend_alloc_cache_slot(); in zend_compile_static_call()
4000 SET_NODE(opline->op2, &method_node); in zend_compile_static_call()
4004 if (opline->op2_type == IS_CONST) { in zend_compile_static_call()
4006 if (opline->op1_type == IS_CONST) { in zend_compile_static_call()
4007 zend_string *lcname = Z_STR_P(CT_CONSTANT(opline->op1) + 1); in zend_compile_static_call()
4013 } else if (opline->op1_type == IS_UNUSED in zend_compile_static_call()
4014 && (opline->op1.num & ZEND_FETCH_CLASS_MASK) == ZEND_FETCH_CLASS_SELF in zend_compile_static_call()
4019 zend_string *lcname = Z_STR_P(CT_CONSTANT(opline->op2) + 1); in zend_compile_static_call()
4047 zend_op *opline; in zend_compile_new() local
4051 opline = zend_compile_class_decl(class_ast, 0); in zend_compile_new()
4052 class_node.op_type = opline->result_type; in zend_compile_new()
4053 class_node.u.op.var = opline->result.var; in zend_compile_new()
4058 opline = zend_emit_op(result, ZEND_NEW, NULL, NULL); in zend_compile_new()
4061 opline->op1_type = IS_CONST; in zend_compile_new()
4062 opline->op1.constant = zend_add_class_name_literal( in zend_compile_new()
4064 opline->op2.num = zend_alloc_cache_slot(); in zend_compile_new()
4066 SET_NODE(opline->op1, &class_node); in zend_compile_new()
4100 zend_op *opline = zend_emit_op(NULL, ZEND_BIND_GLOBAL, &result, &name_node); in zend_compile_global_var() local
4101 opline->extended_value = zend_alloc_cache_slot(); in zend_compile_global_var()
4106 zend_op *opline = zend_emit_op(&result, ZEND_FETCH_W, &name_node, NULL); in zend_compile_global_var() local
4107 opline->extended_value = ZEND_FETCH_GLOBAL_LOCK; in zend_compile_global_var()
4123 zend_op *opline; in zend_compile_static_var_common() local
4137 opline = zend_emit_op(NULL, ZEND_BIND_STATIC, NULL, NULL); in zend_compile_static_var_common()
4138 opline->op1_type = IS_CV; in zend_compile_static_var_common()
4139 opline->op1.var = lookup_cv(var_name); in zend_compile_static_var_common()
4140opline->extended_value = (uint32_t)((char*)value - (char*)CG(active_op_array)->static_variables->a… in zend_compile_static_var_common()
4164 zend_op *opline; in zend_compile_unset() local
4173 opline = zend_emit_op(NULL, ZEND_UNSET_CV, &var_node, NULL); in zend_compile_unset()
4175 opline = zend_compile_simple_var_no_cv(NULL, var_ast, BP_VAR_UNSET, 0); in zend_compile_unset()
4176 opline->opcode = ZEND_UNSET_VAR; in zend_compile_unset()
4180 opline = zend_compile_dim(NULL, var_ast, BP_VAR_UNSET); in zend_compile_unset()
4181 opline->opcode = ZEND_UNSET_DIM; in zend_compile_unset()
4184 opline = zend_compile_prop(NULL, var_ast, BP_VAR_UNSET, 0); in zend_compile_unset()
4185 opline->opcode = ZEND_UNSET_OBJ; in zend_compile_unset()
4188 opline = zend_compile_static_prop(NULL, var_ast, BP_VAR_UNSET, 0, 0); in zend_compile_unset()
4189 opline->opcode = ZEND_UNSET_STATIC_PROP; in zend_compile_unset()
4207 zend_op *opline = get_next_op(); in zend_handle_loops_and_finally_ex() local
4209 opline->opcode = ZEND_FAST_CALL; in zend_handle_loops_and_finally_ex()
4210 opline->result_type = IS_TMP_VAR; in zend_handle_loops_and_finally_ex()
4211 opline->result.var = loop_var->var_num; in zend_handle_loops_and_finally_ex()
4213 SET_NODE(opline->op2, return_value); in zend_handle_loops_and_finally_ex()
4215 opline->op1.num = loop_var->try_catch_offset; in zend_handle_loops_and_finally_ex()
4217 zend_op *opline = get_next_op(); in zend_handle_loops_and_finally_ex() local
4218 opline->opcode = ZEND_DISCARD_EXCEPTION; in zend_handle_loops_and_finally_ex()
4219 opline->op1_type = IS_TMP_VAR; in zend_handle_loops_and_finally_ex()
4220 opline->op1.var = loop_var->var_num; in zend_handle_loops_and_finally_ex()
4230 zend_op *opline; in zend_handle_loops_and_finally_ex() local
4233 opline = get_next_op(); in zend_handle_loops_and_finally_ex()
4234 opline->opcode = loop_var->opcode; in zend_handle_loops_and_finally_ex()
4235 opline->op1_type = loop_var->var_type; in zend_handle_loops_and_finally_ex()
4236 opline->op1.var = loop_var->var_num; in zend_handle_loops_and_finally_ex()
4237 opline->extended_value = ZEND_FREE_ON_RETURN; in zend_handle_loops_and_finally_ex()
4290 zend_op *opline; in zend_compile_return() local
4325 opline = zend_emit_op(NULL, by_ref ? ZEND_RETURN_BY_REF : ZEND_RETURN, in zend_compile_return()
4330 opline->extended_value = ZEND_RETURNS_FUNCTION; in zend_compile_return()
4332 opline->extended_value = ZEND_RETURNS_VALUE; in zend_compile_return()
4340 zend_op *opline; in zend_compile_echo() local
4346 opline = zend_emit_op(NULL, ZEND_ECHO, &expr_node, NULL); in zend_compile_echo()
4347 opline->extended_value = 0; in zend_compile_echo()
4366 zend_op *opline; in zend_compile_break_continue() local
4422 opline = zend_emit_op(NULL, ast->kind == ZEND_AST_BREAK ? ZEND_BRK : ZEND_CONT, NULL, NULL); in zend_compile_break_continue()
4423 opline->op1.num = CG(context).current_brk_cont; in zend_compile_break_continue()
4424 opline->op2.num = depth; in zend_compile_break_continue()
4428 void zend_resolve_goto_label(zend_op_array *op_array, zend_op *opline) /* {{{ */ in zend_resolve_goto_label() argument
4431 int current, remove_oplines = opline->op1.num; in zend_resolve_goto_label()
4433 uint32_t opnum = opline - op_array->opcodes; in zend_resolve_goto_label()
4435 label = CT_CONSTANT_EX(op_array, opline->op2.constant); in zend_resolve_goto_label()
4441 CG(zend_lineno) = opline->lineno; in zend_resolve_goto_label()
4448 current = opline->extended_value; in zend_resolve_goto_label()
4453 CG(zend_lineno) = opline->lineno; in zend_resolve_goto_label()
4473 opline->opcode = ZEND_JMP; in zend_resolve_goto_label()
4474 opline->op1.opline_num = dest->opline_num; in zend_resolve_goto_label()
4475 opline->extended_value = 0; in zend_resolve_goto_label()
4476 SET_UNUSED(opline->op1); in zend_resolve_goto_label()
4477 SET_UNUSED(opline->op2); in zend_resolve_goto_label()
4478 SET_UNUSED(opline->result); in zend_resolve_goto_label()
4482 opline--; in zend_resolve_goto_label()
4483 MAKE_NOP(opline); in zend_resolve_goto_label()
4484 ZEND_VM_SET_OPCODE_HANDLER(opline); in zend_resolve_goto_label()
4493 zend_op *opline; in zend_compile_goto() local
4500 opline = zend_emit_op(NULL, ZEND_GOTO, NULL, &label_node); in zend_compile_goto()
4501 opline->op1.num = get_next_op_number() - opnum_start - 1; in zend_compile_goto()
4502 opline->extended_value = CG(context).current_brk_cont; in zend_compile_goto()
4637 zend_op *opline; in zend_compile_foreach() local
4668 opline = zend_emit_op(&reset_node, by_ref ? ZEND_FE_RESET_RW : ZEND_FE_RESET_R, &expr_node, NULL); in zend_compile_foreach()
4673 opline = zend_emit_op(NULL, by_ref ? ZEND_FE_FETCH_RW : ZEND_FE_FETCH_R, &reset_node, NULL); in zend_compile_foreach()
4679 SET_NODE(opline->op2, &value_node); in zend_compile_foreach()
4681 opline->op2_type = IS_VAR; in zend_compile_foreach()
4682 opline->op2.var = get_temporary_variable(); in zend_compile_foreach()
4683 GET_NODE(&value_node, opline->op2); in zend_compile_foreach()
4694 opline = &CG(active_op_array)->opcodes[opnum_fetch]; in zend_compile_foreach()
4695 zend_make_tmp_result(&key_node, opline); in zend_compile_foreach()
4707 opline = &CG(active_op_array)->opcodes[opnum_reset]; in zend_compile_foreach()
4708 opline->op2.opline_num = get_next_op_number(); in zend_compile_foreach()
4710 opline = &CG(active_op_array)->opcodes[opnum_fetch]; in zend_compile_foreach()
4711 opline->extended_value = get_next_op_number(); in zend_compile_foreach()
4715 opline = zend_emit_op(NULL, ZEND_FE_FREE, &reset_node, NULL); in zend_compile_foreach()
4827 zend_op *opline; in zend_compile_switch() local
4848 opline = zend_emit_op(NULL, in zend_compile_switch()
4851 if (opline->op1_type == IS_CONST) { in zend_compile_switch()
4852 Z_TRY_ADDREF_P(CT_CONSTANT(opline->op1)); in zend_compile_switch()
4854 opnum_switch = opline - CG(active_op_array)->opcodes; in zend_compile_switch()
4882 opline = zend_emit_op(NULL, in zend_compile_switch()
4885 SET_NODE(opline->result, &case_node); in zend_compile_switch()
4886 if (opline->op1_type == IS_CONST) { in zend_compile_switch()
4887 Z_TRY_ADDREF_P(CT_CONSTANT(opline->op1)); in zend_compile_switch()
4922 opline = &CG(active_op_array)->opcodes[opnum_switch]; in zend_compile_switch()
4923 opline->extended_value = get_next_op_number(); in zend_compile_switch()
4934 opline = &CG(active_op_array)->opcodes[opnum_switch]; in zend_compile_switch()
4935 opline->extended_value = get_next_op_number(); in zend_compile_switch()
4942 opline = zend_emit_op(NULL, ZEND_FREE, &expr_node, NULL); in zend_compile_switch()
4943 opline->extended_value = ZEND_FREE_SWITCH; in zend_compile_switch()
4959 zend_op *opline; in zend_compile_try() local
5031 opline = get_next_op(); in zend_compile_try()
5032 opline->opcode = ZEND_CATCH; in zend_compile_try()
5033 opline->op1_type = IS_CONST; in zend_compile_try()
5034 opline->op1.constant = zend_add_class_name_literal( in zend_compile_try()
5036 opline->extended_value = zend_alloc_cache_slot(); in zend_compile_try()
5042 opline->result_type = IS_CV; in zend_compile_try()
5043 opline->result.var = lookup_cv(var_name); in zend_compile_try()
5046 opline->extended_value |= ZEND_LAST_CATCH; in zend_compile_try()
5051 opline = &CG(active_op_array)->opcodes[opnum_catch]; in zend_compile_try()
5052 opline->op2.opline_num = get_next_op_number(); in zend_compile_try()
5069 opline = &CG(active_op_array)->opcodes[opnum_catch]; in zend_compile_try()
5071 opline->op2.opline_num = get_next_op_number(); in zend_compile_try()
5094 opline = zend_emit_op(NULL, ZEND_FAST_CALL, NULL, NULL); in zend_compile_try()
5095 opline->op1.num = try_catch_offset; in zend_compile_try()
5096 opline->result_type = IS_TMP_VAR; in zend_compile_try()
5097 opline->result.var = CG(context).fast_call_var; in zend_compile_try()
5107 opline = zend_emit_op(NULL, ZEND_FAST_RET, NULL, NULL); in zend_compile_try()
5108 opline->op1_type = IS_TMP_VAR; in zend_compile_try()
5109 opline->op1.var = CG(context).fast_call_var; in zend_compile_try()
5110 opline->op2.num = orig_try_catch_offset; in zend_compile_try()
5380 zend_op *opline; in zend_compile_params() local
5499 opline = zend_emit_op(NULL, opcode, NULL, &default_node); in zend_compile_params()
5500 SET_NODE(opline->result, &var_node); in zend_compile_params()
5501 opline->op1.num = i + 1; in zend_compile_params()
5505 if (opline->opcode == ZEND_RECV_INIT) { in zend_compile_params()
5507 opline->extended_value = zend_alloc_cache_slot(); in zend_compile_params()
5511 opline->op2.num = op_array->cache_size; in zend_compile_params()
5514 opline->op2.num = -1; in zend_compile_params()
5518 if (opline->opcode != ZEND_RECV_INIT) { in zend_compile_params()
5519 opline->op2.num = -1; in zend_compile_params()
5553 zend_op *opline; in zend_compile_closure_binding() local
5572 opline = zend_emit_op(NULL, ZEND_BIND_LEXICAL, closure, NULL); in zend_compile_closure_binding()
5573 opline->op2_type = IS_CV; in zend_compile_closure_binding()
5574 opline->op2.var = lookup_cv(var_name); in zend_compile_closure_binding()
5575 opline->extended_value = in zend_compile_closure_binding()
5659 zend_op *opline; in compile_implicit_lexical_binds() local
5675 opline = zend_emit_op(NULL, ZEND_BIND_LEXICAL, closure, NULL); in compile_implicit_lexical_binds()
5676 opline->op2_type = IS_CV; in compile_implicit_lexical_binds()
5677 opline->op2.var = lookup_cv(var_name); in compile_implicit_lexical_binds()
5678 opline->extended_value = offset | ZEND_BIND_IMPLICIT; in compile_implicit_lexical_binds()
5911 zend_op *opline; in zend_begin_func_decl() local
5958 opline = zend_emit_op_tmp(result, ZEND_DECLARE_LAMBDA_FUNCTION, NULL, NULL); in zend_begin_func_decl()
5959 opline->extended_value = zend_alloc_cache_slot(); in zend_begin_func_decl()
5960 opline->op1_type = IS_CONST; in zend_begin_func_decl()
5961 LITERAL_STR(opline->op1, key); in zend_begin_func_decl()
5963 opline = get_next_op(); in zend_begin_func_decl()
5964 opline->opcode = ZEND_DECLARE_FUNCTION; in zend_begin_func_decl()
5965 opline->op1_type = IS_CONST; in zend_begin_func_decl()
5966 LITERAL_STR(opline->op1, zend_string_copy(lcname)); in zend_begin_func_decl()
6394 zend_op *opline; in zend_compile_class_decl() local
6568 opline = get_next_op(); in zend_compile_class_decl()
6573 opline->op2_type = IS_CONST; in zend_compile_class_decl()
6574 LITERAL_STR(opline->op2, lc_parent_name); in zend_compile_class_decl()
6577 opline->op1_type = IS_CONST; in zend_compile_class_decl()
6578 LITERAL_STR(opline->op1, lcname); in zend_compile_class_decl()
6581 opline->opcode = ZEND_DECLARE_ANON_CLASS; in zend_compile_class_decl()
6582 opline->extended_value = zend_alloc_cache_slot(); in zend_compile_class_decl()
6583 opline->result_type = IS_VAR; in zend_compile_class_decl()
6584 opline->result.var = get_temporary_variable(); in zend_compile_class_decl()
6601 opline->opcode = ZEND_DECLARE_CLASS; in zend_compile_class_decl()
6608 opline->opcode = ZEND_DECLARE_CLASS_DELAYED; in zend_compile_class_decl()
6609 opline->extended_value = zend_alloc_cache_slot(); in zend_compile_class_decl()
6610 opline->result_type = IS_UNUSED; in zend_compile_class_decl()
6611 opline->result.opline_num = -1; in zend_compile_class_decl()
6614 return opline; in zend_compile_class_decl()
7432 zend_op *opline = zend_compile_prop(NULL, var_ast, BP_VAR_RW, 0); in zend_compile_post_incdec() local
7433 opline->opcode = ast->kind == ZEND_AST_POST_INC ? ZEND_POST_INC_OBJ : ZEND_POST_DEC_OBJ; in zend_compile_post_incdec()
7434 zend_make_tmp_result(result, opline); in zend_compile_post_incdec()
7436 zend_op *opline = zend_compile_static_prop(NULL, var_ast, BP_VAR_RW, 0, 0); in zend_compile_post_incdec() local
7437opline->opcode = ast->kind == ZEND_AST_POST_INC ? ZEND_POST_INC_STATIC_PROP : ZEND_POST_DEC_STATIC… in zend_compile_post_incdec()
7438 zend_make_tmp_result(result, opline); in zend_compile_post_incdec()
7456 zend_op *opline = zend_compile_prop(result, var_ast, BP_VAR_RW, 0); in zend_compile_pre_incdec() local
7457 opline->opcode = ast->kind == ZEND_AST_PRE_INC ? ZEND_PRE_INC_OBJ : ZEND_PRE_DEC_OBJ; in zend_compile_pre_incdec()
7459 zend_op *opline = zend_compile_static_prop(result, var_ast, BP_VAR_RW, 0, 0); in zend_compile_pre_incdec() local
7460opline->opcode = ast->kind == ZEND_AST_PRE_INC ? ZEND_PRE_INC_STATIC_PROP : ZEND_PRE_DEC_STATIC_PR… in zend_compile_pre_incdec()
7474 zend_op *opline; in zend_compile_cast() local
7478 opline = zend_emit_op_tmp(result, ZEND_CAST, &expr_node, NULL); in zend_compile_cast()
7479 opline->extended_value = ast->attr; in zend_compile_cast()
7578 zend_op *opline; in zend_compile_coalesce() local
7588 opline = zend_emit_op_tmp(NULL, ZEND_QM_ASSIGN, &default_node, NULL); in zend_compile_coalesce()
7589 SET_NODE(opline->result, result); in zend_compile_coalesce()
7591 opline = &CG(active_op_array)->opcodes[opnum]; in zend_compile_coalesce()
7592 opline->op2.opline_num = get_next_op_number(); in zend_compile_coalesce()
7610 zend_op *opline; in zend_compile_assign_coalesce() local
7640 opline = &CG(active_op_array)->opcodes[CG(active_op_array)->last-1]; in zend_compile_assign_coalesce()
7646 opline->opcode = ZEND_ASSIGN_STATIC_PROP; in zend_compile_assign_coalesce()
7651 opline->opcode = ZEND_ASSIGN_DIM; in zend_compile_assign_coalesce()
7656 opline->opcode = ZEND_ASSIGN_OBJ; in zend_compile_assign_coalesce()
7663 opline = zend_emit_op_tmp(NULL, ZEND_QM_ASSIGN, &assign_node, NULL); in zend_compile_assign_coalesce()
7664 SET_NODE(opline->result, result); in zend_compile_assign_coalesce()
7696 zend_op *opline; in zend_compile_print() local
7702 opline = zend_emit_op(NULL, ZEND_ECHO, &expr_node, NULL); in zend_compile_print()
7703 opline->extended_value = 1; in zend_compile_print()
7734 zend_op *opline; in zend_compile_yield() local
7753 opline = zend_emit_op(result, ZEND_YIELD, value_node_ptr, key_node_ptr); in zend_compile_yield()
7756 opline->extended_value = ZEND_RETURNS_FUNCTION; in zend_compile_yield()
7784 zend_op *opline; in zend_compile_instanceof() local
7797 opline = zend_emit_op_tmp(result, ZEND_INSTANCEOF, &obj_node, NULL); in zend_compile_instanceof()
7800 opline->op2_type = IS_CONST; in zend_compile_instanceof()
7801 opline->op2.constant = zend_add_class_name_literal( in zend_compile_instanceof()
7803 opline->extended_value = zend_alloc_cache_slot(); in zend_compile_instanceof()
7805 SET_NODE(opline->op2, &class_node); in zend_compile_instanceof()
7814 zend_op *opline; in zend_compile_include_or_eval() local
7819 opline = zend_emit_op(result, ZEND_INCLUDE_OR_EVAL, &expr_node, NULL); in zend_compile_include_or_eval()
7820 opline->extended_value = ast->attr; in zend_compile_include_or_eval()
7831 zend_op *opline = NULL; in zend_compile_isset_or_empty() local
7851 opline = zend_emit_op(result, ZEND_ISSET_ISEMPTY_THIS, NULL, NULL); in zend_compile_isset_or_empty()
7854 opline = zend_emit_op(result, ZEND_ISSET_ISEMPTY_CV, &var_node, NULL); in zend_compile_isset_or_empty()
7856 opline = zend_compile_simple_var_no_cv(result, var_ast, BP_VAR_IS, 0); in zend_compile_isset_or_empty()
7857 opline->opcode = ZEND_ISSET_ISEMPTY_VAR; in zend_compile_isset_or_empty()
7861 opline = zend_compile_dim(result, var_ast, BP_VAR_IS); in zend_compile_isset_or_empty()
7862 opline->opcode = ZEND_ISSET_ISEMPTY_DIM_OBJ; in zend_compile_isset_or_empty()
7865 opline = zend_compile_prop(result, var_ast, BP_VAR_IS, 0); in zend_compile_isset_or_empty()
7866 opline->opcode = ZEND_ISSET_ISEMPTY_PROP_OBJ; in zend_compile_isset_or_empty()
7869 opline = zend_compile_static_prop(result, var_ast, BP_VAR_IS, 0, 0); in zend_compile_isset_or_empty()
7870 opline->opcode = ZEND_ISSET_ISEMPTY_STATIC_PROP; in zend_compile_isset_or_empty()
7875 result->op_type = opline->result_type = IS_TMP_VAR; in zend_compile_isset_or_empty()
7877 opline->extended_value |= ZEND_ISEMPTY; in zend_compile_isset_or_empty()
7922 zend_op *opline; in zend_compile_array() local
7950 opline = zend_emit_op_tmp(result, ZEND_INIT_ARRAY, NULL, NULL); in zend_compile_array()
7952 opline = zend_emit_op(NULL, ZEND_ADD_ARRAY_UNPACK, &value_node, NULL); in zend_compile_array()
7953 SET_NODE(opline->result, result); in zend_compile_array()
7975 opline = zend_emit_op_tmp(result, ZEND_INIT_ARRAY, &value_node, key_node_ptr); in zend_compile_array()
7976 opline->extended_value = list->children << ZEND_ARRAY_SIZE_SHIFT; in zend_compile_array()
7978 opline = zend_emit_op(NULL, ZEND_ADD_ARRAY_ELEMENT, in zend_compile_array()
7980 SET_NODE(opline->result, result); in zend_compile_array()
7982 opline->extended_value |= by_ref; in zend_compile_array()
7992 opline = &CG(active_op_array)->opcodes[opnum_init]; in zend_compile_array()
7993 opline->extended_value |= ZEND_ARRAY_NOT_PACKED; in zend_compile_array()
8002 zend_op *opline; in zend_compile_const() local
8032 opline = zend_emit_op_tmp(result, ZEND_FETCH_CONSTANT, NULL, NULL); in zend_compile_const()
8033 opline->op2_type = IS_CONST; in zend_compile_const()
8036 opline->op2.constant = zend_add_const_name_literal( in zend_compile_const()
8039 opline->op1.num = IS_CONSTANT_UNQUALIFIED; in zend_compile_const()
8041 opline->op1.num |= IS_CONSTANT_IN_NAMESPACE; in zend_compile_const()
8042 opline->op2.constant = zend_add_const_name_literal( in zend_compile_const()
8045 opline->op2.constant = zend_add_const_name_literal( in zend_compile_const()
8049 opline->extended_value = zend_alloc_cache_slot(); in zend_compile_const()
8059 zend_op *opline; in zend_compile_class_const() local
8083 opline = zend_emit_op_tmp(result, ZEND_FETCH_CLASS_CONSTANT, NULL, &const_node); in zend_compile_class_const()
8085 zend_set_class_name_op1(opline, &class_node); in zend_compile_class_const()
8087 opline->extended_value = zend_alloc_cache_slots(2); in zend_compile_class_const()
8094 zend_op *opline; in zend_compile_class_name() local
8101 opline = zend_emit_op_tmp(result, ZEND_FETCH_CLASS_NAME, NULL, NULL); in zend_compile_class_name()
8102 opline->op1.num = zend_get_class_fetch_type(zend_ast_get_str(class_ast)); in zend_compile_class_name()
8106 static zend_op *zend_compile_rope_add_ex(zend_op *opline, znode *result, uint32_t num, znode *elem_… in zend_compile_rope_add_ex() argument
8111 opline->opcode = ZEND_ROPE_INIT; in zend_compile_rope_add_ex()
8113 opline->opcode = ZEND_ROPE_ADD; in zend_compile_rope_add_ex()
8114 SET_NODE(opline->op1, result); in zend_compile_rope_add_ex()
8116 SET_NODE(opline->op2, elem_node); in zend_compile_rope_add_ex()
8117 SET_NODE(opline->result, result); in zend_compile_rope_add_ex()
8118 opline->extended_value = num; in zend_compile_rope_add_ex()
8119 return opline; in zend_compile_rope_add_ex()
8125 zend_op *opline = get_next_op(); in zend_compile_rope_add() local
8130 opline->opcode = ZEND_ROPE_INIT; in zend_compile_rope_add()
8132 opline->opcode = ZEND_ROPE_ADD; in zend_compile_rope_add()
8133 SET_NODE(opline->op1, result); in zend_compile_rope_add()
8135 SET_NODE(opline->op2, elem_node); in zend_compile_rope_add()
8136 SET_NODE(opline->result, result); in zend_compile_rope_add()
8137 opline->extended_value = num; in zend_compile_rope_add()
8138 return opline; in zend_compile_rope_add()
8146 zend_op *opline = NULL, *init_opline; in zend_compile_encaps_list() local
8171 opline = get_next_op(); in zend_compile_encaps_list()
8172 opline->opcode = ZEND_NOP; in zend_compile_encaps_list()
8184 opline = &CG(active_op_array)->opcodes[reserved_op_number]; in zend_compile_encaps_list()
8185 zend_compile_rope_add_ex(opline, result, j++, &last_const_node); in zend_compile_encaps_list()
8188 opline = zend_compile_rope_add(result, j++, &elem_node); in zend_compile_encaps_list()
8203 opline = &CG(active_op_array)->opcodes[reserved_op_number]; in zend_compile_encaps_list()
8204 opline = zend_compile_rope_add_ex(opline, result, j++, &last_const_node); in zend_compile_encaps_list()
8208 if (opline->op2_type == IS_CONST) { in zend_compile_encaps_list()
8209 GET_NODE(result, opline->op2); in zend_compile_encaps_list()
8210 MAKE_NOP(opline); in zend_compile_encaps_list()
8212 opline->opcode = ZEND_CAST; in zend_compile_encaps_list()
8213 opline->extended_value = IS_STRING; in zend_compile_encaps_list()
8214 opline->op1_type = opline->op2_type; in zend_compile_encaps_list()
8215 opline->op1 = opline->op2; in zend_compile_encaps_list()
8216 opline->result_type = IS_TMP_VAR; in zend_compile_encaps_list()
8217 opline->result.var = get_temporary_variable(); in zend_compile_encaps_list()
8218 SET_UNUSED(opline->op2); in zend_compile_encaps_list()
8219 GET_NODE(result, opline->result); in zend_compile_encaps_list()
8222 opline->opcode = ZEND_FAST_CONCAT; in zend_compile_encaps_list()
8223 opline->extended_value = 0; in zend_compile_encaps_list()
8224 opline->op1_type = init_opline->op2_type; in zend_compile_encaps_list()
8225 opline->op1 = init_opline->op2; in zend_compile_encaps_list()
8226 opline->result_type = IS_TMP_VAR; in zend_compile_encaps_list()
8227 opline->result.var = get_temporary_variable(); in zend_compile_encaps_list()
8229 GET_NODE(result, opline->result); in zend_compile_encaps_list()
8234 opline->opcode = ZEND_ROPE_END; in zend_compile_encaps_list()
8235 opline->result.var = get_temporary_variable(); in zend_compile_encaps_list()
8236 var = opline->op1.var = get_temporary_variable(); in zend_compile_encaps_list()
8237 GET_NODE(result, opline->result); in zend_compile_encaps_list()
8247 while (opline != init_opline) { in zend_compile_encaps_list()
8248 opline--; in zend_compile_encaps_list()
8249 if (opline->opcode == ZEND_ROPE_ADD && in zend_compile_encaps_list()
8250 opline->result.var == (uint32_t)-1) { in zend_compile_encaps_list()
8251 opline->op1.var = var; in zend_compile_encaps_list()
8252 opline->result.var = var; in zend_compile_encaps_list()
8253 } else if (opline->opcode == ZEND_ROPE_INIT && in zend_compile_encaps_list()
8254 opline->result.var == (uint32_t)-1) { in zend_compile_encaps_list()
8255 opline->result.var = var; in zend_compile_encaps_list()
8264 zend_op *opline; in zend_compile_magic_const() local
8275 opline = zend_emit_op_tmp(result, ZEND_FETCH_CLASS_NAME, NULL, NULL); in zend_compile_magic_const()
8276 opline->op1.num = ZEND_FETCH_CLASS_SELF; in zend_compile_magic_const()
8773 zend_op *opline = zend_delayed_compile_prop(result, ast, type); in zend_delayed_compile_var() local
8775 opline->extended_value |= ZEND_FETCH_REF; in zend_delayed_compile_var()
8777 return opline; in zend_delayed_compile_var()