summaryrefslogtreecommitdiff
path: root/Zend/zend_vm_execute.h
diff options
context:
space:
mode:
Diffstat (limited to 'Zend/zend_vm_execute.h')
-rw-r--r--Zend/zend_vm_execute.h476
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: