Lines Matching refs:op2

201 		return CT_CONSTANT_EX(ctx->scdf.op_array, opline->op2.constant);  in get_op2_value()
318 static inline zend_result ct_eval_binary_op(zval *result, uint8_t binop, zval *op1, zval *op2) { in ct_eval_binary_op() argument
320 if (IS_PARTIAL_ARRAY(op1) || IS_PARTIAL_ARRAY(op2)) { in ct_eval_binary_op()
324 return zend_optimizer_eval_binary_op(result, binop, op1, op2); in ct_eval_binary_op()
359 static inline zend_result fetch_array_elem(zval **result, zval *op1, zval *op2) { in fetch_array_elem() argument
360 switch (Z_TYPE_P(op2)) { in fetch_array_elem()
371 *result = zend_hash_index_find(Z_ARR_P(op1), Z_LVAL_P(op2)); in fetch_array_elem()
374 zend_long lval = zend_dval_to_lval(Z_DVAL_P(op2)); in fetch_array_elem()
375 if (!zend_is_long_compatible(Z_DVAL_P(op2), lval)) { in fetch_array_elem()
382 *result = zend_symtable_find(Z_ARR_P(op1), Z_STR_P(op2)); in fetch_array_elem()
389 static inline zend_result ct_eval_fetch_dim(zval *result, zval *op1, zval *op2, int support_strings… in ct_eval_fetch_dim() argument
392 if (fetch_array_elem(&value, op1, op2) == SUCCESS && value && !IS_BOT(value)) { in ct_eval_fetch_dim()
398 if (zval_to_string_offset(&index, op2) == FAILURE) { in ct_eval_fetch_dim()
426 …inline zend_result ct_eval_isset_dim(zval *result, uint32_t extended_value, zval *op1, zval *op2) { in ct_eval_isset_dim() argument
429 if (fetch_array_elem(&value, op1, op2) == FAILURE) { in ct_eval_isset_dim()
589 static inline zend_result fetch_obj_prop(zval **result, zval *op1, zval *op2) { in fetch_obj_prop() argument
590 switch (Z_TYPE_P(op2)) { in fetch_obj_prop()
592 *result = zend_symtable_find(Z_ARR_P(op1), Z_STR_P(op2)); in fetch_obj_prop()
599 static inline zend_result ct_eval_fetch_obj(zval *result, zval *op1, zval *op2) { in ct_eval_fetch_obj() argument
602 if (fetch_obj_prop(&value, op1, op2) == SUCCESS && value && !IS_BOT(value)) { in ct_eval_fetch_obj()
610 …inline zend_result ct_eval_isset_obj(zval *result, uint32_t extended_value, zval *op1, zval *op2) { in ct_eval_isset_obj() argument
613 if (fetch_obj_prop(&value, op1, op2) == FAILURE) { in ct_eval_isset_obj()
703 … inline zend_result ct_eval_in_array(zval *result, uint32_t extended_value, zval *op1, zval *op2) { in ct_eval_in_array() argument
707 if (Z_TYPE_P(op2) != IS_ARRAY) { in ct_eval_in_array()
710 ht = Z_ARRVAL_P(op2); in ct_eval_in_array()
738 static inline zend_result ct_eval_array_key_exists(zval *result, zval *op1, zval *op2) { in ct_eval_array_key_exists() argument
741 if (Z_TYPE_P(op2) != IS_ARRAY && !IS_PARTIAL_ARRAY(op2)) { in ct_eval_array_key_exists()
747 if (fetch_array_elem(&value, op2, op1) == FAILURE) { in ct_eval_array_key_exists()
750 if (IS_PARTIAL_ARRAY(op2) && (!value || IS_BOT(value))) { in ct_eval_array_key_exists()
875 zval *op1, *op2, zv; /* zv is a temporary to hold result values */ in sccp_visit_instr() local
878 op2 = get_op2_value(ctx, opline, ssa_op); in sccp_visit_instr()
889 SET_RESULT(op1, op2); in sccp_visit_instr()
890 SET_RESULT(result, op2); in sccp_visit_instr()
910 if (op2) { in sccp_visit_instr()
911 SKIP_IF_TOP(op2); in sccp_visit_instr()
914 if (op2 && IS_BOT(op2)) { in sccp_visit_instr()
942 if (!op2) { in sccp_visit_instr()
945 } else if (ct_eval_del_array_elem(&zv, op2) == SUCCESS) { in sccp_visit_instr()
964 if (!op2 && IS_PARTIAL_ARRAY(&zv)) { in sccp_visit_instr()
968 } else if (ct_eval_assign_dim(&zv, data, op2) == SUCCESS) { in sccp_visit_instr()
1009 SKIP_IF_TOP(op2); in sccp_visit_instr()
1011 if (IS_BOT(op2)) { in sccp_visit_instr()
1032 if (ct_eval_del_obj_prop(&zv, op2) == SUCCESS) { in sccp_visit_instr()
1050 if (ct_eval_assign_obj(&zv, data, op2) == SUCCESS) { in sccp_visit_instr()
1105 if (op2) { in sccp_visit_instr()
1106 SKIP_IF_TOP(op2); in sccp_visit_instr()
1117 if (op2 && IS_BOT(op2)) { in sccp_visit_instr()
1142 if (!op2) { in sccp_visit_instr()
1145 } else if (ct_eval_del_array_elem(&zv, op2) == SUCCESS) { in sccp_visit_instr()
1166 if (!op2 && IS_PARTIAL_ARRAY(&zv)) { in sccp_visit_instr()
1169 } else if (ct_eval_add_array_elem(&zv, op1, op2) == SUCCESS) { in sccp_visit_instr()
1226 SET_RESULT_BOT(op2); in sccp_visit_instr()
1233 if ((op1 && IS_BOT(op1)) || (op2 && IS_BOT(op2))) { in sccp_visit_instr()
1238 SET_RESULT_BOT(op2); in sccp_visit_instr()
1266 SKIP_IF_TOP(op2); in sccp_visit_instr()
1268 if (ct_eval_binary_op(&zv, opline->opcode, op1, op2) == SUCCESS) { in sccp_visit_instr()
1282 if (op2) { in sccp_visit_instr()
1283 SKIP_IF_TOP(op2); in sccp_visit_instr()
1286 if (ct_eval_binary_op(&zv, opline->extended_value, op1, op2) == SUCCESS) { in sccp_visit_instr()
1294 && ssa_op->op1_def >= 0 && op2) { in sccp_visit_instr()
1300 if (ct_eval_fetch_dim(&tmp, op1, op2, 0) == SUCCESS) { in sccp_visit_instr()
1303 ct_eval_del_array_elem(&zv, op2); in sccp_visit_instr()
1324 if (ct_eval_assign_dim(&zv, &tmp, op2) == SUCCESS) { in sccp_visit_instr()
1345 if (ct_eval_fetch_obj(&tmp, op1, op2) == SUCCESS) { in sccp_visit_instr()
1348 ct_eval_del_obj_prop(&zv, op2); in sccp_visit_instr()
1365 if (ct_eval_assign_obj(&zv, &tmp, op2) == SUCCESS) { in sccp_visit_instr()
1387 SKIP_IF_TOP(op2); in sccp_visit_instr()
1393 if (ct_eval_fetch_obj(&tmp1, op1, op2) == SUCCESS) { in sccp_visit_instr()
1396 ct_eval_assign_obj(&zv, &tmp2, op2); in sccp_visit_instr()
1507 SKIP_IF_TOP(op2); in sccp_visit_instr()
1508 if (ct_eval_in_array(&zv, opline->extended_value, op1, op2) == SUCCESS) { in sccp_visit_instr()
1517 SKIP_IF_TOP(op2); in sccp_visit_instr()
1518 if (ct_eval_array_key_exists(&zv, op1, op2) == SUCCESS) { in sccp_visit_instr()
1529 SKIP_IF_TOP(op2); in sccp_visit_instr()
1531 if (ct_eval_fetch_dim(&zv, op1, op2, (opline->opcode != ZEND_FETCH_LIST_R)) == SUCCESS) { in sccp_visit_instr()
1540 SKIP_IF_TOP(op2); in sccp_visit_instr()
1542 if (ct_eval_isset_dim(&zv, opline->extended_value, op1, op2) == SUCCESS) { in sccp_visit_instr()
1553 SKIP_IF_TOP(op2); in sccp_visit_instr()
1555 if (ct_eval_fetch_obj(&zv, op1, op2) == SUCCESS) { in sccp_visit_instr()
1566 SKIP_IF_TOP(op2); in sccp_visit_instr()
1568 if (ct_eval_isset_obj(&zv, opline->extended_value, op1, op2) == SUCCESS) { in sccp_visit_instr()
1598 SET_RESULT(result, op2); in sccp_visit_instr()
1621 SKIP_IF_TOP(op2); in sccp_visit_instr()
1622 if (IS_PARTIAL_ARRAY(op2)) { in sccp_visit_instr()
1626 if (zend_optimizer_eval_cast(&zv, IS_STRING, op2) == SUCCESS) { in sccp_visit_instr()
1639 SKIP_IF_TOP(op2); in sccp_visit_instr()
1640 if (ct_eval_binary_op(&zv, ZEND_CONCAT, op1, op2) == SUCCESS) { in sccp_visit_instr()
1659 name = CT_CONSTANT_EX(ctx->scdf.op_array, call->caller_init_opline->op2.constant); in sccp_visit_instr()
1766 SET_RESULT_BOT(op2); in sccp_visit_instr()
1919 HashTable *jmptable = Z_ARRVAL_P(CT_CONSTANT_EX(op_array, opline->op2.constant)); in sccp_mark_feasible_successors()
2348 opline->op2.constant = zend_optimizer_add_literal(op_array, value); in try_remove_definition()