Lines Matching refs:op1_info
4637 static int zend_jit_inc_dec(zend_jit_ctx *jit, const zend_op *opline, uint32_t op1_info, zend_jit_a… in zend_jit_inc_dec() argument
4644 if (op1_info & ((MAY_BE_UNDEF|MAY_BE_ANY)-MAY_BE_LONG)) { in zend_jit_inc_dec()
4841 if (op1_info & ((MAY_BE_ANY|MAY_BE_UNDEF)-MAY_BE_LONG)) { in zend_jit_inc_dec()
4846 if (op1_info & ((MAY_BE_ANY|MAY_BE_UNDEF)-(MAY_BE_LONG|MAY_BE_DOUBLE))) { in zend_jit_inc_dec()
4848 if (op1_info & MAY_BE_UNDEF) { in zend_jit_inc_dec()
4860 op1_info |= MAY_BE_NULL; in zend_jit_inc_dec()
4865 if (op1_info & MAY_BE_REF) { in zend_jit_inc_dec()
4907 ZEND_ADDR_REF_ZVAL(ref), op1_info, 1); in zend_jit_inc_dec()
4949 …_store_var_if_necessary_ex(jit, opline->op1.var, op1_def_addr, op1_def_info, op1_addr, op1_info)) { in zend_jit_inc_dec()
5239 uint32_t op1_info, in zend_jit_math_helper() argument
5272 if (!has_concrete_type(op1_info & MAY_BE_ANY) && jit->ra[Z_SSA_VAR(op2_addr)].ref == IR_NULL) { in zend_jit_math_helper()
5283 …if ((res_info & MAY_BE_GUARD) && (res_info & MAY_BE_LONG) && (op1_info & MAY_BE_LONG) && (op2_info… in zend_jit_math_helper()
5284 if (op1_info & (MAY_BE_ANY-MAY_BE_LONG)) { in zend_jit_math_helper()
5304 …} else if ((op1_info & MAY_BE_LONG) && (op2_info & MAY_BE_LONG) && (res_info & (MAY_BE_LONG|MAY_BE… in zend_jit_math_helper()
5305 if (op1_info & (MAY_BE_ANY-MAY_BE_LONG)) { in zend_jit_math_helper()
5337 if (op1_info & MAY_BE_DOUBLE) { in zend_jit_math_helper()
5338 if (op1_info & (MAY_BE_ANY-(MAY_BE_LONG|MAY_BE_DOUBLE))) { in zend_jit_math_helper()
5374 } else if ((op1_info & MAY_BE_DOUBLE) && in zend_jit_math_helper()
5375 !(op1_info & MAY_BE_LONG) && in zend_jit_math_helper()
5378 if (op1_info & (MAY_BE_ANY-MAY_BE_DOUBLE)) { in zend_jit_math_helper()
5413 (op1_info & (MAY_BE_LONG|MAY_BE_DOUBLE)) && in zend_jit_math_helper()
5421 if (op1_info & MAY_BE_DOUBLE) { in zend_jit_math_helper()
5422 if (!same_ops && (op1_info & (MAY_BE_ANY-MAY_BE_DOUBLE))) { in zend_jit_math_helper()
5434 if (!same_ops && (op1_info & MAY_BE_LONG)) { in zend_jit_math_helper()
5435 if (op1_info & (MAY_BE_ANY-(MAY_BE_DOUBLE|MAY_BE_LONG))) { in zend_jit_math_helper()
5450 if ((op1_info & ((MAY_BE_ANY|MAY_BE_UNDEF)-(MAY_BE_LONG|MAY_BE_DOUBLE))) || in zend_jit_math_helper()
5460 if (!zend_jit_spill_store_inv(jit, op1_addr, real_addr, op1_info)) { in zend_jit_math_helper()
5493 jit_FREE_OP(jit, op1_type, op1, op1_info, NULL); in zend_jit_math_helper()
5535 static int zend_jit_math(zend_jit_ctx *jit, const zend_op *opline, uint32_t op1_info, zend_jit_addr… in zend_jit_math() argument
5537 ZEND_ASSERT(!(op1_info & MAY_BE_UNDEF) && !(op2_info & MAY_BE_UNDEF)); in zend_jit_math()
5539 …r(jit, opline, opline->opcode, opline->op1_type, opline->op1, op1_addr, op1_info, opline->op2_type… in zend_jit_math()
5548 static int zend_jit_add_arrays(zend_jit_ctx *jit, const zend_op *opline, uint32_t op1_info, zend_ji… in zend_jit_add_arrays() argument
5557 jit_FREE_OP(jit, opline->op1_type, opline->op1, op1_info, opline); in zend_jit_add_arrays()
5568 uint32_t op1_info, in zend_jit_long_math_helper() argument
5602 if (op1_info & ((MAY_BE_ANY|MAY_BE_UNDEF)-MAY_BE_LONG)) { in zend_jit_long_math_helper()
5770 && ((op1_info & ((MAY_BE_ANY|MAY_BE_UNDEF)-MAY_BE_LONG)) in zend_jit_long_math_helper()
5785 if ((op1_info & ((MAY_BE_ANY|MAY_BE_UNDEF)-MAY_BE_LONG)) || in zend_jit_long_math_helper()
5802 if (op1_info & MAY_BE_UNDEF) { in zend_jit_long_math_helper()
5836 if (!zend_jit_spill_store_inv(jit, op1_addr, real_addr, op1_info)) { in zend_jit_long_math_helper()
5878 jit_FREE_OP(jit, op1_type, op1, op1_info, NULL); in zend_jit_long_math_helper()
5918 static int zend_jit_long_math(zend_jit_ctx *jit, const zend_op *opline, uint32_t op1_info, zend_ssa… in zend_jit_long_math() argument
5920 ZEND_ASSERT((op1_info & MAY_BE_LONG) && (op2_info & MAY_BE_LONG)); in zend_jit_long_math()
5923 opline->op1_type, opline->op1, op1_addr, op1_info, op1_range, in zend_jit_long_math()
5939 uint32_t op1_info, in zend_jit_concat_helper() argument
5951 if ((op1_info & MAY_BE_STRING) && (op2_info & MAY_BE_STRING)) { in zend_jit_concat_helper()
5952 if (op1_info & ((MAY_BE_UNDEF|MAY_BE_ANY|MAY_BE_REF) - MAY_BE_STRING)) { in zend_jit_concat_helper()
5985 if ((op1_info & ((MAY_BE_UNDEF|MAY_BE_ANY|MAY_BE_REF) - MAY_BE_STRING)) || in zend_jit_concat_helper()
5987 if ((op1_info & MAY_BE_STRING) && (op2_info & MAY_BE_STRING)) { in zend_jit_concat_helper()
6004 op1_info |= MAY_BE_RCN; in zend_jit_concat_helper()
6006 jit_FREE_OP(jit, op1_type, op1, op1_info, NULL); in zend_jit_concat_helper()
6018 if ((op1_info & MAY_BE_STRING) && (op2_info & MAY_BE_STRING)) { in zend_jit_concat_helper()
6025 static int zend_jit_concat(zend_jit_ctx *jit, const zend_op *opline, uint32_t op1_info, uint32_t op… in zend_jit_concat() argument
6029 ZEND_ASSERT(!(op1_info & MAY_BE_UNDEF) && !(op2_info & MAY_BE_UNDEF)); in zend_jit_concat()
6030 ZEND_ASSERT((op1_info & MAY_BE_STRING) && (op2_info & MAY_BE_STRING)); in zend_jit_concat()
6035 …return zend_jit_concat_helper(jit, opline, opline->op1_type, opline->op1, op1_addr, op1_info, opli… in zend_jit_concat()
6040 uint32_t op1_info, in zend_jit_assign_op() argument
6056 ZEND_ASSERT(!(op1_info & MAY_BE_UNDEF) && !(op2_info & MAY_BE_UNDEF)); in zend_jit_assign_op()
6058 if (op1_info & MAY_BE_REF) { in zend_jit_assign_op()
6109 …pline, opline->extended_value, opline->op1_type, opline->op1, op1_addr, op1_info, opline->op2_type… in zend_jit_assign_op()
6118 opline->op1_type, opline->op1, op1_addr, op1_info, op1_range, in zend_jit_assign_op()
6123 …result = zend_jit_concat_helper(jit, opline, opline->op1_type, opline->op1, op1_addr, op1_info, op… in zend_jit_assign_op()
6129 …_store_var_if_necessary_ex(jit, opline->op1.var, op1_def_addr, op1_def_info, op1_addr, op1_info)) { in zend_jit_assign_op()
6133 if (op1_info & MAY_BE_REF) { in zend_jit_assign_op()
6606 static int zend_jit_qm_assign(zend_jit_ctx *jit, const zend_op *opline, uint32_t op1_info, zend_jit… in zend_jit_qm_assign() argument
6609 if (!zend_jit_update_regs(jit, opline->op1.var, op1_addr, op1_def_addr, op1_info)) { in zend_jit_qm_assign()
6617 …ssign(jit, opline, res_addr, res_use_info, res_info, opline->op1_type, op1_addr, op1_info, 0, 1)) { in zend_jit_qm_assign()
6628 uint32_t op1_info, in zend_jit_assign() argument
6656 op1_info |= MAY_BE_UNDEF; in zend_jit_assign()
6658 if (!zend_jit_assign_to_variable(jit, opline, op1_use_addr, op1_addr, op1_info, op1_def_info, in zend_jit_assign()
6664 …_store_var_if_necessary_ex(jit, opline->op1.var, op1_addr, op1_def_info, op1_use_addr, op1_info)) { in zend_jit_assign()
6667 } else if ((op1_info & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE)) in zend_jit_assign()
6900 uint32_t op1_info, in zend_jit_cmp() argument
6925 (op1_info & (MAY_BE_LONG|MAY_BE_DOUBLE)) && in zend_jit_cmp()
6927 ((op1_info & ((MAY_BE_ANY|MAY_BE_UNDEF)-(MAY_BE_LONG|MAY_BE_DOUBLE))) || in zend_jit_cmp()
6939 if (!has_concrete_type(op1_info & MAY_BE_ANY) && jit->ra[Z_SSA_VAR(op2_addr)].ref == IR_NULL) { in zend_jit_cmp()
6945 if ((op1_info & MAY_BE_LONG) && (op2_info & MAY_BE_LONG)) { in zend_jit_cmp()
6946 if (op1_info & ((MAY_BE_ANY|MAY_BE_UNDEF)-MAY_BE_LONG)) { in zend_jit_cmp()
6979 if (op1_info & MAY_BE_DOUBLE) { in zend_jit_cmp()
6980 if (op1_info & ((MAY_BE_ANY|MAY_BE_UNDEF)-(MAY_BE_LONG|MAY_BE_DOUBLE))) { in zend_jit_cmp()
7018 } else if ((op1_info & MAY_BE_DOUBLE) && in zend_jit_cmp()
7019 !(op1_info & MAY_BE_LONG) && in zend_jit_cmp()
7021 if (op1_info & ((MAY_BE_ANY|MAY_BE_UNDEF)-MAY_BE_DOUBLE)) { in zend_jit_cmp()
7058 (op1_info & (MAY_BE_LONG|MAY_BE_DOUBLE))) { in zend_jit_cmp()
7065 if (op1_info & MAY_BE_DOUBLE) { in zend_jit_cmp()
7066 if (!same_ops && (op1_info & ((MAY_BE_ANY|MAY_BE_UNDEF)-MAY_BE_DOUBLE))) { in zend_jit_cmp()
7079 if (!same_ops && (op1_info & MAY_BE_LONG)) { in zend_jit_cmp()
7080 if (op1_info & ((MAY_BE_ANY|MAY_BE_UNDEF)-(MAY_BE_DOUBLE|MAY_BE_LONG))) { in zend_jit_cmp()
7097 (op1_info & ((MAY_BE_ANY|MAY_BE_UNDEF)-(MAY_BE_LONG|MAY_BE_DOUBLE))) || in zend_jit_cmp()
7108 if (!zend_jit_spill_store_inv(jit, op1_addr, real_addr, op1_info)) { in zend_jit_cmp()
7122 if (opline->op1_type == IS_CV && (op1_info & MAY_BE_UNDEF)) { in zend_jit_cmp()
7131 jit_FREE_OP(jit, opline->op1_type, opline->op1, op1_info, NULL); in zend_jit_cmp()
7206 uint32_t op1_info, in zend_jit_identical() argument
7223 if (opline->op1_type == IS_CV && (op1_info & MAY_BE_UNDEF)) { in zend_jit_identical()
7226 op1_info |= MAY_BE_NULL; in zend_jit_identical()
7236 if ((op1_info & op2_info & MAY_BE_ANY) == 0) { in zend_jit_identical()
7238 } else if (has_concrete_type(op1_info) in zend_jit_identical()
7240 && concrete_type(op1_info) == concrete_type(op2_info) in zend_jit_identical()
7241 && concrete_type(op1_info) <= IS_TRUE) { in zend_jit_identical()
7253 jit_FREE_OP(jit, opline->op1_type, opline->op1, op1_info, opline); in zend_jit_identical()
7284 jit_FREE_OP(jit, opline->op1_type, opline->op1, op1_info, opline); in zend_jit_identical()
7315 if ((opline->op1_type & (IS_CV|IS_VAR)) && (op1_info & MAY_BE_REF)) { in zend_jit_identical()
7326 if ((op1_info & (MAY_BE_REF|MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_LONG && in zend_jit_identical()
7332 } else if ((op1_info & (MAY_BE_REF|MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_DOUBLE && in zend_jit_identical()
7342 if (!zend_jit_spill_store_inv(jit, op1_addr, real_addr, op1_info)) { in zend_jit_identical()
7368 if (!zend_jit_spill_store_inv(jit, op1_addr, real_addr, op1_info)) { in zend_jit_identical()
7399 jit_FREE_OP(jit, opline->op1_type, opline->op1, op1_info, NULL); in zend_jit_identical()
7445 static int zend_jit_bool_jmpznz(zend_jit_ctx *jit, const zend_op *opline, uint32_t op1_info, zend_j… in zend_jit_bool_jmpznz() argument
7478 if (opline->op1_type == IS_CV && (op1_info & MAY_BE_REF)) { in zend_jit_bool_jmpznz()
7490 } else if (op1_info & (MAY_BE_UNDEF|MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE)) { in zend_jit_bool_jmpznz()
7491 if (!(op1_info & ((MAY_BE_UNDEF|MAY_BE_ANY)-MAY_BE_TRUE))) { in zend_jit_bool_jmpznz()
7493 } else if (!(op1_info & (MAY_BE_ANY-(MAY_BE_NULL|MAY_BE_FALSE)))) { in zend_jit_bool_jmpznz()
7494 if (opline->op1_type == IS_CV && (op1_info & MAY_BE_UNDEF)) { in zend_jit_bool_jmpznz()
7506 jit_FREE_OP(jit, opline->op1_type, opline->op1, op1_info, opline); in zend_jit_bool_jmpznz()
7520 jit_FREE_OP(jit, opline->op1_type, opline->op1, op1_info, opline); in zend_jit_bool_jmpznz()
7532 if (op1_info & (MAY_BE_UNDEF|MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE)) { in zend_jit_bool_jmpznz()
7534 if (op1_info & (MAY_BE_UNDEF|MAY_BE_NULL|MAY_BE_FALSE)) { in zend_jit_bool_jmpznz()
7539 if (op1_info & MAY_BE_UNDEF) { in zend_jit_bool_jmpznz()
7562 if (op1_info & MAY_BE_TRUE) { in zend_jit_bool_jmpznz()
7565 if (op1_info & (MAY_BE_ANY-(MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE))) { in zend_jit_bool_jmpznz()
7590 if (op1_info & MAY_BE_LONG) { in zend_jit_bool_jmpznz()
7594 if (op1_info & (MAY_BE_ANY-(MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE|MAY_BE_LONG))) { in zend_jit_bool_jmpznz()
7641 if (op1_info & MAY_BE_DOUBLE) { in zend_jit_bool_jmpznz()
7645 if (op1_info & (MAY_BE_ANY-(MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE|MAY_BE_LONG|MAY_BE_DOUBLE))) { in zend_jit_bool_jmpznz()
7691 if (op1_info & (MAY_BE_ANY - (MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE|MAY_BE_LONG|MAY_BE_DOUBLE))) { in zend_jit_bool_jmpznz()
7694 jit_FREE_OP(jit, opline->op1_type, opline->op1, op1_info, NULL); in zend_jit_bool_jmpznz()
8052 static int zend_jit_type_check(zend_jit_ctx *jit, const zend_op *opline, uint32_t op1_info, uint8_t… in zend_jit_type_check() argument
8077 if (op1_info & MAY_BE_UNDEF) { in zend_jit_type_check()
8080 if (op1_info & (MAY_BE_ANY|MAY_BE_REF)) { in zend_jit_type_check()
8120 op1_info |= MAY_BE_NULL; in zend_jit_type_check()
8124 if (op1_info & (MAY_BE_ANY|MAY_BE_REF)) { in zend_jit_type_check()
8126 if (!(op1_info & MAY_BE_GUARD) && !(op1_info & (MAY_BE_ANY - mask))) { in zend_jit_type_check()
8127 jit_FREE_OP(jit, opline->op1_type, opline->op1, op1_info, opline); in zend_jit_type_check()
8140 } else if (!(op1_info & MAY_BE_GUARD) && !(op1_info & mask)) { in zend_jit_type_check()
8141 jit_FREE_OP(jit, opline->op1_type, opline->op1, op1_info, opline); in zend_jit_type_check()
8181 if (op1_info & MAY_BE_REF) { in zend_jit_type_check()
8197 jit_FREE_OP(jit, opline->op1_type, opline->op1, op1_info, opline); in zend_jit_type_check()
8235 static int zend_jit_isset_isempty_cv(zend_jit_ctx *jit, const zend_op *opline, uint32_t op1_info, z… in zend_jit_isset_isempty_cv() argument
8258 if (op1_info & MAY_BE_REF) { in zend_jit_isset_isempty_cv()
8264 if (!(op1_info & (MAY_BE_UNDEF|MAY_BE_NULL))) { in zend_jit_isset_isempty_cv()
8273 } else if (!(op1_info & (MAY_BE_ANY - MAY_BE_NULL))) { in zend_jit_isset_isempty_cv()
8830 uint32_t op1_info, argument
8850 ZEND_ASSERT(op1_info & MAY_BE_OBJECT);
8876 if (op1_info & MAY_BE_REF) {
8895 if (op1_info & ((MAY_BE_UNDEF|MAY_BE_ANY)- MAY_BE_OBJECT)) {
9368 static int zend_jit_send_val(zend_jit_ctx *jit, const zend_op *opline, uint32_t op1_info, zend_jit_… argument
9436 op1_addr, op1_info, 0);
9442 …nd_jit_ctx *jit, const zend_op *opline, const zend_op_array *op_array, uint32_t op1_info, int cold) argument
9455 if (op1_info & MAY_BE_INDIRECT) {
9459 if (op1_info & MAY_BE_UNDEF) {
9460 if (op1_info & (MAY_BE_ANY|MAY_BE_REF)) {
9468 op1_info &= ~MAY_BE_UNDEF;
9469 op1_info |= MAY_BE_NULL;
9475 if (op1_info & (MAY_BE_UNDEF|MAY_BE_ANY|MAY_BE_REF)) {
9478 if (op1_info & MAY_BE_REF) {
9510 op1_addr, op1_info, 0);
9525 jit_FREE_OP(jit, opline->op1_type, opline->op1, op1_info, opline);
9530 …tx *jit, const zend_op *opline, const zend_op_array *op_array, uint32_t op1_info, zend_jit_addr op… argument
9552 if (!zend_jit_send_ref(jit, opline, op_array, op1_info, 0)) {
9566 if (!zend_jit_send_ref(jit, opline, op_array, op1_info, 1)) {
9584 op1_addr, op1_info, 0);
9587 if (!(op1_info & MAY_BE_REF)) {
9621 op1_addr, op1_info, 0);
9623 if (op1_info & MAY_BE_REF) {
9661 if (!zend_jit_send_ref(jit, opline, op_array, op1_info, 0)) {
9673 if (!zend_jit_send_ref(jit, opline, op_array, op1_info, 1)) {
9682 if (op1_info & MAY_BE_UNDEF) {
9685 if (op1_info & (MAY_BE_ANY|MAY_BE_REF)) {
9701 if (op1_info & (MAY_BE_ANY|MAY_BE_REF)) {
9718 op1_addr, op1_info, 0);
9719 if (op1_info & MAY_BE_REF) {
9740 if (op1_info & MAY_BE_REF) {
9753 op1_addr, op1_info, 1);
9771 ref_addr, op1_info, 0);
9799 op1_addr, op1_info, 0);
9803 if (!zend_jit_update_regs(jit, opline->op1.var, op1_addr, op1_def_addr, op1_info)) {
9815 op1_addr, op1_info, opline->op1_type == IS_CV);
10828 …rn_type(zend_jit_ctx *jit, const zend_op *opline, const zend_op_array *op_array, uint32_t op1_info) argument
10838 if (((op1_info & MAY_BE_ANY) & type_mask) == 0) {
10840 } else if (((op1_info & MAY_BE_ANY) | type_mask) == type_mask) {
10864 if (op1_info & MAY_BE_UNDEF) {
10922 uint32_t op1_info, argument
11082 && (op1_info & MAY_BE_RC1)
11083 …&& (op1_info & (MAY_BE_OBJECT|MAY_BE_RESOURCE|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_…
11121 && (op1_info & MAY_BE_RC1)
11122 …&& (op1_info & (MAY_BE_OBJECT|MAY_BE_RESOURCE|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_…
11160 …tx *jit, const zend_op *opline, const zend_op_array *op_array, uint32_t op1_info, zend_jit_addr op… argument
11167 ZEND_ASSERT(!(op1_info & MAY_BE_UNDEF));
11186 if (!zend_jit_spill_store_inv(jit, op1_addr, dst, op1_info)) {
11198 (op1_info & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
11204 if (op1_info & ((MAY_BE_UNDEF|MAY_BE_ANY|MAY_BE_REF)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
11213 if (RC_MAY_BE_1(op1_info)) {
11214 if (RC_MAY_BE_N(op1_info)) {
11220 jit_ZVAL_DTOR(jit, ref, op1_info, opline);
11251 jit_ZVAL_COPY(jit, ret_addr, MAY_BE_ANY, op1_addr, op1_info, 0);
11253 if (op1_info & MAY_BE_REF) {
11259 if (op1_info & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE)) {
11261 (op1_info & (MAY_BE_REF|MAY_BE_OBJECT)) ||
11263 jit_ZVAL_COPY(jit, ret_addr, MAY_BE_ANY, op1_addr, op1_info, 1);
11265 jit_ZVAL_COPY(jit, ret_addr, MAY_BE_ANY, op1_addr, op1_info, 0);
11269 jit_ZVAL_COPY(jit, ret_addr, MAY_BE_ANY, op1_addr, op1_info, 0);
11272 jit_ZVAL_COPY(jit, ret_addr, MAY_BE_ANY, op1_addr, op1_info, 0);
11275 if (op1_info & MAY_BE_REF) {
11288 jit_ZVAL_COPY(jit, ret_addr, MAY_BE_ANY, ref_addr, op1_info, 0);
11311 jit_ZVAL_COPY(jit, ret_addr, MAY_BE_ANY, op1_addr, op1_info, 0);
11328 static int zend_jit_bind_global(zend_jit_ctx *jit, const zend_op *opline, uint32_t op1_info) argument
11378 if (op1_info & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE|MAY_BE_REF)) {
11381 if (op1_info & ((MAY_BE_ANY|MAY_BE_UNDEF) - (MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
11397 if (!(op1_info & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT))) {
11403 jit_ZVAL_DTOR(jit, ref2, op1_info, opline);
11404 if (op1_info & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) {
11415 if (op1_info & ((MAY_BE_ANY|MAY_BE_UNDEF) - (MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
11421 if (op1_info & ((MAY_BE_ANY|MAY_BE_UNDEF) - (MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
11435 static int zend_jit_free(zend_jit_ctx *jit, const zend_op *opline, uint32_t op1_info, int may_throw) argument
11439 if (op1_info & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE|MAY_BE_REF)) {
11443 if (opline->opcode == ZEND_FE_FREE && (op1_info & (MAY_BE_OBJECT|MAY_BE_REF))) {
11446 if (op1_info & MAY_BE_ARRAY) {
11464 jit_ZVAL_PTR_DTOR(jit, op1_addr, op1_info, 0, opline);
11474 static int zend_jit_echo(zend_jit_ctx *jit, const zend_op *opline, uint32_t op1_info) argument
11497 ZEND_ASSERT((op1_info & (MAY_BE_UNDEF|MAY_BE_ANY|MAY_BE_REF)) == MAY_BE_STRING);
11507 jit_ZVAL_PTR_DTOR(jit, op1_addr, op1_info, 0, opline);
11515 static int zend_jit_strlen(zend_jit_ctx *jit, const zend_op *opline, uint32_t op1_info, zend_jit_ad… argument
11534 ZEND_ASSERT((op1_info & (MAY_BE_UNDEF|MAY_BE_ANY|MAY_BE_REF)) == MAY_BE_STRING);
11547 jit_FREE_OP(jit, opline->op1_type, opline->op1, op1_info, opline);
11552 static int zend_jit_count(zend_jit_ctx *jit, const zend_op *opline, uint32_t op1_info, zend_jit_add… argument
11571 ZEND_ASSERT((op1_info & (MAY_BE_UNDEF|MAY_BE_ANY|MAY_BE_REF)) == MAY_BE_ARRAY);
11590 jit_FREE_OP(jit, opline->op1_type, opline->op1, op1_info, opline);
11599 static int zend_jit_in_array(zend_jit_ctx *jit, const zend_op *opline, uint32_t op1_info, zend_jit_… argument
11606 ZEND_ASSERT((op1_info & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_REF)) == MAY_BE_STRING);
11786 uint32_t op1_info, argument
11832 if (op1_info & MAY_BE_PACKED_GUARD) {
11842 if (op1_info & MAY_BE_ARRAY_PACKED) {
11853 if (op1_info & MAY_BE_ARRAY_PACKED) {
11880 if (op1_info & MAY_BE_ARRAY_NUMERIC_HASH) {
11938 if (op1_info & MAY_BE_ARRAY_NUMERIC_HASH) {
11988 if (op1_info & MAY_BE_ARRAY_NUMERIC_HASH) {
12084 (op1_info & MAY_BE_ARRAY_NUMERIC_HASH)) {
12125 …if (!(op1_info & MAY_BE_ARRAY_KEY_LONG) || (op1_info & MAY_BE_ARRAY_NUMERIC_HASH) || packed_loaded…
12350 && (op1_info & MAY_BE_ARRAY)
12357 if (op1_info & MAY_BE_ARRAY_OF_REF) {
12383 uint32_t op1_info, argument
12408 && !has_concrete_type(op1_info)) {
12418 && (op1_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_ARRAY) {
12476 if (op1_info & MAY_BE_REF) {
12482 if (op1_info & MAY_BE_ARRAY) {
12490 if (op1_info & ((MAY_BE_ANY|MAY_BE_UNDEF) - MAY_BE_ARRAY)) {
12491 if (exit_addr && !(op1_info & (MAY_BE_OBJECT|may_be_string))) {
12508 op1_info, op2_info, op2_addr, op2_range, dim_type, NULL, not_found_exit_addr, exit_addr,
12534 (op1_info & MAY_BE_ARRAY_OF_REF) != 0, flags, op1_avoid_refcounting);
12550 } else if (op1_info & MAY_BE_ARRAY_OF_REF) {
12571 if (op1_info & ((MAY_BE_ANY|MAY_BE_UNDEF)-MAY_BE_ARRAY)) {
12577 if (opline->opcode != ZEND_FETCH_LIST_R && (op1_info & MAY_BE_STRING)) {
12581 if (op1_info & ((MAY_BE_ANY|MAY_BE_UNDEF)-(MAY_BE_ARRAY|MAY_BE_STRING))) {
12582 if (exit_addr && !(op1_info & MAY_BE_OBJECT)) {
12612 if (op1_info & MAY_BE_OBJECT) {
12621 if (op1_info & ((MAY_BE_ANY|MAY_BE_UNDEF)-(MAY_BE_ARRAY|MAY_BE_OBJECT|may_be_string))) {
12653 if ((op1_info & ((MAY_BE_ANY|MAY_BE_UNDEF)-(MAY_BE_ARRAY|MAY_BE_OBJECT|may_be_string)))
12654 && (!exit_addr || !(op1_info & (MAY_BE_ARRAY|MAY_BE_OBJECT|may_be_string)))) {
12661 …if ((opline->opcode != ZEND_FETCH_DIM_IS && (op1_info & MAY_BE_UNDEF)) || (op2_info & MAY_BE_UNDEF…
12663 if (opline->opcode != ZEND_FETCH_DIM_IS && (op1_info & MAY_BE_UNDEF)) {
12678 if ((op1_info & MAY_BE_UNDEF) || (op2_info & MAY_BE_UNDEF)) {
12696 if ((opline->op2_type & (IS_TMP_VAR|IS_VAR)) && (op1_info & MAY_BE_OBJECT)) {
12710 if ((op1_info & MAY_HAVE_DTOR) && (op1_info & MAY_BE_RC1)) {
12713 jit_FREE_OP(jit, opline->op1_type, opline->op1, op1_info, opline);
12720 } else if (op1_info & (MAY_BE_ANY|MAY_BE_UNDEF)) {
12738 uint32_t op1_info = *op1_info_ptr; local
12744 if (op1_info & MAY_BE_REF) {
12768 if (op1_info & MAY_BE_ARRAY) {
12771 if (op1_info & ((MAY_BE_ANY|MAY_BE_UNDEF) - MAY_BE_ARRAY)) {
12781 if (RC_MAY_BE_N(op1_info)) {
12782 if (RC_MAY_BE_1(op1_info)) {
12791 if (array_inputs->count || (op1_info & (MAY_BE_UNDEF|MAY_BE_NULL))) {
12797 if (op1_info & (MAY_BE_UNDEF|MAY_BE_NULL)) {
12802 if (op1_info & (MAY_BE_ANY-(MAY_BE_NULL|MAY_BE_ARRAY))) {
12806 if ((op1_info & MAY_BE_UNDEF)
12811 if (op1_info & MAY_BE_NULL) {
12830 op1_info &= ~(MAY_BE_UNDEF | MAY_BE_NULL);
12831 op1_info |= MAY_BE_ARRAY | MAY_BE_RC1;
12832 *op1_info_ptr = op1_info;
12846 uint32_t op1_info, argument
12862 …op1_addr = zend_jit_prepare_array_update(jit, opline, &op1_info, op1_addr, &if_type, &ht_ref, &may…
12864 if (op1_info & MAY_BE_ARRAY) {
12914 if (!zend_jit_fetch_dimension_address_inner(jit, opline, type, op1_info,
12944 if (op1_info & (MAY_BE_ANY-MAY_BE_ARRAY)) {
12988 if (op1_info & (MAY_BE_UNDEF|MAY_BE_NULL|MAY_BE_ARRAY)) {
12994 …if ((opline->op2_type & (IS_TMP_VAR|IS_VAR)) && (op1_info & (MAY_BE_UNDEF|MAY_BE_NULL|MAY_BE_FALSE…
13021 uint32_t op1_info, argument
13046 if (op1_info & MAY_BE_REF) {
13052 if (op1_info & MAY_BE_ARRAY) {
13057 if (op1_info & ((MAY_BE_ANY|MAY_BE_UNDEF) - MAY_BE_ARRAY)) {
13065 && !(op1_info & ((MAY_BE_ANY|MAY_BE_UNDEF)-MAY_BE_ARRAY))
13075 if (!zend_jit_fetch_dimension_address_inner(jit, opline, BP_JIT_IS, op1_info,
13090 if (op1_info & ((MAY_BE_ANY|MAY_BE_UNDEF)-MAY_BE_ARRAY)) {
13096 if (op1_info & (MAY_BE_STRING|MAY_BE_OBJECT)) {
13134 if ((opline->op2_type & (IS_TMP_VAR|IS_VAR)) && (op1_info & MAY_BE_OBJECT)) {
13145 jit_FREE_OP(jit, opline->op1_type, opline->op1, op1_info, opline);
13177 jit_FREE_OP(jit, opline->op1_type, opline->op1, op1_info, opline);
13216 uint32_t op1_info, argument
13254 …op1_addr = zend_jit_prepare_array_update(jit, opline, &op1_info, op1_addr, &if_type, &ht_ref, &may…
13256 if (op1_info & MAY_BE_ARRAY) {
13282 uint32_t var_info = zend_array_element_type(op1_info, opline->op1_type, 0, 0);
13290 if (!zend_jit_fetch_dimension_address_inner(jit, opline, BP_VAR_W, op1_info,
13296 if (op1_info & (MAY_BE_ARRAY_OF_REF|MAY_BE_OBJECT)) {
13327 if (op1_info & (MAY_BE_ANY-MAY_BE_ARRAY)) {
13370 …if ((opline->op2_type & (IS_TMP_VAR|IS_VAR)) && (op1_info & (MAY_BE_UNDEF|MAY_BE_NULL|MAY_BE_FALSE…
13380 jit_FREE_OP(jit, opline->op1_type, opline->op1, op1_info, opline);
13392 uint32_t op1_info, argument
13418 …op1_addr = zend_jit_prepare_array_update(jit, opline, &op1_info, op1_addr, &if_type, &ht_ref, &may…
13420 if (op1_info & MAY_BE_ARRAY) {
13449 var_info = zend_array_element_type(op1_info, opline->op1_type, 0, 0);
13450 if (op1_info & (MAY_BE_ARRAY_OF_REF|MAY_BE_OBJECT)) {
13459 && (op1_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_ARRAY
13469 if (!zend_jit_fetch_dimension_address_inner(jit, opline, BP_VAR_RW, op1_info,
13562 if (op1_info & (MAY_BE_ANY-MAY_BE_ARRAY)) {
13595 jit_FREE_OP(jit, opline->op1_type, opline->op1, op1_info, NULL);
13604 static int zend_jit_fe_reset(zend_jit_ctx *jit, const zend_op *opline, uint32_t op1_info) argument
13616 jit_ZVAL_COPY(jit, res_addr, -1, op1_addr, op1_info, opline->op1_type == IS_CV);
13648 static int zend_jit_fe_fetch(zend_jit_ctx *jit, const zend_op *opline, uint32_t op1_info, uint32_t … argument
13655 if (!MAY_BE_HASH(op1_info) && !MAY_BE_PACKED(op1_info)) {
13676 if (op1_info & MAY_BE_PACKED_GUARD) {
13677 if (!zend_jit_packed_guard(jit, opline, opline->op1.var, op1_info)) {
13685 if (MAY_BE_HASH(op1_info)) {
13688 if (MAY_BE_PACKED(op1_info)) {
13752 if (MAY_BE_PACKED(op1_info)) {
13756 if (MAY_BE_PACKED(op1_info)) {
13824 if (MAY_BE_HASH(op1_info)) {
13834 if (op1_info & MAY_BE_ARRAY_KEY_STRING) {
13837 if ((op1_info & MAY_BE_ARRAY_KEY_LONG)
13838 && (op1_info & MAY_BE_ARRAY_KEY_STRING)) {
13843 if (op1_info & MAY_BE_ARRAY_KEY_STRING) {
13864 if (op1_info & MAY_BE_ARRAY_KEY_LONG) {
13868 if (op1_info & MAY_BE_ARRAY_KEY_LONG) {
13869 if (op1_info & MAY_BE_ARRAY_KEY_STRING) {
13877 if (op1_info & MAY_BE_ARRAY_KEY_STRING) {
13881 if (MAY_BE_PACKED(op1_info)) {
13887 if (MAY_BE_PACKED(op1_info)) {
13904 if (MAY_BE_HASH(op1_info)) {
13936 val_info = ((op1_info & MAY_BE_ARRAY_OF_ANY) >> MAY_BE_ARRAY_SHIFT);
13940 if (op1_info & MAY_BE_ARRAY_OF_REF) {
14059 uint32_t op1_info, argument
14085 ZEND_ASSERT(op1_info & MAY_BE_OBJECT);
14097 && (op1_info & MAY_BE_INDIRECT)
14101 if (op1_info & MAY_BE_REF) {
14104 if (op1_info & ((MAY_BE_UNDEF|MAY_BE_ANY)- MAY_BE_OBJECT)) {
14121 if (opline->opcode != ZEND_FETCH_OBJ_W && (op1_info & MAY_BE_UNDEF)) {
14125 if (op1_info & MAY_BE_ANY) {
14166 if (!(op1_info & MAY_BE_CLASS_GUARD)) {
14530 && (op1_info & MAY_BE_RC1)) {
14551 op1_info &= ~MAY_BE_RC1;
14553 jit_FREE_OP(jit, opline->op1_type, opline->op1, op1_info, opline);
14578 uint32_t op1_info, argument
14614 ZEND_ASSERT(op1_info & MAY_BE_OBJECT);
14626 && (op1_info & MAY_BE_INDIRECT)
14630 if (op1_info & MAY_BE_REF) {
14633 if (op1_info & ((MAY_BE_UNDEF|MAY_BE_ANY)- MAY_BE_OBJECT)) {
14669 if (!(op1_info & MAY_BE_CLASS_GUARD)) {
14922 jit_FREE_OP(jit, opline->op1_type, opline->op1, op1_info, opline);
14937 uint32_t op1_info, argument
14963 ZEND_ASSERT(op1_info & MAY_BE_OBJECT);
14976 && (op1_info & MAY_BE_INDIRECT)
14980 if (op1_info & MAY_BE_REF) {
14983 if (op1_info & ((MAY_BE_UNDEF|MAY_BE_ANY)- MAY_BE_OBJECT)) {
14998 (op1_info & MAY_BE_UNDEF) ?
15019 if (!(op1_info & MAY_BE_CLASS_GUARD)) {
15048 && (op1_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_OBJECT);
15346 if ((op1_info & MAY_HAVE_DTOR) && (op1_info & MAY_BE_RC1)) {
15349 jit_FREE_OP(jit, opline->op1_type, opline->op1, op1_info, opline);
15364 uint32_t op1_info, argument
15388 ZEND_ASSERT(op1_info & MAY_BE_OBJECT);
15404 && (op1_info & MAY_BE_INDIRECT)
15408 if (op1_info & MAY_BE_REF) {
15411 if (op1_info & ((MAY_BE_UNDEF|MAY_BE_ANY)- MAY_BE_OBJECT)) {
15442 if (!(op1_info & MAY_BE_CLASS_GUARD)) {
15471 && (op1_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_OBJECT);
15824 if ((op1_info & MAY_HAVE_DTOR) && (op1_info & MAY_BE_RC1)) {
15827 jit_FREE_OP(jit, opline->op1_type, opline->op1, op1_info, opline);
16044 uint32_t op1_info = OP1_INFO(); local
16066 if (op1_info & MAY_BE_LONG) {
16078 if (op1_info & MAY_BE_REF) {
16112 } else if (op1_info & ((MAY_BE_ANY|MAY_BE_UNDEF)-MAY_BE_LONG)) {
16193 if (op1_info & MAY_BE_STRING) {
16205 if (op1_info & MAY_BE_REF) {
16239 } else if (op1_info & ((MAY_BE_ANY|MAY_BE_UNDEF)-MAY_BE_STRING)) {
16320 if (op1_info & (MAY_BE_LONG|MAY_BE_STRING)) {
16323 if (op1_info & MAY_BE_REF) {
16326 if (op1_info & MAY_BE_LONG) {
16327 if (op1_info & ((MAY_BE_ANY|MAY_BE_UNDEF)-MAY_BE_LONG)) {
16328 if (op1_info & (MAY_BE_STRING|MAY_BE_UNDEF)) {
16348 if (op1_info & MAY_BE_STRING) {
16352 if (op1_info & MAY_BE_STRING) {
16357 if (op1_info & ((MAY_BE_ANY|MAY_BE_UNDEF)-(MAY_BE_LONG|MAY_BE_STRING))) {
16358 if (op1_info & MAY_BE_UNDEF) {
16378 if (op1_info & MAY_BE_LONG) {
16437 } else if (!(op1_info & MAY_BE_UNDEF)) {
16449 if (op1_info & MAY_BE_UNDEF) {
16454 if (op1_info & (MAY_BE_ANY-(MAY_BE_LONG|MAY_BE_STRING))) {
17244 uint32_t op1_info, op2_info; local
17268 op1_info = OP1_INFO();
17270 return zend_jit_supported_binary_op(opline->extended_value, op1_info, op2_info);
17274 op1_info = OP1_INFO();
17276 if ((op1_info & MAY_BE_UNDEF) || (op2_info & MAY_BE_UNDEF)) {
17280 op1_info &= 1U << (trace->op1_type & ~(IS_TRACE_REFERENCE|IS_TRACE_INDIRECT|IS_TRACE_PACKED));
17285 return !(op1_info & MAY_BE_UNDEF)
17287 && (op1_info & (MAY_BE_LONG|MAY_BE_DOUBLE))
17295 op1_info = OP1_INFO();
17298 op1_info &= 1U << (trace->op1_type & ~(IS_TRACE_REFERENCE|IS_TRACE_INDIRECT|IS_TRACE_PACKED));
17303 return (op1_info & MAY_BE_LONG)
17309 op1_info = OP1_INFO();
17311 && (op1_info & MAY_BE_LONG)
17312 && !(op1_info & MAY_BE_REF);
17314 op1_info = OP1_INFO();
17316 && (op1_info & (MAY_BE_ANY|MAY_BE_REF|MAY_BE_UNDEF)) == MAY_BE_STRING;
17318 op1_info = OP1_INFO();
17320 && (op1_info & (MAY_BE_ANY|MAY_BE_REF|MAY_BE_UNDEF)) == MAY_BE_ARRAY;
17348 op1_info = OP1_INFO();
17353 op1_info &= ~((MAY_BE_ANY|MAY_BE_UNDEF) - MAY_BE_ARRAY);
17355 return ((op1_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_ARRAY) &&
17370 op1_info = OP1_INFO();
17390 op1_info &= ~((MAY_BE_ANY|MAY_BE_UNDEF) - MAY_BE_ARRAY);
17397 return ((op1_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_ARRAY) &&
17415 op1_info = OP1_INFO();
17416 return opline->op1_type == IS_UNUSED || (op1_info & MAY_BE_OBJECT);
17587 static void jit_frameless_icall1(zend_jit_ctx *jit, const zend_op *opline, uint32_t op1_info) argument
17592 if (op1_info & MAY_BE_RC1) {
17593 op1_info |= MAY_BE_RCN;
17602 if (opline->op1_type == IS_CV && (op1_info & MAY_BE_UNDEF)) {
17604 op1_info &= ~MAY_BE_UNDEF;
17605 op1_info |= MAY_BE_NULL;
17608 if (op1_info & MAY_BE_REF) {
17623 jit_FREE_OP(jit, opline->op1_type, opline->op1, op1_info, NULL);
17627 static void jit_frameless_icall2(zend_jit_ctx *jit, const zend_op *opline, uint32_t op1_info, uint3… argument
17632 if (op1_info & MAY_BE_RC1) {
17633 op1_info |= MAY_BE_RCN;
17647 if (opline->op1_type == IS_CV && (op1_info & MAY_BE_UNDEF)) {
17649 op1_info &= ~MAY_BE_UNDEF;
17650 op1_info |= MAY_BE_NULL;
17659 if (op1_info & MAY_BE_REF) {
17677 jit_FREE_OP(jit, opline->op1_type, opline->op1, op1_info, NULL);
17686 static void jit_frameless_icall3(zend_jit_ctx *jit, const zend_op *opline, uint32_t op1_info, uint3… argument
17691 if (op1_info & MAY_BE_RC1) {
17692 op1_info |= MAY_BE_RCN;
17712 if (opline->op1_type == IS_CV && (op1_info & MAY_BE_UNDEF)) {
17714 op1_info &= ~MAY_BE_UNDEF;
17715 op1_info |= MAY_BE_NULL;
17730 if (op1_info & MAY_BE_REF) {
17751 jit_FREE_OP(jit, opline->op1_type, opline->op1, op1_info, NULL);