Lines Matching refs:op2
133 return CT_CONSTANT_EX(ctx->scdf.op_array, opline->op2.constant); in get_op2_value()
257 COPY_NODE(opline->op1, opline->op2); in try_replace_op1()
271 COPY_NODE(opline->op1, opline->op2); in try_replace_op1()
376 static inline int fetch_array_elem(zval **result, zval *op1, zval *op2) { in fetch_array_elem() argument
377 switch (Z_TYPE_P(op2)) { in fetch_array_elem()
388 *result = zend_hash_index_find(Z_ARR_P(op1), Z_LVAL_P(op2)); in fetch_array_elem()
391 *result = zend_hash_index_find(Z_ARR_P(op1), zend_dval_to_lval(Z_DVAL_P(op2))); in fetch_array_elem()
394 *result = zend_symtable_find(Z_ARR_P(op1), Z_STR_P(op2)); in fetch_array_elem()
401 static inline int ct_eval_fetch_dim(zval *result, zval *op1, zval *op2, int support_strings) { in ct_eval_fetch_dim() argument
404 if (fetch_array_elem(&value, op1, op2) == SUCCESS && value) { in ct_eval_fetch_dim()
410 if (zval_to_string_offset(&index, op2) == FAILURE) { in ct_eval_fetch_dim()
421 static inline int ct_eval_isset_dim(zval *result, uint32_t extended_value, zval *op1, zval *op2) { in ct_eval_isset_dim() argument
424 if (fetch_array_elem(&value, op1, op2) == FAILURE) { in ct_eval_isset_dim()
546 static inline int ct_eval_in_array(zval *result, uint32_t extended_value, zval *op1, zval *op2) { in ct_eval_in_array() argument
550 if (Z_TYPE_P(op2) != IS_ARRAY) { in ct_eval_in_array()
553 ht = Z_ARRVAL_P(op2); in ct_eval_in_array()
872 zval *op1, *op2, zv; /* zv is a temporary to hold result values */ in sccp_visit_instr() local
875 op2 = get_op2_value(ctx, opline, ssa_op); in sccp_visit_instr()
884 SET_RESULT(op1, op2); in sccp_visit_instr()
887 SET_RESULT(result, op2); in sccp_visit_instr()
935 if ((op1 && IS_BOT(op1)) || (op2 && IS_BOT(op2))) { in sccp_visit_instr()
940 SET_RESULT_BOT(op2); in sccp_visit_instr()
967 SKIP_IF_TOP(op2); in sccp_visit_instr()
969 if (zend_optimizer_eval_binary_op(&zv, opline->opcode, op1, op2) == SUCCESS) { in sccp_visit_instr()
996 SKIP_IF_TOP(op2); in sccp_visit_instr()
998 …izer_eval_binary_op(&zv, zend_compound_assign_to_binary_op(opline->opcode), op1, op2) == SUCCESS) { in sccp_visit_instr()
1077 SKIP_IF_TOP(op2); in sccp_visit_instr()
1078 if (ct_eval_in_array(&zv, opline->extended_value, op1, op2) == SUCCESS) { in sccp_visit_instr()
1089 SKIP_IF_TOP(op2); in sccp_visit_instr()
1091 if (ct_eval_fetch_dim(&zv, op1, op2, (opline->opcode != ZEND_FETCH_LIST)) == SUCCESS) { in sccp_visit_instr()
1100 SKIP_IF_TOP(op2); in sccp_visit_instr()
1102 if (ct_eval_isset_dim(&zv, opline->extended_value, op1, op2) == SUCCESS) { in sccp_visit_instr()
1142 SKIP_IF_TOP(op2); in sccp_visit_instr()
1143 if (zend_optimizer_eval_cast(&zv, IS_STRING, op2) == SUCCESS) { in sccp_visit_instr()
1156 SKIP_IF_TOP(op2); in sccp_visit_instr()
1157 if (zend_optimizer_eval_binary_op(&zv, ZEND_CONCAT, op1, op2) == SUCCESS) { in sccp_visit_instr()
1184 if (op2) { in sccp_visit_instr()
1185 SKIP_IF_TOP(op2); in sccp_visit_instr()
1202 if (ct_eval_add_array_elem(&zv, op1, op2) == SUCCESS) { in sccp_visit_instr()
1222 if (op2) { in sccp_visit_instr()
1223 SKIP_IF_TOP(op2); in sccp_visit_instr()
1227 if (ct_eval_assign_dim(&zv, data, op2) == SUCCESS) { in sccp_visit_instr()
1250 name = CT_CONSTANT_EX(ctx->scdf.op_array, call->caller_init_opline->op2.constant); in sccp_visit_instr()
1311 SET_RESULT_BOT(op2); in sccp_visit_instr()
1619 opline->op2.constant = zend_optimizer_add_literal(op_array, value); in replace_constant_operands()