diff options
Diffstat (limited to 'Zend/zend_vm_execute.h')
-rw-r--r-- | Zend/zend_vm_execute.h | 476 |
1 files changed, 284 insertions, 192 deletions
diff --git a/Zend/zend_vm_execute.h b/Zend/zend_vm_execute.h index 3351a078b2..7bd732acc2 100644 --- a/Zend/zend_vm_execute.h +++ b/Zend/zend_vm_execute.h @@ -12312,23 +12312,6 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_THROW_SPEC_TMP_HANDLER(ZEND_OP HANDLE_EXCEPTION(); } -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SEND_VAL_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *value, *arg; - zend_free_op free_op1; - - value = _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1); - arg = ZEND_CALL_VAR(EX(call), opline->result.var); - ZVAL_COPY_VALUE(arg, value); - if (IS_TMP_VAR == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED_P(arg))) { - Z_ADDREF_P(arg); - } - } - ZEND_VM_NEXT_OPCODE(); -} - static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SEND_VAL_EX_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) { USE_OPLINE @@ -15625,19 +15608,9 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SEND_VAR_NO_REF_SPEC_VAR_HANDL zend_free_op free_op1; zval *varptr, *arg; - if (!(opline->extended_value & ZEND_ARG_COMPILE_TIME_BOUND)) { - if (!ARG_SHOULD_BE_SENT_BY_REF(EX(call)->func, opline->op2.num)) { - ZEND_VM_TAIL_CALL(ZEND_SEND_VAR_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - } - varptr = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1); - if (EXPECTED(Z_ISREF_P(varptr) || - ((opline->extended_value & ZEND_ARG_COMPILE_TIME_BOUND) ? - ((opline->extended_value & ZEND_ARG_SEND_SILENT) != 0) : - ARG_MAY_BE_SENT_BY_REF(EX(call)->func, opline->op2.num - )))) { + if (EXPECTED(Z_ISREF_P(varptr))) { arg = ZEND_CALL_VAR(EX(call), opline->result.var); ZVAL_COPY_VALUE(arg, varptr); @@ -15653,6 +15626,98 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SEND_VAR_NO_REF_SPEC_VAR_HANDL ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); } +static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SEND_VAR_NO_REF_EX_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) +{ + USE_OPLINE + zend_free_op free_op1; + zval *varptr, *arg; + uint32_t arg_num = opline->op2.num; + + if (EXPECTED(0)) { + if (!QUICK_ARG_SHOULD_BE_SENT_BY_REF(EX(call)->func, arg_num)) { + ZEND_VM_TAIL_CALL(ZEND_SEND_VAR_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); + } + + varptr = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1); + + if (EXPECTED(Z_ISREF_P(varptr) || + QUICK_ARG_MAY_BE_SENT_BY_REF(EX(call)->func, arg_num))) { + arg = ZEND_CALL_VAR(EX(call), opline->result.var); + ZVAL_COPY_VALUE(arg, varptr); + + ZEND_VM_NEXT_OPCODE(); + } + } else { + if (!ARG_SHOULD_BE_SENT_BY_REF(EX(call)->func, arg_num)) { + ZEND_VM_TAIL_CALL(ZEND_SEND_VAR_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); + } + + varptr = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1); + + if (EXPECTED(Z_ISREF_P(varptr) || + ARG_MAY_BE_SENT_BY_REF(EX(call)->func, arg_num))) { + arg = ZEND_CALL_VAR(EX(call), opline->result.var); + ZVAL_COPY_VALUE(arg, varptr); + + ZEND_VM_NEXT_OPCODE(); + } + } + + SAVE_OPLINE(); + zend_error(E_NOTICE, "Only variables should be passed by reference"); + + arg = ZEND_CALL_VAR(EX(call), opline->result.var); + ZVAL_COPY_VALUE(arg, varptr); + + ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); +} + +static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SEND_VAR_NO_REF_EX_SPEC_VAR_QUICK_HANDLER(ZEND_OPCODE_HANDLER_ARGS) +{ + USE_OPLINE + zend_free_op free_op1; + zval *varptr, *arg; + uint32_t arg_num = opline->op2.num; + + if (EXPECTED(1)) { + if (!QUICK_ARG_SHOULD_BE_SENT_BY_REF(EX(call)->func, arg_num)) { + ZEND_VM_TAIL_CALL(ZEND_SEND_VAR_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); + } + + varptr = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1); + + if (EXPECTED(Z_ISREF_P(varptr) || + QUICK_ARG_MAY_BE_SENT_BY_REF(EX(call)->func, arg_num))) { + arg = ZEND_CALL_VAR(EX(call), opline->result.var); + ZVAL_COPY_VALUE(arg, varptr); + + ZEND_VM_NEXT_OPCODE(); + } + } else { + if (!ARG_SHOULD_BE_SENT_BY_REF(EX(call)->func, arg_num)) { + ZEND_VM_TAIL_CALL(ZEND_SEND_VAR_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); + } + + varptr = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1); + + if (EXPECTED(Z_ISREF_P(varptr) || + ARG_MAY_BE_SENT_BY_REF(EX(call)->func, arg_num))) { + arg = ZEND_CALL_VAR(EX(call), opline->result.var); + ZVAL_COPY_VALUE(arg, varptr); + + ZEND_VM_NEXT_OPCODE(); + } + } + + SAVE_OPLINE(); + zend_error(E_NOTICE, "Only variables should be passed by reference"); + + arg = ZEND_CALL_VAR(EX(call), opline->result.var); + ZVAL_COPY_VALUE(arg, varptr); + + ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); +} + static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SEND_REF_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) { USE_OPLINE @@ -54083,6 +54148,23 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FE_FREE_SPEC_TMPVAR_HANDLER(ZE ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); } +static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SEND_VAL_SPEC_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) +{ + USE_OPLINE + zval *value, *arg; + zend_free_op free_op1; + + value = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1); + arg = ZEND_CALL_VAR(EX(call), opline->result.var); + ZVAL_COPY_VALUE(arg, value); + if ((IS_TMP_VAR|IS_VAR) == IS_CONST) { + if (UNEXPECTED(Z_OPT_REFCOUNTED_P(arg))) { + Z_ADDREF_P(arg); + } + } + ZEND_VM_NEXT_OPCODE(); +} + static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BOOL_SPEC_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) { USE_OPLINE @@ -61650,6 +61732,16 @@ void zend_init_opcodes_handlers(void) ZEND_CASE_SPEC_CV_TMPVAR_HANDLER, ZEND_NULL_HANDLER, ZEND_CASE_SPEC_CV_CV_HANDLER, + ZEND_NULL_HANDLER, + ZEND_NULL_HANDLER, + ZEND_NULL_HANDLER, + ZEND_NULL_HANDLER, + ZEND_SEND_VAR_NO_REF_EX_SPEC_VAR_HANDLER, + ZEND_SEND_VAR_NO_REF_EX_SPEC_VAR_QUICK_HANDLER, + ZEND_NULL_HANDLER, + ZEND_NULL_HANDLER, + ZEND_NULL_HANDLER, + ZEND_NULL_HANDLER, ZEND_BOOL_SPEC_CONST_HANDLER, ZEND_BOOL_SPEC_TMPVAR_HANDLER, ZEND_BOOL_SPEC_TMPVAR_HANDLER, @@ -61785,8 +61877,8 @@ void zend_init_opcodes_handlers(void) ZEND_NULL_HANDLER, ZEND_NULL_HANDLER, ZEND_SEND_VAL_SPEC_CONST_HANDLER, - ZEND_SEND_VAL_SPEC_TMP_HANDLER, - ZEND_NULL_HANDLER, + ZEND_SEND_VAL_SPEC_TMPVAR_HANDLER, + ZEND_SEND_VAL_SPEC_TMPVAR_HANDLER, ZEND_NULL_HANDLER, ZEND_NULL_HANDLER, ZEND_NULL_HANDLER, @@ -64715,142 +64807,142 @@ void zend_init_opcodes_handlers(void) 1423 | SPEC_RULE_OP1, 1428 | SPEC_RULE_OP1, 1433 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 4471, - 4471, - 4471, - 1458 | SPEC_RULE_OP1, - 1463 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 1488 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 1513 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 1538 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 1563, - 1564 | SPEC_RULE_OP1, - 1569 | SPEC_RULE_OP2, - 1574 | SPEC_RULE_RETVAL, - 1576 | SPEC_RULE_OP2, - 1581 | SPEC_RULE_OP1, - 1586, - 1587 | SPEC_RULE_OP2, - 1592 | SPEC_RULE_OP1, - 1597 | SPEC_RULE_OP1 | SPEC_RULE_QUICK_ARG, - 1607 | SPEC_RULE_OP1, - 1612 | SPEC_RULE_OP1, - 1617 | SPEC_RULE_OP2, + 4481, + 1458 | SPEC_RULE_OP1 | SPEC_RULE_QUICK_ARG, + 4481, + 1468 | SPEC_RULE_OP1, + 1473 | SPEC_RULE_OP1 | SPEC_RULE_OP2, + 1498 | SPEC_RULE_OP1 | SPEC_RULE_OP2, + 1523 | SPEC_RULE_OP1 | SPEC_RULE_OP2, + 1548 | SPEC_RULE_OP1 | SPEC_RULE_OP2, + 1573, + 1574 | SPEC_RULE_OP1, + 1579 | SPEC_RULE_OP2, + 1584 | SPEC_RULE_RETVAL, + 1586 | SPEC_RULE_OP2, + 1591 | SPEC_RULE_OP1, + 1596, + 1597 | SPEC_RULE_OP2, + 1602 | SPEC_RULE_OP1, + 1607 | SPEC_RULE_OP1 | SPEC_RULE_QUICK_ARG, + 1617 | SPEC_RULE_OP1, 1622 | SPEC_RULE_OP1, - 1627 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 1652 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 1677 | SPEC_RULE_OP1, - 1682 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 1707 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 1732 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 1757 | SPEC_RULE_OP1, - 1762 | SPEC_RULE_OP1, + 1627 | SPEC_RULE_OP2, + 1632 | SPEC_RULE_OP1, + 1637 | SPEC_RULE_OP1 | SPEC_RULE_OP2, + 1662 | SPEC_RULE_OP1 | SPEC_RULE_OP2, + 1687 | SPEC_RULE_OP1, + 1692 | SPEC_RULE_OP1 | SPEC_RULE_OP2, + 1717 | SPEC_RULE_OP1 | SPEC_RULE_OP2, + 1742 | SPEC_RULE_OP1 | SPEC_RULE_OP2, 1767 | SPEC_RULE_OP1, - 1772 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 1797 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 1822 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 1847 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 1872 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 1897 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 1922 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 1947 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 1972 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 1997 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 2022 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 2047 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 2072 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 2097 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 2122 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 2147 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 2172 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 2197 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 2222 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 2247 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 4471, - 2272, - 2273, - 2274, - 2275, - 2276, - 2277 | SPEC_RULE_OP1, - 2282 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 2307 | SPEC_RULE_OP1, - 2312 | SPEC_RULE_OP2, + 1772 | SPEC_RULE_OP1, + 1777 | SPEC_RULE_OP1, + 1782 | SPEC_RULE_OP1 | SPEC_RULE_OP2, + 1807 | SPEC_RULE_OP1 | SPEC_RULE_OP2, + 1832 | SPEC_RULE_OP1 | SPEC_RULE_OP2, + 1857 | SPEC_RULE_OP1 | SPEC_RULE_OP2, + 1882 | SPEC_RULE_OP1 | SPEC_RULE_OP2, + 1907 | SPEC_RULE_OP1 | SPEC_RULE_OP2, + 1932 | SPEC_RULE_OP1 | SPEC_RULE_OP2, + 1957 | SPEC_RULE_OP1 | SPEC_RULE_OP2, + 1982 | SPEC_RULE_OP1 | SPEC_RULE_OP2, + 2007 | SPEC_RULE_OP1 | SPEC_RULE_OP2, + 2032 | SPEC_RULE_OP1 | SPEC_RULE_OP2, + 2057 | SPEC_RULE_OP1 | SPEC_RULE_OP2, + 2082 | SPEC_RULE_OP1 | SPEC_RULE_OP2, + 2107 | SPEC_RULE_OP1 | SPEC_RULE_OP2, + 2132 | SPEC_RULE_OP1 | SPEC_RULE_OP2, + 2157 | SPEC_RULE_OP1 | SPEC_RULE_OP2, + 2182 | SPEC_RULE_OP1 | SPEC_RULE_OP2, + 2207 | SPEC_RULE_OP1 | SPEC_RULE_OP2, + 2232 | SPEC_RULE_OP1 | SPEC_RULE_OP2, + 2257 | SPEC_RULE_OP1 | SPEC_RULE_OP2, + 4481, + 2282, + 2283, + 2284, + 2285, + 2286, + 2287 | SPEC_RULE_OP1, + 2292 | SPEC_RULE_OP1 | SPEC_RULE_OP2, 2317 | SPEC_RULE_OP1, - 2322 | SPEC_RULE_OP1, - 2327 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 2352 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 2377 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 2402 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 2427 | SPEC_RULE_OP1 | SPEC_RULE_QUICK_ARG, - 2437 | SPEC_RULE_OP1, - 2442 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 2467, - 2468 | SPEC_RULE_OP1, - 2473 | SPEC_RULE_OP1, + 2322 | SPEC_RULE_OP2, + 2327 | SPEC_RULE_OP1, + 2332 | SPEC_RULE_OP1, + 2337 | SPEC_RULE_OP1 | SPEC_RULE_OP2, + 2362 | SPEC_RULE_OP1 | SPEC_RULE_OP2, + 2387 | SPEC_RULE_OP1 | SPEC_RULE_OP2, + 2412 | SPEC_RULE_OP1 | SPEC_RULE_OP2, + 2437 | SPEC_RULE_OP1 | SPEC_RULE_QUICK_ARG, + 2447 | SPEC_RULE_OP1, + 2452 | SPEC_RULE_OP1 | SPEC_RULE_OP2, + 2477, 2478 | SPEC_RULE_OP1, 2483 | SPEC_RULE_OP1, - 2488 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 2513 | SPEC_RULE_OP1, - 2518 | SPEC_RULE_OP1, + 2488 | SPEC_RULE_OP1, + 2493 | SPEC_RULE_OP1, + 2498 | SPEC_RULE_OP1 | SPEC_RULE_OP2, 2523 | SPEC_RULE_OP1, - 2528 | SPEC_RULE_OP2, - 2533 | SPEC_RULE_RETVAL, - 2535 | SPEC_RULE_RETVAL, - 2537 | SPEC_RULE_RETVAL, - 2539 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 2564 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 2589 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 2614 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 2639 | SPEC_RULE_OP1 | SPEC_RULE_OP2 | SPEC_RULE_OP_DATA, - 2764, - 2765 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 2790, - 2791 | SPEC_RULE_OP2, - 2796, - 2797 | SPEC_RULE_OP1, - 2802 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 2827 | SPEC_RULE_OP2, - 2832 | SPEC_RULE_OP2, - 2837, - 2838 | SPEC_RULE_OP1 | SPEC_RULE_OP2 | SPEC_RULE_OP_DATA, - 2963 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 2988, - 2989, - 2990, - 2991 | SPEC_RULE_OP1, - 2996 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 3021, - 3022, - 3023 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 3048, - 3049, - 3050, - 3051 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 3076 | SPEC_RULE_OP1, - 3081, - 3082, - 3083, - 3084, - 3085 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 3110 | SPEC_RULE_OP1 | SPEC_RULE_OP2 | SPEC_RULE_DIM_OBJ, - 3185 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 3210 | SPEC_RULE_OP1, - 3215 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 3240, - 3241 | SPEC_RULE_OP2, - 3246 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 3271 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 3296 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 3321 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 3346 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 3371 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 3396 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 3421 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 3446 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 3471 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 3496 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 4471 + 2528 | SPEC_RULE_OP1, + 2533 | SPEC_RULE_OP1, + 2538 | SPEC_RULE_OP2, + 2543 | SPEC_RULE_RETVAL, + 2545 | SPEC_RULE_RETVAL, + 2547 | SPEC_RULE_RETVAL, + 2549 | SPEC_RULE_OP1 | SPEC_RULE_OP2, + 2574 | SPEC_RULE_OP1 | SPEC_RULE_OP2, + 2599 | SPEC_RULE_OP1 | SPEC_RULE_OP2, + 2624 | SPEC_RULE_OP1 | SPEC_RULE_OP2, + 2649 | SPEC_RULE_OP1 | SPEC_RULE_OP2 | SPEC_RULE_OP_DATA, + 2774, + 2775 | SPEC_RULE_OP1 | SPEC_RULE_OP2, + 2800, + 2801 | SPEC_RULE_OP2, + 2806, + 2807 | SPEC_RULE_OP1, + 2812 | SPEC_RULE_OP1 | SPEC_RULE_OP2, + 2837 | SPEC_RULE_OP2, + 2842 | SPEC_RULE_OP2, + 2847, + 2848 | SPEC_RULE_OP1 | SPEC_RULE_OP2 | SPEC_RULE_OP_DATA, + 2973 | SPEC_RULE_OP1 | SPEC_RULE_OP2, + 2998, + 2999, + 3000, + 3001 | SPEC_RULE_OP1, + 3006 | SPEC_RULE_OP1 | SPEC_RULE_OP2, + 3031, + 3032, + 3033 | SPEC_RULE_OP1 | SPEC_RULE_OP2, + 3058, + 3059, + 3060, + 3061 | SPEC_RULE_OP1 | SPEC_RULE_OP2, + 3086 | SPEC_RULE_OP1, + 3091, + 3092, + 3093, + 3094, + 3095 | SPEC_RULE_OP1 | SPEC_RULE_OP2, + 3120 | SPEC_RULE_OP1 | SPEC_RULE_OP2 | SPEC_RULE_DIM_OBJ, + 3195 | SPEC_RULE_OP1 | SPEC_RULE_OP2, + 3220 | SPEC_RULE_OP1, + 3225 | SPEC_RULE_OP1 | SPEC_RULE_OP2, + 3250, + 3251 | SPEC_RULE_OP2, + 3256 | SPEC_RULE_OP1 | SPEC_RULE_OP2, + 3281 | SPEC_RULE_OP1 | SPEC_RULE_OP2, + 3306 | SPEC_RULE_OP1 | SPEC_RULE_OP2, + 3331 | SPEC_RULE_OP1 | SPEC_RULE_OP2, + 3356 | SPEC_RULE_OP1 | SPEC_RULE_OP2, + 3381 | SPEC_RULE_OP1 | SPEC_RULE_OP2, + 3406 | SPEC_RULE_OP1 | SPEC_RULE_OP2, + 3431 | SPEC_RULE_OP1 | SPEC_RULE_OP2, + 3456 | SPEC_RULE_OP1 | SPEC_RULE_OP2, + 3481 | SPEC_RULE_OP1 | SPEC_RULE_OP2, + 3506 | SPEC_RULE_OP1 | SPEC_RULE_OP2, + 4481 }; zend_opcode_handlers = labels; zend_handlers_count = sizeof(labels) / sizeof(void*); @@ -64957,7 +65049,7 @@ ZEND_API void zend_vm_set_opcode_handler_ex(zend_op* op, uint32_t op1_info, uint if (op->op1_type == IS_CONST && op->op2_type == IS_CONST) { break; } - spec = 3521 | SPEC_RULE_OP1 | SPEC_RULE_OP2; + spec = 3531 | SPEC_RULE_OP1 | SPEC_RULE_OP2; if (op->op1_type > op->op2_type) { zend_swap_operands(op); } @@ -64965,7 +65057,7 @@ ZEND_API void zend_vm_set_opcode_handler_ex(zend_op* op, uint32_t op1_info, uint if (op->op1_type == IS_CONST && op->op2_type == IS_CONST) { break; } - spec = 3546 | SPEC_RULE_OP1 | SPEC_RULE_OP2; + spec = 3556 | SPEC_RULE_OP1 | SPEC_RULE_OP2; if (op->op1_type > op->op2_type) { zend_swap_operands(op); } @@ -64973,7 +65065,7 @@ ZEND_API void zend_vm_set_opcode_handler_ex(zend_op* op, uint32_t op1_info, uint if (op->op1_type == IS_CONST && op->op2_type == IS_CONST) { break; } - spec = 3571 | SPEC_RULE_OP1 | SPEC_RULE_OP2; + spec = 3581 | SPEC_RULE_OP1 | SPEC_RULE_OP2; if (op->op1_type > op->op2_type) { zend_swap_operands(op); } @@ -64984,17 +65076,17 @@ ZEND_API void zend_vm_set_opcode_handler_ex(zend_op* op, uint32_t op1_info, uint if (op->op1_type == IS_CONST && op->op2_type == IS_CONST) { break; } - spec = 3596 | SPEC_RULE_OP1 | SPEC_RULE_OP2; + spec = 3606 | SPEC_RULE_OP1 | SPEC_RULE_OP2; } else if ((op1_info == MAY_BE_LONG && op2_info == MAY_BE_LONG)) { if (op->op1_type == IS_CONST && op->op2_type == IS_CONST) { break; } - spec = 3621 | SPEC_RULE_OP1 | SPEC_RULE_OP2; + spec = 3631 | SPEC_RULE_OP1 | SPEC_RULE_OP2; } else if ((op1_info == MAY_BE_DOUBLE && op2_info == MAY_BE_DOUBLE)) { if (op->op1_type == IS_CONST && op->op2_type == IS_CONST) { break; } - spec = 3646 | SPEC_RULE_OP1 | SPEC_RULE_OP2; + spec = 3656 | SPEC_RULE_OP1 | SPEC_RULE_OP2; } break; case ZEND_MUL: @@ -65002,7 +65094,7 @@ ZEND_API void zend_vm_set_opcode_handler_ex(zend_op* op, uint32_t op1_info, uint if (op->op1_type == IS_CONST && op->op2_type == IS_CONST) { break; } - spec = 3671 | SPEC_RULE_OP1 | SPEC_RULE_OP2; + spec = 3681 | SPEC_RULE_OP1 | SPEC_RULE_OP2; if (op->op1_type > op->op2_type) { zend_swap_operands(op); } @@ -65010,7 +65102,7 @@ ZEND_API void zend_vm_set_opcode_handler_ex(zend_op* op, uint32_t op1_info, uint if (op->op1_type == IS_CONST && op->op2_type == IS_CONST) { break; } - spec = 3696 | SPEC_RULE_OP1 | SPEC_RULE_OP2; + spec = 3706 | SPEC_RULE_OP1 | SPEC_RULE_OP2; if (op->op1_type > op->op2_type) { zend_swap_operands(op); } @@ -65018,7 +65110,7 @@ ZEND_API void zend_vm_set_opcode_handler_ex(zend_op* op, uint32_t op1_info, uint if (op->op1_type == IS_CONST && op->op2_type == IS_CONST) { break; } - spec = 3721 | SPEC_RULE_OP1 | SPEC_RULE_OP2; + spec = 3731 | SPEC_RULE_OP1 | SPEC_RULE_OP2; if (op->op1_type > op->op2_type) { zend_swap_operands(op); } @@ -65029,7 +65121,7 @@ ZEND_API void zend_vm_set_opcode_handler_ex(zend_op* op, uint32_t op1_info, uint if (op->op1_type == IS_CONST && op->op2_type == IS_CONST) { break; } - spec = 3746 | SPEC_RULE_OP1 | SPEC_RULE_OP2 | SPEC_RULE_SMART_BRANCH; + spec = 3756 | SPEC_RULE_OP1 | SPEC_RULE_OP2 | SPEC_RULE_SMART_BRANCH; if (op->op1_type > op->op2_type) { zend_swap_operands(op); } @@ -65037,7 +65129,7 @@ ZEND_API void zend_vm_set_opcode_handler_ex(zend_op* op, uint32_t op1_info, uint if (op->op1_type == IS_CONST && op->op2_type == IS_CONST) { break; } - spec = 3821 | SPEC_RULE_OP1 | SPEC_RULE_OP2 | SPEC_RULE_SMART_BRANCH; + spec = 3831 | SPEC_RULE_OP1 | SPEC_RULE_OP2 | SPEC_RULE_SMART_BRANCH; if (op->op1_type > op->op2_type) { zend_swap_operands(op); } @@ -65048,7 +65140,7 @@ ZEND_API void zend_vm_set_opcode_handler_ex(zend_op* op, uint32_t op1_info, uint if (op->op1_type == IS_CONST && op->op2_type == IS_CONST) { break; } - spec = 3896 | SPEC_RULE_OP1 | SPEC_RULE_OP2 | SPEC_RULE_SMART_BRANCH; + spec = 3906 | SPEC_RULE_OP1 | SPEC_RULE_OP2 | SPEC_RULE_SMART_BRANCH; if (op->op1_type > op->op2_type) { zend_swap_operands(op); } @@ -65056,7 +65148,7 @@ ZEND_API void zend_vm_set_opcode_handler_ex(zend_op* op, uint32_t op1_info, uint if (op->op1_type == IS_CONST && op->op2_type == IS_CONST) { break; } - spec = 3971 | SPEC_RULE_OP1 | SPEC_RULE_OP2 | SPEC_RULE_SMART_BRANCH; + spec = 3981 | SPEC_RULE_OP1 | SPEC_RULE_OP2 | SPEC_RULE_SMART_BRANCH; if (op->op1_type > op->op2_type) { zend_swap_operands(op); } @@ -65067,12 +65159,12 @@ ZEND_API void zend_vm_set_opcode_handler_ex(zend_op* op, uint32_t op1_info, uint if (op->op1_type == IS_CONST && op->op2_type == IS_CONST) { break; } - spec = 4046 | SPEC_RULE_OP1 | SPEC_RULE_OP2 | SPEC_RULE_SMART_BRANCH; + spec = 4056 | SPEC_RULE_OP1 | SPEC_RULE_OP2 | SPEC_RULE_SMART_BRANCH; } else if ((op1_info == MAY_BE_DOUBLE && op2_info == MAY_BE_DOUBLE)) { if (op->op1_type == IS_CONST && op->op2_type == IS_CONST) { break; } - spec = 4121 | SPEC_RULE_OP1 | SPEC_RULE_OP2 | SPEC_RULE_SMART_BRANCH; + spec = 4131 | SPEC_RULE_OP1 | SPEC_RULE_OP2 | SPEC_RULE_SMART_BRANCH; } break; case ZEND_IS_SMALLER_OR_EQUAL: @@ -65080,60 +65172,60 @@ ZEND_API void zend_vm_set_opcode_handler_ex(zend_op* op, uint32_t op1_info, uint if (op->op1_type == IS_CONST && op->op2_type == IS_CONST) { break; } - spec = 4196 | SPEC_RULE_OP1 | SPEC_RULE_OP2 | SPEC_RULE_SMART_BRANCH; + spec = 4206 | SPEC_RULE_OP1 | SPEC_RULE_OP2 | SPEC_RULE_SMART_BRANCH; } else if ((op1_info == MAY_BE_DOUBLE && op2_info == MAY_BE_DOUBLE)) { if (op->op1_type == IS_CONST && op->op2_type == IS_CONST) { break; } - spec = 4271 | SPEC_RULE_OP1 | SPEC_RULE_OP2 | SPEC_RULE_SMART_BRANCH; + spec = 4281 | SPEC_RULE_OP1 | SPEC_RULE_OP2 | SPEC_RULE_SMART_BRANCH; } break; case ZEND_QM_ASSIGN: if ((op1_info == MAY_BE_DOUBLE)) { - spec = 4436 | SPEC_RULE_OP1; + spec = 4446 | SPEC_RULE_OP1; } else if ((!(op1_info & ((MAY_BE_ANY|MAY_BE_UNDEF)-(MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE|MAY_BE_LONG|MAY_BE_DOUBLE))))) { - spec = 4441 | SPEC_RULE_OP1; + spec = 4451 | SPEC_RULE_OP1; } break; case ZEND_PRE_INC: if ((res_info == MAY_BE_LONG && op1_info == MAY_BE_LONG)) { - spec = 4346 | SPEC_RULE_OP1 | SPEC_RULE_RETVAL; - } else if ((op1_info == MAY_BE_LONG)) { spec = 4356 | SPEC_RULE_OP1 | SPEC_RULE_RETVAL; - } else if ((op1_info == (MAY_BE_LONG|MAY_BE_DOUBLE))) { + } else if ((op1_info == MAY_BE_LONG)) { spec = 4366 | SPEC_RULE_OP1 | SPEC_RULE_RETVAL; + } else if ((op1_info == (MAY_BE_LONG|MAY_BE_DOUBLE))) { + spec = 4376 | SPEC_RULE_OP1 | SPEC_RULE_RETVAL; } break; case ZEND_PRE_DEC: if ((res_info == MAY_BE_LONG && op1_info == MAY_BE_LONG)) { - spec = 4376 | SPEC_RULE_OP1 | SPEC_RULE_RETVAL; - } else if ((op1_info == MAY_BE_LONG)) { spec = 4386 | SPEC_RULE_OP1 | SPEC_RULE_RETVAL; - } else if ((op1_info == (MAY_BE_LONG|MAY_BE_DOUBLE))) { + } else if ((op1_info == MAY_BE_LONG)) { spec = 4396 | SPEC_RULE_OP1 | SPEC_RULE_RETVAL; + } else if ((op1_info == (MAY_BE_LONG|MAY_BE_DOUBLE))) { + spec = 4406 | SPEC_RULE_OP1 | SPEC_RULE_RETVAL; } break; case ZEND_POST_INC: if ((res_info == MAY_BE_LONG && op1_info == MAY_BE_LONG)) { - spec = 4406 | SPEC_RULE_OP1; + spec = 4416 | SPEC_RULE_OP1; } else if ((op1_info == MAY_BE_LONG)) { - spec = 4411 | SPEC_RULE_OP1; + spec = 4421 | SPEC_RULE_OP1; } else if ((op1_info == (MAY_BE_LONG|MAY_BE_DOUBLE))) { - spec = 4416 | SPEC_RULE_OP1; + spec = 4426 | SPEC_RULE_OP1; } break; case ZEND_POST_DEC: if ((res_info == MAY_BE_LONG && op1_info == MAY_BE_LONG)) { - spec = 4421 | SPEC_RULE_OP1; + spec = 4431 | SPEC_RULE_OP1; } else if ((op1_info == MAY_BE_LONG)) { - spec = 4426 | SPEC_RULE_OP1; + spec = 4436 | SPEC_RULE_OP1; } else if ((op1_info == (MAY_BE_LONG|MAY_BE_DOUBLE))) { - spec = 4431 | SPEC_RULE_OP1; + spec = 4441 | SPEC_RULE_OP1; } break; case ZEND_FETCH_DIM_R: if ((!(op2_info & (MAY_BE_UNDEF|MAY_BE_NULL|MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE|MAY_BE_REF)))) { - spec = 4446 | SPEC_RULE_OP1 | SPEC_RULE_OP2; + spec = 4456 | SPEC_RULE_OP1 | SPEC_RULE_OP2; } break; default: |