]> granicus.if.org Git - php/commitdiff
Fixed situation, when CHECH_EXCEPTION() might change value of "opline" variable and...
authorDmitry Stogov <dmitry@zend.com>
Wed, 8 Jul 2015 15:33:58 +0000 (18:33 +0300)
committerDmitry Stogov <dmitry@zend.com>
Wed, 8 Jul 2015 15:33:58 +0000 (18:33 +0300)
CHECK_EXCEPTION() macro is removed. ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTIO() should be used instead. It's equivalent to old CHECK_EXCEPTION() + ZEND_VM_NEXT_OPCODE().
As a side effect, this also slightly improved performnce of builds with GCC >= 4.8.

Zend/zend_compile.c
Zend/zend_execute.c
Zend/zend_vm_def.h
Zend/zend_vm_execute.h
Zend/zend_vm_gen.php

index 51eb0bc754fc39f7d3ca83c32cb18a6135e8fb49..9e50dec7efdc95de4216eaf1d554994520199cdb 100644 (file)
@@ -2681,7 +2681,8 @@ uint32_t zend_compile_args(zend_ast *ast, zend_function *fbc) /* {{{ */
                        }
                } else {
                        zend_compile_expr(&arg_node, arg);
-                       if (arg_node.op_type & (IS_VAR|IS_CV)) {
+                       ZEND_ASSERT(arg_node.op_type != IS_CV);
+                       if (arg_node.op_type == IS_VAR) {
                                opcode = ZEND_SEND_VAR_NO_REF;
                                if (fbc && ARG_MUST_BE_SENT_BY_REF(fbc, arg_num)) {
                                        flags |= ZEND_ARG_SEND_BY_REF;
index 54841e26b550a72af834367d2ba3c8715305bd32..7aa34bb2df8a442251297fa86b0114a406a9ee85 100644 (file)
@@ -2552,11 +2552,21 @@ void zend_cleanup_unfinished_execution(zend_execute_data *execute_data, uint32_t
 # endif
 #endif
 
-#define ZEND_VM_NEXT_OPCODE() \
+#define ZEND_VM_NEXT_OPCODE_EX(check_exception, skip) \
        CHECK_SYMBOL_TABLES() \
-       ZEND_VM_INC_OPCODE(); \
+       if (check_exception) { \
+               OPLINE = EX(opline) + (skip); \
+       } else { \
+               OPLINE = opline + (skip); \
+       } \
        ZEND_VM_CONTINUE()
 
+#define ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION() \
+       ZEND_VM_NEXT_OPCODE_EX(1, 1)
+
+#define ZEND_VM_NEXT_OPCODE() \
+       ZEND_VM_NEXT_OPCODE_EX(0, 1)
+
 #define ZEND_VM_SET_NEXT_OPCODE(new_op) \
        CHECK_SYMBOL_TABLES() \
        OPLINE = new_op
index fc66f766941c0188b89e544f03cee78d1ab2acc3..8744bf315a0073052a5e6e7bd61bc5fd5eecc133 100644 (file)
@@ -65,8 +65,7 @@ ZEND_VM_HANDLER(1, ZEND_ADD, CONST|TMPVAR|CV, CONST|TMPVAR|CV)
        add_function(EX_VAR(opline->result.var), op1, op2);
        FREE_OP1();
        FREE_OP2();
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 ZEND_VM_HANDLER(2, ZEND_SUB, CONST|TMPVAR|CV, CONST|TMPVAR|CV)
@@ -109,8 +108,7 @@ ZEND_VM_HANDLER(2, ZEND_SUB, CONST|TMPVAR|CV, CONST|TMPVAR|CV)
        sub_function(EX_VAR(opline->result.var), op1, op2);
        FREE_OP1();
        FREE_OP2();
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 ZEND_VM_HANDLER(3, ZEND_MUL, CONST|TMPVAR|CV, CONST|TMPVAR|CV)
@@ -156,8 +154,7 @@ ZEND_VM_HANDLER(3, ZEND_MUL, CONST|TMPVAR|CV, CONST|TMPVAR|CV)
        mul_function(EX_VAR(opline->result.var), op1, op2);
        FREE_OP1();
        FREE_OP2();
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 ZEND_VM_HANDLER(4, ZEND_DIV, CONST|TMPVAR|CV, CONST|TMPVAR|CV)
@@ -172,8 +169,7 @@ ZEND_VM_HANDLER(4, ZEND_DIV, CONST|TMPVAR|CV, CONST|TMPVAR|CV)
        fast_div_function(EX_VAR(opline->result.var), op1, op2);
        FREE_OP1();
        FREE_OP2();
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 ZEND_VM_HANDLER(5, ZEND_MOD, CONST|TMPVAR|CV, CONST|TMPVAR|CV)
@@ -211,8 +207,7 @@ ZEND_VM_HANDLER(5, ZEND_MOD, CONST|TMPVAR|CV, CONST|TMPVAR|CV)
        mod_function(EX_VAR(opline->result.var), op1, op2);
        FREE_OP1();
        FREE_OP2();
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 ZEND_VM_HANDLER(6, ZEND_SL, CONST|TMPVAR|CV, CONST|TMPVAR|CV)
@@ -227,8 +222,7 @@ ZEND_VM_HANDLER(6, ZEND_SL, CONST|TMPVAR|CV, CONST|TMPVAR|CV)
        shift_left_function(EX_VAR(opline->result.var), op1, op2);
        FREE_OP1();
        FREE_OP2();
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 ZEND_VM_HANDLER(7, ZEND_SR, CONST|TMPVAR|CV, CONST|TMPVAR|CV)
@@ -243,8 +237,7 @@ ZEND_VM_HANDLER(7, ZEND_SR, CONST|TMPVAR|CV, CONST|TMPVAR|CV)
        shift_right_function(EX_VAR(opline->result.var), op1, op2);
        FREE_OP1();
        FREE_OP2();
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 ZEND_VM_HANDLER(8, ZEND_CONCAT, CONST|TMPVAR|CV, CONST|TMPVAR|CV)
@@ -304,8 +297,7 @@ ZEND_VM_HANDLER(8, ZEND_CONCAT, CONST|TMPVAR|CV, CONST|TMPVAR|CV)
                FREE_OP1();
        } while (0);
        FREE_OP2();
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 ZEND_VM_HANDLER(15, ZEND_IS_IDENTICAL, CONST|TMP|VAR|CV, CONST|TMP|VAR|CV)
@@ -324,7 +316,7 @@ ZEND_VM_HANDLER(15, ZEND_IS_IDENTICAL, CONST|TMP|VAR|CV, CONST|TMP|VAR|CV)
        ZEND_VM_SMART_BRANCH(result, (OP1_TYPE|OP2_TYPE) & (IS_VAR|IS_TMP_VAR));
        ZVAL_BOOL(EX_VAR(opline->result.var), result);
        if ((OP1_TYPE|OP2_TYPE) & (IS_VAR|IS_TMP_VAR)) {
-               CHECK_EXCEPTION();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        }
        ZEND_VM_NEXT_OPCODE();
 }
@@ -345,7 +337,7 @@ ZEND_VM_HANDLER(16, ZEND_IS_NOT_IDENTICAL, CONST|TMP|VAR|CV, CONST|TMP|VAR|CV)
        ZEND_VM_SMART_BRANCH(result, (OP1_TYPE|OP2_TYPE) & (IS_VAR|IS_TMP_VAR));
        ZVAL_BOOL(EX_VAR(opline->result.var), result);
        if ((OP1_TYPE|OP2_TYPE) & (IS_VAR|IS_TMP_VAR)) {
-               CHECK_EXCEPTION();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        }
        ZEND_VM_NEXT_OPCODE();
 }
@@ -415,8 +407,7 @@ ZEND_VM_HANDLER(17, ZEND_IS_EQUAL, CONST|TMPVAR|CV, CONST|TMPVAR|CV)
        ZVAL_BOOL(result, Z_LVAL_P(result) == 0);
        FREE_OP1();
        FREE_OP2();
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 ZEND_VM_HANDLER(18, ZEND_IS_NOT_EQUAL, CONST|TMPVAR|CV, CONST|TMPVAR|CV)
@@ -484,8 +475,7 @@ ZEND_VM_HANDLER(18, ZEND_IS_NOT_EQUAL, CONST|TMPVAR|CV, CONST|TMPVAR|CV)
        ZVAL_BOOL(result, Z_LVAL_P(result) != 0);
        FREE_OP1();
        FREE_OP2();
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 ZEND_VM_HANDLER(19, ZEND_IS_SMALLER, CONST|TMPVAR|CV, CONST|TMPVAR|CV)
@@ -535,8 +525,7 @@ ZEND_VM_HANDLER(19, ZEND_IS_SMALLER, CONST|TMPVAR|CV, CONST|TMPVAR|CV)
        ZVAL_BOOL(result, Z_LVAL_P(result) < 0);
        FREE_OP1();
        FREE_OP2();
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 ZEND_VM_HANDLER(20, ZEND_IS_SMALLER_OR_EQUAL, CONST|TMPVAR|CV, CONST|TMPVAR|CV)
@@ -586,8 +575,7 @@ ZEND_VM_HANDLER(20, ZEND_IS_SMALLER_OR_EQUAL, CONST|TMPVAR|CV, CONST|TMPVAR|CV)
        ZVAL_BOOL(result, Z_LVAL_P(result) <= 0);
        FREE_OP1();
        FREE_OP2();
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 ZEND_VM_HANDLER(170, ZEND_SPACESHIP, CONST|TMPVAR|CV, CONST|TMPVAR|CV)
@@ -602,8 +590,7 @@ ZEND_VM_HANDLER(170, ZEND_SPACESHIP, CONST|TMPVAR|CV, CONST|TMPVAR|CV)
        compare_function(EX_VAR(opline->result.var), op1, op2);
        FREE_OP1();
        FREE_OP2();
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 ZEND_VM_HANDLER(9, ZEND_BW_OR, CONST|TMPVAR|CV, CONST|TMPVAR|CV)
@@ -618,8 +605,7 @@ ZEND_VM_HANDLER(9, ZEND_BW_OR, CONST|TMPVAR|CV, CONST|TMPVAR|CV)
        bitwise_or_function(EX_VAR(opline->result.var), op1, op2);
        FREE_OP1();
        FREE_OP2();
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 ZEND_VM_HANDLER(10, ZEND_BW_AND, CONST|TMPVAR|CV, CONST|TMPVAR|CV)
@@ -634,8 +620,7 @@ ZEND_VM_HANDLER(10, ZEND_BW_AND, CONST|TMPVAR|CV, CONST|TMPVAR|CV)
        bitwise_and_function(EX_VAR(opline->result.var), op1, op2);
        FREE_OP1();
        FREE_OP2();
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 ZEND_VM_HANDLER(11, ZEND_BW_XOR, CONST|TMPVAR|CV, CONST|TMPVAR|CV)
@@ -650,8 +635,7 @@ ZEND_VM_HANDLER(11, ZEND_BW_XOR, CONST|TMPVAR|CV, CONST|TMPVAR|CV)
        bitwise_xor_function(EX_VAR(opline->result.var), op1, op2);
        FREE_OP1();
        FREE_OP2();
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 ZEND_VM_HANDLER(14, ZEND_BOOL_XOR, CONST|TMPVAR|CV, CONST|TMPVAR|CV)
@@ -666,8 +650,7 @@ ZEND_VM_HANDLER(14, ZEND_BOOL_XOR, CONST|TMPVAR|CV, CONST|TMPVAR|CV)
        boolean_xor_function(EX_VAR(opline->result.var), op1, op2);
        FREE_OP1();
        FREE_OP2();
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 ZEND_VM_HANDLER(12, ZEND_BW_NOT, CONST|TMPVAR|CV, ANY)
@@ -679,8 +662,7 @@ ZEND_VM_HANDLER(12, ZEND_BW_NOT, CONST|TMPVAR|CV, ANY)
        bitwise_not_function(EX_VAR(opline->result.var),
                GET_OP1_ZVAL_PTR(BP_VAR_R));
        FREE_OP1();
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 ZEND_VM_HANDLER(13, ZEND_BOOL_NOT, CONST|TMPVAR|CV, ANY)
@@ -693,17 +675,17 @@ ZEND_VM_HANDLER(13, ZEND_BOOL_NOT, CONST|TMPVAR|CV, ANY)
        if (Z_TYPE_INFO_P(val) == IS_TRUE) {
                ZVAL_FALSE(EX_VAR(opline->result.var));
        } else if (EXPECTED(Z_TYPE_INFO_P(val) <= IS_TRUE)) {
+               ZVAL_TRUE(EX_VAR(opline->result.var));
                if (UNEXPECTED(Z_TYPE_INFO_P(val) == IS_UNDEF)) {
                        SAVE_OPLINE();
                        GET_OP1_UNDEF_CV(val, BP_VAR_R);
-                       CHECK_EXCEPTION();
+                       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
                }
-               ZVAL_TRUE(EX_VAR(opline->result.var));
        } else {
                SAVE_OPLINE();
                ZVAL_BOOL(EX_VAR(opline->result.var), !i_zend_is_true(val));
                FREE_OP1();
-               CHECK_EXCEPTION();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        }
        ZEND_VM_NEXT_OPCODE();
 }
@@ -770,9 +752,7 @@ ZEND_VM_HELPER_EX(zend_binary_assign_op_obj_helper, VAR|UNUSED|CV, CONST|TMPVAR|
        FREE_OP2();
        FREE_OP1_VAR_PTR();
        /* assign_obj has two opcodes! */
-       CHECK_EXCEPTION();
-       ZEND_VM_INC_OPCODE();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_EX(1, 2);
 }
 
 ZEND_VM_HELPER_EX(zend_binary_assign_op_dim_helper, VAR|UNUSED|CV, CONST|TMPVAR|UNUSED|CV, binary_op_type binary_op)
@@ -843,9 +823,7 @@ ZEND_VM_HELPER_EX(zend_binary_assign_op_dim_helper, VAR|UNUSED|CV, CONST|TMPVAR|
        FREE_OP2();
        FREE_OP(free_op_data1);
        FREE_OP1_VAR_PTR();
-       CHECK_EXCEPTION();
-       ZEND_VM_INC_OPCODE();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_EX(1, 2);
 }
 
 ZEND_VM_HELPER_EX(zend_binary_assign_op_helper, VAR|CV, CONST|TMPVAR|CV, binary_op_type binary_op)
@@ -882,8 +860,7 @@ ZEND_VM_HELPER_EX(zend_binary_assign_op_helper, VAR|CV, CONST|TMPVAR|CV, binary_
 
        FREE_OP2();
        FREE_OP1_VAR_PTR();
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 ZEND_VM_HANDLER(23, ZEND_ASSIGN_ADD, VAR|UNUSED|CV, CONST|TMPVAR|UNUSED|CV)
@@ -1174,8 +1151,7 @@ ZEND_VM_HELPER_EX(zend_pre_incdec_property_helper, VAR|UNUSED|CV, CONST|TMPVAR|C
 
        FREE_OP2();
        FREE_OP1_VAR_PTR();
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 ZEND_VM_HANDLER(132, ZEND_PRE_INC_OBJ, VAR|UNUSED|CV, CONST|TMPVAR|CV)
@@ -1252,8 +1228,7 @@ ZEND_VM_HELPER_EX(zend_post_incdec_property_helper, VAR|UNUSED|CV, CONST|TMPVAR|
 
        FREE_OP2();
        FREE_OP1_VAR_PTR();
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 ZEND_VM_HANDLER(134, ZEND_POST_INC_OBJ, VAR|UNUSED|CV, CONST|TMPVAR|CV)
@@ -1309,8 +1284,7 @@ ZEND_VM_HANDLER(34, ZEND_PRE_INC, VAR|CV, ANY)
        }
 
        FREE_OP1_VAR_PTR();
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 ZEND_VM_HANDLER(35, ZEND_PRE_DEC, VAR|CV, ANY)
@@ -1356,8 +1330,7 @@ ZEND_VM_HANDLER(35, ZEND_PRE_DEC, VAR|CV, ANY)
        }
 
        FREE_OP1_VAR_PTR();
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 ZEND_VM_HANDLER(36, ZEND_POST_INC, VAR|CV, ANY)
@@ -1396,8 +1369,7 @@ ZEND_VM_HANDLER(36, ZEND_POST_INC, VAR|CV, ANY)
        increment_function(var_ptr);
 
        FREE_OP1_VAR_PTR();
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 ZEND_VM_HANDLER(37, ZEND_POST_DEC, VAR|CV, ANY)
@@ -1436,8 +1408,7 @@ ZEND_VM_HANDLER(37, ZEND_POST_DEC, VAR|CV, ANY)
        decrement_function(var_ptr);
 
        FREE_OP1_VAR_PTR();
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 ZEND_VM_HANDLER(40, ZEND_ECHO, CONST|TMPVAR|CV, ANY)
@@ -1467,8 +1438,7 @@ ZEND_VM_HANDLER(40, ZEND_ECHO, CONST|TMPVAR|CV, ANY)
        }
 
        FREE_OP1();
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 ZEND_VM_HELPER_EX(zend_fetch_var_address_helper, CONST|TMPVAR|CV, UNUSED|CONST|VAR, int type)
@@ -1521,8 +1491,7 @@ ZEND_VM_HELPER_EX(zend_fetch_var_address_helper, CONST|TMPVAR|CV, UNUSED|CONST|V
                                                zend_string_release(name);
                                        }
                                        FREE_OP1();
-                                       CHECK_EXCEPTION();
-                                       ZEND_VM_NEXT_OPCODE();
+                                       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
                                }
                                CACHE_PTR(Z_CACHE_SLOT_P(EX_CONSTANT(opline->op2)), ce);
                        }
@@ -1619,8 +1588,7 @@ ZEND_VM_C_LABEL(fetch_var_return):
        } else {
                ZVAL_INDIRECT(EX_VAR(opline->result.var), retval);
        }
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 ZEND_VM_HANDLER(80, ZEND_FETCH_R, CONST|TMPVAR|CV, UNUSED|CONST|VAR)
@@ -1670,8 +1638,7 @@ ZEND_VM_HANDLER(81, ZEND_FETCH_DIM_R, CONST|TMPVAR|CV, CONST|TMPVAR|CV)
        zend_fetch_dimension_address_read_R(EX_VAR(opline->result.var), container, GET_OP2_ZVAL_PTR(BP_VAR_R), OP2_TYPE);
        FREE_OP2();
        FREE_OP1();
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 ZEND_VM_HANDLER(84, ZEND_FETCH_DIM_W, VAR|CV, CONST|TMPVAR|UNUSED|CV)
@@ -1693,8 +1660,7 @@ ZEND_VM_HANDLER(84, ZEND_FETCH_DIM_W, VAR|CV, CONST|TMPVAR|UNUSED|CV)
                EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
        }
        FREE_OP1_VAR_PTR();
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 ZEND_VM_HANDLER(87, ZEND_FETCH_DIM_RW, VAR|CV, CONST|TMPVAR|UNUSED|CV)
@@ -1716,8 +1682,7 @@ ZEND_VM_HANDLER(87, ZEND_FETCH_DIM_RW, VAR|CV, CONST|TMPVAR|UNUSED|CV)
                EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
        }
        FREE_OP1_VAR_PTR();
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 ZEND_VM_HANDLER(90, ZEND_FETCH_DIM_IS, CONST|TMPVAR|CV, CONST|TMPVAR|CV)
@@ -1731,8 +1696,7 @@ ZEND_VM_HANDLER(90, ZEND_FETCH_DIM_IS, CONST|TMPVAR|CV, CONST|TMPVAR|CV)
        zend_fetch_dimension_address_read_IS(EX_VAR(opline->result.var), container, GET_OP2_ZVAL_PTR(BP_VAR_R), OP2_TYPE);
        FREE_OP2();
        FREE_OP1();
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 ZEND_VM_HANDLER(93, ZEND_FETCH_DIM_FUNC_ARG, CONST|TMP|VAR|CV, CONST|TMPVAR|UNUSED|CV)
@@ -1774,8 +1738,7 @@ ZEND_VM_HANDLER(93, ZEND_FETCH_DIM_FUNC_ARG, CONST|TMP|VAR|CV, CONST|TMPVAR|UNUS
                FREE_OP2();
                FREE_OP1();
        }
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 ZEND_VM_HANDLER(96, ZEND_FETCH_DIM_UNSET, VAR|CV, CONST|TMPVAR|CV)
@@ -1798,8 +1761,7 @@ ZEND_VM_HANDLER(96, ZEND_FETCH_DIM_UNSET, VAR|CV, CONST|TMPVAR|CV)
                EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
        }
        FREE_OP1_VAR_PTR();
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 ZEND_VM_HANDLER(82, ZEND_FETCH_OBJ_R, CONST|TMP|VAR|UNUSED|CV, CONST|TMPVAR|CV)
@@ -1872,8 +1834,7 @@ ZEND_VM_C_LABEL(fetch_obj_r_no_object):
 
        FREE_OP2();
        FREE_OP1();
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 ZEND_VM_HANDLER(85, ZEND_FETCH_OBJ_W, VAR|UNUSED|CV, CONST|TMPVAR|CV)
@@ -1904,8 +1865,7 @@ ZEND_VM_HANDLER(85, ZEND_FETCH_OBJ_W, VAR|UNUSED|CV, CONST|TMPVAR|CV)
                EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
        }
        FREE_OP1_VAR_PTR();
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 ZEND_VM_HANDLER(88, ZEND_FETCH_OBJ_RW, VAR|UNUSED|CV, CONST|TMPVAR|CV)
@@ -1935,8 +1895,7 @@ ZEND_VM_HANDLER(88, ZEND_FETCH_OBJ_RW, VAR|UNUSED|CV, CONST|TMPVAR|CV)
                EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
        }
        FREE_OP1_VAR_PTR();
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 ZEND_VM_HANDLER(91, ZEND_FETCH_OBJ_IS, CONST|TMPVAR|UNUSED|CV, CONST|TMPVAR|CV)
@@ -2009,8 +1968,7 @@ ZEND_VM_C_LABEL(fetch_obj_is_no_object):
 
        FREE_OP2();
        FREE_OP1();
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 ZEND_VM_HANDLER(94, ZEND_FETCH_OBJ_FUNC_ARG, CONST|TMP|VAR|UNUSED|CV, CONST|TMPVAR|CV)
@@ -2049,8 +2007,7 @@ ZEND_VM_HANDLER(94, ZEND_FETCH_OBJ_FUNC_ARG, CONST|TMP|VAR|UNUSED|CV, CONST|TMPV
                        EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
                }
                FREE_OP1_VAR_PTR();
-               CHECK_EXCEPTION();
-               ZEND_VM_NEXT_OPCODE();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        } else {
                ZEND_VM_DISPATCH_TO_HANDLER(ZEND_FETCH_OBJ_R);
        }
@@ -2084,8 +2041,7 @@ ZEND_VM_HANDLER(97, ZEND_FETCH_OBJ_UNSET, VAR|UNUSED|CV, CONST|TMPVAR|CV)
                EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
        }
        FREE_OP1_VAR_PTR();
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 ZEND_VM_HANDLER(98, ZEND_FETCH_LIST, CONST|TMPVAR|CV, CONST)
@@ -2129,8 +2085,7 @@ ZEND_VM_C_LABEL(try_fetch_list):
                }
                ZVAL_NULL(EX_VAR(opline->result.var));
        }
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 ZEND_VM_HANDLER(136, ZEND_ASSIGN_OBJ, VAR|UNUSED|CV, CONST|TMPVAR|CV)
@@ -2160,9 +2115,7 @@ ZEND_VM_HANDLER(136, ZEND_ASSIGN_OBJ, VAR|UNUSED|CV, CONST|TMPVAR|CV)
        FREE_OP2();
        FREE_OP1_VAR_PTR();
        /* assign_obj has two opcodes! */
-       CHECK_EXCEPTION();
-       ZEND_VM_INC_OPCODE();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_EX(1, 2);
 }
 
 ZEND_VM_HANDLER(147, ZEND_ASSIGN_DIM, VAR|CV, CONST|TMPVAR|UNUSED|CV)
@@ -2268,9 +2221,7 @@ ZEND_VM_C_LABEL(assign_dim_clean):
        }
        FREE_OP1_VAR_PTR();
        /* assign_dim has two opcodes! */
-       CHECK_EXCEPTION();
-       ZEND_VM_INC_OPCODE();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_EX(1, 2);
 }
 
 ZEND_VM_HANDLER(38, ZEND_ASSIGN, VAR|CV, CONST|TMP|VAR|CV)
@@ -2298,8 +2249,7 @@ ZEND_VM_HANDLER(38, ZEND_ASSIGN, VAR|CV, CONST|TMP|VAR|CV)
                /* zend_assign_to_variable() always takes care of op2, never free it! */
        }
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 ZEND_VM_HANDLER(39, ZEND_ASSIGN_REF, VAR|CV, VAR|CV)
@@ -2360,8 +2310,7 @@ ZEND_VM_HANDLER(39, ZEND_ASSIGN_REF, VAR|CV, VAR|CV)
        FREE_OP1_VAR_PTR();
        FREE_OP2_VAR_PTR();
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 ZEND_VM_HELPER(zend_leave_helper, ANY, ANY)
@@ -2412,8 +2361,7 @@ ZEND_VM_HELPER(zend_leave_helper, ANY, ANY)
                        HANDLE_EXCEPTION_LEAVE();
                }
 
-               LOAD_OPLINE();
-               ZEND_VM_INC_OPCODE();
+               LOAD_NEXT_OPLINE();
                ZEND_VM_LEAVE();
        } else if (ZEND_CALL_KIND_EX(call_info) == ZEND_CALL_NESTED_CODE) {
                zend_detach_symbol_table(execute_data);
@@ -2429,8 +2377,7 @@ ZEND_VM_HELPER(zend_leave_helper, ANY, ANY)
                        HANDLE_EXCEPTION_LEAVE();
                }
 
-               LOAD_OPLINE();
-               ZEND_VM_INC_OPCODE();
+               LOAD_NEXT_OPLINE();
                ZEND_VM_LEAVE();
        } else {
                if (ZEND_CALL_KIND_EX(call_info) == ZEND_CALL_TOP_FUNCTION) {
@@ -2484,11 +2431,9 @@ ZEND_VM_HANDLER(43, ZEND_JMPZ, CONST|TMPVAR|CV, ANY)
                ZEND_VM_SET_NEXT_OPCODE(opline + 1);
                ZEND_VM_CONTINUE();
        } else if (EXPECTED(Z_TYPE_INFO_P(val) <= IS_TRUE)) {
-               if (OP1_TYPE == IS_CV) {
-                       if (UNEXPECTED(Z_TYPE_INFO_P(val) == IS_UNDEF)) {
-                               SAVE_OPLINE();
-                               GET_OP1_UNDEF_CV(val, BP_VAR_R);
-                       }
+               if (OP1_TYPE == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(val) == IS_UNDEF)) {
+                       SAVE_OPLINE();
+                       GET_OP1_UNDEF_CV(val, BP_VAR_R);
                        ZEND_VM_JMP(OP_JMP_ADDR(opline, opline->op2));
                } else {
                        ZEND_VM_SET_OPCODE(OP_JMP_ADDR(opline, opline->op2));
@@ -2521,16 +2466,12 @@ ZEND_VM_HANDLER(44, ZEND_JMPNZ, CONST|TMPVAR|CV, ANY)
                ZEND_VM_SET_OPCODE(OP_JMP_ADDR(opline, opline->op2));
                ZEND_VM_CONTINUE();
        } else if (EXPECTED(Z_TYPE_INFO_P(val) <= IS_TRUE)) {
-               if (OP1_TYPE == IS_CV) {
-                       if (UNEXPECTED(Z_TYPE_INFO_P(val) == IS_UNDEF)) {
-                               SAVE_OPLINE();
-                               GET_OP1_UNDEF_CV(val, BP_VAR_R);
-                               CHECK_EXCEPTION();
-                       }
-                       ZEND_VM_NEXT_OPCODE();
+               if (OP1_TYPE == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(val) == IS_UNDEF)) {
+                       SAVE_OPLINE();
+                       GET_OP1_UNDEF_CV(val, BP_VAR_R);
+                       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
                } else {
-                       ZEND_VM_SET_NEXT_OPCODE(opline + 1);
-                       ZEND_VM_CONTINUE();
+                       ZEND_VM_NEXT_OPCODE();
                }
        }
 
@@ -2642,16 +2583,12 @@ ZEND_VM_HANDLER(47, ZEND_JMPNZ_EX, CONST|TMPVAR|CV, ANY)
                ZEND_VM_CONTINUE();
        } else if (EXPECTED(Z_TYPE_INFO_P(val) <= IS_TRUE)) {
                ZVAL_FALSE(EX_VAR(opline->result.var));
-               if (OP1_TYPE == IS_CV) {
-                       if (UNEXPECTED(Z_TYPE_INFO_P(val) == IS_UNDEF)) {
-                               SAVE_OPLINE();
-                               GET_OP1_UNDEF_CV(val, BP_VAR_R);
-                               CHECK_EXCEPTION();
-                       }
-                       ZEND_VM_NEXT_OPCODE();
+               if (OP1_TYPE == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(val) == IS_UNDEF)) {
+                       SAVE_OPLINE();
+                       GET_OP1_UNDEF_CV(val, BP_VAR_R);
+                       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
                } else {
-                       ZEND_VM_SET_NEXT_OPCODE(opline + 1);
-                       ZEND_VM_CONTINUE();
+                       ZEND_VM_NEXT_OPCODE();
                }
        }
 
@@ -2677,8 +2614,7 @@ ZEND_VM_HANDLER(70, ZEND_FREE, TMPVAR, ANY)
 
        SAVE_OPLINE();
        zval_ptr_dtor_nogc(EX_VAR(opline->op1.var));
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 ZEND_VM_HANDLER(127, ZEND_FE_FREE, TMPVAR, ANY)
@@ -2692,8 +2628,7 @@ ZEND_VM_HANDLER(127, ZEND_FE_FREE, TMPVAR, ANY)
                zend_hash_iterator_del(Z_FE_ITER_P(var));
        }
        zval_ptr_dtor_nogc(var);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 ZEND_VM_HANDLER(53, ZEND_FAST_CONCAT, CONST|TMPVAR|CV, CONST|TMPVAR|CV)
@@ -2760,8 +2695,7 @@ ZEND_VM_HANDLER(53, ZEND_FAST_CONCAT, CONST|TMPVAR|CV, CONST|TMPVAR|CV)
        } while (0);
        FREE_OP1();
        FREE_OP2();
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 ZEND_VM_HANDLER(54, ZEND_ROPE_INIT, UNUSED, CONST|TMPVAR|CV)
@@ -2791,7 +2725,7 @@ ZEND_VM_HANDLER(54, ZEND_ROPE_INIT, UNUSED, CONST|TMPVAR|CV)
                        }
                        rope[0] = _zval_get_string_func(var);
                        FREE_OP2();
-                       CHECK_EXCEPTION();
+                       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
                }
        }
        ZEND_VM_NEXT_OPCODE();
@@ -2824,7 +2758,7 @@ ZEND_VM_HANDLER(55, ZEND_ROPE_ADD, TMP, CONST|TMPVAR|CV)
                        }
                        rope[opline->extended_value] = _zval_get_string_func(var);
                        FREE_OP2();
-                       CHECK_EXCEPTION();
+                       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
                }
        }
        ZEND_VM_NEXT_OPCODE();
@@ -2893,8 +2827,7 @@ ZEND_VM_HANDLER(109, ZEND_FETCH_CLASS, ANY, CONST|TMPVAR|UNUSED|CV)
        }
        if (OP2_TYPE == IS_UNUSED) {
                Z_CE_P(EX_VAR(opline->result.var)) = zend_fetch_class(NULL, opline->extended_value);
-               CHECK_EXCEPTION();
-               ZEND_VM_NEXT_OPCODE();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        } else {
                zend_free_op free_op2;
                zval *class_name = GET_OP2_ZVAL_PTR_UNDEF(BP_VAR_R);
@@ -2925,8 +2858,7 @@ ZEND_VM_C_LABEL(try_class_name):
                }
 
                FREE_OP2();
-               CHECK_EXCEPTION();
-               ZEND_VM_NEXT_OPCODE();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        }
 }
 
@@ -3048,8 +2980,7 @@ ZEND_VM_HANDLER(112, ZEND_INIT_METHOD_CALL, CONST|TMPVAR|UNUSED|CV, CONST|TMPVAR
        FREE_OP2();
        FREE_OP1();
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 ZEND_VM_HANDLER(113, ZEND_INIT_STATIC_METHOD_CALL, CONST|VAR, CONST|TMPVAR|UNUSED|CV)
@@ -3181,8 +3112,7 @@ ZEND_VM_HANDLER(113, ZEND_INIT_STATIC_METHOD_CALL, CONST|VAR, CONST|TMPVAR|UNUSE
        call->prev_execute_data = EX(call);
        EX(call) = call;
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 ZEND_VM_HANDLER(59, ZEND_INIT_FCALL_BY_NAME, ANY, CONST)
@@ -3246,8 +3176,7 @@ ZEND_VM_C_LABEL(try_function_name):
                        called_scope = zend_fetch_class_by_name(lcname, NULL, ZEND_FETCH_CLASS_DEFAULT | ZEND_FETCH_CLASS_EXCEPTION);
                        if (UNEXPECTED(called_scope == NULL)) {
                                zend_string_release(lcname);
-                               CHECK_EXCEPTION();
-                               ZEND_VM_NEXT_OPCODE();
+                               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
                        }
                        
                        mname = zend_string_init(Z_STRVAL_P(function_name) + (cname_length + sizeof("::") - 1), mname_length, 0);
@@ -3346,8 +3275,7 @@ ZEND_VM_C_LABEL(try_function_name):
                        object = NULL;
                        called_scope = zend_fetch_class_by_name(Z_STR_P(obj), NULL, ZEND_FETCH_CLASS_DEFAULT | ZEND_FETCH_CLASS_EXCEPTION);
                        if (UNEXPECTED(called_scope == NULL)) {
-                               CHECK_EXCEPTION();
-                               ZEND_VM_NEXT_OPCODE();
+                               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
                        }
 
                        if (called_scope->get_static_method) {
@@ -3416,8 +3344,7 @@ ZEND_VM_C_LABEL(try_function_name):
        call->prev_execute_data = EX(call);
        EX(call) = call;
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 ZEND_VM_HANDLER(118, ZEND_INIT_USER_CALL, CONST, CONST|TMPVAR|CV)
@@ -3473,8 +3400,7 @@ ZEND_VM_HANDLER(118, ZEND_INIT_USER_CALL, CONST, CONST|TMPVAR|CV)
        EX(call) = call;
 
        FREE_OP2();
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 ZEND_VM_HANDLER(69, ZEND_INIT_NS_FCALL_BY_NAME, ANY, CONST)
@@ -3960,8 +3886,7 @@ ZEND_VM_HANDLER(124, ZEND_VERIFY_RETURN_TYPE, CONST|TMP|VAR|UNUSED|CV, UNUSED)
                }
 #endif
        }
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 ZEND_VM_HANDLER(62, ZEND_RETURN, CONST|TMP|VAR|CV, ANY)
@@ -4268,9 +4193,12 @@ ZEND_VM_HANDLER(117, ZEND_SEND_VAR, VAR|CV, ANY)
        varptr = GET_OP1_ZVAL_PTR_UNDEF(BP_VAR_R);
        if (OP1_TYPE == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(varptr) == IS_UNDEF)) {
                SAVE_OPLINE();
-               varptr = GET_OP1_UNDEF_CV(varptr, BP_VAR_R);
-               CHECK_EXCEPTION();
+               GET_OP1_UNDEF_CV(varptr, BP_VAR_R);
+               arg = ZEND_CALL_VAR(EX(call), opline->result.var);
+               ZVAL_NULL(arg);
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        }
+
        arg = ZEND_CALL_VAR(EX(call), opline->result.var);
 
        if (OP1_TYPE == IS_CV) {
@@ -4295,7 +4223,7 @@ ZEND_VM_HANDLER(117, ZEND_SEND_VAR, VAR|CV, ANY)
        ZEND_VM_NEXT_OPCODE();
 }
 
-ZEND_VM_HANDLER(106, ZEND_SEND_VAR_NO_REF, VAR|CV, ANY)
+ZEND_VM_HANDLER(106, ZEND_SEND_VAR_NO_REF, VAR, ANY)
 {
        USE_OPLINE
        zend_free_op free_op1;
@@ -4307,27 +4235,22 @@ ZEND_VM_HANDLER(106, ZEND_SEND_VAR_NO_REF, VAR|CV, ANY)
                }
        }
 
-       varptr = GET_OP1_ZVAL_PTR_UNDEF(BP_VAR_R);
-       if (OP1_TYPE == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(varptr) == IS_UNDEF)) {
-               SAVE_OPLINE();
-               varptr = GET_OP1_UNDEF_CV(varptr, BP_VAR_R);
-               CHECK_EXCEPTION();
-       }
+       varptr = GET_OP1_ZVAL_PTR(BP_VAR_R);
+
        if ((!(opline->extended_value & ZEND_ARG_SEND_FUNCTION) ||
             (Z_VAR_FLAGS_P(varptr) & IS_VAR_RET_REF)) &&
            (Z_ISREF_P(varptr) || Z_TYPE_P(varptr) == IS_OBJECT)) {
 
                ZVAL_MAKE_REF(varptr);
-               if (OP1_TYPE == IS_CV) {
-                       Z_ADDREF_P(varptr);
-               }
        } else {
                if ((opline->extended_value & ZEND_ARG_COMPILE_TIME_BOUND) ?
                        !(opline->extended_value & ZEND_ARG_SEND_SILENT) :
                        !ARG_MAY_BE_SENT_BY_REF(EX(call)->func, opline->op2.num)) {
                        SAVE_OPLINE();
                        zend_error(E_NOTICE, "Only variables should be passed by reference");
-                       CHECK_EXCEPTION();
+                       arg = ZEND_CALL_VAR(EX(call), opline->result.var);
+                       ZVAL_COPY_VALUE(arg, varptr);
+                       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
                }
        }
 
@@ -4391,9 +4314,12 @@ ZEND_VM_C_LABEL(send_var_by_ref):
        varptr = GET_OP1_ZVAL_PTR_UNDEF(BP_VAR_R);
        if (OP1_TYPE == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(varptr) == IS_UNDEF)) {
                SAVE_OPLINE();
-               varptr = GET_OP1_UNDEF_CV(varptr, BP_VAR_R);
-               CHECK_EXCEPTION();
+               GET_OP1_UNDEF_CV(varptr, BP_VAR_R);
+               arg = ZEND_CALL_VAR(EX(call), opline->result.var);
+               ZVAL_NULL(arg);
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        }
+
        arg = ZEND_CALL_VAR(EX(call), opline->result.var);
 
        if (OP1_TYPE == IS_CV) {
@@ -4576,8 +4502,7 @@ ZEND_VM_C_LABEL(unpack_iter_dtor):
        }
 
        FREE_OP1();
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 ZEND_VM_HANDLER(119, ZEND_SEND_ARRAY, ANY, ANY)
@@ -4678,8 +4603,7 @@ ZEND_VM_C_LABEL(send_array):
                } ZEND_HASH_FOREACH_END();
        }
        FREE_OP1();
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 ZEND_VM_HANDLER(120, ZEND_SEND_USER, VAR|CV, ANY)
@@ -4715,8 +4639,7 @@ ZEND_VM_HANDLER(120, ZEND_SEND_USER, VAR|CV, ANY)
                                Z_OBJ(EX(call)->This) = NULL;
 
                                FREE_OP1();
-                               CHECK_EXCEPTION();
-                               ZEND_VM_NEXT_OPCODE();
+                               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
                        }
 
                        ZVAL_NEW_REF(arg, arg);
@@ -4735,8 +4658,7 @@ ZEND_VM_HANDLER(120, ZEND_SEND_USER, VAR|CV, ANY)
        ZVAL_COPY_VALUE(param, arg);
 
        FREE_OP1();
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 ZEND_VM_HANDLER(63, ZEND_RECV, ANY, ANY)
@@ -4837,8 +4759,7 @@ ZEND_VM_HANDLER(164, ZEND_RECV_VARIADIC, ANY, ANY)
                array_init(params);
        }
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 ZEND_VM_HANDLER(52, ZEND_BOOL, CONST|TMPVAR|CV, ANY)
@@ -4851,17 +4772,17 @@ ZEND_VM_HANDLER(52, ZEND_BOOL, CONST|TMPVAR|CV, ANY)
        if (Z_TYPE_INFO_P(val) == IS_TRUE) {
                ZVAL_TRUE(EX_VAR(opline->result.var));
        } else if (EXPECTED(Z_TYPE_INFO_P(val) <= IS_TRUE)) {
+               ZVAL_FALSE(EX_VAR(opline->result.var));
                if (UNEXPECTED(Z_TYPE_INFO_P(val) == IS_UNDEF)) {
                        SAVE_OPLINE();
                        GET_OP1_UNDEF_CV(val, BP_VAR_R);
-                       CHECK_EXCEPTION();
+                       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
                }
-               ZVAL_FALSE(EX_VAR(opline->result.var));
        } else {
                SAVE_OPLINE();
                ZVAL_BOOL(EX_VAR(opline->result.var), i_zend_is_true(val));
                FREE_OP1();
-               CHECK_EXCEPTION();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        }
        ZEND_VM_NEXT_OPCODE();
 }
@@ -4929,8 +4850,7 @@ ZEND_VM_HANDLER(48, ZEND_CASE, CONST|TMPVAR|CV, CONST|TMPVAR|CV)
        compare_function(result, op1, op2);
        ZVAL_BOOL(result, Z_LVAL_P(result) == 0);
        FREE_OP2();
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 ZEND_VM_HANDLER(68, ZEND_NEW, CONST|VAR, ANY)
@@ -4947,8 +4867,7 @@ ZEND_VM_HANDLER(68, ZEND_NEW, CONST|VAR, ANY)
                } else {
                        ce = zend_fetch_class_by_name(Z_STR_P(EX_CONSTANT(opline->op1)), EX_CONSTANT(opline->op1) + 1, ZEND_FETCH_CLASS_DEFAULT | ZEND_FETCH_CLASS_EXCEPTION);
                        if (UNEXPECTED(ce == NULL)) {
-                               CHECK_EXCEPTION();
-                               ZEND_VM_NEXT_OPCODE();
+                               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
                        }
                        CACHE_PTR(Z_CACHE_SLOT_P(EX_CONSTANT(opline->op1)), ce);
                }
@@ -4983,8 +4902,7 @@ ZEND_VM_HANDLER(68, ZEND_NEW, CONST|VAR, ANY)
                        ZVAL_COPY(EX_VAR(opline->result.var), &object_zval);
                }
 
-               CHECK_EXCEPTION();
-               ZEND_VM_NEXT_OPCODE();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        }
 }
 
@@ -5066,8 +4984,7 @@ ZEND_VM_HANDLER(110, ZEND_CLONE, CONST|TMPVAR|UNUSED|CV, ANY)
                }
        }
        FREE_OP1();
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 ZEND_VM_HANDLER(99, ZEND_FETCH_CONSTANT, VAR|CONST|UNUSED, CONST)
@@ -5093,8 +5010,7 @@ ZEND_VM_HANDLER(99, ZEND_FETCH_CONSTANT, VAR|CONST|UNUSED, CONST)
                                /* non-qualified constant - allow text substitution */
                                zend_error(E_NOTICE, "Use of undefined constant %s - assumed '%s'",
                                                Z_STRVAL_P(EX_VAR(opline->result.var)), Z_STRVAL_P(EX_VAR(opline->result.var)));
-                               CHECK_EXCEPTION();
-                               ZEND_VM_NEXT_OPCODE();
+                               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
                        } else {
                                zend_throw_error(NULL, "Undefined constant '%s'", Z_STRVAL_P(EX_CONSTANT(opline->op2)));
                                HANDLE_EXCEPTION();
@@ -5275,8 +5191,7 @@ ZEND_VM_C_LABEL(num_index):
        } else {
                zend_hash_next_index_insert(Z_ARRVAL_P(EX_VAR(opline->result.var)), expr_ptr);
        }
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 ZEND_VM_HANDLER(71, ZEND_INIT_ARRAY, CONST|TMP|VAR|UNUSED|CV, CONST|TMPVAR|UNUSED|CV)
@@ -5366,8 +5281,7 @@ ZEND_VM_HANDLER(21, ZEND_CAST, CONST|TMP|VAR|CV, ANY)
                                }
 
                                FREE_OP1_IF_VAR();
-                               CHECK_EXCEPTION();
-                               ZEND_VM_NEXT_OPCODE();
+                               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
                        }
 
                        if (opline->extended_value == IS_ARRAY) {
@@ -5410,8 +5324,7 @@ ZEND_VM_HANDLER(21, ZEND_CAST, CONST|TMP|VAR|CV, ANY)
        }
 
        FREE_OP1();
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 ZEND_VM_HANDLER(73, ZEND_INCLUDE_OR_EVAL, CONST|TMPVAR|CV, ANY)
@@ -5569,8 +5482,7 @@ ZEND_VM_HANDLER(74, ZEND_UNSET_VAR, CONST|TMPVAR|CV, UNUSED|CONST|VAR)
                } else {
                        ZVAL_UNDEF(var);
                }
-               CHECK_EXCEPTION();
-               ZEND_VM_NEXT_OPCODE();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        }
 
        varname = GET_OP1_ZVAL_PTR_UNDEF(BP_VAR_R);
@@ -5621,8 +5533,7 @@ ZEND_VM_HANDLER(74, ZEND_UNSET_VAR, CONST|TMPVAR|CV, UNUSED|CONST|VAR)
                zend_string_release(Z_STR(tmp));
        }
        FREE_OP1();
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 ZEND_VM_HANDLER(75, ZEND_UNSET_DIM, VAR|UNUSED|CV, CONST|TMPVAR|CV)
@@ -5721,8 +5632,7 @@ ZEND_VM_C_LABEL(num_index_dim):
 
        FREE_OP2();
        FREE_OP1_VAR_PTR();
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 ZEND_VM_HANDLER(76, ZEND_UNSET_OBJ, VAR|UNUSED|CV, CONST|TMPVAR|CV)
@@ -5766,8 +5676,7 @@ ZEND_VM_HANDLER(76, ZEND_UNSET_OBJ, VAR|UNUSED|CV, CONST|TMPVAR|CV)
 
        FREE_OP2();
        FREE_OP1_VAR_PTR();
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 ZEND_VM_HANDLER(77, ZEND_FE_RESET_R, CONST|TMP|VAR|CV, ANY)
@@ -5789,8 +5698,7 @@ ZEND_VM_HANDLER(77, ZEND_FE_RESET_R, CONST|TMP|VAR|CV, ANY)
                Z_FE_POS_P(result) = 0;
 
                FREE_OP1_IF_VAR();
-               CHECK_EXCEPTION();
-               ZEND_VM_NEXT_OPCODE();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        } else if (OP1_TYPE != IS_CONST && EXPECTED(Z_TYPE_P(array_ptr) == IS_OBJECT)) {
                if (!Z_OBJCE_P(array_ptr)->get_iterator) {
                        HashPosition pos = 0;
@@ -5823,8 +5731,7 @@ ZEND_VM_HANDLER(77, ZEND_FE_RESET_R, CONST|TMP|VAR|CV, ANY)
                        Z_FE_ITER_P(EX_VAR(opline->result.var)) = zend_hash_iterator_add(fe_ht, pos);
 
                        FREE_OP1_IF_VAR();
-                       CHECK_EXCEPTION();
-                       ZEND_VM_NEXT_OPCODE();
+                       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
                } else {
                        zend_class_entry *ce = Z_OBJCE_P(array_ptr);
                        zend_object_iterator *iter = ce->get_iterator(ce, array_ptr, 0);
@@ -5865,8 +5772,7 @@ ZEND_VM_HANDLER(77, ZEND_FE_RESET_R, CONST|TMP|VAR|CV, ANY)
                        if (is_empty) {
                                ZEND_VM_JMP(OP_JMP_ADDR(opline, opline->op2));
                        } else {
-                               CHECK_EXCEPTION();
-                               ZEND_VM_NEXT_OPCODE();
+                               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
                        }
                }
        } else {
@@ -5934,8 +5840,7 @@ ZEND_VM_HANDLER(125, ZEND_FE_RESET_RW, CONST|TMP|VAR|CV, ANY)
                Z_FE_ITER_P(EX_VAR(opline->result.var)) = zend_hash_iterator_add(fe_ht, pos);
 
                FREE_OP1_VAR_PTR();
-               CHECK_EXCEPTION();
-               ZEND_VM_NEXT_OPCODE();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        } else if (OP1_TYPE != IS_CONST && EXPECTED(Z_TYPE_P(array_ptr) == IS_OBJECT)) {
                if (!Z_OBJCE_P(array_ptr)->get_iterator) {
                        if (OP1_TYPE == IS_VAR || OP1_TYPE == IS_CV) {
@@ -5970,8 +5875,7 @@ ZEND_VM_HANDLER(125, ZEND_FE_RESET_RW, CONST|TMP|VAR|CV, ANY)
                        Z_FE_ITER_P(EX_VAR(opline->result.var)) = zend_hash_iterator_add(fe_ht, pos);
 
                        FREE_OP1_VAR_PTR();
-                       CHECK_EXCEPTION();
-                       ZEND_VM_NEXT_OPCODE();
+                       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
                } else {
                        zend_class_entry *ce = Z_OBJCE_P(array_ptr);
                        zend_object_iterator *iter = ce->get_iterator(ce, array_ptr, 1);
@@ -6028,8 +5932,7 @@ ZEND_VM_HANDLER(125, ZEND_FE_RESET_RW, CONST|TMP|VAR|CV, ANY)
                        if (is_empty) {
                                ZEND_VM_JMP(OP_JMP_ADDR(opline, opline->op2));
                        } else {
-                               CHECK_EXCEPTION();
-                               ZEND_VM_NEXT_OPCODE();
+                               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
                        }
                }
        } else {
@@ -6478,8 +6381,7 @@ ZEND_VM_HANDLER(114, ZEND_ISSET_ISEMPTY_VAR, CONST|TMPVAR|CV, UNUSED|CONST|VAR)
                                } else {
                                        ce = zend_fetch_class_by_name(Z_STR_P(EX_CONSTANT(opline->op2)), EX_CONSTANT(opline->op2) + 1, ZEND_FETCH_CLASS_DEFAULT | ZEND_FETCH_CLASS_EXCEPTION);
                                        if (UNEXPECTED(ce == NULL)) {
-                                               CHECK_EXCEPTION();
-                                               ZEND_VM_NEXT_OPCODE();
+                                               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
                                        }
                                        CACHE_PTR(Z_CACHE_SLOT_P(EX_CONSTANT(opline->op2)), ce);
                                }
@@ -6522,8 +6424,7 @@ ZEND_VM_C_LABEL(is_var_return):
 
                ZEND_VM_SMART_BRANCH(result, 1);
                ZVAL_BOOL(EX_VAR(opline->result.var), result);
-               CHECK_EXCEPTION();
-               ZEND_VM_NEXT_OPCODE();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        }
 }
 
@@ -6661,8 +6562,7 @@ ZEND_VM_C_LABEL(isset_dim_obj_exit):
        FREE_OP1();
        ZEND_VM_SMART_BRANCH(result, 1);
        ZVAL_BOOL(EX_VAR(opline->result.var), result);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 ZEND_VM_HANDLER(148, ZEND_ISSET_ISEMPTY_PROP_OBJ, CONST|TMPVAR|UNUSED|CV, CONST|TMPVAR|CV)
@@ -6709,13 +6609,11 @@ ZEND_VM_C_LABEL(isset_no_object):
        FREE_OP1();
        ZEND_VM_SMART_BRANCH(result, 1);
        ZVAL_BOOL(EX_VAR(opline->result.var), result);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 ZEND_VM_HANDLER(79, ZEND_EXIT, CONST|TMPVAR|UNUSED|CV, ANY)
 {
-#if !defined(ZEND_VM_SPEC) || (OP1_TYPE != IS_UNUSED)
        USE_OPLINE
 
        SAVE_OPLINE();
@@ -6739,7 +6637,6 @@ ZEND_VM_HANDLER(79, ZEND_EXIT, CONST|TMPVAR|UNUSED|CV, ANY)
                } while (0);
                FREE_OP1();
        }
-#endif
        zend_bailout();
        ZEND_VM_NEXT_OPCODE(); /* Never reached */
 }
@@ -6821,8 +6718,7 @@ ZEND_VM_HANDLER(152, ZEND_JMP_SET, CONST|TMP|VAR|CV, ANY)
        }
 
        FREE_OP1();
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 ZEND_VM_HANDLER(169, ZEND_COALESCE, CONST|TMP|VAR|CV, ANY)
@@ -6860,8 +6756,7 @@ ZEND_VM_HANDLER(169, ZEND_COALESCE, CONST|TMP|VAR|CV, ANY)
        }
 
        FREE_OP1();
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 ZEND_VM_HANDLER(22, ZEND_QM_ASSIGN, CONST|TMP|VAR|CV, ANY)
@@ -6873,8 +6768,9 @@ ZEND_VM_HANDLER(22, ZEND_QM_ASSIGN, CONST|TMP|VAR|CV, ANY)
        value = GET_OP1_ZVAL_PTR_UNDEF(BP_VAR_R);
        if (OP1_TYPE == IS_CV && UNEXPECTED(Z_TYPE_P(value) == IS_UNDEF)) {
                SAVE_OPLINE();
-               value = GET_OP1_UNDEF_CV(value, BP_VAR_R);
-               CHECK_EXCEPTION();
+               GET_OP1_UNDEF_CV(value, BP_VAR_R);
+               ZVAL_NULL(EX_VAR(opline->result.var));
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        }
 
        if ((OP1_TYPE == IS_VAR || OP1_TYPE == IS_CV) && Z_ISREF_P(value)) {
@@ -6899,30 +6795,36 @@ ZEND_VM_HANDLER(22, ZEND_QM_ASSIGN, CONST|TMP|VAR|CV, ANY)
 
 ZEND_VM_HANDLER(101, ZEND_EXT_STMT, ANY, ANY)
 {
+       USE_OPLINE
+
        if (!EG(no_extensions)) {
                SAVE_OPLINE();
                zend_llist_apply_with_argument(&zend_extensions, (llist_apply_with_arg_func_t) zend_extension_statement_handler, EX(func));
-               CHECK_EXCEPTION();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        }
        ZEND_VM_NEXT_OPCODE();
 }
 
 ZEND_VM_HANDLER(102, ZEND_EXT_FCALL_BEGIN, ANY, ANY)
 {
+       USE_OPLINE
+
        if (!EG(no_extensions)) {
                SAVE_OPLINE();
                zend_llist_apply_with_argument(&zend_extensions, (llist_apply_with_arg_func_t) zend_extension_fcall_begin_handler, EX(func));
-               CHECK_EXCEPTION();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        }
        ZEND_VM_NEXT_OPCODE();
 }
 
 ZEND_VM_HANDLER(103, ZEND_EXT_FCALL_END, ANY, ANY)
 {
+       USE_OPLINE
+
        if (!EG(no_extensions)) {
                SAVE_OPLINE();
                zend_llist_apply_with_argument(&zend_extensions, (llist_apply_with_arg_func_t) zend_extension_fcall_end_handler, EX(func));
-               CHECK_EXCEPTION();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        }
        ZEND_VM_NEXT_OPCODE();
 }
@@ -6933,8 +6835,7 @@ ZEND_VM_HANDLER(139, ZEND_DECLARE_CLASS, ANY, ANY)
 
        SAVE_OPLINE();
        Z_CE_P(EX_VAR(opline->result.var)) = do_bind_class(&EX(func)->op_array, opline, EG(class_table), 0);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 ZEND_VM_HANDLER(140, ZEND_DECLARE_INHERITED_CLASS, ANY, ANY)
@@ -6943,8 +6844,7 @@ ZEND_VM_HANDLER(140, ZEND_DECLARE_INHERITED_CLASS, ANY, ANY)
 
        SAVE_OPLINE();
        Z_CE_P(EX_VAR(opline->result.var)) = do_bind_inherited_class(&EX(func)->op_array, opline, EG(class_table), Z_CE_P(EX_VAR(opline->extended_value)), 0);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 ZEND_VM_HANDLER(145, ZEND_DECLARE_INHERITED_CLASS_DELAYED, ANY, ANY)
@@ -6958,8 +6858,7 @@ ZEND_VM_HANDLER(145, ZEND_DECLARE_INHERITED_CLASS_DELAYED, ANY, ANY)
             Z_CE_P(zce) != Z_CE_P(orig_zce))) {
                do_bind_inherited_class(&EX(func)->op_array, opline, EG(class_table), Z_CE_P(EX_VAR(opline->extended_value)), 0);
        }
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 ZEND_VM_HANDLER(171, ZEND_DECLARE_ANON_CLASS, ANY, ANY)
@@ -6980,8 +6879,7 @@ ZEND_VM_HANDLER(171, ZEND_DECLARE_ANON_CLASS, ANY, ANY)
                zend_verify_abstract_class(ce);
        }
        ce->ce_flags |= ZEND_ACC_ANON_BOUND;
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 ZEND_VM_HANDLER(172, ZEND_DECLARE_ANON_INHERITED_CLASS, ANY, ANY)
@@ -7000,8 +6898,7 @@ ZEND_VM_HANDLER(172, ZEND_DECLARE_ANON_INHERITED_CLASS, ANY, ANY)
 
        zend_do_inheritance(ce, Z_CE_P(EX_VAR(opline->extended_value)));
        ce->ce_flags |= ZEND_ACC_ANON_BOUND;
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 ZEND_VM_HANDLER(141, ZEND_DECLARE_FUNCTION, ANY, ANY)
@@ -7010,8 +6907,7 @@ ZEND_VM_HANDLER(141, ZEND_DECLARE_FUNCTION, ANY, ANY)
 
        SAVE_OPLINE();
        do_bind_function(&EX(func)->op_array, opline, EG(function_table), 0);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 ZEND_VM_HANDLER(105, ZEND_TICKS, ANY, ANY)
@@ -7023,7 +6919,7 @@ ZEND_VM_HANDLER(105, ZEND_TICKS, ANY, ANY)
                if (zend_ticks_function) {
                        SAVE_OPLINE();
                        zend_ticks_function(opline->extended_value);
-                       CHECK_EXCEPTION();
+                       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
                }
        }
        ZEND_VM_NEXT_OPCODE();
@@ -7051,8 +6947,7 @@ ZEND_VM_C_LABEL(try_instanceof):
                                if (UNEXPECTED(ce == NULL)) {
                                        ZVAL_FALSE(EX_VAR(opline->result.var));
                                        FREE_OP1();
-                                       CHECK_EXCEPTION();
-                                       ZEND_VM_NEXT_OPCODE();
+                                       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
                                }
                                CACHE_PTR(Z_CACHE_SLOT_P(EX_CONSTANT(opline->op2)), ce);
                        }
@@ -7072,17 +6967,20 @@ ZEND_VM_C_LABEL(try_instanceof):
        FREE_OP1();
        ZEND_VM_SMART_BRANCH(result, 1);
        ZVAL_BOOL(EX_VAR(opline->result.var), result);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 ZEND_VM_HANDLER(104, ZEND_EXT_NOP, ANY, ANY)
 {
+       USE_OPLINE
+
        ZEND_VM_NEXT_OPCODE();
 }
 
 ZEND_VM_HANDLER(0, ZEND_NOP, ANY, ANY)
 {
+       USE_OPLINE
+
        ZEND_VM_NEXT_OPCODE();
 }
 
@@ -7098,8 +6996,7 @@ ZEND_VM_HANDLER(144, ZEND_ADD_INTERFACE, ANY, CONST)
        } else {
                iface = zend_fetch_class_by_name(Z_STR_P(EX_CONSTANT(opline->op2)), EX_CONSTANT(opline->op2) + 1, ZEND_FETCH_CLASS_INTERFACE);
                if (UNEXPECTED(iface == NULL)) {
-                       CHECK_EXCEPTION();
-                       ZEND_VM_NEXT_OPCODE();
+                       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
                }
                CACHE_PTR(Z_CACHE_SLOT_P(EX_CONSTANT(opline->op2)), iface);
        }
@@ -7109,8 +7006,7 @@ ZEND_VM_HANDLER(144, ZEND_ADD_INTERFACE, ANY, CONST)
        }
        zend_do_implement_interface(ce, iface);
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 ZEND_VM_HANDLER(154, ZEND_ADD_TRAIT, ANY, ANY)
@@ -7127,8 +7023,7 @@ ZEND_VM_HANDLER(154, ZEND_ADD_TRAIT, ANY, ANY)
                                                 EX_CONSTANT(opline->op2) + 1,
                                                 ZEND_FETCH_CLASS_TRAIT);
                if (UNEXPECTED(trait == NULL)) {
-                       CHECK_EXCEPTION();
-                       ZEND_VM_NEXT_OPCODE();
+                       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
                }
                if (!(trait->ce_flags & ZEND_ACC_TRAIT)) {
                        zend_error_noreturn(E_ERROR, "%s cannot use %s - it is not a trait", ZSTR_VAL(ce->name), ZSTR_VAL(trait->name));
@@ -7138,8 +7033,7 @@ ZEND_VM_HANDLER(154, ZEND_ADD_TRAIT, ANY, ANY)
 
        zend_do_implement_trait(ce, trait);
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 ZEND_VM_HANDLER(155, ZEND_BIND_TRAITS, ANY, ANY)
@@ -7149,8 +7043,7 @@ ZEND_VM_HANDLER(155, ZEND_BIND_TRAITS, ANY, ANY)
 
        SAVE_OPLINE();
        zend_do_bind_traits(ce);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 ZEND_VM_HANDLER(149, ZEND_HANDLE_EXCEPTION, ANY, ANY)
@@ -7223,8 +7116,7 @@ ZEND_VM_HANDLER(146, ZEND_VERIFY_ABSTRACT_CLASS, ANY, ANY)
 
        SAVE_OPLINE();
        zend_verify_abstract_class(Z_CE_P(EX_VAR(opline->op1.var)));
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 ZEND_VM_HANDLER(150, ZEND_USER_OPCODE, ANY, ANY)
@@ -7292,8 +7184,7 @@ ZEND_VM_HANDLER(143, ZEND_DECLARE_CONST, CONST, CONST)
 
        FREE_OP1();
        FREE_OP2();
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 ZEND_VM_HANDLER(153, ZEND_DECLARE_LAMBDA_FUNCTION, CONST, UNUSED)
@@ -7315,8 +7206,7 @@ ZEND_VM_HANDLER(153, ZEND_DECLARE_LAMBDA_FUNCTION, CONST, UNUSED)
                        EG(scope), EX(called_scope), Z_OBJ(EX(This)) ? &EX(This) : NULL);
        }
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 ZEND_VM_HANDLER(156, ZEND_SEPARATE, VAR, UNUSED)
@@ -7654,8 +7544,7 @@ ZEND_VM_HANDLER(166, ZEND_POW, CONST|TMPVAR|CV, CONST|TMPVAR|CV)
        pow_function(EX_VAR(opline->result.var), op1, op2);
        FREE_OP1();
        FREE_OP2();
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 ZEND_VM_HANDLER(167, ZEND_ASSIGN_POW, VAR|CV, CONST|TMPVAR|CV)
@@ -7784,8 +7673,7 @@ ZEND_VM_C_LABEL(try_strlen):
                } while (0);
        }
        FREE_OP1();
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 ZEND_VM_HANDLER(123, ZEND_TYPE_CHECK, CONST|TMP|VAR|CV, ANY)
@@ -7821,8 +7709,7 @@ ZEND_VM_HANDLER(123, ZEND_TYPE_CHECK, CONST|TMP|VAR|CV, ANY)
        FREE_OP1();
        ZEND_VM_SMART_BRANCH(result, 1);
        ZVAL_BOOL(EX_VAR(opline->result.var), result);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 ZEND_VM_HANDLER(122, ZEND_DEFINED, CONST, ANY)
index 533fb05bcb580abcf0bcc624fe4fbd23ef0a1ecc..c45d2ee3c9a09db4d2e3e23b0910fc3808e02c43 100644 (file)
@@ -311,11 +311,11 @@ static const void *zend_vm_get_opcode_handler(zend_uchar opcode, const zend_op*
 
 
 #ifdef ZEND_VM_FP_GLOBAL_REG
-register zend_execute_data *execute_data __asm__(ZEND_VM_FP_GLOBAL_REG);
+register zend_execute_data* volatile execute_data __asm__(ZEND_VM_FP_GLOBAL_REG);
 #endif
 
 #ifdef ZEND_VM_IP_GLOBAL_REG
-register const zend_op *opline __asm__(ZEND_VM_IP_GLOBAL_REG);
+register const zend_op* volatile opline __asm__(ZEND_VM_IP_GLOBAL_REG);
 #endif
 
 #ifdef ZEND_VM_FP_GLOBAL_REG
@@ -348,23 +348,24 @@ typedef ZEND_OPCODE_HANDLER_RET (ZEND_FASTCALL *opcode_handler_t) (ZEND_OPCODE_H
 #undef DCL_OPLINE
 #undef USE_OPLINE
 #undef LOAD_OPLINE
+#undef LOAD_OPLINE_EX
 #undef SAVE_OPLINE
 #define DCL_OPLINE
 #ifdef ZEND_VM_IP_GLOBAL_REG
 # define OPLINE opline
 # define USE_OPLINE
 # define LOAD_OPLINE() opline = EX(opline)
+# define LOAD_NEXT_OPLINE() opline = EX(opline) + 1
 # define SAVE_OPLINE() EX(opline) = opline
 #else
 # define OPLINE EX(opline)
 # define USE_OPLINE const zend_op *opline = EX(opline);
 # define LOAD_OPLINE()
+# define LOAD_NEXT_OPLINE() ZEND_VM_INC_OPCODE()
 # define SAVE_OPLINE()
 #endif
-#undef CHECK_EXCEPTION
 #undef HANDLE_EXCEPTION
 #undef HANDLE_EXCEPTION_LEAVE
-#define CHECK_EXCEPTION() LOAD_OPLINE()
 #define HANDLE_EXCEPTION() LOAD_OPLINE(); ZEND_VM_CONTINUE()
 #define HANDLE_EXCEPTION_LEAVE() LOAD_OPLINE(); ZEND_VM_LEAVE()
 #if defined(ZEND_VM_FP_GLOBAL_REG)
@@ -498,8 +499,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_leave_helper_SPEC(ZEND_OPCODE_
                        HANDLE_EXCEPTION_LEAVE();
                }
 
-               LOAD_OPLINE();
-               ZEND_VM_INC_OPCODE();
+               LOAD_NEXT_OPLINE();
                ZEND_VM_LEAVE();
        } else if (ZEND_CALL_KIND_EX(call_info) == ZEND_CALL_NESTED_CODE) {
                zend_detach_symbol_table(execute_data);
@@ -515,8 +515,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_leave_helper_SPEC(ZEND_OPCODE_
                        HANDLE_EXCEPTION_LEAVE();
                }
 
-               LOAD_OPLINE();
-               ZEND_VM_INC_OPCODE();
+               LOAD_NEXT_OPLINE();
                ZEND_VM_LEAVE();
        } else {
                if (ZEND_CALL_KIND_EX(call_info) == ZEND_CALL_TOP_FUNCTION) {
@@ -1091,8 +1090,7 @@ unpack_iter_dtor:
        }
 
        FREE_OP(free_op1);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SEND_ARRAY_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -1193,8 +1191,7 @@ send_array:
                } ZEND_HASH_FOREACH_END();
        }
        FREE_OP(free_op1);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_RECV_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -1256,8 +1253,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_RECV_VARIADIC_SPEC_HANDLER(ZEN
                array_init(params);
        }
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BEGIN_SILENCE_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -1295,30 +1291,36 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BEGIN_SILENCE_SPEC_HANDLER(ZEN
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_EXT_STMT_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
 {
+       USE_OPLINE
+
        if (!EG(no_extensions)) {
                SAVE_OPLINE();
                zend_llist_apply_with_argument(&zend_extensions, (llist_apply_with_arg_func_t) zend_extension_statement_handler, EX(func));
-               CHECK_EXCEPTION();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        }
        ZEND_VM_NEXT_OPCODE();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_EXT_FCALL_BEGIN_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
 {
+       USE_OPLINE
+
        if (!EG(no_extensions)) {
                SAVE_OPLINE();
                zend_llist_apply_with_argument(&zend_extensions, (llist_apply_with_arg_func_t) zend_extension_fcall_begin_handler, EX(func));
-               CHECK_EXCEPTION();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        }
        ZEND_VM_NEXT_OPCODE();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_EXT_FCALL_END_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
 {
+       USE_OPLINE
+
        if (!EG(no_extensions)) {
                SAVE_OPLINE();
                zend_llist_apply_with_argument(&zend_extensions, (llist_apply_with_arg_func_t) zend_extension_fcall_end_handler, EX(func));
-               CHECK_EXCEPTION();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        }
        ZEND_VM_NEXT_OPCODE();
 }
@@ -1329,8 +1331,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_DECLARE_CLASS_SPEC_HANDLER(ZEN
 
        SAVE_OPLINE();
        Z_CE_P(EX_VAR(opline->result.var)) = do_bind_class(&EX(func)->op_array, opline, EG(class_table), 0);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_DECLARE_INHERITED_CLASS_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -1339,8 +1340,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_DECLARE_INHERITED_CLASS_SPEC_H
 
        SAVE_OPLINE();
        Z_CE_P(EX_VAR(opline->result.var)) = do_bind_inherited_class(&EX(func)->op_array, opline, EG(class_table), Z_CE_P(EX_VAR(opline->extended_value)), 0);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_DECLARE_INHERITED_CLASS_DELAYED_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -1354,8 +1354,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_DECLARE_INHERITED_CLASS_DELAYE
             Z_CE_P(zce) != Z_CE_P(orig_zce))) {
                do_bind_inherited_class(&EX(func)->op_array, opline, EG(class_table), Z_CE_P(EX_VAR(opline->extended_value)), 0);
        }
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_DECLARE_ANON_CLASS_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -1376,8 +1375,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_DECLARE_ANON_CLASS_SPEC_HANDLE
                zend_verify_abstract_class(ce);
        }
        ce->ce_flags |= ZEND_ACC_ANON_BOUND;
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_DECLARE_ANON_INHERITED_CLASS_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -1396,8 +1394,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_DECLARE_ANON_INHERITED_CLASS_S
 
        zend_do_inheritance(ce, Z_CE_P(EX_VAR(opline->extended_value)));
        ce->ce_flags |= ZEND_ACC_ANON_BOUND;
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_DECLARE_FUNCTION_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -1406,8 +1403,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_DECLARE_FUNCTION_SPEC_HANDLER(
 
        SAVE_OPLINE();
        do_bind_function(&EX(func)->op_array, opline, EG(function_table), 0);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_TICKS_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -1419,7 +1415,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_TICKS_SPEC_HANDLER(ZEND_OPCODE
                if (zend_ticks_function) {
                        SAVE_OPLINE();
                        zend_ticks_function(opline->extended_value);
-                       CHECK_EXCEPTION();
+                       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
                }
        }
        ZEND_VM_NEXT_OPCODE();
@@ -1427,11 +1423,15 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_TICKS_SPEC_HANDLER(ZEND_OPCODE
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_EXT_NOP_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
 {
+       USE_OPLINE
+
        ZEND_VM_NEXT_OPCODE();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_NOP_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
 {
+       USE_OPLINE
+
        ZEND_VM_NEXT_OPCODE();
 }
 
@@ -1449,8 +1449,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ADD_TRAIT_SPEC_HANDLER(ZEND_OP
                                                 EX_CONSTANT(opline->op2) + 1,
                                                 ZEND_FETCH_CLASS_TRAIT);
                if (UNEXPECTED(trait == NULL)) {
-                       CHECK_EXCEPTION();
-                       ZEND_VM_NEXT_OPCODE();
+                       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
                }
                if (!(trait->ce_flags & ZEND_ACC_TRAIT)) {
                        zend_error_noreturn(E_ERROR, "%s cannot use %s - it is not a trait", ZSTR_VAL(ce->name), ZSTR_VAL(trait->name));
@@ -1460,8 +1459,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ADD_TRAIT_SPEC_HANDLER(ZEND_OP
 
        zend_do_implement_trait(ce, trait);
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BIND_TRAITS_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -1471,8 +1469,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BIND_TRAITS_SPEC_HANDLER(ZEND_
 
        SAVE_OPLINE();
        zend_do_bind_traits(ce);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_HANDLE_EXCEPTION_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -1545,8 +1542,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_VERIFY_ABSTRACT_CLASS_SPEC_HAN
 
        SAVE_OPLINE();
        zend_verify_abstract_class(Z_CE_P(EX_VAR(opline->op1.var)));
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_USER_OPCODE_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -1855,8 +1851,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_CLASS_SPEC_CONST_HANDLER
        }
        if (IS_CONST == IS_UNUSED) {
                Z_CE_P(EX_VAR(opline->result.var)) = zend_fetch_class(NULL, opline->extended_value);
-               CHECK_EXCEPTION();
-               ZEND_VM_NEXT_OPCODE();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        } else {
 
                zval *class_name = EX_CONSTANT(opline->op2);
@@ -1886,8 +1881,7 @@ try_class_name:
                        zend_throw_error(NULL, "Class name must be a valid object or a string");
                }
 
-               CHECK_EXCEPTION();
-               ZEND_VM_NEXT_OPCODE();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        }
 }
 
@@ -1952,8 +1946,7 @@ try_function_name:
                        called_scope = zend_fetch_class_by_name(lcname, NULL, ZEND_FETCH_CLASS_DEFAULT | ZEND_FETCH_CLASS_EXCEPTION);
                        if (UNEXPECTED(called_scope == NULL)) {
                                zend_string_release(lcname);
-                               CHECK_EXCEPTION();
-                               ZEND_VM_NEXT_OPCODE();
+                               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
                        }
 
                        mname = zend_string_init(Z_STRVAL_P(function_name) + (cname_length + sizeof("::") - 1), mname_length, 0);
@@ -2052,8 +2045,7 @@ try_function_name:
                        object = NULL;
                        called_scope = zend_fetch_class_by_name(Z_STR_P(obj), NULL, ZEND_FETCH_CLASS_DEFAULT | ZEND_FETCH_CLASS_EXCEPTION);
                        if (UNEXPECTED(called_scope == NULL)) {
-                               CHECK_EXCEPTION();
-                               ZEND_VM_NEXT_OPCODE();
+                               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
                        }
 
                        if (called_scope->get_static_method) {
@@ -2122,8 +2114,7 @@ try_function_name:
        call->prev_execute_data = EX(call);
        EX(call) = call;
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_NS_FCALL_BY_NAME_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -2240,8 +2231,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ADD_INTERFACE_SPEC_CONST_HANDL
        } else {
                iface = zend_fetch_class_by_name(Z_STR_P(EX_CONSTANT(opline->op2)), EX_CONSTANT(opline->op2) + 1, ZEND_FETCH_CLASS_INTERFACE);
                if (UNEXPECTED(iface == NULL)) {
-                       CHECK_EXCEPTION();
-                       ZEND_VM_NEXT_OPCODE();
+                       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
                }
                CACHE_PTR(Z_CACHE_SLOT_P(EX_CONSTANT(opline->op2)), iface);
        }
@@ -2251,8 +2241,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ADD_INTERFACE_SPEC_CONST_HANDL
        }
        zend_do_implement_interface(ce, iface);
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_CLASS_SPEC_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -2265,8 +2254,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_CLASS_SPEC_UNUSED_HANDLE
        }
        if (IS_UNUSED == IS_UNUSED) {
                Z_CE_P(EX_VAR(opline->result.var)) = zend_fetch_class(NULL, opline->extended_value);
-               CHECK_EXCEPTION();
-               ZEND_VM_NEXT_OPCODE();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        } else {
 
                zval *class_name = NULL;
@@ -2296,8 +2284,7 @@ try_class_name:
                        zend_throw_error(NULL, "Class name must be a valid object or a string");
                }
 
-               CHECK_EXCEPTION();
-               ZEND_VM_NEXT_OPCODE();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        }
 }
 
@@ -2311,8 +2298,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_CLASS_SPEC_CV_HANDLER(ZE
        }
        if (IS_CV == IS_UNUSED) {
                Z_CE_P(EX_VAR(opline->result.var)) = zend_fetch_class(NULL, opline->extended_value);
-               CHECK_EXCEPTION();
-               ZEND_VM_NEXT_OPCODE();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        } else {
 
                zval *class_name = _get_zval_ptr_cv_undef(execute_data, opline->op2.var);
@@ -2342,8 +2328,7 @@ try_class_name:
                        zend_throw_error(NULL, "Class name must be a valid object or a string");
                }
 
-               CHECK_EXCEPTION();
-               ZEND_VM_NEXT_OPCODE();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        }
 }
 
@@ -2380,8 +2365,7 @@ try_function_name:
                        called_scope = zend_fetch_class_by_name(lcname, NULL, ZEND_FETCH_CLASS_DEFAULT | ZEND_FETCH_CLASS_EXCEPTION);
                        if (UNEXPECTED(called_scope == NULL)) {
                                zend_string_release(lcname);
-                               CHECK_EXCEPTION();
-                               ZEND_VM_NEXT_OPCODE();
+                               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
                        }
 
                        mname = zend_string_init(Z_STRVAL_P(function_name) + (cname_length + sizeof("::") - 1), mname_length, 0);
@@ -2480,8 +2464,7 @@ try_function_name:
                        object = NULL;
                        called_scope = zend_fetch_class_by_name(Z_STR_P(obj), NULL, ZEND_FETCH_CLASS_DEFAULT | ZEND_FETCH_CLASS_EXCEPTION);
                        if (UNEXPECTED(called_scope == NULL)) {
-                               CHECK_EXCEPTION();
-                               ZEND_VM_NEXT_OPCODE();
+                               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
                        }
 
                        if (called_scope->get_static_method) {
@@ -2550,8 +2533,7 @@ try_function_name:
        call->prev_execute_data = EX(call);
        EX(call) = call;
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_CLASS_SPEC_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -2564,8 +2546,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_CLASS_SPEC_TMPVAR_HANDLE
        }
        if ((IS_TMP_VAR|IS_VAR) == IS_UNUSED) {
                Z_CE_P(EX_VAR(opline->result.var)) = zend_fetch_class(NULL, opline->extended_value);
-               CHECK_EXCEPTION();
-               ZEND_VM_NEXT_OPCODE();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        } else {
                zend_free_op free_op2;
                zval *class_name = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
@@ -2596,8 +2577,7 @@ try_class_name:
                }
 
                zval_ptr_dtor_nogc(free_op2);
-               CHECK_EXCEPTION();
-               ZEND_VM_NEXT_OPCODE();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        }
 }
 
@@ -2634,8 +2614,7 @@ try_function_name:
                        called_scope = zend_fetch_class_by_name(lcname, NULL, ZEND_FETCH_CLASS_DEFAULT | ZEND_FETCH_CLASS_EXCEPTION);
                        if (UNEXPECTED(called_scope == NULL)) {
                                zend_string_release(lcname);
-                               CHECK_EXCEPTION();
-                               ZEND_VM_NEXT_OPCODE();
+                               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
                        }
 
                        mname = zend_string_init(Z_STRVAL_P(function_name) + (cname_length + sizeof("::") - 1), mname_length, 0);
@@ -2734,8 +2713,7 @@ try_function_name:
                        object = NULL;
                        called_scope = zend_fetch_class_by_name(Z_STR_P(obj), NULL, ZEND_FETCH_CLASS_DEFAULT | ZEND_FETCH_CLASS_EXCEPTION);
                        if (UNEXPECTED(called_scope == NULL)) {
-                               CHECK_EXCEPTION();
-                               ZEND_VM_NEXT_OPCODE();
+                               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
                        }
 
                        if (called_scope->get_static_method) {
@@ -2804,8 +2782,7 @@ try_function_name:
        call->prev_execute_data = EX(call);
        EX(call) = call;
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BW_NOT_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -2817,8 +2794,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BW_NOT_SPEC_CONST_HANDLER(ZEND
        bitwise_not_function(EX_VAR(opline->result.var),
                EX_CONSTANT(opline->op1));
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BOOL_NOT_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -2831,17 +2807,17 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BOOL_NOT_SPEC_CONST_HANDLER(ZE
        if (Z_TYPE_INFO_P(val) == IS_TRUE) {
                ZVAL_FALSE(EX_VAR(opline->result.var));
        } else if (EXPECTED(Z_TYPE_INFO_P(val) <= IS_TRUE)) {
+               ZVAL_TRUE(EX_VAR(opline->result.var));
                if (UNEXPECTED(Z_TYPE_INFO_P(val) == IS_UNDEF)) {
                        SAVE_OPLINE();
                        GET_OP1_UNDEF_CV(val, BP_VAR_R);
-                       CHECK_EXCEPTION();
+                       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
                }
-               ZVAL_TRUE(EX_VAR(opline->result.var));
        } else {
                SAVE_OPLINE();
                ZVAL_BOOL(EX_VAR(opline->result.var), !i_zend_is_true(val));
 
-               CHECK_EXCEPTION();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        }
        ZEND_VM_NEXT_OPCODE();
 }
@@ -2872,8 +2848,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ECHO_SPEC_CONST_HANDLER(ZEND_O
                zend_string_release(str);
        }
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_JMPZ_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -2888,11 +2863,9 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_JMPZ_SPEC_CONST_HANDLER(ZEND_O
                ZEND_VM_SET_NEXT_OPCODE(opline + 1);
                ZEND_VM_CONTINUE();
        } else if (EXPECTED(Z_TYPE_INFO_P(val) <= IS_TRUE)) {
-               if (IS_CONST == IS_CV) {
-                       if (UNEXPECTED(Z_TYPE_INFO_P(val) == IS_UNDEF)) {
-                               SAVE_OPLINE();
-                               GET_OP1_UNDEF_CV(val, BP_VAR_R);
-                       }
+               if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(val) == IS_UNDEF)) {
+                       SAVE_OPLINE();
+                       GET_OP1_UNDEF_CV(val, BP_VAR_R);
                        ZEND_VM_JMP(OP_JMP_ADDR(opline, opline->op2));
                } else {
                        ZEND_VM_SET_OPCODE(OP_JMP_ADDR(opline, opline->op2));
@@ -2925,16 +2898,12 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_JMPNZ_SPEC_CONST_HANDLER(ZEND_
                ZEND_VM_SET_OPCODE(OP_JMP_ADDR(opline, opline->op2));
                ZEND_VM_CONTINUE();
        } else if (EXPECTED(Z_TYPE_INFO_P(val) <= IS_TRUE)) {
-               if (IS_CONST == IS_CV) {
-                       if (UNEXPECTED(Z_TYPE_INFO_P(val) == IS_UNDEF)) {
-                               SAVE_OPLINE();
-                               GET_OP1_UNDEF_CV(val, BP_VAR_R);
-                               CHECK_EXCEPTION();
-                       }
-                       ZEND_VM_NEXT_OPCODE();
+               if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(val) == IS_UNDEF)) {
+                       SAVE_OPLINE();
+                       GET_OP1_UNDEF_CV(val, BP_VAR_R);
+                       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
                } else {
-                       ZEND_VM_SET_NEXT_OPCODE(opline + 1);
-                       ZEND_VM_CONTINUE();
+                       ZEND_VM_NEXT_OPCODE();
                }
        }
 
@@ -3046,16 +3015,12 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_JMPNZ_EX_SPEC_CONST_HANDLER(ZE
                ZEND_VM_CONTINUE();
        } else if (EXPECTED(Z_TYPE_INFO_P(val) <= IS_TRUE)) {
                ZVAL_FALSE(EX_VAR(opline->result.var));
-               if (IS_CONST == IS_CV) {
-                       if (UNEXPECTED(Z_TYPE_INFO_P(val) == IS_UNDEF)) {
-                               SAVE_OPLINE();
-                               GET_OP1_UNDEF_CV(val, BP_VAR_R);
-                               CHECK_EXCEPTION();
-                       }
-                       ZEND_VM_NEXT_OPCODE();
+               if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(val) == IS_UNDEF)) {
+                       SAVE_OPLINE();
+                       GET_OP1_UNDEF_CV(val, BP_VAR_R);
+                       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
                } else {
-                       ZEND_VM_SET_NEXT_OPCODE(opline + 1);
-                       ZEND_VM_CONTINUE();
+                       ZEND_VM_NEXT_OPCODE();
                }
        }
 
@@ -3328,17 +3293,17 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BOOL_SPEC_CONST_HANDLER(ZEND_O
        if (Z_TYPE_INFO_P(val) == IS_TRUE) {
                ZVAL_TRUE(EX_VAR(opline->result.var));
        } else if (EXPECTED(Z_TYPE_INFO_P(val) <= IS_TRUE)) {
+               ZVAL_FALSE(EX_VAR(opline->result.var));
                if (UNEXPECTED(Z_TYPE_INFO_P(val) == IS_UNDEF)) {
                        SAVE_OPLINE();
                        GET_OP1_UNDEF_CV(val, BP_VAR_R);
-                       CHECK_EXCEPTION();
+                       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
                }
-               ZVAL_FALSE(EX_VAR(opline->result.var));
        } else {
                SAVE_OPLINE();
                ZVAL_BOOL(EX_VAR(opline->result.var), i_zend_is_true(val));
 
-               CHECK_EXCEPTION();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        }
        ZEND_VM_NEXT_OPCODE();
 }
@@ -3357,8 +3322,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_NEW_SPEC_CONST_HANDLER(ZEND_OP
                } else {
                        ce = zend_fetch_class_by_name(Z_STR_P(EX_CONSTANT(opline->op1)), EX_CONSTANT(opline->op1) + 1, ZEND_FETCH_CLASS_DEFAULT | ZEND_FETCH_CLASS_EXCEPTION);
                        if (UNEXPECTED(ce == NULL)) {
-                               CHECK_EXCEPTION();
-                               ZEND_VM_NEXT_OPCODE();
+                               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
                        }
                        CACHE_PTR(Z_CACHE_SLOT_P(EX_CONSTANT(opline->op1)), ce);
                }
@@ -3393,8 +3357,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_NEW_SPEC_CONST_HANDLER(ZEND_OP
                        ZVAL_COPY(EX_VAR(opline->result.var), &object_zval);
                }
 
-               CHECK_EXCEPTION();
-               ZEND_VM_NEXT_OPCODE();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        }
 }
 
@@ -3476,8 +3439,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CLONE_SPEC_CONST_HANDLER(ZEND_
                }
        }
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CAST_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -3535,8 +3497,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CAST_SPEC_CONST_HANDLER(ZEND_O
                                        if (Z_OPT_REFCOUNTED_P(expr)) Z_ADDREF_P(expr);
                                }
 
-                               CHECK_EXCEPTION();
-                               ZEND_VM_NEXT_OPCODE();
+                               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
                        }
 
                        if (opline->extended_value == IS_ARRAY) {
@@ -3578,8 +3539,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CAST_SPEC_CONST_HANDLER(ZEND_O
                        }
        }
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INCLUDE_OR_EVAL_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -3729,8 +3689,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FE_RESET_R_SPEC_CONST_HANDLER(
                }
                Z_FE_POS_P(result) = 0;
 
-               CHECK_EXCEPTION();
-               ZEND_VM_NEXT_OPCODE();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        } else if (IS_CONST != IS_CONST && EXPECTED(Z_TYPE_P(array_ptr) == IS_OBJECT)) {
                if (!Z_OBJCE_P(array_ptr)->get_iterator) {
                        HashPosition pos = 0;
@@ -3762,8 +3721,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FE_RESET_R_SPEC_CONST_HANDLER(
                        }
                        Z_FE_ITER_P(EX_VAR(opline->result.var)) = zend_hash_iterator_add(fe_ht, pos);
 
-                       CHECK_EXCEPTION();
-                       ZEND_VM_NEXT_OPCODE();
+                       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
                } else {
                        zend_class_entry *ce = Z_OBJCE_P(array_ptr);
                        zend_object_iterator *iter = ce->get_iterator(ce, array_ptr, 0);
@@ -3803,8 +3761,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FE_RESET_R_SPEC_CONST_HANDLER(
                        if (is_empty) {
                                ZEND_VM_JMP(OP_JMP_ADDR(opline, opline->op2));
                        } else {
-                               CHECK_EXCEPTION();
-                               ZEND_VM_NEXT_OPCODE();
+                               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
                        }
                }
        } else {
@@ -3871,8 +3828,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FE_RESET_RW_SPEC_CONST_HANDLER
                }
                Z_FE_ITER_P(EX_VAR(opline->result.var)) = zend_hash_iterator_add(fe_ht, pos);
 
-               CHECK_EXCEPTION();
-               ZEND_VM_NEXT_OPCODE();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        } else if (IS_CONST != IS_CONST && EXPECTED(Z_TYPE_P(array_ptr) == IS_OBJECT)) {
                if (!Z_OBJCE_P(array_ptr)->get_iterator) {
                        if (IS_CONST == IS_VAR || IS_CONST == IS_CV) {
@@ -3906,8 +3862,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FE_RESET_RW_SPEC_CONST_HANDLER
                        }
                        Z_FE_ITER_P(EX_VAR(opline->result.var)) = zend_hash_iterator_add(fe_ht, pos);
 
-                       CHECK_EXCEPTION();
-                       ZEND_VM_NEXT_OPCODE();
+                       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
                } else {
                        zend_class_entry *ce = Z_OBJCE_P(array_ptr);
                        zend_object_iterator *iter = ce->get_iterator(ce, array_ptr, 1);
@@ -3964,8 +3919,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FE_RESET_RW_SPEC_CONST_HANDLER
                        if (is_empty) {
                                ZEND_VM_JMP(OP_JMP_ADDR(opline, opline->op2));
                        } else {
-                               CHECK_EXCEPTION();
-                               ZEND_VM_NEXT_OPCODE();
+                               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
                        }
                }
        } else {
@@ -3983,7 +3937,6 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FE_RESET_RW_SPEC_CONST_HANDLER
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_EXIT_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
 {
-#if 0 || (IS_CONST != IS_UNUSED)
        USE_OPLINE
 
        SAVE_OPLINE();
@@ -4007,7 +3960,6 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_EXIT_SPEC_CONST_HANDLER(ZEND_O
                } while (0);
 
        }
-#endif
        zend_bailout();
        ZEND_VM_NEXT_OPCODE(); /* Never reached */
 }
@@ -4045,8 +3997,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_JMP_SET_SPEC_CONST_HANDLER(ZEN
                ZEND_VM_JMP(OP_JMP_ADDR(opline, opline->op2));
        }
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_COALESCE_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -4083,8 +4034,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_COALESCE_SPEC_CONST_HANDLER(ZE
                ZEND_VM_JMP(OP_JMP_ADDR(opline, opline->op2));
        }
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_QM_ASSIGN_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -4096,8 +4046,9 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_QM_ASSIGN_SPEC_CONST_HANDLER(Z
        value = EX_CONSTANT(opline->op1);
        if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_P(value) == IS_UNDEF)) {
                SAVE_OPLINE();
-               value = GET_OP1_UNDEF_CV(value, BP_VAR_R);
-               CHECK_EXCEPTION();
+               GET_OP1_UNDEF_CV(value, BP_VAR_R);
+               ZVAL_NULL(EX_VAR(opline->result.var));
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        }
 
        if ((IS_CONST == IS_VAR || IS_CONST == IS_CV) && Z_ISREF_P(value)) {
@@ -4247,8 +4198,7 @@ try_strlen:
                } while (0);
        }
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_TYPE_CHECK_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -4284,8 +4234,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_TYPE_CHECK_SPEC_CONST_HANDLER(
 
        ZEND_VM_SMART_BRANCH(result, 1);
        ZVAL_BOOL(EX_VAR(opline->result.var), result);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_DEFINED_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -4348,8 +4297,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ADD_SPEC_CONST_CONST_HANDLER(Z
        add_function(EX_VAR(opline->result.var), op1, op2);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SUB_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -4392,8 +4340,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SUB_SPEC_CONST_CONST_HANDLER(Z
        sub_function(EX_VAR(opline->result.var), op1, op2);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_MUL_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -4439,8 +4386,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_MUL_SPEC_CONST_CONST_HANDLER(Z
        mul_function(EX_VAR(opline->result.var), op1, op2);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_DIV_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -4455,8 +4401,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_DIV_SPEC_CONST_CONST_HANDLER(Z
        fast_div_function(EX_VAR(opline->result.var), op1, op2);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_MOD_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -4494,8 +4439,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_MOD_SPEC_CONST_CONST_HANDLER(Z
        mod_function(EX_VAR(opline->result.var), op1, op2);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SL_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -4510,8 +4454,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SL_SPEC_CONST_CONST_HANDLER(ZE
        shift_left_function(EX_VAR(opline->result.var), op1, op2);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SR_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -4526,8 +4469,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SR_SPEC_CONST_CONST_HANDLER(ZE
        shift_right_function(EX_VAR(opline->result.var), op1, op2);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CONCAT_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -4587,8 +4529,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CONCAT_SPEC_CONST_CONST_HANDLE
 
        } while (0);
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_IDENTICAL_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -4607,7 +4548,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_IDENTICAL_SPEC_CONST_CONST_
        ZEND_VM_SMART_BRANCH(result, (IS_CONST|IS_CONST) & (IS_VAR|IS_TMP_VAR));
        ZVAL_BOOL(EX_VAR(opline->result.var), result);
        if ((IS_CONST|IS_CONST) & (IS_VAR|IS_TMP_VAR)) {
-               CHECK_EXCEPTION();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        }
        ZEND_VM_NEXT_OPCODE();
 }
@@ -4628,7 +4569,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_NOT_IDENTICAL_SPEC_CONST_CO
        ZEND_VM_SMART_BRANCH(result, (IS_CONST|IS_CONST) & (IS_VAR|IS_TMP_VAR));
        ZVAL_BOOL(EX_VAR(opline->result.var), result);
        if ((IS_CONST|IS_CONST) & (IS_VAR|IS_TMP_VAR)) {
-               CHECK_EXCEPTION();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        }
        ZEND_VM_NEXT_OPCODE();
 }
@@ -4698,8 +4639,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_EQUAL_SPEC_CONST_CONST_HAND
        ZVAL_BOOL(result, Z_LVAL_P(result) == 0);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_NOT_EQUAL_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -4767,8 +4707,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_NOT_EQUAL_SPEC_CONST_CONST_
        ZVAL_BOOL(result, Z_LVAL_P(result) != 0);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -4818,8 +4757,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_SPEC_CONST_CONST_HA
        ZVAL_BOOL(result, Z_LVAL_P(result) < 0);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_OR_EQUAL_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -4869,8 +4807,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_OR_EQUAL_SPEC_CONST
        ZVAL_BOOL(result, Z_LVAL_P(result) <= 0);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SPACESHIP_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -4885,8 +4822,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SPACESHIP_SPEC_CONST_CONST_HAN
        compare_function(EX_VAR(opline->result.var), op1, op2);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BW_OR_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -4901,8 +4837,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BW_OR_SPEC_CONST_CONST_HANDLER
        bitwise_or_function(EX_VAR(opline->result.var), op1, op2);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BW_AND_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -4917,8 +4852,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BW_AND_SPEC_CONST_CONST_HANDLE
        bitwise_and_function(EX_VAR(opline->result.var), op1, op2);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BW_XOR_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -4933,8 +4867,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BW_XOR_SPEC_CONST_CONST_HANDLE
        bitwise_xor_function(EX_VAR(opline->result.var), op1, op2);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BOOL_XOR_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -4949,8 +4882,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BOOL_XOR_SPEC_CONST_CONST_HAND
        boolean_xor_function(EX_VAR(opline->result.var), op1, op2);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_CONST_CONST(int type ZEND_OPCODE_HANDLER_ARGS_DC)
@@ -5003,8 +4935,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_
                                                zend_string_release(name);
                                        }
 
-                                       CHECK_EXCEPTION();
-                                       ZEND_VM_NEXT_OPCODE();
+                                       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
                                }
                                CACHE_PTR(Z_CACHE_SLOT_P(EX_CONSTANT(opline->op2)), ce);
                        }
@@ -5100,8 +5031,7 @@ fetch_var_return:
        } else {
                ZVAL_INDIRECT(EX_VAR(opline->result.var), retval);
        }
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_R_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -5151,8 +5081,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_R_SPEC_CONST_CONST_H
        zend_fetch_dimension_address_read_R(EX_VAR(opline->result.var), container, EX_CONSTANT(opline->op2), IS_CONST);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_IS_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -5166,8 +5095,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_IS_SPEC_CONST_CONST_
        zend_fetch_dimension_address_read_IS(EX_VAR(opline->result.var), container, EX_CONSTANT(opline->op2), IS_CONST);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -5209,8 +5137,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_CONST_
 
 
        }
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_R_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -5282,8 +5209,7 @@ fetch_obj_r_no_object:
        } while (0);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -5355,8 +5281,7 @@ fetch_obj_is_no_object:
        } while (0);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -5395,8 +5320,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_CONST_
                        EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
                }
 
-               CHECK_EXCEPTION();
-               ZEND_VM_NEXT_OPCODE();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        } else {
                ZEND_VM_TAIL_CALL(ZEND_FETCH_OBJ_R_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU));
        }
@@ -5443,8 +5367,7 @@ try_fetch_list:
                }
                ZVAL_NULL(EX_VAR(opline->result.var));
        }
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FAST_CONCAT_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -5511,8 +5434,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FAST_CONCAT_SPEC_CONST_CONST_H
        } while (0);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -5631,8 +5553,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_CONST_CO
        EX(call) = call;
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -5764,8 +5685,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_C
        call->prev_execute_data = EX(call);
        EX(call) = call;
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_USER_CALL_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -5820,8 +5740,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_USER_CALL_SPEC_CONST_CONS
        call->prev_execute_data = EX(call);
        EX(call) = call;
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CASE_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -5887,8 +5806,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CASE_SPEC_CONST_CONST_HANDLER(
        compare_function(result, op1, op2);
        ZVAL_BOOL(result, Z_LVAL_P(result) == 0);
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_CONSTANT_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -5914,8 +5832,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_CONSTANT_SPEC_CONST_CONS
                                /* non-qualified constant - allow text substitution */
                                zend_error(E_NOTICE, "Use of undefined constant %s - assumed '%s'",
                                                Z_STRVAL_P(EX_VAR(opline->result.var)), Z_STRVAL_P(EX_VAR(opline->result.var)));
-                               CHECK_EXCEPTION();
-                               ZEND_VM_NEXT_OPCODE();
+                               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
                        } else {
                                zend_throw_error(NULL, "Undefined constant '%s'", Z_STRVAL_P(EX_CONSTANT(opline->op2)));
                                HANDLE_EXCEPTION();
@@ -6096,8 +6013,7 @@ num_index:
        } else {
                zend_hash_next_index_insert(Z_ARRVAL_P(EX_VAR(opline->result.var)), expr_ptr);
        }
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_ARRAY_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -6157,8 +6073,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_VAR_SPEC_CONST_CONST_HAN
                } else {
                        ZVAL_UNDEF(var);
                }
-               CHECK_EXCEPTION();
-               ZEND_VM_NEXT_OPCODE();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        }
 
        varname = EX_CONSTANT(opline->op1);
@@ -6209,8 +6124,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_VAR_SPEC_CONST_CONST_HAN
                zend_string_release(Z_STR(tmp));
        }
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_VAR_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -6270,8 +6184,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_VAR_SPEC_CONST_C
                                } else {
                                        ce = zend_fetch_class_by_name(Z_STR_P(EX_CONSTANT(opline->op2)), EX_CONSTANT(opline->op2) + 1, ZEND_FETCH_CLASS_DEFAULT | ZEND_FETCH_CLASS_EXCEPTION);
                                        if (UNEXPECTED(ce == NULL)) {
-                                               CHECK_EXCEPTION();
-                                               ZEND_VM_NEXT_OPCODE();
+                                               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
                                        }
                                        CACHE_PTR(Z_CACHE_SLOT_P(EX_CONSTANT(opline->op2)), ce);
                                }
@@ -6313,8 +6226,7 @@ is_var_return:
 
                ZEND_VM_SMART_BRANCH(result, 1);
                ZVAL_BOOL(EX_VAR(opline->result.var), result);
-               CHECK_EXCEPTION();
-               ZEND_VM_NEXT_OPCODE();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        }
 }
 
@@ -6452,8 +6364,7 @@ isset_dim_obj_exit:
 
        ZEND_VM_SMART_BRANCH(result, 1);
        ZVAL_BOOL(EX_VAR(opline->result.var), result);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -6499,8 +6410,7 @@ isset_no_object:
 
        ZEND_VM_SMART_BRANCH(result, 1);
        ZVAL_BOOL(EX_VAR(opline->result.var), result);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_DECLARE_CONST_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -6536,8 +6446,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_DECLARE_CONST_SPEC_CONST_CONST
        }
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -6693,8 +6602,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_POW_SPEC_CONST_CONST_HANDLER(Z
        pow_function(EX_VAR(opline->result.var), op1, op2);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_IDENTICAL_SPEC_CONST_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -6713,7 +6621,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_IDENTICAL_SPEC_CONST_TMP_HA
        ZEND_VM_SMART_BRANCH(result, (IS_CONST|IS_TMP_VAR) & (IS_VAR|IS_TMP_VAR));
        ZVAL_BOOL(EX_VAR(opline->result.var), result);
        if ((IS_CONST|IS_TMP_VAR) & (IS_VAR|IS_TMP_VAR)) {
-               CHECK_EXCEPTION();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        }
        ZEND_VM_NEXT_OPCODE();
 }
@@ -6734,7 +6642,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_NOT_IDENTICAL_SPEC_CONST_TM
        ZEND_VM_SMART_BRANCH(result, (IS_CONST|IS_TMP_VAR) & (IS_VAR|IS_TMP_VAR));
        ZVAL_BOOL(EX_VAR(opline->result.var), result);
        if ((IS_CONST|IS_TMP_VAR) & (IS_VAR|IS_TMP_VAR)) {
-               CHECK_EXCEPTION();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        }
        ZEND_VM_NEXT_OPCODE();
 }
@@ -6896,7 +6804,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_IDENTICAL_SPEC_CONST_VAR_HA
        ZEND_VM_SMART_BRANCH(result, (IS_CONST|IS_VAR) & (IS_VAR|IS_TMP_VAR));
        ZVAL_BOOL(EX_VAR(opline->result.var), result);
        if ((IS_CONST|IS_VAR) & (IS_VAR|IS_TMP_VAR)) {
-               CHECK_EXCEPTION();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        }
        ZEND_VM_NEXT_OPCODE();
 }
@@ -6917,7 +6825,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_NOT_IDENTICAL_SPEC_CONST_VA
        ZEND_VM_SMART_BRANCH(result, (IS_CONST|IS_VAR) & (IS_VAR|IS_TMP_VAR));
        ZVAL_BOOL(EX_VAR(opline->result.var), result);
        if ((IS_CONST|IS_VAR) & (IS_VAR|IS_TMP_VAR)) {
-               CHECK_EXCEPTION();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        }
        ZEND_VM_NEXT_OPCODE();
 }
@@ -6972,8 +6880,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_
                                                zend_string_release(name);
                                        }
 
-                                       CHECK_EXCEPTION();
-                                       ZEND_VM_NEXT_OPCODE();
+                                       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
                                }
                                CACHE_PTR(Z_CACHE_SLOT_P(EX_CONSTANT(opline->op2)), ce);
                        }
@@ -7069,8 +6976,7 @@ fetch_var_return:
        } else {
                ZVAL_INDIRECT(EX_VAR(opline->result.var), retval);
        }
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_R_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -7135,8 +7041,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_VAR_SPEC_CONST_VAR_HANDL
                } else {
                        ZVAL_UNDEF(var);
                }
-               CHECK_EXCEPTION();
-               ZEND_VM_NEXT_OPCODE();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        }
 
        varname = EX_CONSTANT(opline->op1);
@@ -7187,8 +7092,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_VAR_SPEC_CONST_VAR_HANDL
                zend_string_release(Z_STR(tmp));
        }
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_VAR_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -7248,8 +7152,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_VAR_SPEC_CONST_V
                                } else {
                                        ce = zend_fetch_class_by_name(Z_STR_P(EX_CONSTANT(opline->op2)), EX_CONSTANT(opline->op2) + 1, ZEND_FETCH_CLASS_DEFAULT | ZEND_FETCH_CLASS_EXCEPTION);
                                        if (UNEXPECTED(ce == NULL)) {
-                                               CHECK_EXCEPTION();
-                                               ZEND_VM_NEXT_OPCODE();
+                                               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
                                        }
                                        CACHE_PTR(Z_CACHE_SLOT_P(EX_CONSTANT(opline->op2)), ce);
                                }
@@ -7291,8 +7194,7 @@ is_var_return:
 
                ZEND_VM_SMART_BRANCH(result, 1);
                ZVAL_BOOL(EX_VAR(opline->result.var), result);
-               CHECK_EXCEPTION();
-               ZEND_VM_NEXT_OPCODE();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        }
 }
 
@@ -7487,8 +7389,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_
                                                zend_string_release(name);
                                        }
 
-                                       CHECK_EXCEPTION();
-                                       ZEND_VM_NEXT_OPCODE();
+                                       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
                                }
                                CACHE_PTR(Z_CACHE_SLOT_P(EX_CONSTANT(opline->op2)), ce);
                        }
@@ -7584,8 +7485,7 @@ fetch_var_return:
        } else {
                ZVAL_INDIRECT(EX_VAR(opline->result.var), retval);
        }
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_R_SPEC_CONST_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -7663,8 +7563,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_CONST_
 
 
        }
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_CONST_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -7796,8 +7695,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_C
        call->prev_execute_data = EX(call);
        EX(call) = call;
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_VERIFY_RETURN_TYPE_SPEC_CONST_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -7845,8 +7743,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_VERIFY_RETURN_TYPE_SPEC_CONST_
                }
 #endif
        }
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_CONST_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -7945,8 +7842,7 @@ num_index:
        } else {
                zend_hash_next_index_insert(Z_ARRVAL_P(EX_VAR(opline->result.var)), expr_ptr);
        }
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_ARRAY_SPEC_CONST_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -8006,8 +7902,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_VAR_SPEC_CONST_UNUSED_HA
                } else {
                        ZVAL_UNDEF(var);
                }
-               CHECK_EXCEPTION();
-               ZEND_VM_NEXT_OPCODE();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        }
 
        varname = EX_CONSTANT(opline->op1);
@@ -8058,8 +7953,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_VAR_SPEC_CONST_UNUSED_HA
                zend_string_release(Z_STR(tmp));
        }
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_VAR_SPEC_CONST_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -8119,8 +8013,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_VAR_SPEC_CONST_U
                                } else {
                                        ce = zend_fetch_class_by_name(Z_STR_P(EX_CONSTANT(opline->op2)), EX_CONSTANT(opline->op2) + 1, ZEND_FETCH_CLASS_DEFAULT | ZEND_FETCH_CLASS_EXCEPTION);
                                        if (UNEXPECTED(ce == NULL)) {
-                                               CHECK_EXCEPTION();
-                                               ZEND_VM_NEXT_OPCODE();
+                                               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
                                        }
                                        CACHE_PTR(Z_CACHE_SLOT_P(EX_CONSTANT(opline->op2)), ce);
                                }
@@ -8162,8 +8055,7 @@ is_var_return:
 
                ZEND_VM_SMART_BRANCH(result, 1);
                ZVAL_BOOL(EX_VAR(opline->result.var), result);
-               CHECK_EXCEPTION();
-               ZEND_VM_NEXT_OPCODE();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        }
 }
 
@@ -8186,8 +8078,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_DECLARE_LAMBDA_FUNCTION_SPEC_C
                        EG(scope), EX(called_scope), Z_OBJ(EX(This)) ? &EX(This) : NULL);
        }
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_SPEC_CONST_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -8371,8 +8262,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ADD_SPEC_CONST_CV_HANDLER(ZEND
        add_function(EX_VAR(opline->result.var), op1, op2);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SUB_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -8415,8 +8305,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SUB_SPEC_CONST_CV_HANDLER(ZEND
        sub_function(EX_VAR(opline->result.var), op1, op2);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_MUL_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -8462,8 +8351,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_MUL_SPEC_CONST_CV_HANDLER(ZEND
        mul_function(EX_VAR(opline->result.var), op1, op2);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_DIV_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -8478,8 +8366,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_DIV_SPEC_CONST_CV_HANDLER(ZEND
        fast_div_function(EX_VAR(opline->result.var), op1, op2);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_MOD_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -8517,8 +8404,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_MOD_SPEC_CONST_CV_HANDLER(ZEND
        mod_function(EX_VAR(opline->result.var), op1, op2);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SL_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -8533,8 +8419,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SL_SPEC_CONST_CV_HANDLER(ZEND_
        shift_left_function(EX_VAR(opline->result.var), op1, op2);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SR_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -8549,8 +8434,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SR_SPEC_CONST_CV_HANDLER(ZEND_
        shift_right_function(EX_VAR(opline->result.var), op1, op2);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CONCAT_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -8610,8 +8494,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CONCAT_SPEC_CONST_CV_HANDLER(Z
 
        } while (0);
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_IDENTICAL_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -8630,7 +8513,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_IDENTICAL_SPEC_CONST_CV_HAN
        ZEND_VM_SMART_BRANCH(result, (IS_CONST|IS_CV) & (IS_VAR|IS_TMP_VAR));
        ZVAL_BOOL(EX_VAR(opline->result.var), result);
        if ((IS_CONST|IS_CV) & (IS_VAR|IS_TMP_VAR)) {
-               CHECK_EXCEPTION();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        }
        ZEND_VM_NEXT_OPCODE();
 }
@@ -8651,7 +8534,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_NOT_IDENTICAL_SPEC_CONST_CV
        ZEND_VM_SMART_BRANCH(result, (IS_CONST|IS_CV) & (IS_VAR|IS_TMP_VAR));
        ZVAL_BOOL(EX_VAR(opline->result.var), result);
        if ((IS_CONST|IS_CV) & (IS_VAR|IS_TMP_VAR)) {
-               CHECK_EXCEPTION();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        }
        ZEND_VM_NEXT_OPCODE();
 }
@@ -8721,8 +8604,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_EQUAL_SPEC_CONST_CV_HANDLER
        ZVAL_BOOL(result, Z_LVAL_P(result) == 0);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_NOT_EQUAL_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -8790,8 +8672,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_NOT_EQUAL_SPEC_CONST_CV_HAN
        ZVAL_BOOL(result, Z_LVAL_P(result) != 0);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -8841,8 +8722,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_SPEC_CONST_CV_HANDL
        ZVAL_BOOL(result, Z_LVAL_P(result) < 0);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_OR_EQUAL_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -8892,8 +8772,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_OR_EQUAL_SPEC_CONST
        ZVAL_BOOL(result, Z_LVAL_P(result) <= 0);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SPACESHIP_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -8908,8 +8787,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SPACESHIP_SPEC_CONST_CV_HANDLE
        compare_function(EX_VAR(opline->result.var), op1, op2);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BW_OR_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -8924,8 +8802,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BW_OR_SPEC_CONST_CV_HANDLER(ZE
        bitwise_or_function(EX_VAR(opline->result.var), op1, op2);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BW_AND_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -8940,8 +8817,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BW_AND_SPEC_CONST_CV_HANDLER(Z
        bitwise_and_function(EX_VAR(opline->result.var), op1, op2);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BW_XOR_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -8956,8 +8832,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BW_XOR_SPEC_CONST_CV_HANDLER(Z
        bitwise_xor_function(EX_VAR(opline->result.var), op1, op2);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BOOL_XOR_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -8972,8 +8847,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BOOL_XOR_SPEC_CONST_CV_HANDLER
        boolean_xor_function(EX_VAR(opline->result.var), op1, op2);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_R_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -8987,8 +8861,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_R_SPEC_CONST_CV_HAND
        zend_fetch_dimension_address_read_R(EX_VAR(opline->result.var), container, _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var), IS_CV);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_IS_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -9002,8 +8875,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_IS_SPEC_CONST_CV_HAN
        zend_fetch_dimension_address_read_IS(EX_VAR(opline->result.var), container, _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var), IS_CV);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -9045,8 +8917,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_CONST_
 
 
        }
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_R_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -9118,8 +8989,7 @@ fetch_obj_r_no_object:
        } while (0);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -9191,8 +9061,7 @@ fetch_obj_is_no_object:
        } while (0);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -9231,8 +9100,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_CONST_
                        EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
                }
 
-               CHECK_EXCEPTION();
-               ZEND_VM_NEXT_OPCODE();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        } else {
                ZEND_VM_TAIL_CALL(ZEND_FETCH_OBJ_R_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU));
        }
@@ -9302,8 +9170,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FAST_CONCAT_SPEC_CONST_CV_HAND
        } while (0);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -9422,8 +9289,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_CONST_CV
        EX(call) = call;
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -9555,8 +9421,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_C
        call->prev_execute_data = EX(call);
        EX(call) = call;
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_USER_CALL_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -9611,8 +9476,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_USER_CALL_SPEC_CONST_CV_H
        call->prev_execute_data = EX(call);
        EX(call) = call;
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CATCH_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -9729,8 +9593,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CASE_SPEC_CONST_CV_HANDLER(ZEN
        compare_function(result, op1, op2);
        ZVAL_BOOL(result, Z_LVAL_P(result) == 0);
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -9829,8 +9692,7 @@ num_index:
        } else {
                zend_hash_next_index_insert(Z_ARRVAL_P(EX_VAR(opline->result.var)), expr_ptr);
        }
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_ARRAY_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -9998,8 +9860,7 @@ isset_dim_obj_exit:
 
        ZEND_VM_SMART_BRANCH(result, 1);
        ZVAL_BOOL(EX_VAR(opline->result.var), result);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -10045,8 +9906,7 @@ isset_no_object:
 
        ZEND_VM_SMART_BRANCH(result, 1);
        ZVAL_BOOL(EX_VAR(opline->result.var), result);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -10202,8 +10062,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_POW_SPEC_CONST_CV_HANDLER(ZEND
        pow_function(EX_VAR(opline->result.var), op1, op2);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ADD_SPEC_CONST_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -10246,8 +10105,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ADD_SPEC_CONST_TMPVAR_HANDLER(
        add_function(EX_VAR(opline->result.var), op1, op2);
 
        zval_ptr_dtor_nogc(free_op2);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SUB_SPEC_CONST_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -10290,8 +10148,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SUB_SPEC_CONST_TMPVAR_HANDLER(
        sub_function(EX_VAR(opline->result.var), op1, op2);
 
        zval_ptr_dtor_nogc(free_op2);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_MUL_SPEC_CONST_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -10337,8 +10194,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_MUL_SPEC_CONST_TMPVAR_HANDLER(
        mul_function(EX_VAR(opline->result.var), op1, op2);
 
        zval_ptr_dtor_nogc(free_op2);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_DIV_SPEC_CONST_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -10353,8 +10209,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_DIV_SPEC_CONST_TMPVAR_HANDLER(
        fast_div_function(EX_VAR(opline->result.var), op1, op2);
 
        zval_ptr_dtor_nogc(free_op2);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_MOD_SPEC_CONST_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -10392,8 +10247,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_MOD_SPEC_CONST_TMPVAR_HANDLER(
        mod_function(EX_VAR(opline->result.var), op1, op2);
 
        zval_ptr_dtor_nogc(free_op2);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SL_SPEC_CONST_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -10408,8 +10262,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SL_SPEC_CONST_TMPVAR_HANDLER(Z
        shift_left_function(EX_VAR(opline->result.var), op1, op2);
 
        zval_ptr_dtor_nogc(free_op2);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SR_SPEC_CONST_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -10424,8 +10277,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SR_SPEC_CONST_TMPVAR_HANDLER(Z
        shift_right_function(EX_VAR(opline->result.var), op1, op2);
 
        zval_ptr_dtor_nogc(free_op2);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CONCAT_SPEC_CONST_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -10485,8 +10337,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CONCAT_SPEC_CONST_TMPVAR_HANDL
 
        } while (0);
        zval_ptr_dtor_nogc(free_op2);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_EQUAL_SPEC_CONST_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -10554,8 +10405,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_EQUAL_SPEC_CONST_TMPVAR_HAN
        ZVAL_BOOL(result, Z_LVAL_P(result) == 0);
 
        zval_ptr_dtor_nogc(free_op2);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_NOT_EQUAL_SPEC_CONST_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -10623,8 +10473,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_NOT_EQUAL_SPEC_CONST_TMPVAR
        ZVAL_BOOL(result, Z_LVAL_P(result) != 0);
 
        zval_ptr_dtor_nogc(free_op2);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_SPEC_CONST_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -10674,8 +10523,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_SPEC_CONST_TMPVAR_H
        ZVAL_BOOL(result, Z_LVAL_P(result) < 0);
 
        zval_ptr_dtor_nogc(free_op2);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_OR_EQUAL_SPEC_CONST_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -10725,8 +10573,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_OR_EQUAL_SPEC_CONST
        ZVAL_BOOL(result, Z_LVAL_P(result) <= 0);
 
        zval_ptr_dtor_nogc(free_op2);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SPACESHIP_SPEC_CONST_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -10741,8 +10588,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SPACESHIP_SPEC_CONST_TMPVAR_HA
        compare_function(EX_VAR(opline->result.var), op1, op2);
 
        zval_ptr_dtor_nogc(free_op2);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BW_OR_SPEC_CONST_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -10757,8 +10603,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BW_OR_SPEC_CONST_TMPVAR_HANDLE
        bitwise_or_function(EX_VAR(opline->result.var), op1, op2);
 
        zval_ptr_dtor_nogc(free_op2);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BW_AND_SPEC_CONST_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -10773,8 +10618,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BW_AND_SPEC_CONST_TMPVAR_HANDL
        bitwise_and_function(EX_VAR(opline->result.var), op1, op2);
 
        zval_ptr_dtor_nogc(free_op2);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BW_XOR_SPEC_CONST_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -10789,8 +10633,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BW_XOR_SPEC_CONST_TMPVAR_HANDL
        bitwise_xor_function(EX_VAR(opline->result.var), op1, op2);
 
        zval_ptr_dtor_nogc(free_op2);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BOOL_XOR_SPEC_CONST_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -10805,8 +10648,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BOOL_XOR_SPEC_CONST_TMPVAR_HAN
        boolean_xor_function(EX_VAR(opline->result.var), op1, op2);
 
        zval_ptr_dtor_nogc(free_op2);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_R_SPEC_CONST_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -10820,8 +10662,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_R_SPEC_CONST_TMPVAR_
        zend_fetch_dimension_address_read_R(EX_VAR(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2), (IS_TMP_VAR|IS_VAR));
        zval_ptr_dtor_nogc(free_op2);
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_IS_SPEC_CONST_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -10835,8 +10676,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_IS_SPEC_CONST_TMPVAR
        zend_fetch_dimension_address_read_IS(EX_VAR(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2), (IS_TMP_VAR|IS_VAR));
        zval_ptr_dtor_nogc(free_op2);
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_CONST_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -10878,8 +10718,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_CONST_
                zval_ptr_dtor_nogc(free_op2);
 
        }
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_R_SPEC_CONST_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -10952,8 +10791,7 @@ fetch_obj_r_no_object:
 
        zval_ptr_dtor_nogc(free_op2);
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_CONST_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -11026,8 +10864,7 @@ fetch_obj_is_no_object:
 
        zval_ptr_dtor_nogc(free_op2);
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_CONST_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -11066,8 +10903,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_CONST_
                        EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
                }
 
-               CHECK_EXCEPTION();
-               ZEND_VM_NEXT_OPCODE();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        } else {
                ZEND_VM_TAIL_CALL(ZEND_FETCH_OBJ_R_SPEC_CONST_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU));
        }
@@ -11137,8 +10973,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FAST_CONCAT_SPEC_CONST_TMPVAR_
        } while (0);
 
        zval_ptr_dtor_nogc(free_op2);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_CONST_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -11258,8 +11093,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_CONST_TM
 
        zval_ptr_dtor_nogc(free_op2);
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_CONST_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -11391,8 +11225,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_C
        call->prev_execute_data = EX(call);
        EX(call) = call;
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_USER_CALL_SPEC_CONST_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -11448,8 +11281,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_USER_CALL_SPEC_CONST_TMPV
        EX(call) = call;
 
        zval_ptr_dtor_nogc(free_op2);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CASE_SPEC_CONST_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -11515,8 +11347,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CASE_SPEC_CONST_TMPVAR_HANDLER
        compare_function(result, op1, op2);
        ZVAL_BOOL(result, Z_LVAL_P(result) == 0);
        zval_ptr_dtor_nogc(free_op2);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_CONST_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -11615,8 +11446,7 @@ num_index:
        } else {
                zend_hash_next_index_insert(Z_ARRVAL_P(EX_VAR(opline->result.var)), expr_ptr);
        }
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_ARRAY_SPEC_CONST_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -11784,8 +11614,7 @@ isset_dim_obj_exit:
 
        ZEND_VM_SMART_BRANCH(result, 1);
        ZVAL_BOOL(EX_VAR(opline->result.var), result);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_CONST_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -11832,8 +11661,7 @@ isset_no_object:
 
        ZEND_VM_SMART_BRANCH(result, 1);
        ZVAL_BOOL(EX_VAR(opline->result.var), result);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_POW_SPEC_CONST_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -11848,8 +11676,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_POW_SPEC_CONST_TMPVAR_HANDLER(
        pow_function(EX_VAR(opline->result.var), op1, op2);
 
        zval_ptr_dtor_nogc(free_op2);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_RETURN_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -12150,8 +11977,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CAST_SPEC_TMP_HANDLER(ZEND_OPC
                                        if (Z_OPT_REFCOUNTED_P(expr)) Z_ADDREF_P(expr);
                                }
 
-                               CHECK_EXCEPTION();
-                               ZEND_VM_NEXT_OPCODE();
+                               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
                        }
 
                        if (opline->extended_value == IS_ARRAY) {
@@ -12194,8 +12020,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CAST_SPEC_TMP_HANDLER(ZEND_OPC
        }
 
        zval_ptr_dtor_nogc(free_op1);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FE_RESET_R_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -12216,8 +12041,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FE_RESET_R_SPEC_TMP_HANDLER(ZE
                }
                Z_FE_POS_P(result) = 0;
 
-               CHECK_EXCEPTION();
-               ZEND_VM_NEXT_OPCODE();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        } else if (IS_TMP_VAR != IS_CONST && EXPECTED(Z_TYPE_P(array_ptr) == IS_OBJECT)) {
                if (!Z_OBJCE_P(array_ptr)->get_iterator) {
                        HashPosition pos = 0;
@@ -12249,8 +12073,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FE_RESET_R_SPEC_TMP_HANDLER(ZE
                        }
                        Z_FE_ITER_P(EX_VAR(opline->result.var)) = zend_hash_iterator_add(fe_ht, pos);
 
-                       CHECK_EXCEPTION();
-                       ZEND_VM_NEXT_OPCODE();
+                       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
                } else {
                        zend_class_entry *ce = Z_OBJCE_P(array_ptr);
                        zend_object_iterator *iter = ce->get_iterator(ce, array_ptr, 0);
@@ -12291,8 +12114,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FE_RESET_R_SPEC_TMP_HANDLER(ZE
                        if (is_empty) {
                                ZEND_VM_JMP(OP_JMP_ADDR(opline, opline->op2));
                        } else {
-                               CHECK_EXCEPTION();
-                               ZEND_VM_NEXT_OPCODE();
+                               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
                        }
                }
        } else {
@@ -12359,8 +12181,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FE_RESET_RW_SPEC_TMP_HANDLER(Z
                }
                Z_FE_ITER_P(EX_VAR(opline->result.var)) = zend_hash_iterator_add(fe_ht, pos);
 
-               CHECK_EXCEPTION();
-               ZEND_VM_NEXT_OPCODE();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        } else if (IS_TMP_VAR != IS_CONST && EXPECTED(Z_TYPE_P(array_ptr) == IS_OBJECT)) {
                if (!Z_OBJCE_P(array_ptr)->get_iterator) {
                        if (IS_TMP_VAR == IS_VAR || IS_TMP_VAR == IS_CV) {
@@ -12394,8 +12215,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FE_RESET_RW_SPEC_TMP_HANDLER(Z
                        }
                        Z_FE_ITER_P(EX_VAR(opline->result.var)) = zend_hash_iterator_add(fe_ht, pos);
 
-                       CHECK_EXCEPTION();
-                       ZEND_VM_NEXT_OPCODE();
+                       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
                } else {
                        zend_class_entry *ce = Z_OBJCE_P(array_ptr);
                        zend_object_iterator *iter = ce->get_iterator(ce, array_ptr, 1);
@@ -12452,8 +12272,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FE_RESET_RW_SPEC_TMP_HANDLER(Z
                        if (is_empty) {
                                ZEND_VM_JMP(OP_JMP_ADDR(opline, opline->op2));
                        } else {
-                               CHECK_EXCEPTION();
-                               ZEND_VM_NEXT_OPCODE();
+                               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
                        }
                }
        } else {
@@ -12513,8 +12332,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_JMP_SET_SPEC_TMP_HANDLER(ZEND_
        }
 
        zval_ptr_dtor_nogc(free_op1);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_COALESCE_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -12552,8 +12370,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_COALESCE_SPEC_TMP_HANDLER(ZEND
        }
 
        zval_ptr_dtor_nogc(free_op1);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_QM_ASSIGN_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -12565,8 +12382,9 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_QM_ASSIGN_SPEC_TMP_HANDLER(ZEN
        value = _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1);
        if (IS_TMP_VAR == IS_CV && UNEXPECTED(Z_TYPE_P(value) == IS_UNDEF)) {
                SAVE_OPLINE();
-               value = GET_OP1_UNDEF_CV(value, BP_VAR_R);
-               CHECK_EXCEPTION();
+               GET_OP1_UNDEF_CV(value, BP_VAR_R);
+               ZVAL_NULL(EX_VAR(opline->result.var));
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        }
 
        if ((IS_TMP_VAR == IS_VAR || IS_TMP_VAR == IS_CV) && Z_ISREF_P(value)) {
@@ -12710,8 +12528,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_TYPE_CHECK_SPEC_TMP_HANDLER(ZE
        zval_ptr_dtor_nogc(free_op1);
        ZEND_VM_SMART_BRANCH(result, 1);
        ZVAL_BOOL(EX_VAR(opline->result.var), result);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_IDENTICAL_SPEC_TMP_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -12730,7 +12547,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_IDENTICAL_SPEC_TMP_CONST_HA
        ZEND_VM_SMART_BRANCH(result, (IS_TMP_VAR|IS_CONST) & (IS_VAR|IS_TMP_VAR));
        ZVAL_BOOL(EX_VAR(opline->result.var), result);
        if ((IS_TMP_VAR|IS_CONST) & (IS_VAR|IS_TMP_VAR)) {
-               CHECK_EXCEPTION();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        }
        ZEND_VM_NEXT_OPCODE();
 }
@@ -12751,7 +12568,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_NOT_IDENTICAL_SPEC_TMP_CONS
        ZEND_VM_SMART_BRANCH(result, (IS_TMP_VAR|IS_CONST) & (IS_VAR|IS_TMP_VAR));
        ZVAL_BOOL(EX_VAR(opline->result.var), result);
        if ((IS_TMP_VAR|IS_CONST) & (IS_VAR|IS_TMP_VAR)) {
-               CHECK_EXCEPTION();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        }
        ZEND_VM_NEXT_OPCODE();
 }
@@ -12795,8 +12612,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_TMP_CO
 
                zval_ptr_dtor_nogc(free_op1);
        }
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_R_SPEC_TMP_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -12868,8 +12684,7 @@ fetch_obj_r_no_object:
        } while (0);
 
        zval_ptr_dtor_nogc(free_op1);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_TMP_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -12908,8 +12723,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_TMP_CO
                        EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
                }
 
-               CHECK_EXCEPTION();
-               ZEND_VM_NEXT_OPCODE();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        } else {
                ZEND_VM_TAIL_CALL(ZEND_FETCH_OBJ_R_SPEC_TMP_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU));
        }
@@ -12942,7 +12756,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ROPE_ADD_SPEC_TMP_CONST_HANDLE
                        }
                        rope[opline->extended_value] = _zval_get_string_func(var);
 
-                       CHECK_EXCEPTION();
+                       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
                }
        }
        ZEND_VM_NEXT_OPCODE();
@@ -13097,8 +12911,7 @@ num_index:
        } else {
                zend_hash_next_index_insert(Z_ARRVAL_P(EX_VAR(opline->result.var)), expr_ptr);
        }
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_ARRAY_SPEC_TMP_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -13289,7 +13102,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_IDENTICAL_SPEC_TMP_TMP_HAND
        ZEND_VM_SMART_BRANCH(result, (IS_TMP_VAR|IS_TMP_VAR) & (IS_VAR|IS_TMP_VAR));
        ZVAL_BOOL(EX_VAR(opline->result.var), result);
        if ((IS_TMP_VAR|IS_TMP_VAR) & (IS_VAR|IS_TMP_VAR)) {
-               CHECK_EXCEPTION();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        }
        ZEND_VM_NEXT_OPCODE();
 }
@@ -13310,7 +13123,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_NOT_IDENTICAL_SPEC_TMP_TMP_
        ZEND_VM_SMART_BRANCH(result, (IS_TMP_VAR|IS_TMP_VAR) & (IS_VAR|IS_TMP_VAR));
        ZVAL_BOOL(EX_VAR(opline->result.var), result);
        if ((IS_TMP_VAR|IS_TMP_VAR) & (IS_VAR|IS_TMP_VAR)) {
-               CHECK_EXCEPTION();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        }
        ZEND_VM_NEXT_OPCODE();
 }
@@ -13472,7 +13285,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_IDENTICAL_SPEC_TMP_VAR_HAND
        ZEND_VM_SMART_BRANCH(result, (IS_TMP_VAR|IS_VAR) & (IS_VAR|IS_TMP_VAR));
        ZVAL_BOOL(EX_VAR(opline->result.var), result);
        if ((IS_TMP_VAR|IS_VAR) & (IS_VAR|IS_TMP_VAR)) {
-               CHECK_EXCEPTION();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        }
        ZEND_VM_NEXT_OPCODE();
 }
@@ -13493,7 +13306,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_NOT_IDENTICAL_SPEC_TMP_VAR_
        ZEND_VM_SMART_BRANCH(result, (IS_TMP_VAR|IS_VAR) & (IS_VAR|IS_TMP_VAR));
        ZVAL_BOOL(EX_VAR(opline->result.var), result);
        if ((IS_TMP_VAR|IS_VAR) & (IS_VAR|IS_TMP_VAR)) {
-               CHECK_EXCEPTION();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        }
        ZEND_VM_NEXT_OPCODE();
 }
@@ -13678,8 +13491,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_TMP_UN
 
                zval_ptr_dtor_nogc(free_op1);
        }
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_VERIFY_RETURN_TYPE_SPEC_TMP_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -13727,8 +13539,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_VERIFY_RETURN_TYPE_SPEC_TMP_UN
                }
 #endif
        }
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_TMP_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -13827,8 +13638,7 @@ num_index:
        } else {
                zend_hash_next_index_insert(Z_ARRVAL_P(EX_VAR(opline->result.var)), expr_ptr);
        }
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_ARRAY_SPEC_TMP_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -14019,7 +13829,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_IDENTICAL_SPEC_TMP_CV_HANDL
        ZEND_VM_SMART_BRANCH(result, (IS_TMP_VAR|IS_CV) & (IS_VAR|IS_TMP_VAR));
        ZVAL_BOOL(EX_VAR(opline->result.var), result);
        if ((IS_TMP_VAR|IS_CV) & (IS_VAR|IS_TMP_VAR)) {
-               CHECK_EXCEPTION();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        }
        ZEND_VM_NEXT_OPCODE();
 }
@@ -14040,7 +13850,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_NOT_IDENTICAL_SPEC_TMP_CV_H
        ZEND_VM_SMART_BRANCH(result, (IS_TMP_VAR|IS_CV) & (IS_VAR|IS_TMP_VAR));
        ZVAL_BOOL(EX_VAR(opline->result.var), result);
        if ((IS_TMP_VAR|IS_CV) & (IS_VAR|IS_TMP_VAR)) {
-               CHECK_EXCEPTION();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        }
        ZEND_VM_NEXT_OPCODE();
 }
@@ -14084,8 +13894,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_TMP_CV
 
                zval_ptr_dtor_nogc(free_op1);
        }
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_R_SPEC_TMP_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -14157,8 +13966,7 @@ fetch_obj_r_no_object:
        } while (0);
 
        zval_ptr_dtor_nogc(free_op1);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_TMP_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -14197,8 +14005,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_TMP_CV
                        EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
                }
 
-               CHECK_EXCEPTION();
-               ZEND_VM_NEXT_OPCODE();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        } else {
                ZEND_VM_TAIL_CALL(ZEND_FETCH_OBJ_R_SPEC_TMP_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU));
        }
@@ -14231,7 +14038,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ROPE_ADD_SPEC_TMP_CV_HANDLER(Z
                        }
                        rope[opline->extended_value] = _zval_get_string_func(var);
 
-                       CHECK_EXCEPTION();
+                       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
                }
        }
        ZEND_VM_NEXT_OPCODE();
@@ -14386,8 +14193,7 @@ num_index:
        } else {
                zend_hash_next_index_insert(Z_ARRVAL_P(EX_VAR(opline->result.var)), expr_ptr);
        }
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_ARRAY_SPEC_TMP_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -14601,8 +14407,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_TMP_TM
                zval_ptr_dtor_nogc(free_op2);
                zval_ptr_dtor_nogc(free_op1);
        }
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_R_SPEC_TMP_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -14675,8 +14480,7 @@ fetch_obj_r_no_object:
 
        zval_ptr_dtor_nogc(free_op2);
        zval_ptr_dtor_nogc(free_op1);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_TMP_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -14715,8 +14519,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_TMP_TM
                        EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
                }
 
-               CHECK_EXCEPTION();
-               ZEND_VM_NEXT_OPCODE();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        } else {
                ZEND_VM_TAIL_CALL(ZEND_FETCH_OBJ_R_SPEC_TMP_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU));
        }
@@ -14749,7 +14552,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ROPE_ADD_SPEC_TMP_TMPVAR_HANDL
                        }
                        rope[opline->extended_value] = _zval_get_string_func(var);
                        zval_ptr_dtor_nogc(free_op2);
-                       CHECK_EXCEPTION();
+                       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
                }
        }
        ZEND_VM_NEXT_OPCODE();
@@ -14904,8 +14707,7 @@ num_index:
        } else {
                zend_hash_next_index_insert(Z_ARRVAL_P(EX_VAR(opline->result.var)), expr_ptr);
        }
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_ARRAY_SPEC_TMP_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -14982,8 +14784,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_PRE_INC_SPEC_VAR_HANDLER(ZEND_
        }
 
        if (free_op1) {zval_ptr_dtor_nogc(free_op1);};
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_PRE_DEC_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -15029,8 +14830,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_PRE_DEC_SPEC_VAR_HANDLER(ZEND_
        }
 
        if (free_op1) {zval_ptr_dtor_nogc(free_op1);};
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_POST_INC_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -15069,8 +14869,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_POST_INC_SPEC_VAR_HANDLER(ZEND
        increment_function(var_ptr);
 
        if (free_op1) {zval_ptr_dtor_nogc(free_op1);};
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_POST_DEC_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -15109,8 +14908,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_POST_DEC_SPEC_VAR_HANDLER(ZEND
        decrement_function(var_ptr);
 
        if (free_op1) {zval_ptr_dtor_nogc(free_op1);};
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_RETURN_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -15319,9 +15117,12 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SEND_VAR_SPEC_VAR_HANDLER(ZEND
        varptr = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1);
        if (IS_VAR == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(varptr) == IS_UNDEF)) {
                SAVE_OPLINE();
-               varptr = GET_OP1_UNDEF_CV(varptr, BP_VAR_R);
-               CHECK_EXCEPTION();
+               GET_OP1_UNDEF_CV(varptr, BP_VAR_R);
+               arg = ZEND_CALL_VAR(EX(call), opline->result.var);
+               ZVAL_NULL(arg);
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        }
+
        arg = ZEND_CALL_VAR(EX(call), opline->result.var);
 
        if (IS_VAR == IS_CV) {
@@ -15359,26 +15160,21 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SEND_VAR_NO_REF_SPEC_VAR_HANDL
        }
 
        varptr = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1);
-       if (IS_VAR == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(varptr) == IS_UNDEF)) {
-               SAVE_OPLINE();
-               varptr = GET_OP1_UNDEF_CV(varptr, BP_VAR_R);
-               CHECK_EXCEPTION();
-       }
+
        if ((!(opline->extended_value & ZEND_ARG_SEND_FUNCTION) ||
             (Z_VAR_FLAGS_P(varptr) & IS_VAR_RET_REF)) &&
            (Z_ISREF_P(varptr) || Z_TYPE_P(varptr) == IS_OBJECT)) {
 
                ZVAL_MAKE_REF(varptr);
-               if (IS_VAR == IS_CV) {
-                       Z_ADDREF_P(varptr);
-               }
        } else {
                if ((opline->extended_value & ZEND_ARG_COMPILE_TIME_BOUND) ?
                        !(opline->extended_value & ZEND_ARG_SEND_SILENT) :
                        !ARG_MAY_BE_SENT_BY_REF(EX(call)->func, opline->op2.num)) {
                        SAVE_OPLINE();
                        zend_error(E_NOTICE, "Only variables should be passed by reference");
-                       CHECK_EXCEPTION();
+                       arg = ZEND_CALL_VAR(EX(call), opline->result.var);
+                       ZVAL_COPY_VALUE(arg, varptr);
+                       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
                }
        }
 
@@ -15442,9 +15238,12 @@ send_var_by_ref:
        varptr = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1);
        if (IS_VAR == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(varptr) == IS_UNDEF)) {
                SAVE_OPLINE();
-               varptr = GET_OP1_UNDEF_CV(varptr, BP_VAR_R);
-               CHECK_EXCEPTION();
+               GET_OP1_UNDEF_CV(varptr, BP_VAR_R);
+               arg = ZEND_CALL_VAR(EX(call), opline->result.var);
+               ZVAL_NULL(arg);
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        }
+
        arg = ZEND_CALL_VAR(EX(call), opline->result.var);
 
        if (IS_VAR == IS_CV) {
@@ -15502,8 +15301,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SEND_USER_SPEC_VAR_HANDLER(ZEN
                                Z_OBJ(EX(call)->This) = NULL;
 
                                zval_ptr_dtor_nogc(free_op1);
-                               CHECK_EXCEPTION();
-                               ZEND_VM_NEXT_OPCODE();
+                               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
                        }
 
                        ZVAL_NEW_REF(arg, arg);
@@ -15522,8 +15320,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SEND_USER_SPEC_VAR_HANDLER(ZEN
        ZVAL_COPY_VALUE(param, arg);
 
        zval_ptr_dtor_nogc(free_op1);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_NEW_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -15540,8 +15337,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_NEW_SPEC_VAR_HANDLER(ZEND_OPCO
                } else {
                        ce = zend_fetch_class_by_name(Z_STR_P(EX_CONSTANT(opline->op1)), EX_CONSTANT(opline->op1) + 1, ZEND_FETCH_CLASS_DEFAULT | ZEND_FETCH_CLASS_EXCEPTION);
                        if (UNEXPECTED(ce == NULL)) {
-                               CHECK_EXCEPTION();
-                               ZEND_VM_NEXT_OPCODE();
+                               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
                        }
                        CACHE_PTR(Z_CACHE_SLOT_P(EX_CONSTANT(opline->op1)), ce);
                }
@@ -15576,8 +15372,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_NEW_SPEC_VAR_HANDLER(ZEND_OPCO
                        ZVAL_COPY(EX_VAR(opline->result.var), &object_zval);
                }
 
-               CHECK_EXCEPTION();
-               ZEND_VM_NEXT_OPCODE();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        }
 }
 
@@ -15637,8 +15432,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CAST_SPEC_VAR_HANDLER(ZEND_OPC
                                }
 
                                zval_ptr_dtor_nogc(free_op1);
-                               CHECK_EXCEPTION();
-                               ZEND_VM_NEXT_OPCODE();
+                               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
                        }
 
                        if (opline->extended_value == IS_ARRAY) {
@@ -15681,8 +15475,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CAST_SPEC_VAR_HANDLER(ZEND_OPC
        }
 
        zval_ptr_dtor_nogc(free_op1);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FE_RESET_R_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -15704,8 +15497,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FE_RESET_R_SPEC_VAR_HANDLER(ZE
                Z_FE_POS_P(result) = 0;
 
                zval_ptr_dtor_nogc(free_op1);
-               CHECK_EXCEPTION();
-               ZEND_VM_NEXT_OPCODE();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        } else if (IS_VAR != IS_CONST && EXPECTED(Z_TYPE_P(array_ptr) == IS_OBJECT)) {
                if (!Z_OBJCE_P(array_ptr)->get_iterator) {
                        HashPosition pos = 0;
@@ -15738,8 +15530,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FE_RESET_R_SPEC_VAR_HANDLER(ZE
                        Z_FE_ITER_P(EX_VAR(opline->result.var)) = zend_hash_iterator_add(fe_ht, pos);
 
                        zval_ptr_dtor_nogc(free_op1);
-                       CHECK_EXCEPTION();
-                       ZEND_VM_NEXT_OPCODE();
+                       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
                } else {
                        zend_class_entry *ce = Z_OBJCE_P(array_ptr);
                        zend_object_iterator *iter = ce->get_iterator(ce, array_ptr, 0);
@@ -15780,8 +15571,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FE_RESET_R_SPEC_VAR_HANDLER(ZE
                        if (is_empty) {
                                ZEND_VM_JMP(OP_JMP_ADDR(opline, opline->op2));
                        } else {
-                               CHECK_EXCEPTION();
-                               ZEND_VM_NEXT_OPCODE();
+                               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
                        }
                }
        } else {
@@ -15849,8 +15639,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FE_RESET_RW_SPEC_VAR_HANDLER(Z
                Z_FE_ITER_P(EX_VAR(opline->result.var)) = zend_hash_iterator_add(fe_ht, pos);
 
                if (free_op1) {zval_ptr_dtor_nogc(free_op1);};
-               CHECK_EXCEPTION();
-               ZEND_VM_NEXT_OPCODE();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        } else if (IS_VAR != IS_CONST && EXPECTED(Z_TYPE_P(array_ptr) == IS_OBJECT)) {
                if (!Z_OBJCE_P(array_ptr)->get_iterator) {
                        if (IS_VAR == IS_VAR || IS_VAR == IS_CV) {
@@ -15885,8 +15674,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FE_RESET_RW_SPEC_VAR_HANDLER(Z
                        Z_FE_ITER_P(EX_VAR(opline->result.var)) = zend_hash_iterator_add(fe_ht, pos);
 
                        if (free_op1) {zval_ptr_dtor_nogc(free_op1);};
-                       CHECK_EXCEPTION();
-                       ZEND_VM_NEXT_OPCODE();
+                       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
                } else {
                        zend_class_entry *ce = Z_OBJCE_P(array_ptr);
                        zend_object_iterator *iter = ce->get_iterator(ce, array_ptr, 1);
@@ -15943,8 +15731,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FE_RESET_RW_SPEC_VAR_HANDLER(Z
                        if (is_empty) {
                                ZEND_VM_JMP(OP_JMP_ADDR(opline, opline->op2));
                        } else {
-                               CHECK_EXCEPTION();
-                               ZEND_VM_NEXT_OPCODE();
+                               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
                        }
                }
        } else {
@@ -16370,8 +16157,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_JMP_SET_SPEC_VAR_HANDLER(ZEND_
        }
 
        zval_ptr_dtor_nogc(free_op1);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_COALESCE_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -16409,8 +16195,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_COALESCE_SPEC_VAR_HANDLER(ZEND
        }
 
        zval_ptr_dtor_nogc(free_op1);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_QM_ASSIGN_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -16422,8 +16207,9 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_QM_ASSIGN_SPEC_VAR_HANDLER(ZEN
        value = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1);
        if (IS_VAR == IS_CV && UNEXPECTED(Z_TYPE_P(value) == IS_UNDEF)) {
                SAVE_OPLINE();
-               value = GET_OP1_UNDEF_CV(value, BP_VAR_R);
-               CHECK_EXCEPTION();
+               GET_OP1_UNDEF_CV(value, BP_VAR_R);
+               ZVAL_NULL(EX_VAR(opline->result.var));
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        }
 
        if ((IS_VAR == IS_VAR || IS_VAR == IS_CV) && Z_ISREF_P(value)) {
@@ -16569,8 +16355,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_TYPE_CHECK_SPEC_VAR_HANDLER(ZE
        zval_ptr_dtor_nogc(free_op1);
        ZEND_VM_SMART_BRANCH(result, 1);
        ZVAL_BOOL(EX_VAR(opline->result.var), result);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_IDENTICAL_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -16589,7 +16374,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_IDENTICAL_SPEC_VAR_CONST_HA
        ZEND_VM_SMART_BRANCH(result, (IS_VAR|IS_CONST) & (IS_VAR|IS_TMP_VAR));
        ZVAL_BOOL(EX_VAR(opline->result.var), result);
        if ((IS_VAR|IS_CONST) & (IS_VAR|IS_TMP_VAR)) {
-               CHECK_EXCEPTION();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        }
        ZEND_VM_NEXT_OPCODE();
 }
@@ -16610,7 +16395,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_NOT_IDENTICAL_SPEC_VAR_CONS
        ZEND_VM_SMART_BRANCH(result, (IS_VAR|IS_CONST) & (IS_VAR|IS_TMP_VAR));
        ZVAL_BOOL(EX_VAR(opline->result.var), result);
        if ((IS_VAR|IS_CONST) & (IS_VAR|IS_TMP_VAR)) {
-               CHECK_EXCEPTION();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        }
        ZEND_VM_NEXT_OPCODE();
 }
@@ -16677,9 +16462,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_binary_assign_op_obj_helper_SP
 
        if (free_op1) {zval_ptr_dtor_nogc(free_op1);};
        /* assign_obj has two opcodes! */
-       CHECK_EXCEPTION();
-       ZEND_VM_INC_OPCODE();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_EX(1, 2);
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_binary_assign_op_dim_helper_SPEC_VAR_CONST(binary_op_type binary_op ZEND_OPCODE_HANDLER_ARGS_DC)
@@ -16749,9 +16532,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_binary_assign_op_dim_helper_SP
 
        FREE_OP(free_op_data1);
        if (free_op1) {zval_ptr_dtor_nogc(free_op1);};
-       CHECK_EXCEPTION();
-       ZEND_VM_INC_OPCODE();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_EX(1, 2);
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_VAR_CONST(binary_op_type binary_op ZEND_OPCODE_HANDLER_ARGS_DC)
@@ -16787,8 +16568,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_V
        }
 
        if (free_op1) {zval_ptr_dtor_nogc(free_op1);};
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_ADD_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -17078,8 +16858,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_pre_incdec_property_helper_SPE
        } while (0);
 
        if (free_op1) {zval_ptr_dtor_nogc(free_op1);};
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_PRE_INC_OBJ_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -17155,8 +16934,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_post_incdec_property_helper_SP
        } while (0);
 
        if (free_op1) {zval_ptr_dtor_nogc(free_op1);};
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_POST_INC_OBJ_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -17188,8 +16966,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_W_SPEC_VAR_CONST_HAN
                EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
        }
        if (free_op1) {zval_ptr_dtor_nogc(free_op1);};
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_RW_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -17211,8 +16988,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_RW_SPEC_VAR_CONST_HA
                EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
        }
        if (free_op1) {zval_ptr_dtor_nogc(free_op1);};
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -17254,8 +17030,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_CO
 
                zval_ptr_dtor_nogc(free_op1);
        }
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_UNSET_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -17278,8 +17053,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_UNSET_SPEC_VAR_CONST
                EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
        }
        if (free_op1) {zval_ptr_dtor_nogc(free_op1);};
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_R_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -17351,8 +17125,7 @@ fetch_obj_r_no_object:
        } while (0);
 
        zval_ptr_dtor_nogc(free_op1);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_W_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -17383,8 +17156,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_W_SPEC_VAR_CONST_HAN
                EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
        }
        if (free_op1) {zval_ptr_dtor_nogc(free_op1);};
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_RW_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -17414,8 +17186,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_RW_SPEC_VAR_CONST_HA
                EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
        }
        if (free_op1) {zval_ptr_dtor_nogc(free_op1);};
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -17454,8 +17225,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_VAR_CO
                        EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
                }
                if (free_op1) {zval_ptr_dtor_nogc(free_op1);};
-               CHECK_EXCEPTION();
-               ZEND_VM_NEXT_OPCODE();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        } else {
                ZEND_VM_TAIL_CALL(ZEND_FETCH_OBJ_R_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU));
        }
@@ -17489,8 +17259,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_UNSET_SPEC_VAR_CONST
                EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
        }
        if (free_op1) {zval_ptr_dtor_nogc(free_op1);};
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -17520,9 +17289,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_VAR_CONST_HAND
 
        if (free_op1) {zval_ptr_dtor_nogc(free_op1);};
        /* assign_obj has two opcodes! */
-       CHECK_EXCEPTION();
-       ZEND_VM_INC_OPCODE();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_EX(1, 2);
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -17628,9 +17395,7 @@ assign_dim_clean:
        }
        if (free_op1) {zval_ptr_dtor_nogc(free_op1);};
        /* assign_dim has two opcodes! */
-       CHECK_EXCEPTION();
-       ZEND_VM_INC_OPCODE();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_EX(1, 2);
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -17658,8 +17423,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_SPEC_VAR_CONST_HANDLER(
                /* zend_assign_to_variable() always takes care of op2, never free it! */
        }
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -17791,8 +17555,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_V
        call->prev_execute_data = EX(call);
        EX(call) = call;
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_CONSTANT_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -17818,8 +17581,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_CONSTANT_SPEC_VAR_CONST_
                                /* non-qualified constant - allow text substitution */
                                zend_error(E_NOTICE, "Use of undefined constant %s - assumed '%s'",
                                                Z_STRVAL_P(EX_VAR(opline->result.var)), Z_STRVAL_P(EX_VAR(opline->result.var)));
-                               CHECK_EXCEPTION();
-                               ZEND_VM_NEXT_OPCODE();
+                               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
                        } else {
                                zend_throw_error(NULL, "Undefined constant '%s'", Z_STRVAL_P(EX_CONSTANT(opline->op2)));
                                HANDLE_EXCEPTION();
@@ -18000,8 +17762,7 @@ num_index:
        } else {
                zend_hash_next_index_insert(Z_ARRVAL_P(EX_VAR(opline->result.var)), expr_ptr);
        }
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_ARRAY_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -18130,8 +17891,7 @@ num_index_dim:
        } while (0);
 
        if (free_op1) {zval_ptr_dtor_nogc(free_op1);};
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_OBJ_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -18174,8 +17934,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_OBJ_SPEC_VAR_CONST_HANDL
        } while (0);
 
        if (free_op1) {zval_ptr_dtor_nogc(free_op1);};
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -18341,7 +18100,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_IDENTICAL_SPEC_VAR_TMP_HAND
        ZEND_VM_SMART_BRANCH(result, (IS_VAR|IS_TMP_VAR) & (IS_VAR|IS_TMP_VAR));
        ZVAL_BOOL(EX_VAR(opline->result.var), result);
        if ((IS_VAR|IS_TMP_VAR) & (IS_VAR|IS_TMP_VAR)) {
-               CHECK_EXCEPTION();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        }
        ZEND_VM_NEXT_OPCODE();
 }
@@ -18362,7 +18121,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_NOT_IDENTICAL_SPEC_VAR_TMP_
        ZEND_VM_SMART_BRANCH(result, (IS_VAR|IS_TMP_VAR) & (IS_VAR|IS_TMP_VAR));
        ZVAL_BOOL(EX_VAR(opline->result.var), result);
        if ((IS_VAR|IS_TMP_VAR) & (IS_VAR|IS_TMP_VAR)) {
-               CHECK_EXCEPTION();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        }
        ZEND_VM_NEXT_OPCODE();
 }
@@ -18392,8 +18151,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_SPEC_VAR_TMP_HANDLER(ZE
                /* zend_assign_to_variable() always takes care of op2, never free it! */
        }
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -18554,7 +18312,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_IDENTICAL_SPEC_VAR_VAR_HAND
        ZEND_VM_SMART_BRANCH(result, (IS_VAR|IS_VAR) & (IS_VAR|IS_TMP_VAR));
        ZVAL_BOOL(EX_VAR(opline->result.var), result);
        if ((IS_VAR|IS_VAR) & (IS_VAR|IS_TMP_VAR)) {
-               CHECK_EXCEPTION();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        }
        ZEND_VM_NEXT_OPCODE();
 }
@@ -18575,7 +18333,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_NOT_IDENTICAL_SPEC_VAR_VAR_
        ZEND_VM_SMART_BRANCH(result, (IS_VAR|IS_VAR) & (IS_VAR|IS_TMP_VAR));
        ZVAL_BOOL(EX_VAR(opline->result.var), result);
        if ((IS_VAR|IS_VAR) & (IS_VAR|IS_TMP_VAR)) {
-               CHECK_EXCEPTION();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        }
        ZEND_VM_NEXT_OPCODE();
 }
@@ -18605,8 +18363,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_SPEC_VAR_VAR_HANDLER(ZE
                /* zend_assign_to_variable() always takes care of op2, never free it! */
        }
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_REF_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -18667,8 +18424,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_REF_SPEC_VAR_VAR_HANDLE
        if (free_op1) {zval_ptr_dtor_nogc(free_op1);};
        if (free_op2) {zval_ptr_dtor_nogc(free_op2);};
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -18880,9 +18636,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_binary_assign_op_dim_helper_SP
 
        FREE_OP(free_op_data1);
        if (free_op1) {zval_ptr_dtor_nogc(free_op1);};
-       CHECK_EXCEPTION();
-       ZEND_VM_INC_OPCODE();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_EX(1, 2);
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_ADD_SPEC_VAR_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -19124,8 +18878,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_W_SPEC_VAR_UNUSED_HA
                EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
        }
        if (free_op1) {zval_ptr_dtor_nogc(free_op1);};
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_RW_SPEC_VAR_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -19147,8 +18900,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_RW_SPEC_VAR_UNUSED_H
                EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
        }
        if (free_op1) {zval_ptr_dtor_nogc(free_op1);};
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -19190,8 +18942,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_UN
 
                zval_ptr_dtor_nogc(free_op1);
        }
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_VAR_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -19297,9 +19048,7 @@ assign_dim_clean:
        }
        if (free_op1) {zval_ptr_dtor_nogc(free_op1);};
        /* assign_dim has two opcodes! */
-       CHECK_EXCEPTION();
-       ZEND_VM_INC_OPCODE();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_EX(1, 2);
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_VAR_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -19431,8 +19180,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_V
        call->prev_execute_data = EX(call);
        EX(call) = call;
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_VERIFY_RETURN_TYPE_SPEC_VAR_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -19480,8 +19228,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_VERIFY_RETURN_TYPE_SPEC_VAR_UN
                }
 #endif
        }
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_VAR_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -19580,8 +19327,7 @@ num_index:
        } else {
                zend_hash_next_index_insert(Z_ARRVAL_P(EX_VAR(opline->result.var)), expr_ptr);
        }
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_ARRAY_SPEC_VAR_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -19790,7 +19536,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_IDENTICAL_SPEC_VAR_CV_HANDL
        ZEND_VM_SMART_BRANCH(result, (IS_VAR|IS_CV) & (IS_VAR|IS_TMP_VAR));
        ZVAL_BOOL(EX_VAR(opline->result.var), result);
        if ((IS_VAR|IS_CV) & (IS_VAR|IS_TMP_VAR)) {
-               CHECK_EXCEPTION();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        }
        ZEND_VM_NEXT_OPCODE();
 }
@@ -19811,7 +19557,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_NOT_IDENTICAL_SPEC_VAR_CV_H
        ZEND_VM_SMART_BRANCH(result, (IS_VAR|IS_CV) & (IS_VAR|IS_TMP_VAR));
        ZVAL_BOOL(EX_VAR(opline->result.var), result);
        if ((IS_VAR|IS_CV) & (IS_VAR|IS_TMP_VAR)) {
-               CHECK_EXCEPTION();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        }
        ZEND_VM_NEXT_OPCODE();
 }
@@ -19878,9 +19624,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_binary_assign_op_obj_helper_SP
 
        if (free_op1) {zval_ptr_dtor_nogc(free_op1);};
        /* assign_obj has two opcodes! */
-       CHECK_EXCEPTION();
-       ZEND_VM_INC_OPCODE();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_EX(1, 2);
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_binary_assign_op_dim_helper_SPEC_VAR_CV(binary_op_type binary_op ZEND_OPCODE_HANDLER_ARGS_DC)
@@ -19950,9 +19694,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_binary_assign_op_dim_helper_SP
 
        FREE_OP(free_op_data1);
        if (free_op1) {zval_ptr_dtor_nogc(free_op1);};
-       CHECK_EXCEPTION();
-       ZEND_VM_INC_OPCODE();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_EX(1, 2);
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_VAR_CV(binary_op_type binary_op ZEND_OPCODE_HANDLER_ARGS_DC)
@@ -19988,8 +19730,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_V
        }
 
        if (free_op1) {zval_ptr_dtor_nogc(free_op1);};
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_ADD_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -20279,8 +20020,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_pre_incdec_property_helper_SPE
        } while (0);
 
        if (free_op1) {zval_ptr_dtor_nogc(free_op1);};
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_PRE_INC_OBJ_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -20356,8 +20096,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_post_incdec_property_helper_SP
        } while (0);
 
        if (free_op1) {zval_ptr_dtor_nogc(free_op1);};
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_POST_INC_OBJ_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -20389,8 +20128,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_W_SPEC_VAR_CV_HANDLE
                EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
        }
        if (free_op1) {zval_ptr_dtor_nogc(free_op1);};
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_RW_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -20412,8 +20150,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_RW_SPEC_VAR_CV_HANDL
                EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
        }
        if (free_op1) {zval_ptr_dtor_nogc(free_op1);};
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -20455,8 +20192,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_CV
 
                zval_ptr_dtor_nogc(free_op1);
        }
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_UNSET_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -20479,8 +20215,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_UNSET_SPEC_VAR_CV_HA
                EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
        }
        if (free_op1) {zval_ptr_dtor_nogc(free_op1);};
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_R_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -20552,8 +20287,7 @@ fetch_obj_r_no_object:
        } while (0);
 
        zval_ptr_dtor_nogc(free_op1);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_W_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -20584,8 +20318,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_W_SPEC_VAR_CV_HANDLE
                EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
        }
        if (free_op1) {zval_ptr_dtor_nogc(free_op1);};
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_RW_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -20615,8 +20348,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_RW_SPEC_VAR_CV_HANDL
                EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
        }
        if (free_op1) {zval_ptr_dtor_nogc(free_op1);};
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -20655,8 +20387,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_VAR_CV
                        EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
                }
                if (free_op1) {zval_ptr_dtor_nogc(free_op1);};
-               CHECK_EXCEPTION();
-               ZEND_VM_NEXT_OPCODE();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        } else {
                ZEND_VM_TAIL_CALL(ZEND_FETCH_OBJ_R_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU));
        }
@@ -20690,8 +20421,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_UNSET_SPEC_VAR_CV_HA
                EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
        }
        if (free_op1) {zval_ptr_dtor_nogc(free_op1);};
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -20721,9 +20451,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_VAR_CV_HANDLER
 
        if (free_op1) {zval_ptr_dtor_nogc(free_op1);};
        /* assign_obj has two opcodes! */
-       CHECK_EXCEPTION();
-       ZEND_VM_INC_OPCODE();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_EX(1, 2);
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -20829,9 +20557,7 @@ assign_dim_clean:
        }
        if (free_op1) {zval_ptr_dtor_nogc(free_op1);};
        /* assign_dim has two opcodes! */
-       CHECK_EXCEPTION();
-       ZEND_VM_INC_OPCODE();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_EX(1, 2);
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -20859,8 +20585,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_SPEC_VAR_CV_HANDLER(ZEN
                /* zend_assign_to_variable() always takes care of op2, never free it! */
        }
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_REF_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -20920,8 +20645,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_REF_SPEC_VAR_CV_HANDLER
 
        if (free_op1) {zval_ptr_dtor_nogc(free_op1);};
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -21053,8 +20777,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_V
        call->prev_execute_data = EX(call);
        EX(call) = call;
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -21153,8 +20876,7 @@ num_index:
        } else {
                zend_hash_next_index_insert(Z_ARRVAL_P(EX_VAR(opline->result.var)), expr_ptr);
        }
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_ARRAY_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -21283,8 +21005,7 @@ num_index_dim:
        } while (0);
 
        if (free_op1) {zval_ptr_dtor_nogc(free_op1);};
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_OBJ_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -21327,8 +21048,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_OBJ_SPEC_VAR_CV_HANDLER(
        } while (0);
 
        if (free_op1) {zval_ptr_dtor_nogc(free_op1);};
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -21540,9 +21260,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_binary_assign_op_obj_helper_SP
        zval_ptr_dtor_nogc(free_op2);
        if (free_op1) {zval_ptr_dtor_nogc(free_op1);};
        /* assign_obj has two opcodes! */
-       CHECK_EXCEPTION();
-       ZEND_VM_INC_OPCODE();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_EX(1, 2);
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_binary_assign_op_dim_helper_SPEC_VAR_TMPVAR(binary_op_type binary_op ZEND_OPCODE_HANDLER_ARGS_DC)
@@ -21613,9 +21331,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_binary_assign_op_dim_helper_SP
        zval_ptr_dtor_nogc(free_op2);
        FREE_OP(free_op_data1);
        if (free_op1) {zval_ptr_dtor_nogc(free_op1);};
-       CHECK_EXCEPTION();
-       ZEND_VM_INC_OPCODE();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_EX(1, 2);
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_VAR_TMPVAR(binary_op_type binary_op ZEND_OPCODE_HANDLER_ARGS_DC)
@@ -21652,8 +21368,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_V
 
        zval_ptr_dtor_nogc(free_op2);
        if (free_op1) {zval_ptr_dtor_nogc(free_op1);};
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_ADD_SPEC_VAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -21944,8 +21659,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_pre_incdec_property_helper_SPE
 
        zval_ptr_dtor_nogc(free_op2);
        if (free_op1) {zval_ptr_dtor_nogc(free_op1);};
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_PRE_INC_OBJ_SPEC_VAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -22022,8 +21736,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_post_incdec_property_helper_SP
 
        zval_ptr_dtor_nogc(free_op2);
        if (free_op1) {zval_ptr_dtor_nogc(free_op1);};
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_POST_INC_OBJ_SPEC_VAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -22055,8 +21768,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_W_SPEC_VAR_TMPVAR_HA
                EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
        }
        if (free_op1) {zval_ptr_dtor_nogc(free_op1);};
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_RW_SPEC_VAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -22078,8 +21790,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_RW_SPEC_VAR_TMPVAR_H
                EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
        }
        if (free_op1) {zval_ptr_dtor_nogc(free_op1);};
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -22121,8 +21832,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_TM
                zval_ptr_dtor_nogc(free_op2);
                zval_ptr_dtor_nogc(free_op1);
        }
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_UNSET_SPEC_VAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -22145,8 +21855,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_UNSET_SPEC_VAR_TMPVA
                EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
        }
        if (free_op1) {zval_ptr_dtor_nogc(free_op1);};
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_R_SPEC_VAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -22219,8 +21928,7 @@ fetch_obj_r_no_object:
 
        zval_ptr_dtor_nogc(free_op2);
        zval_ptr_dtor_nogc(free_op1);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_W_SPEC_VAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -22251,8 +21959,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_W_SPEC_VAR_TMPVAR_HA
                EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
        }
        if (free_op1) {zval_ptr_dtor_nogc(free_op1);};
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_RW_SPEC_VAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -22282,8 +21989,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_RW_SPEC_VAR_TMPVAR_H
                EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
        }
        if (free_op1) {zval_ptr_dtor_nogc(free_op1);};
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_VAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -22322,8 +22028,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_VAR_TM
                        EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
                }
                if (free_op1) {zval_ptr_dtor_nogc(free_op1);};
-               CHECK_EXCEPTION();
-               ZEND_VM_NEXT_OPCODE();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        } else {
                ZEND_VM_TAIL_CALL(ZEND_FETCH_OBJ_R_SPEC_VAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU));
        }
@@ -22357,8 +22062,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_UNSET_SPEC_VAR_TMPVA
                EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
        }
        if (free_op1) {zval_ptr_dtor_nogc(free_op1);};
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_VAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -22388,9 +22092,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_VAR_TMPVAR_HAN
        zval_ptr_dtor_nogc(free_op2);
        if (free_op1) {zval_ptr_dtor_nogc(free_op1);};
        /* assign_obj has two opcodes! */
-       CHECK_EXCEPTION();
-       ZEND_VM_INC_OPCODE();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_EX(1, 2);
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_VAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -22496,9 +22198,7 @@ assign_dim_clean:
        }
        if (free_op1) {zval_ptr_dtor_nogc(free_op1);};
        /* assign_dim has two opcodes! */
-       CHECK_EXCEPTION();
-       ZEND_VM_INC_OPCODE();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_EX(1, 2);
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_VAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -22630,8 +22330,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_V
        call->prev_execute_data = EX(call);
        EX(call) = call;
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_VAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -22730,8 +22429,7 @@ num_index:
        } else {
                zend_hash_next_index_insert(Z_ARRVAL_P(EX_VAR(opline->result.var)), expr_ptr);
        }
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_ARRAY_SPEC_VAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -22861,8 +22559,7 @@ num_index_dim:
 
        zval_ptr_dtor_nogc(free_op2);
        if (free_op1) {zval_ptr_dtor_nogc(free_op1);};
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_OBJ_SPEC_VAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -22906,8 +22603,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_OBJ_SPEC_VAR_TMPVAR_HAND
 
        zval_ptr_dtor_nogc(free_op2);
        if (free_op1) {zval_ptr_dtor_nogc(free_op1);};
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_POW_SPEC_VAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -22993,13 +22689,11 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CLONE_SPEC_UNUSED_HANDLER(ZEND
                }
        }
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_EXIT_SPEC_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
 {
-#if 0 || (IS_UNUSED != IS_UNUSED)
        USE_OPLINE
 
        SAVE_OPLINE();
@@ -23023,7 +22717,6 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_EXIT_SPEC_UNUSED_HANDLER(ZEND_
                } while (0);
 
        }
-#endif
        zend_bailout();
        ZEND_VM_NEXT_OPCODE(); /* Never reached */
 }
@@ -23090,9 +22783,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_binary_assign_op_obj_helper_SP
 
 
        /* assign_obj has two opcodes! */
-       CHECK_EXCEPTION();
-       ZEND_VM_INC_OPCODE();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_EX(1, 2);
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_binary_assign_op_dim_helper_SPEC_UNUSED_CONST(binary_op_type binary_op ZEND_OPCODE_HANDLER_ARGS_DC)
@@ -23162,9 +22853,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_binary_assign_op_dim_helper_SP
 
        FREE_OP(free_op_data1);
 
-       CHECK_EXCEPTION();
-       ZEND_VM_INC_OPCODE();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_EX(1, 2);
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_ADD_SPEC_UNUSED_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -23454,8 +23143,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_pre_incdec_property_helper_SPE
        } while (0);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_PRE_INC_OBJ_SPEC_UNUSED_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -23531,8 +23219,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_post_incdec_property_helper_SP
        } while (0);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_POST_INC_OBJ_SPEC_UNUSED_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -23614,8 +23301,7 @@ fetch_obj_r_no_object:
        } while (0);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_W_SPEC_UNUSED_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -23646,8 +23332,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_W_SPEC_UNUSED_CONST_
                EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
        }
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_RW_SPEC_UNUSED_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -23677,8 +23362,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_RW_SPEC_UNUSED_CONST
                EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
        }
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_UNUSED_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -23750,8 +23434,7 @@ fetch_obj_is_no_object:
        } while (0);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_UNUSED_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -23790,8 +23473,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_UNUSED
                        EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
                }
 
-               CHECK_EXCEPTION();
-               ZEND_VM_NEXT_OPCODE();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        } else {
                ZEND_VM_TAIL_CALL(ZEND_FETCH_OBJ_R_SPEC_UNUSED_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU));
        }
@@ -23825,8 +23507,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_UNSET_SPEC_UNUSED_CO
                EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
        }
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_UNUSED_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -23856,9 +23537,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_UNUSED_CONST_H
 
 
        /* assign_obj has two opcodes! */
-       CHECK_EXCEPTION();
-       ZEND_VM_INC_OPCODE();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_EX(1, 2);
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ROPE_INIT_SPEC_UNUSED_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -23888,7 +23567,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ROPE_INIT_SPEC_UNUSED_CONST_HA
                        }
                        rope[0] = _zval_get_string_func(var);
 
-                       CHECK_EXCEPTION();
+                       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
                }
        }
        ZEND_VM_NEXT_OPCODE();
@@ -24010,8 +23689,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_UNUSED_C
        EX(call) = call;
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_CONSTANT_SPEC_UNUSED_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -24037,8 +23715,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_CONSTANT_SPEC_UNUSED_CON
                                /* non-qualified constant - allow text substitution */
                                zend_error(E_NOTICE, "Use of undefined constant %s - assumed '%s'",
                                                Z_STRVAL_P(EX_VAR(opline->result.var)), Z_STRVAL_P(EX_VAR(opline->result.var)));
-                               CHECK_EXCEPTION();
-                               ZEND_VM_NEXT_OPCODE();
+                               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
                        } else {
                                zend_throw_error(NULL, "Undefined constant '%s'", Z_STRVAL_P(EX_CONSTANT(opline->op2)));
                                HANDLE_EXCEPTION();
@@ -24249,8 +23926,7 @@ num_index_dim:
        } while (0);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_OBJ_SPEC_UNUSED_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -24293,8 +23969,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_OBJ_SPEC_UNUSED_CONST_HA
        } while (0);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_UNUSED_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -24431,8 +24106,7 @@ isset_dim_obj_exit:
 
        ZEND_VM_SMART_BRANCH(result, 1);
        ZVAL_BOOL(EX_VAR(opline->result.var), result);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_UNUSED_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -24478,8 +24152,7 @@ isset_no_object:
 
        ZEND_VM_SMART_BRANCH(result, 1);
        ZVAL_BOOL(EX_VAR(opline->result.var), result);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_SPEC_UNUSED_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -24972,9 +24645,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_binary_assign_op_dim_helper_SP
 
        FREE_OP(free_op_data1);
 
-       CHECK_EXCEPTION();
-       ZEND_VM_INC_OPCODE();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_EX(1, 2);
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_ADD_SPEC_UNUSED_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -25242,8 +24913,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_VERIFY_RETURN_TYPE_SPEC_UNUSED
                }
 #endif
        }
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_ARRAY_SPEC_UNUSED_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -25480,9 +25150,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_binary_assign_op_obj_helper_SP
 
 
        /* assign_obj has two opcodes! */
-       CHECK_EXCEPTION();
-       ZEND_VM_INC_OPCODE();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_EX(1, 2);
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_binary_assign_op_dim_helper_SPEC_UNUSED_CV(binary_op_type binary_op ZEND_OPCODE_HANDLER_ARGS_DC)
@@ -25552,9 +25220,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_binary_assign_op_dim_helper_SP
 
        FREE_OP(free_op_data1);
 
-       CHECK_EXCEPTION();
-       ZEND_VM_INC_OPCODE();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_EX(1, 2);
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_ADD_SPEC_UNUSED_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -25844,8 +25510,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_pre_incdec_property_helper_SPE
        } while (0);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_PRE_INC_OBJ_SPEC_UNUSED_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -25921,8 +25586,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_post_incdec_property_helper_SP
        } while (0);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_POST_INC_OBJ_SPEC_UNUSED_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -26004,8 +25668,7 @@ fetch_obj_r_no_object:
        } while (0);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_W_SPEC_UNUSED_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -26036,8 +25699,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_W_SPEC_UNUSED_CV_HAN
                EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
        }
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_RW_SPEC_UNUSED_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -26067,8 +25729,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_RW_SPEC_UNUSED_CV_HA
                EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
        }
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_UNUSED_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -26140,8 +25801,7 @@ fetch_obj_is_no_object:
        } while (0);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_UNUSED_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -26180,8 +25840,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_UNUSED
                        EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
                }
 
-               CHECK_EXCEPTION();
-               ZEND_VM_NEXT_OPCODE();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        } else {
                ZEND_VM_TAIL_CALL(ZEND_FETCH_OBJ_R_SPEC_UNUSED_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU));
        }
@@ -26215,8 +25874,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_UNSET_SPEC_UNUSED_CV
                EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
        }
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_UNUSED_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -26246,9 +25904,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_UNUSED_CV_HAND
 
 
        /* assign_obj has two opcodes! */
-       CHECK_EXCEPTION();
-       ZEND_VM_INC_OPCODE();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_EX(1, 2);
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ROPE_INIT_SPEC_UNUSED_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -26278,7 +25934,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ROPE_INIT_SPEC_UNUSED_CV_HANDL
                        }
                        rope[0] = _zval_get_string_func(var);
 
-                       CHECK_EXCEPTION();
+                       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
                }
        }
        ZEND_VM_NEXT_OPCODE();
@@ -26400,8 +26056,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_UNUSED_C
        EX(call) = call;
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_ARRAY_SPEC_UNUSED_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -26530,8 +26185,7 @@ num_index_dim:
        } while (0);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_OBJ_SPEC_UNUSED_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -26574,8 +26228,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_OBJ_SPEC_UNUSED_CV_HANDL
        } while (0);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_UNUSED_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -26712,8 +26365,7 @@ isset_dim_obj_exit:
 
        ZEND_VM_SMART_BRANCH(result, 1);
        ZVAL_BOOL(EX_VAR(opline->result.var), result);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_UNUSED_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -26759,8 +26411,7 @@ isset_no_object:
 
        ZEND_VM_SMART_BRANCH(result, 1);
        ZVAL_BOOL(EX_VAR(opline->result.var), result);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_SPEC_UNUSED_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -26966,9 +26617,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_binary_assign_op_obj_helper_SP
        zval_ptr_dtor_nogc(free_op2);
 
        /* assign_obj has two opcodes! */
-       CHECK_EXCEPTION();
-       ZEND_VM_INC_OPCODE();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_EX(1, 2);
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_binary_assign_op_dim_helper_SPEC_UNUSED_TMPVAR(binary_op_type binary_op ZEND_OPCODE_HANDLER_ARGS_DC)
@@ -27039,9 +26688,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_binary_assign_op_dim_helper_SP
        zval_ptr_dtor_nogc(free_op2);
        FREE_OP(free_op_data1);
 
-       CHECK_EXCEPTION();
-       ZEND_VM_INC_OPCODE();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_EX(1, 2);
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_ADD_SPEC_UNUSED_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -27332,8 +26979,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_pre_incdec_property_helper_SPE
 
        zval_ptr_dtor_nogc(free_op2);
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_PRE_INC_OBJ_SPEC_UNUSED_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -27410,8 +27056,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_post_incdec_property_helper_SP
 
        zval_ptr_dtor_nogc(free_op2);
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_POST_INC_OBJ_SPEC_UNUSED_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -27494,8 +27139,7 @@ fetch_obj_r_no_object:
 
        zval_ptr_dtor_nogc(free_op2);
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_W_SPEC_UNUSED_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -27526,8 +27170,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_W_SPEC_UNUSED_TMPVAR
                EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
        }
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_RW_SPEC_UNUSED_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -27557,8 +27200,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_RW_SPEC_UNUSED_TMPVA
                EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
        }
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_UNUSED_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -27631,8 +27273,7 @@ fetch_obj_is_no_object:
 
        zval_ptr_dtor_nogc(free_op2);
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_UNUSED_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -27671,8 +27312,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_UNUSED
                        EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
                }
 
-               CHECK_EXCEPTION();
-               ZEND_VM_NEXT_OPCODE();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        } else {
                ZEND_VM_TAIL_CALL(ZEND_FETCH_OBJ_R_SPEC_UNUSED_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU));
        }
@@ -27706,8 +27346,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_UNSET_SPEC_UNUSED_TM
                EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
        }
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_UNUSED_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -27737,9 +27376,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_UNUSED_TMPVAR_
        zval_ptr_dtor_nogc(free_op2);
 
        /* assign_obj has two opcodes! */
-       CHECK_EXCEPTION();
-       ZEND_VM_INC_OPCODE();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_EX(1, 2);
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ROPE_INIT_SPEC_UNUSED_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -27769,7 +27406,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ROPE_INIT_SPEC_UNUSED_TMPVAR_H
                        }
                        rope[0] = _zval_get_string_func(var);
                        zval_ptr_dtor_nogc(free_op2);
-                       CHECK_EXCEPTION();
+                       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
                }
        }
        ZEND_VM_NEXT_OPCODE();
@@ -27892,8 +27529,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_UNUSED_T
 
        zval_ptr_dtor_nogc(free_op2);
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_ARRAY_SPEC_UNUSED_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -28023,8 +27659,7 @@ num_index_dim:
 
        zval_ptr_dtor_nogc(free_op2);
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_OBJ_SPEC_UNUSED_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -28068,8 +27703,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_OBJ_SPEC_UNUSED_TMPVAR_H
 
        zval_ptr_dtor_nogc(free_op2);
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_UNUSED_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -28206,8 +27840,7 @@ isset_dim_obj_exit:
 
        ZEND_VM_SMART_BRANCH(result, 1);
        ZVAL_BOOL(EX_VAR(opline->result.var), result);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_UNUSED_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -28254,8 +27887,7 @@ isset_no_object:
 
        ZEND_VM_SMART_BRANCH(result, 1);
        ZVAL_BOOL(EX_VAR(opline->result.var), result);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BW_NOT_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -28267,8 +27899,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BW_NOT_SPEC_CV_HANDLER(ZEND_OP
        bitwise_not_function(EX_VAR(opline->result.var),
                _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var));
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BOOL_NOT_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -28281,17 +27912,17 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BOOL_NOT_SPEC_CV_HANDLER(ZEND_
        if (Z_TYPE_INFO_P(val) == IS_TRUE) {
                ZVAL_FALSE(EX_VAR(opline->result.var));
        } else if (EXPECTED(Z_TYPE_INFO_P(val) <= IS_TRUE)) {
+               ZVAL_TRUE(EX_VAR(opline->result.var));
                if (UNEXPECTED(Z_TYPE_INFO_P(val) == IS_UNDEF)) {
                        SAVE_OPLINE();
                        GET_OP1_UNDEF_CV(val, BP_VAR_R);
-                       CHECK_EXCEPTION();
+                       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
                }
-               ZVAL_TRUE(EX_VAR(opline->result.var));
        } else {
                SAVE_OPLINE();
                ZVAL_BOOL(EX_VAR(opline->result.var), !i_zend_is_true(val));
 
-               CHECK_EXCEPTION();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        }
        ZEND_VM_NEXT_OPCODE();
 }
@@ -28338,8 +27969,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_PRE_INC_SPEC_CV_HANDLER(ZEND_O
                ZVAL_COPY(EX_VAR(opline->result.var), var_ptr);
        }
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_PRE_DEC_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -28384,8 +28014,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_PRE_DEC_SPEC_CV_HANDLER(ZEND_O
                ZVAL_COPY(EX_VAR(opline->result.var), var_ptr);
        }
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_POST_INC_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -28423,8 +28052,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_POST_INC_SPEC_CV_HANDLER(ZEND_
 
        increment_function(var_ptr);
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_POST_DEC_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -28462,8 +28090,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_POST_DEC_SPEC_CV_HANDLER(ZEND_
 
        decrement_function(var_ptr);
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ECHO_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -28492,8 +28119,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ECHO_SPEC_CV_HANDLER(ZEND_OPCO
                zend_string_release(str);
        }
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_JMPZ_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -28508,11 +28134,9 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_JMPZ_SPEC_CV_HANDLER(ZEND_OPCO
                ZEND_VM_SET_NEXT_OPCODE(opline + 1);
                ZEND_VM_CONTINUE();
        } else if (EXPECTED(Z_TYPE_INFO_P(val) <= IS_TRUE)) {
-               if (IS_CV == IS_CV) {
-                       if (UNEXPECTED(Z_TYPE_INFO_P(val) == IS_UNDEF)) {
-                               SAVE_OPLINE();
-                               GET_OP1_UNDEF_CV(val, BP_VAR_R);
-                       }
+               if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(val) == IS_UNDEF)) {
+                       SAVE_OPLINE();
+                       GET_OP1_UNDEF_CV(val, BP_VAR_R);
                        ZEND_VM_JMP(OP_JMP_ADDR(opline, opline->op2));
                } else {
                        ZEND_VM_SET_OPCODE(OP_JMP_ADDR(opline, opline->op2));
@@ -28545,16 +28169,12 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_JMPNZ_SPEC_CV_HANDLER(ZEND_OPC
                ZEND_VM_SET_OPCODE(OP_JMP_ADDR(opline, opline->op2));
                ZEND_VM_CONTINUE();
        } else if (EXPECTED(Z_TYPE_INFO_P(val) <= IS_TRUE)) {
-               if (IS_CV == IS_CV) {
-                       if (UNEXPECTED(Z_TYPE_INFO_P(val) == IS_UNDEF)) {
-                               SAVE_OPLINE();
-                               GET_OP1_UNDEF_CV(val, BP_VAR_R);
-                               CHECK_EXCEPTION();
-                       }
-                       ZEND_VM_NEXT_OPCODE();
+               if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(val) == IS_UNDEF)) {
+                       SAVE_OPLINE();
+                       GET_OP1_UNDEF_CV(val, BP_VAR_R);
+                       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
                } else {
-                       ZEND_VM_SET_NEXT_OPCODE(opline + 1);
-                       ZEND_VM_CONTINUE();
+                       ZEND_VM_NEXT_OPCODE();
                }
        }
 
@@ -28666,16 +28286,12 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_JMPNZ_EX_SPEC_CV_HANDLER(ZEND_
                ZEND_VM_CONTINUE();
        } else if (EXPECTED(Z_TYPE_INFO_P(val) <= IS_TRUE)) {
                ZVAL_FALSE(EX_VAR(opline->result.var));
-               if (IS_CV == IS_CV) {
-                       if (UNEXPECTED(Z_TYPE_INFO_P(val) == IS_UNDEF)) {
-                               SAVE_OPLINE();
-                               GET_OP1_UNDEF_CV(val, BP_VAR_R);
-                               CHECK_EXCEPTION();
-                       }
-                       ZEND_VM_NEXT_OPCODE();
+               if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(val) == IS_UNDEF)) {
+                       SAVE_OPLINE();
+                       GET_OP1_UNDEF_CV(val, BP_VAR_R);
+                       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
                } else {
-                       ZEND_VM_SET_NEXT_OPCODE(opline + 1);
-                       ZEND_VM_CONTINUE();
+                       ZEND_VM_NEXT_OPCODE();
                }
        }
 
@@ -28900,9 +28516,12 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SEND_VAR_SPEC_CV_HANDLER(ZEND_
        varptr = _get_zval_ptr_cv_undef(execute_data, opline->op1.var);
        if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(varptr) == IS_UNDEF)) {
                SAVE_OPLINE();
-               varptr = GET_OP1_UNDEF_CV(varptr, BP_VAR_R);
-               CHECK_EXCEPTION();
+               GET_OP1_UNDEF_CV(varptr, BP_VAR_R);
+               arg = ZEND_CALL_VAR(EX(call), opline->result.var);
+               ZVAL_NULL(arg);
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        }
+
        arg = ZEND_CALL_VAR(EX(call), opline->result.var);
 
        if (IS_CV == IS_CV) {
@@ -28927,48 +28546,6 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SEND_VAR_SPEC_CV_HANDLER(ZEND_
        ZEND_VM_NEXT_OPCODE();
 }
 
-static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SEND_VAR_NO_REF_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
-{
-       USE_OPLINE
-
-       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_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU));
-               }
-       }
-
-       varptr = _get_zval_ptr_cv_undef(execute_data, opline->op1.var);
-       if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(varptr) == IS_UNDEF)) {
-               SAVE_OPLINE();
-               varptr = GET_OP1_UNDEF_CV(varptr, BP_VAR_R);
-               CHECK_EXCEPTION();
-       }
-       if ((!(opline->extended_value & ZEND_ARG_SEND_FUNCTION) ||
-            (Z_VAR_FLAGS_P(varptr) & IS_VAR_RET_REF)) &&
-           (Z_ISREF_P(varptr) || Z_TYPE_P(varptr) == IS_OBJECT)) {
-
-               ZVAL_MAKE_REF(varptr);
-               if (IS_CV == IS_CV) {
-                       Z_ADDREF_P(varptr);
-               }
-       } else {
-               if ((opline->extended_value & ZEND_ARG_COMPILE_TIME_BOUND) ?
-                       !(opline->extended_value & ZEND_ARG_SEND_SILENT) :
-                       !ARG_MAY_BE_SENT_BY_REF(EX(call)->func, opline->op2.num)) {
-                       SAVE_OPLINE();
-                       zend_error(E_NOTICE, "Only variables should be passed by reference");
-                       CHECK_EXCEPTION();
-               }
-       }
-
-       arg = ZEND_CALL_VAR(EX(call), opline->result.var);
-       ZVAL_COPY_VALUE(arg, varptr);
-
-       ZEND_VM_NEXT_OPCODE();
-}
-
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SEND_REF_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
 {
        USE_OPLINE
@@ -29022,9 +28599,12 @@ send_var_by_ref:
        varptr = _get_zval_ptr_cv_undef(execute_data, opline->op1.var);
        if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(varptr) == IS_UNDEF)) {
                SAVE_OPLINE();
-               varptr = GET_OP1_UNDEF_CV(varptr, BP_VAR_R);
-               CHECK_EXCEPTION();
+               GET_OP1_UNDEF_CV(varptr, BP_VAR_R);
+               arg = ZEND_CALL_VAR(EX(call), opline->result.var);
+               ZVAL_NULL(arg);
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        }
+
        arg = ZEND_CALL_VAR(EX(call), opline->result.var);
 
        if (IS_CV == IS_CV) {
@@ -29081,8 +28661,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SEND_USER_SPEC_CV_HANDLER(ZEND
                                EX(call)->called_scope = NULL;
                                Z_OBJ(EX(call)->This) = NULL;
 
-                               CHECK_EXCEPTION();
-                               ZEND_VM_NEXT_OPCODE();
+                               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
                        }
 
                        ZVAL_NEW_REF(arg, arg);
@@ -29100,8 +28679,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SEND_USER_SPEC_CV_HANDLER(ZEND
        }
        ZVAL_COPY_VALUE(param, arg);
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BOOL_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -29114,17 +28692,17 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BOOL_SPEC_CV_HANDLER(ZEND_OPCO
        if (Z_TYPE_INFO_P(val) == IS_TRUE) {
                ZVAL_TRUE(EX_VAR(opline->result.var));
        } else if (EXPECTED(Z_TYPE_INFO_P(val) <= IS_TRUE)) {
+               ZVAL_FALSE(EX_VAR(opline->result.var));
                if (UNEXPECTED(Z_TYPE_INFO_P(val) == IS_UNDEF)) {
                        SAVE_OPLINE();
                        GET_OP1_UNDEF_CV(val, BP_VAR_R);
-                       CHECK_EXCEPTION();
+                       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
                }
-               ZVAL_FALSE(EX_VAR(opline->result.var));
        } else {
                SAVE_OPLINE();
                ZVAL_BOOL(EX_VAR(opline->result.var), i_zend_is_true(val));
 
-               CHECK_EXCEPTION();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        }
        ZEND_VM_NEXT_OPCODE();
 }
@@ -29207,8 +28785,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CLONE_SPEC_CV_HANDLER(ZEND_OPC
                }
        }
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CAST_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -29266,8 +28843,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CAST_SPEC_CV_HANDLER(ZEND_OPCO
                                        if (Z_OPT_REFCOUNTED_P(expr)) Z_ADDREF_P(expr);
                                }
 
-                               CHECK_EXCEPTION();
-                               ZEND_VM_NEXT_OPCODE();
+                               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
                        }
 
                        if (opline->extended_value == IS_ARRAY) {
@@ -29309,8 +28885,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CAST_SPEC_CV_HANDLER(ZEND_OPCO
                        }
        }
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INCLUDE_OR_EVAL_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -29460,8 +29035,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FE_RESET_R_SPEC_CV_HANDLER(ZEN
                }
                Z_FE_POS_P(result) = 0;
 
-               CHECK_EXCEPTION();
-               ZEND_VM_NEXT_OPCODE();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        } else if (IS_CV != IS_CONST && EXPECTED(Z_TYPE_P(array_ptr) == IS_OBJECT)) {
                if (!Z_OBJCE_P(array_ptr)->get_iterator) {
                        HashPosition pos = 0;
@@ -29493,8 +29067,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FE_RESET_R_SPEC_CV_HANDLER(ZEN
                        }
                        Z_FE_ITER_P(EX_VAR(opline->result.var)) = zend_hash_iterator_add(fe_ht, pos);
 
-                       CHECK_EXCEPTION();
-                       ZEND_VM_NEXT_OPCODE();
+                       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
                } else {
                        zend_class_entry *ce = Z_OBJCE_P(array_ptr);
                        zend_object_iterator *iter = ce->get_iterator(ce, array_ptr, 0);
@@ -29534,8 +29107,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FE_RESET_R_SPEC_CV_HANDLER(ZEN
                        if (is_empty) {
                                ZEND_VM_JMP(OP_JMP_ADDR(opline, opline->op2));
                        } else {
-                               CHECK_EXCEPTION();
-                               ZEND_VM_NEXT_OPCODE();
+                               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
                        }
                }
        } else {
@@ -29602,8 +29174,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FE_RESET_RW_SPEC_CV_HANDLER(ZE
                }
                Z_FE_ITER_P(EX_VAR(opline->result.var)) = zend_hash_iterator_add(fe_ht, pos);
 
-               CHECK_EXCEPTION();
-               ZEND_VM_NEXT_OPCODE();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        } else if (IS_CV != IS_CONST && EXPECTED(Z_TYPE_P(array_ptr) == IS_OBJECT)) {
                if (!Z_OBJCE_P(array_ptr)->get_iterator) {
                        if (IS_CV == IS_VAR || IS_CV == IS_CV) {
@@ -29637,8 +29208,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FE_RESET_RW_SPEC_CV_HANDLER(ZE
                        }
                        Z_FE_ITER_P(EX_VAR(opline->result.var)) = zend_hash_iterator_add(fe_ht, pos);
 
-                       CHECK_EXCEPTION();
-                       ZEND_VM_NEXT_OPCODE();
+                       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
                } else {
                        zend_class_entry *ce = Z_OBJCE_P(array_ptr);
                        zend_object_iterator *iter = ce->get_iterator(ce, array_ptr, 1);
@@ -29695,8 +29265,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FE_RESET_RW_SPEC_CV_HANDLER(ZE
                        if (is_empty) {
                                ZEND_VM_JMP(OP_JMP_ADDR(opline, opline->op2));
                        } else {
-                               CHECK_EXCEPTION();
-                               ZEND_VM_NEXT_OPCODE();
+                               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
                        }
                }
        } else {
@@ -29714,7 +29283,6 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FE_RESET_RW_SPEC_CV_HANDLER(ZE
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_EXIT_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
 {
-#if 0 || (IS_CV != IS_UNUSED)
        USE_OPLINE
 
        SAVE_OPLINE();
@@ -29738,7 +29306,6 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_EXIT_SPEC_CV_HANDLER(ZEND_OPCO
                } while (0);
 
        }
-#endif
        zend_bailout();
        ZEND_VM_NEXT_OPCODE(); /* Never reached */
 }
@@ -29776,8 +29343,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_JMP_SET_SPEC_CV_HANDLER(ZEND_O
                ZEND_VM_JMP(OP_JMP_ADDR(opline, opline->op2));
        }
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_COALESCE_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -29814,8 +29380,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_COALESCE_SPEC_CV_HANDLER(ZEND_
                ZEND_VM_JMP(OP_JMP_ADDR(opline, opline->op2));
        }
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_QM_ASSIGN_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -29827,8 +29392,9 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_QM_ASSIGN_SPEC_CV_HANDLER(ZEND
        value = _get_zval_ptr_cv_undef(execute_data, opline->op1.var);
        if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(value) == IS_UNDEF)) {
                SAVE_OPLINE();
-               value = GET_OP1_UNDEF_CV(value, BP_VAR_R);
-               CHECK_EXCEPTION();
+               GET_OP1_UNDEF_CV(value, BP_VAR_R);
+               ZVAL_NULL(EX_VAR(opline->result.var));
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        }
 
        if ((IS_CV == IS_VAR || IS_CV == IS_CV) && Z_ISREF_P(value)) {
@@ -29978,8 +29544,7 @@ try_strlen:
                } while (0);
        }
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_TYPE_CHECK_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -30015,8 +29580,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_TYPE_CHECK_SPEC_CV_HANDLER(ZEN
 
        ZEND_VM_SMART_BRANCH(result, 1);
        ZVAL_BOOL(EX_VAR(opline->result.var), result);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ADD_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -30059,8 +29623,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ADD_SPEC_CV_CONST_HANDLER(ZEND
        add_function(EX_VAR(opline->result.var), op1, op2);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SUB_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -30103,8 +29666,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SUB_SPEC_CV_CONST_HANDLER(ZEND
        sub_function(EX_VAR(opline->result.var), op1, op2);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_MUL_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -30150,8 +29712,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_MUL_SPEC_CV_CONST_HANDLER(ZEND
        mul_function(EX_VAR(opline->result.var), op1, op2);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_DIV_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -30166,8 +29727,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_DIV_SPEC_CV_CONST_HANDLER(ZEND
        fast_div_function(EX_VAR(opline->result.var), op1, op2);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_MOD_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -30205,8 +29765,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_MOD_SPEC_CV_CONST_HANDLER(ZEND
        mod_function(EX_VAR(opline->result.var), op1, op2);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SL_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -30221,8 +29780,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SL_SPEC_CV_CONST_HANDLER(ZEND_
        shift_left_function(EX_VAR(opline->result.var), op1, op2);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SR_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -30237,8 +29795,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SR_SPEC_CV_CONST_HANDLER(ZEND_
        shift_right_function(EX_VAR(opline->result.var), op1, op2);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CONCAT_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -30298,8 +29855,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CONCAT_SPEC_CV_CONST_HANDLER(Z
 
        } while (0);
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_IDENTICAL_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -30318,7 +29874,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_IDENTICAL_SPEC_CV_CONST_HAN
        ZEND_VM_SMART_BRANCH(result, (IS_CV|IS_CONST) & (IS_VAR|IS_TMP_VAR));
        ZVAL_BOOL(EX_VAR(opline->result.var), result);
        if ((IS_CV|IS_CONST) & (IS_VAR|IS_TMP_VAR)) {
-               CHECK_EXCEPTION();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        }
        ZEND_VM_NEXT_OPCODE();
 }
@@ -30339,7 +29895,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_NOT_IDENTICAL_SPEC_CV_CONST
        ZEND_VM_SMART_BRANCH(result, (IS_CV|IS_CONST) & (IS_VAR|IS_TMP_VAR));
        ZVAL_BOOL(EX_VAR(opline->result.var), result);
        if ((IS_CV|IS_CONST) & (IS_VAR|IS_TMP_VAR)) {
-               CHECK_EXCEPTION();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        }
        ZEND_VM_NEXT_OPCODE();
 }
@@ -30409,8 +29965,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_EQUAL_SPEC_CV_CONST_HANDLER
        ZVAL_BOOL(result, Z_LVAL_P(result) == 0);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_NOT_EQUAL_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -30478,8 +30033,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_NOT_EQUAL_SPEC_CV_CONST_HAN
        ZVAL_BOOL(result, Z_LVAL_P(result) != 0);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -30529,8 +30083,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_SPEC_CV_CONST_HANDL
        ZVAL_BOOL(result, Z_LVAL_P(result) < 0);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_OR_EQUAL_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -30580,8 +30133,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_OR_EQUAL_SPEC_CV_CO
        ZVAL_BOOL(result, Z_LVAL_P(result) <= 0);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SPACESHIP_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -30596,8 +30148,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SPACESHIP_SPEC_CV_CONST_HANDLE
        compare_function(EX_VAR(opline->result.var), op1, op2);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BW_OR_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -30612,8 +30163,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BW_OR_SPEC_CV_CONST_HANDLER(ZE
        bitwise_or_function(EX_VAR(opline->result.var), op1, op2);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BW_AND_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -30628,8 +30178,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BW_AND_SPEC_CV_CONST_HANDLER(Z
        bitwise_and_function(EX_VAR(opline->result.var), op1, op2);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BW_XOR_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -30644,8 +30193,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BW_XOR_SPEC_CV_CONST_HANDLER(Z
        bitwise_xor_function(EX_VAR(opline->result.var), op1, op2);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BOOL_XOR_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -30660,8 +30208,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BOOL_XOR_SPEC_CV_CONST_HANDLER
        boolean_xor_function(EX_VAR(opline->result.var), op1, op2);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_CV_CONST(binary_op_type binary_op ZEND_OPCODE_HANDLER_ARGS_DC)
@@ -30726,9 +30273,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_binary_assign_op_obj_helper_SP
 
 
        /* assign_obj has two opcodes! */
-       CHECK_EXCEPTION();
-       ZEND_VM_INC_OPCODE();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_EX(1, 2);
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_binary_assign_op_dim_helper_SPEC_CV_CONST(binary_op_type binary_op ZEND_OPCODE_HANDLER_ARGS_DC)
@@ -30798,9 +30343,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_binary_assign_op_dim_helper_SP
 
        FREE_OP(free_op_data1);
 
-       CHECK_EXCEPTION();
-       ZEND_VM_INC_OPCODE();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_EX(1, 2);
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_CV_CONST(binary_op_type binary_op ZEND_OPCODE_HANDLER_ARGS_DC)
@@ -30836,8 +30379,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_C
        }
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_ADD_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -31127,8 +30669,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_pre_incdec_property_helper_SPE
        } while (0);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_PRE_INC_OBJ_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -31204,8 +30745,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_post_incdec_property_helper_SP
        } while (0);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_POST_INC_OBJ_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -31268,8 +30808,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_
                                                zend_string_release(name);
                                        }
 
-                                       CHECK_EXCEPTION();
-                                       ZEND_VM_NEXT_OPCODE();
+                                       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
                                }
                                CACHE_PTR(Z_CACHE_SLOT_P(EX_CONSTANT(opline->op2)), ce);
                        }
@@ -31365,8 +30904,7 @@ fetch_var_return:
        } else {
                ZVAL_INDIRECT(EX_VAR(opline->result.var), retval);
        }
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_R_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -31416,8 +30954,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_R_SPEC_CV_CONST_HAND
        zend_fetch_dimension_address_read_R(EX_VAR(opline->result.var), container, EX_CONSTANT(opline->op2), IS_CONST);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_W_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -31439,8 +30976,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_W_SPEC_CV_CONST_HAND
                EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
        }
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_RW_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -31462,8 +30998,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_RW_SPEC_CV_CONST_HAN
                EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
        }
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_IS_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -31477,8 +31012,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_IS_SPEC_CV_CONST_HAN
        zend_fetch_dimension_address_read_IS(EX_VAR(opline->result.var), container, EX_CONSTANT(opline->op2), IS_CONST);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -31520,8 +31054,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_CV_CON
 
 
        }
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_UNSET_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -31544,8 +31077,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_UNSET_SPEC_CV_CONST_
                EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
        }
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_R_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -31617,8 +31149,7 @@ fetch_obj_r_no_object:
        } while (0);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_W_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -31649,8 +31180,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_W_SPEC_CV_CONST_HAND
                EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
        }
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_RW_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -31680,8 +31210,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_RW_SPEC_CV_CONST_HAN
                EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
        }
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -31753,8 +31282,7 @@ fetch_obj_is_no_object:
        } while (0);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -31793,8 +31321,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_CV_CON
                        EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
                }
 
-               CHECK_EXCEPTION();
-               ZEND_VM_NEXT_OPCODE();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        } else {
                ZEND_VM_TAIL_CALL(ZEND_FETCH_OBJ_R_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU));
        }
@@ -31828,8 +31355,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_UNSET_SPEC_CV_CONST_
                EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
        }
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_LIST_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -31873,8 +31399,7 @@ try_fetch_list:
                }
                ZVAL_NULL(EX_VAR(opline->result.var));
        }
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -31904,9 +31429,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_CV_CONST_HANDL
 
 
        /* assign_obj has two opcodes! */
-       CHECK_EXCEPTION();
-       ZEND_VM_INC_OPCODE();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_EX(1, 2);
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -32012,9 +31535,7 @@ assign_dim_clean:
        }
 
        /* assign_dim has two opcodes! */
-       CHECK_EXCEPTION();
-       ZEND_VM_INC_OPCODE();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_EX(1, 2);
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -32042,8 +31563,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_SPEC_CV_CONST_HANDLER(Z
                /* zend_assign_to_variable() always takes care of op2, never free it! */
        }
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FAST_CONCAT_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -32110,8 +31630,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FAST_CONCAT_SPEC_CV_CONST_HAND
        } while (0);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -32230,8 +31749,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_CV_CONST
        EX(call) = call;
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CASE_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -32297,8 +31815,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CASE_SPEC_CV_CONST_HANDLER(ZEN
        compare_function(result, op1, op2);
        ZVAL_BOOL(result, Z_LVAL_P(result) == 0);
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -32397,8 +31914,7 @@ num_index:
        } else {
                zend_hash_next_index_insert(Z_ARRVAL_P(EX_VAR(opline->result.var)), expr_ptr);
        }
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_ARRAY_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -32458,8 +31974,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_VAR_SPEC_CV_CONST_HANDLE
                } else {
                        ZVAL_UNDEF(var);
                }
-               CHECK_EXCEPTION();
-               ZEND_VM_NEXT_OPCODE();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        }
 
        varname = _get_zval_ptr_cv_undef(execute_data, opline->op1.var);
@@ -32510,8 +32025,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_VAR_SPEC_CV_CONST_HANDLE
                zend_string_release(Z_STR(tmp));
        }
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_DIM_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -32609,8 +32123,7 @@ num_index_dim:
        } while (0);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_OBJ_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -32653,8 +32166,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_OBJ_SPEC_CV_CONST_HANDLE
        } while (0);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_VAR_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -32714,8 +32226,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_VAR_SPEC_CV_CONS
                                } else {
                                        ce = zend_fetch_class_by_name(Z_STR_P(EX_CONSTANT(opline->op2)), EX_CONSTANT(opline->op2) + 1, ZEND_FETCH_CLASS_DEFAULT | ZEND_FETCH_CLASS_EXCEPTION);
                                        if (UNEXPECTED(ce == NULL)) {
-                                               CHECK_EXCEPTION();
-                                               ZEND_VM_NEXT_OPCODE();
+                                               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
                                        }
                                        CACHE_PTR(Z_CACHE_SLOT_P(EX_CONSTANT(opline->op2)), ce);
                                }
@@ -32757,8 +32268,7 @@ is_var_return:
 
                ZEND_VM_SMART_BRANCH(result, 1);
                ZVAL_BOOL(EX_VAR(opline->result.var), result);
-               CHECK_EXCEPTION();
-               ZEND_VM_NEXT_OPCODE();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        }
 }
 
@@ -32896,8 +32406,7 @@ isset_dim_obj_exit:
 
        ZEND_VM_SMART_BRANCH(result, 1);
        ZVAL_BOOL(EX_VAR(opline->result.var), result);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -32943,8 +32452,7 @@ isset_no_object:
 
        ZEND_VM_SMART_BRANCH(result, 1);
        ZVAL_BOOL(EX_VAR(opline->result.var), result);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INSTANCEOF_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -32969,8 +32477,7 @@ try_instanceof:
                                if (UNEXPECTED(ce == NULL)) {
                                        ZVAL_FALSE(EX_VAR(opline->result.var));
 
-                                       CHECK_EXCEPTION();
-                                       ZEND_VM_NEXT_OPCODE();
+                                       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
                                }
                                CACHE_PTR(Z_CACHE_SLOT_P(EX_CONSTANT(opline->op2)), ce);
                        }
@@ -32990,8 +32497,7 @@ try_instanceof:
 
        ZEND_VM_SMART_BRANCH(result, 1);
        ZVAL_BOOL(EX_VAR(opline->result.var), result);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -33147,8 +32653,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_POW_SPEC_CV_CONST_HANDLER(ZEND
        pow_function(EX_VAR(opline->result.var), op1, op2);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_POW_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -33253,7 +32758,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_IDENTICAL_SPEC_CV_TMP_HANDL
        ZEND_VM_SMART_BRANCH(result, (IS_CV|IS_TMP_VAR) & (IS_VAR|IS_TMP_VAR));
        ZVAL_BOOL(EX_VAR(opline->result.var), result);
        if ((IS_CV|IS_TMP_VAR) & (IS_VAR|IS_TMP_VAR)) {
-               CHECK_EXCEPTION();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        }
        ZEND_VM_NEXT_OPCODE();
 }
@@ -33274,7 +32779,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_NOT_IDENTICAL_SPEC_CV_TMP_H
        ZEND_VM_SMART_BRANCH(result, (IS_CV|IS_TMP_VAR) & (IS_VAR|IS_TMP_VAR));
        ZVAL_BOOL(EX_VAR(opline->result.var), result);
        if ((IS_CV|IS_TMP_VAR) & (IS_VAR|IS_TMP_VAR)) {
-               CHECK_EXCEPTION();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        }
        ZEND_VM_NEXT_OPCODE();
 }
@@ -33304,8 +32809,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_SPEC_CV_TMP_HANDLER(ZEN
                /* zend_assign_to_variable() always takes care of op2, never free it! */
        }
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -33465,7 +32969,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_IDENTICAL_SPEC_CV_VAR_HANDL
        ZEND_VM_SMART_BRANCH(result, (IS_CV|IS_VAR) & (IS_VAR|IS_TMP_VAR));
        ZVAL_BOOL(EX_VAR(opline->result.var), result);
        if ((IS_CV|IS_VAR) & (IS_VAR|IS_TMP_VAR)) {
-               CHECK_EXCEPTION();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        }
        ZEND_VM_NEXT_OPCODE();
 }
@@ -33486,7 +32990,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_NOT_IDENTICAL_SPEC_CV_VAR_H
        ZEND_VM_SMART_BRANCH(result, (IS_CV|IS_VAR) & (IS_VAR|IS_TMP_VAR));
        ZVAL_BOOL(EX_VAR(opline->result.var), result);
        if ((IS_CV|IS_VAR) & (IS_VAR|IS_TMP_VAR)) {
-               CHECK_EXCEPTION();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        }
        ZEND_VM_NEXT_OPCODE();
 }
@@ -33541,8 +33045,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_
                                                zend_string_release(name);
                                        }
 
-                                       CHECK_EXCEPTION();
-                                       ZEND_VM_NEXT_OPCODE();
+                                       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
                                }
                                CACHE_PTR(Z_CACHE_SLOT_P(EX_CONSTANT(opline->op2)), ce);
                        }
@@ -33638,8 +33141,7 @@ fetch_var_return:
        } else {
                ZVAL_INDIRECT(EX_VAR(opline->result.var), retval);
        }
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_R_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -33703,8 +33205,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_SPEC_CV_VAR_HANDLER(ZEN
                /* zend_assign_to_variable() always takes care of op2, never free it! */
        }
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_REF_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -33764,8 +33265,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_REF_SPEC_CV_VAR_HANDLER
 
        if (free_op2) {zval_ptr_dtor_nogc(free_op2);};
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_VAR_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -33794,8 +33294,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_VAR_SPEC_CV_VAR_HANDLER(
                } else {
                        ZVAL_UNDEF(var);
                }
-               CHECK_EXCEPTION();
-               ZEND_VM_NEXT_OPCODE();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        }
 
        varname = _get_zval_ptr_cv_undef(execute_data, opline->op1.var);
@@ -33846,8 +33345,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_VAR_SPEC_CV_VAR_HANDLER(
                zend_string_release(Z_STR(tmp));
        }
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_VAR_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -33907,8 +33405,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_VAR_SPEC_CV_VAR_
                                } else {
                                        ce = zend_fetch_class_by_name(Z_STR_P(EX_CONSTANT(opline->op2)), EX_CONSTANT(opline->op2) + 1, ZEND_FETCH_CLASS_DEFAULT | ZEND_FETCH_CLASS_EXCEPTION);
                                        if (UNEXPECTED(ce == NULL)) {
-                                               CHECK_EXCEPTION();
-                                               ZEND_VM_NEXT_OPCODE();
+                                               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
                                        }
                                        CACHE_PTR(Z_CACHE_SLOT_P(EX_CONSTANT(opline->op2)), ce);
                                }
@@ -33950,8 +33447,7 @@ is_var_return:
 
                ZEND_VM_SMART_BRANCH(result, 1);
                ZVAL_BOOL(EX_VAR(opline->result.var), result);
-               CHECK_EXCEPTION();
-               ZEND_VM_NEXT_OPCODE();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        }
 }
 
@@ -33977,8 +33473,7 @@ try_instanceof:
                                if (UNEXPECTED(ce == NULL)) {
                                        ZVAL_FALSE(EX_VAR(opline->result.var));
 
-                                       CHECK_EXCEPTION();
-                                       ZEND_VM_NEXT_OPCODE();
+                                       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
                                }
                                CACHE_PTR(Z_CACHE_SLOT_P(EX_CONSTANT(opline->op2)), ce);
                        }
@@ -33998,8 +33493,7 @@ try_instanceof:
 
        ZEND_VM_SMART_BRANCH(result, 1);
        ZVAL_BOOL(EX_VAR(opline->result.var), result);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -34210,9 +33704,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_binary_assign_op_dim_helper_SP
 
        FREE_OP(free_op_data1);
 
-       CHECK_EXCEPTION();
-       ZEND_VM_INC_OPCODE();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_EX(1, 2);
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_ADD_SPEC_CV_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -34485,8 +33977,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_
                                                zend_string_release(name);
                                        }
 
-                                       CHECK_EXCEPTION();
-                                       ZEND_VM_NEXT_OPCODE();
+                                       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
                                }
                                CACHE_PTR(Z_CACHE_SLOT_P(EX_CONSTANT(opline->op2)), ce);
                        }
@@ -34582,8 +34073,7 @@ fetch_var_return:
        } else {
                ZVAL_INDIRECT(EX_VAR(opline->result.var), retval);
        }
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_R_SPEC_CV_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -34641,8 +34131,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_W_SPEC_CV_UNUSED_HAN
                EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
        }
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_RW_SPEC_CV_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -34664,8 +34153,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_RW_SPEC_CV_UNUSED_HA
                EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
        }
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_CV_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -34707,8 +34195,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_CV_UNU
 
 
        }
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_CV_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -34814,9 +34301,7 @@ assign_dim_clean:
        }
 
        /* assign_dim has two opcodes! */
-       CHECK_EXCEPTION();
-       ZEND_VM_INC_OPCODE();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_EX(1, 2);
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_VERIFY_RETURN_TYPE_SPEC_CV_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -34864,8 +34349,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_VERIFY_RETURN_TYPE_SPEC_CV_UNU
                }
 #endif
        }
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_CV_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -34964,8 +34448,7 @@ num_index:
        } else {
                zend_hash_next_index_insert(Z_ARRVAL_P(EX_VAR(opline->result.var)), expr_ptr);
        }
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_ARRAY_SPEC_CV_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -35025,8 +34508,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_VAR_SPEC_CV_UNUSED_HANDL
                } else {
                        ZVAL_UNDEF(var);
                }
-               CHECK_EXCEPTION();
-               ZEND_VM_NEXT_OPCODE();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        }
 
        varname = _get_zval_ptr_cv_undef(execute_data, opline->op1.var);
@@ -35077,8 +34559,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_VAR_SPEC_CV_UNUSED_HANDL
                zend_string_release(Z_STR(tmp));
        }
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_VAR_SPEC_CV_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -35138,8 +34619,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_VAR_SPEC_CV_UNUS
                                } else {
                                        ce = zend_fetch_class_by_name(Z_STR_P(EX_CONSTANT(opline->op2)), EX_CONSTANT(opline->op2) + 1, ZEND_FETCH_CLASS_DEFAULT | ZEND_FETCH_CLASS_EXCEPTION);
                                        if (UNEXPECTED(ce == NULL)) {
-                                               CHECK_EXCEPTION();
-                                               ZEND_VM_NEXT_OPCODE();
+                                               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
                                        }
                                        CACHE_PTR(Z_CACHE_SLOT_P(EX_CONSTANT(opline->op2)), ce);
                                }
@@ -35181,8 +34661,7 @@ is_var_return:
 
                ZEND_VM_SMART_BRANCH(result, 1);
                ZVAL_BOOL(EX_VAR(opline->result.var), result);
-               CHECK_EXCEPTION();
-               ZEND_VM_NEXT_OPCODE();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        }
 }
 
@@ -35367,8 +34846,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ADD_SPEC_CV_CV_HANDLER(ZEND_OP
        add_function(EX_VAR(opline->result.var), op1, op2);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SUB_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -35411,8 +34889,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SUB_SPEC_CV_CV_HANDLER(ZEND_OP
        sub_function(EX_VAR(opline->result.var), op1, op2);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_MUL_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -35458,8 +34935,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_MUL_SPEC_CV_CV_HANDLER(ZEND_OP
        mul_function(EX_VAR(opline->result.var), op1, op2);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_DIV_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -35474,8 +34950,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_DIV_SPEC_CV_CV_HANDLER(ZEND_OP
        fast_div_function(EX_VAR(opline->result.var), op1, op2);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_MOD_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -35513,8 +34988,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_MOD_SPEC_CV_CV_HANDLER(ZEND_OP
        mod_function(EX_VAR(opline->result.var), op1, op2);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SL_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -35529,8 +35003,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SL_SPEC_CV_CV_HANDLER(ZEND_OPC
        shift_left_function(EX_VAR(opline->result.var), op1, op2);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SR_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -35545,8 +35018,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SR_SPEC_CV_CV_HANDLER(ZEND_OPC
        shift_right_function(EX_VAR(opline->result.var), op1, op2);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CONCAT_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -35606,8 +35078,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CONCAT_SPEC_CV_CV_HANDLER(ZEND
 
        } while (0);
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_IDENTICAL_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -35626,7 +35097,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_IDENTICAL_SPEC_CV_CV_HANDLE
        ZEND_VM_SMART_BRANCH(result, (IS_CV|IS_CV) & (IS_VAR|IS_TMP_VAR));
        ZVAL_BOOL(EX_VAR(opline->result.var), result);
        if ((IS_CV|IS_CV) & (IS_VAR|IS_TMP_VAR)) {
-               CHECK_EXCEPTION();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        }
        ZEND_VM_NEXT_OPCODE();
 }
@@ -35647,7 +35118,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_NOT_IDENTICAL_SPEC_CV_CV_HA
        ZEND_VM_SMART_BRANCH(result, (IS_CV|IS_CV) & (IS_VAR|IS_TMP_VAR));
        ZVAL_BOOL(EX_VAR(opline->result.var), result);
        if ((IS_CV|IS_CV) & (IS_VAR|IS_TMP_VAR)) {
-               CHECK_EXCEPTION();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        }
        ZEND_VM_NEXT_OPCODE();
 }
@@ -35717,8 +35188,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_EQUAL_SPEC_CV_CV_HANDLER(ZE
        ZVAL_BOOL(result, Z_LVAL_P(result) == 0);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_NOT_EQUAL_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -35786,8 +35256,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_NOT_EQUAL_SPEC_CV_CV_HANDLE
        ZVAL_BOOL(result, Z_LVAL_P(result) != 0);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -35837,8 +35306,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_SPEC_CV_CV_HANDLER(
        ZVAL_BOOL(result, Z_LVAL_P(result) < 0);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_OR_EQUAL_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -35888,8 +35356,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_OR_EQUAL_SPEC_CV_CV
        ZVAL_BOOL(result, Z_LVAL_P(result) <= 0);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SPACESHIP_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -35904,8 +35371,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SPACESHIP_SPEC_CV_CV_HANDLER(Z
        compare_function(EX_VAR(opline->result.var), op1, op2);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BW_OR_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -35920,8 +35386,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BW_OR_SPEC_CV_CV_HANDLER(ZEND_
        bitwise_or_function(EX_VAR(opline->result.var), op1, op2);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BW_AND_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -35936,8 +35401,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BW_AND_SPEC_CV_CV_HANDLER(ZEND
        bitwise_and_function(EX_VAR(opline->result.var), op1, op2);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BW_XOR_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -35952,8 +35416,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BW_XOR_SPEC_CV_CV_HANDLER(ZEND
        bitwise_xor_function(EX_VAR(opline->result.var), op1, op2);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BOOL_XOR_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -35968,8 +35431,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BOOL_XOR_SPEC_CV_CV_HANDLER(ZE
        boolean_xor_function(EX_VAR(opline->result.var), op1, op2);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_CV_CV(binary_op_type binary_op ZEND_OPCODE_HANDLER_ARGS_DC)
@@ -36034,9 +35496,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_binary_assign_op_obj_helper_SP
 
 
        /* assign_obj has two opcodes! */
-       CHECK_EXCEPTION();
-       ZEND_VM_INC_OPCODE();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_EX(1, 2);
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_binary_assign_op_dim_helper_SPEC_CV_CV(binary_op_type binary_op ZEND_OPCODE_HANDLER_ARGS_DC)
@@ -36106,9 +35566,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_binary_assign_op_dim_helper_SP
 
        FREE_OP(free_op_data1);
 
-       CHECK_EXCEPTION();
-       ZEND_VM_INC_OPCODE();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_EX(1, 2);
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_CV_CV(binary_op_type binary_op ZEND_OPCODE_HANDLER_ARGS_DC)
@@ -36144,8 +35602,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_C
        }
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_ADD_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -36435,8 +35892,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_pre_incdec_property_helper_SPE
        } while (0);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_PRE_INC_OBJ_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -36512,8 +35968,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_post_incdec_property_helper_SP
        } while (0);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_POST_INC_OBJ_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -36537,8 +35992,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_R_SPEC_CV_CV_HANDLER
        zend_fetch_dimension_address_read_R(EX_VAR(opline->result.var), container, _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var), IS_CV);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_W_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -36560,8 +36014,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_W_SPEC_CV_CV_HANDLER
                EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
        }
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_RW_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -36583,8 +36036,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_RW_SPEC_CV_CV_HANDLE
                EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
        }
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_IS_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -36598,8 +36050,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_IS_SPEC_CV_CV_HANDLE
        zend_fetch_dimension_address_read_IS(EX_VAR(opline->result.var), container, _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var), IS_CV);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -36641,8 +36092,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_CV_CV_
 
 
        }
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_UNSET_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -36665,8 +36115,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_UNSET_SPEC_CV_CV_HAN
                EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
        }
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_R_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -36738,8 +36187,7 @@ fetch_obj_r_no_object:
        } while (0);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_W_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -36770,8 +36218,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_W_SPEC_CV_CV_HANDLER
                EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
        }
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_RW_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -36801,8 +36248,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_RW_SPEC_CV_CV_HANDLE
                EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
        }
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -36874,8 +36320,7 @@ fetch_obj_is_no_object:
        } while (0);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -36914,8 +36359,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_CV_CV_
                        EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
                }
 
-               CHECK_EXCEPTION();
-               ZEND_VM_NEXT_OPCODE();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        } else {
                ZEND_VM_TAIL_CALL(ZEND_FETCH_OBJ_R_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU));
        }
@@ -36949,8 +36393,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_UNSET_SPEC_CV_CV_HAN
                EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
        }
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -36980,9 +36423,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_CV_CV_HANDLER(
 
 
        /* assign_obj has two opcodes! */
-       CHECK_EXCEPTION();
-       ZEND_VM_INC_OPCODE();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_EX(1, 2);
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -37088,9 +36529,7 @@ assign_dim_clean:
        }
 
        /* assign_dim has two opcodes! */
-       CHECK_EXCEPTION();
-       ZEND_VM_INC_OPCODE();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_EX(1, 2);
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -37118,8 +36557,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_SPEC_CV_CV_HANDLER(ZEND
                /* zend_assign_to_variable() always takes care of op2, never free it! */
        }
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_REF_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -37178,8 +36616,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_REF_SPEC_CV_CV_HANDLER(
        }
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FAST_CONCAT_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -37246,8 +36683,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FAST_CONCAT_SPEC_CV_CV_HANDLER
        } while (0);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -37366,8 +36802,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_CV_CV_HA
        EX(call) = call;
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CASE_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -37433,8 +36868,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CASE_SPEC_CV_CV_HANDLER(ZEND_O
        compare_function(result, op1, op2);
        ZVAL_BOOL(result, Z_LVAL_P(result) == 0);
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -37533,8 +36967,7 @@ num_index:
        } else {
                zend_hash_next_index_insert(Z_ARRVAL_P(EX_VAR(opline->result.var)), expr_ptr);
        }
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_ARRAY_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -37663,8 +37096,7 @@ num_index_dim:
        } while (0);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_OBJ_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -37707,8 +37139,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_OBJ_SPEC_CV_CV_HANDLER(Z
        } while (0);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -37845,8 +37276,7 @@ isset_dim_obj_exit:
 
        ZEND_VM_SMART_BRANCH(result, 1);
        ZVAL_BOOL(EX_VAR(opline->result.var), result);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -37892,8 +37322,7 @@ isset_no_object:
 
        ZEND_VM_SMART_BRANCH(result, 1);
        ZVAL_BOOL(EX_VAR(opline->result.var), result);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -38049,8 +37478,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_POW_SPEC_CV_CV_HANDLER(ZEND_OP
        pow_function(EX_VAR(opline->result.var), op1, op2);
 
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_POW_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -38098,8 +37526,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ADD_SPEC_CV_TMPVAR_HANDLER(ZEN
        add_function(EX_VAR(opline->result.var), op1, op2);
 
        zval_ptr_dtor_nogc(free_op2);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SUB_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -38142,8 +37569,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SUB_SPEC_CV_TMPVAR_HANDLER(ZEN
        sub_function(EX_VAR(opline->result.var), op1, op2);
 
        zval_ptr_dtor_nogc(free_op2);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_MUL_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -38189,8 +37615,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_MUL_SPEC_CV_TMPVAR_HANDLER(ZEN
        mul_function(EX_VAR(opline->result.var), op1, op2);
 
        zval_ptr_dtor_nogc(free_op2);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_DIV_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -38205,8 +37630,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_DIV_SPEC_CV_TMPVAR_HANDLER(ZEN
        fast_div_function(EX_VAR(opline->result.var), op1, op2);
 
        zval_ptr_dtor_nogc(free_op2);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_MOD_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -38244,8 +37668,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_MOD_SPEC_CV_TMPVAR_HANDLER(ZEN
        mod_function(EX_VAR(opline->result.var), op1, op2);
 
        zval_ptr_dtor_nogc(free_op2);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SL_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -38260,8 +37683,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SL_SPEC_CV_TMPVAR_HANDLER(ZEND
        shift_left_function(EX_VAR(opline->result.var), op1, op2);
 
        zval_ptr_dtor_nogc(free_op2);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SR_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -38276,8 +37698,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SR_SPEC_CV_TMPVAR_HANDLER(ZEND
        shift_right_function(EX_VAR(opline->result.var), op1, op2);
 
        zval_ptr_dtor_nogc(free_op2);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CONCAT_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -38337,8 +37758,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CONCAT_SPEC_CV_TMPVAR_HANDLER(
 
        } while (0);
        zval_ptr_dtor_nogc(free_op2);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_EQUAL_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -38406,8 +37826,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_EQUAL_SPEC_CV_TMPVAR_HANDLE
        ZVAL_BOOL(result, Z_LVAL_P(result) == 0);
 
        zval_ptr_dtor_nogc(free_op2);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_NOT_EQUAL_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -38475,8 +37894,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_NOT_EQUAL_SPEC_CV_TMPVAR_HA
        ZVAL_BOOL(result, Z_LVAL_P(result) != 0);
 
        zval_ptr_dtor_nogc(free_op2);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -38526,8 +37944,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_SPEC_CV_TMPVAR_HAND
        ZVAL_BOOL(result, Z_LVAL_P(result) < 0);
 
        zval_ptr_dtor_nogc(free_op2);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_OR_EQUAL_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -38577,8 +37994,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_OR_EQUAL_SPEC_CV_TM
        ZVAL_BOOL(result, Z_LVAL_P(result) <= 0);
 
        zval_ptr_dtor_nogc(free_op2);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SPACESHIP_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -38593,8 +38009,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SPACESHIP_SPEC_CV_TMPVAR_HANDL
        compare_function(EX_VAR(opline->result.var), op1, op2);
 
        zval_ptr_dtor_nogc(free_op2);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BW_OR_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -38609,8 +38024,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BW_OR_SPEC_CV_TMPVAR_HANDLER(Z
        bitwise_or_function(EX_VAR(opline->result.var), op1, op2);
 
        zval_ptr_dtor_nogc(free_op2);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BW_AND_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -38625,8 +38039,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BW_AND_SPEC_CV_TMPVAR_HANDLER(
        bitwise_and_function(EX_VAR(opline->result.var), op1, op2);
 
        zval_ptr_dtor_nogc(free_op2);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BW_XOR_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -38641,8 +38054,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BW_XOR_SPEC_CV_TMPVAR_HANDLER(
        bitwise_xor_function(EX_VAR(opline->result.var), op1, op2);
 
        zval_ptr_dtor_nogc(free_op2);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BOOL_XOR_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -38657,8 +38069,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BOOL_XOR_SPEC_CV_TMPVAR_HANDLE
        boolean_xor_function(EX_VAR(opline->result.var), op1, op2);
 
        zval_ptr_dtor_nogc(free_op2);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_CV_TMPVAR(binary_op_type binary_op ZEND_OPCODE_HANDLER_ARGS_DC)
@@ -38723,9 +38134,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_binary_assign_op_obj_helper_SP
        zval_ptr_dtor_nogc(free_op2);
 
        /* assign_obj has two opcodes! */
-       CHECK_EXCEPTION();
-       ZEND_VM_INC_OPCODE();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_EX(1, 2);
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_binary_assign_op_dim_helper_SPEC_CV_TMPVAR(binary_op_type binary_op ZEND_OPCODE_HANDLER_ARGS_DC)
@@ -38796,9 +38205,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_binary_assign_op_dim_helper_SP
        zval_ptr_dtor_nogc(free_op2);
        FREE_OP(free_op_data1);
 
-       CHECK_EXCEPTION();
-       ZEND_VM_INC_OPCODE();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_EX(1, 2);
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_CV_TMPVAR(binary_op_type binary_op ZEND_OPCODE_HANDLER_ARGS_DC)
@@ -38835,8 +38242,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_C
 
        zval_ptr_dtor_nogc(free_op2);
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_ADD_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -39127,8 +38533,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_pre_incdec_property_helper_SPE
 
        zval_ptr_dtor_nogc(free_op2);
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_PRE_INC_OBJ_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -39205,8 +38610,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_post_incdec_property_helper_SP
 
        zval_ptr_dtor_nogc(free_op2);
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_POST_INC_OBJ_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -39230,8 +38634,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_R_SPEC_CV_TMPVAR_HAN
        zend_fetch_dimension_address_read_R(EX_VAR(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2), (IS_TMP_VAR|IS_VAR));
        zval_ptr_dtor_nogc(free_op2);
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_W_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -39253,8 +38656,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_W_SPEC_CV_TMPVAR_HAN
                EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
        }
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_RW_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -39276,8 +38678,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_RW_SPEC_CV_TMPVAR_HA
                EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
        }
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_IS_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -39291,8 +38692,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_IS_SPEC_CV_TMPVAR_HA
        zend_fetch_dimension_address_read_IS(EX_VAR(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2), (IS_TMP_VAR|IS_VAR));
        zval_ptr_dtor_nogc(free_op2);
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -39334,8 +38734,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_CV_TMP
                zval_ptr_dtor_nogc(free_op2);
 
        }
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_UNSET_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -39358,8 +38757,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_UNSET_SPEC_CV_TMPVAR
                EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
        }
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_R_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -39432,8 +38830,7 @@ fetch_obj_r_no_object:
 
        zval_ptr_dtor_nogc(free_op2);
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_W_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -39464,8 +38861,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_W_SPEC_CV_TMPVAR_HAN
                EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
        }
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_RW_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -39495,8 +38891,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_RW_SPEC_CV_TMPVAR_HA
                EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
        }
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -39569,8 +38964,7 @@ fetch_obj_is_no_object:
 
        zval_ptr_dtor_nogc(free_op2);
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -39609,8 +39003,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_CV_TMP
                        EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
                }
 
-               CHECK_EXCEPTION();
-               ZEND_VM_NEXT_OPCODE();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        } else {
                ZEND_VM_TAIL_CALL(ZEND_FETCH_OBJ_R_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU));
        }
@@ -39644,8 +39037,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_UNSET_SPEC_CV_TMPVAR
                EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
        }
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -39675,9 +39067,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_CV_TMPVAR_HAND
        zval_ptr_dtor_nogc(free_op2);
 
        /* assign_obj has two opcodes! */
-       CHECK_EXCEPTION();
-       ZEND_VM_INC_OPCODE();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_EX(1, 2);
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -39783,9 +39173,7 @@ assign_dim_clean:
        }
 
        /* assign_dim has two opcodes! */
-       CHECK_EXCEPTION();
-       ZEND_VM_INC_OPCODE();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_EX(1, 2);
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FAST_CONCAT_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -39852,8 +39240,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FAST_CONCAT_SPEC_CV_TMPVAR_HAN
        } while (0);
 
        zval_ptr_dtor_nogc(free_op2);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -39973,8 +39360,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_CV_TMPVA
 
        zval_ptr_dtor_nogc(free_op2);
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CASE_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -40040,8 +39426,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CASE_SPEC_CV_TMPVAR_HANDLER(ZE
        compare_function(result, op1, op2);
        ZVAL_BOOL(result, Z_LVAL_P(result) == 0);
        zval_ptr_dtor_nogc(free_op2);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -40140,8 +39525,7 @@ num_index:
        } else {
                zend_hash_next_index_insert(Z_ARRVAL_P(EX_VAR(opline->result.var)), expr_ptr);
        }
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_ARRAY_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -40271,8 +39655,7 @@ num_index_dim:
 
        zval_ptr_dtor_nogc(free_op2);
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_OBJ_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -40316,8 +39699,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_OBJ_SPEC_CV_TMPVAR_HANDL
 
        zval_ptr_dtor_nogc(free_op2);
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -40454,8 +39836,7 @@ isset_dim_obj_exit:
 
        ZEND_VM_SMART_BRANCH(result, 1);
        ZVAL_BOOL(EX_VAR(opline->result.var), result);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -40502,8 +39883,7 @@ isset_no_object:
 
        ZEND_VM_SMART_BRANCH(result, 1);
        ZVAL_BOOL(EX_VAR(opline->result.var), result);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_POW_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -40518,8 +39898,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_POW_SPEC_CV_TMPVAR_HANDLER(ZEN
        pow_function(EX_VAR(opline->result.var), op1, op2);
 
        zval_ptr_dtor_nogc(free_op2);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_POW_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -40536,8 +39915,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BW_NOT_SPEC_TMPVAR_HANDLER(ZEN
        bitwise_not_function(EX_VAR(opline->result.var),
                _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1));
        zval_ptr_dtor_nogc(free_op1);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BOOL_NOT_SPEC_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -40550,17 +39928,17 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BOOL_NOT_SPEC_TMPVAR_HANDLER(Z
        if (Z_TYPE_INFO_P(val) == IS_TRUE) {
                ZVAL_FALSE(EX_VAR(opline->result.var));
        } else if (EXPECTED(Z_TYPE_INFO_P(val) <= IS_TRUE)) {
+               ZVAL_TRUE(EX_VAR(opline->result.var));
                if (UNEXPECTED(Z_TYPE_INFO_P(val) == IS_UNDEF)) {
                        SAVE_OPLINE();
                        GET_OP1_UNDEF_CV(val, BP_VAR_R);
-                       CHECK_EXCEPTION();
+                       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
                }
-               ZVAL_TRUE(EX_VAR(opline->result.var));
        } else {
                SAVE_OPLINE();
                ZVAL_BOOL(EX_VAR(opline->result.var), !i_zend_is_true(val));
                zval_ptr_dtor_nogc(free_op1);
-               CHECK_EXCEPTION();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        }
        ZEND_VM_NEXT_OPCODE();
 }
@@ -40592,8 +39970,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ECHO_SPEC_TMPVAR_HANDLER(ZEND_
        }
 
        zval_ptr_dtor_nogc(free_op1);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_JMPZ_SPEC_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -40608,11 +39985,9 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_JMPZ_SPEC_TMPVAR_HANDLER(ZEND_
                ZEND_VM_SET_NEXT_OPCODE(opline + 1);
                ZEND_VM_CONTINUE();
        } else if (EXPECTED(Z_TYPE_INFO_P(val) <= IS_TRUE)) {
-               if ((IS_TMP_VAR|IS_VAR) == IS_CV) {
-                       if (UNEXPECTED(Z_TYPE_INFO_P(val) == IS_UNDEF)) {
-                               SAVE_OPLINE();
-                               GET_OP1_UNDEF_CV(val, BP_VAR_R);
-                       }
+               if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(val) == IS_UNDEF)) {
+                       SAVE_OPLINE();
+                       GET_OP1_UNDEF_CV(val, BP_VAR_R);
                        ZEND_VM_JMP(OP_JMP_ADDR(opline, opline->op2));
                } else {
                        ZEND_VM_SET_OPCODE(OP_JMP_ADDR(opline, opline->op2));
@@ -40645,16 +40020,12 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_JMPNZ_SPEC_TMPVAR_HANDLER(ZEND
                ZEND_VM_SET_OPCODE(OP_JMP_ADDR(opline, opline->op2));
                ZEND_VM_CONTINUE();
        } else if (EXPECTED(Z_TYPE_INFO_P(val) <= IS_TRUE)) {
-               if ((IS_TMP_VAR|IS_VAR) == IS_CV) {
-                       if (UNEXPECTED(Z_TYPE_INFO_P(val) == IS_UNDEF)) {
-                               SAVE_OPLINE();
-                               GET_OP1_UNDEF_CV(val, BP_VAR_R);
-                               CHECK_EXCEPTION();
-                       }
-                       ZEND_VM_NEXT_OPCODE();
+               if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(val) == IS_UNDEF)) {
+                       SAVE_OPLINE();
+                       GET_OP1_UNDEF_CV(val, BP_VAR_R);
+                       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
                } else {
-                       ZEND_VM_SET_NEXT_OPCODE(opline + 1);
-                       ZEND_VM_CONTINUE();
+                       ZEND_VM_NEXT_OPCODE();
                }
        }
 
@@ -40766,16 +40137,12 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_JMPNZ_EX_SPEC_TMPVAR_HANDLER(Z
                ZEND_VM_CONTINUE();
        } else if (EXPECTED(Z_TYPE_INFO_P(val) <= IS_TRUE)) {
                ZVAL_FALSE(EX_VAR(opline->result.var));
-               if ((IS_TMP_VAR|IS_VAR) == IS_CV) {
-                       if (UNEXPECTED(Z_TYPE_INFO_P(val) == IS_UNDEF)) {
-                               SAVE_OPLINE();
-                               GET_OP1_UNDEF_CV(val, BP_VAR_R);
-                               CHECK_EXCEPTION();
-                       }
-                       ZEND_VM_NEXT_OPCODE();
+               if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(val) == IS_UNDEF)) {
+                       SAVE_OPLINE();
+                       GET_OP1_UNDEF_CV(val, BP_VAR_R);
+                       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
                } else {
-                       ZEND_VM_SET_NEXT_OPCODE(opline + 1);
-                       ZEND_VM_CONTINUE();
+                       ZEND_VM_NEXT_OPCODE();
                }
        }
 
@@ -40801,8 +40168,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FREE_SPEC_TMPVAR_HANDLER(ZEND_
 
        SAVE_OPLINE();
        zval_ptr_dtor_nogc(EX_VAR(opline->op1.var));
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FE_FREE_SPEC_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -40816,8 +40182,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FE_FREE_SPEC_TMPVAR_HANDLER(ZE
                zend_hash_iterator_del(Z_FE_ITER_P(var));
        }
        zval_ptr_dtor_nogc(var);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BOOL_SPEC_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -40830,17 +40195,17 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BOOL_SPEC_TMPVAR_HANDLER(ZEND_
        if (Z_TYPE_INFO_P(val) == IS_TRUE) {
                ZVAL_TRUE(EX_VAR(opline->result.var));
        } else if (EXPECTED(Z_TYPE_INFO_P(val) <= IS_TRUE)) {
+               ZVAL_FALSE(EX_VAR(opline->result.var));
                if (UNEXPECTED(Z_TYPE_INFO_P(val) == IS_UNDEF)) {
                        SAVE_OPLINE();
                        GET_OP1_UNDEF_CV(val, BP_VAR_R);
-                       CHECK_EXCEPTION();
+                       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
                }
-               ZVAL_FALSE(EX_VAR(opline->result.var));
        } else {
                SAVE_OPLINE();
                ZVAL_BOOL(EX_VAR(opline->result.var), i_zend_is_true(val));
                zval_ptr_dtor_nogc(free_op1);
-               CHECK_EXCEPTION();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        }
        ZEND_VM_NEXT_OPCODE();
 }
@@ -40923,8 +40288,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CLONE_SPEC_TMPVAR_HANDLER(ZEND
                }
        }
        zval_ptr_dtor_nogc(free_op1);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INCLUDE_OR_EVAL_SPEC_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -41058,7 +40422,6 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INCLUDE_OR_EVAL_SPEC_TMPVAR_HA
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_EXIT_SPEC_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
 {
-#if 0 || ((IS_TMP_VAR|IS_VAR) != IS_UNUSED)
        USE_OPLINE
 
        SAVE_OPLINE();
@@ -41082,7 +40445,6 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_EXIT_SPEC_TMPVAR_HANDLER(ZEND_
                } while (0);
                zval_ptr_dtor_nogc(free_op1);
        }
-#endif
        zend_bailout();
        ZEND_VM_NEXT_OPCODE(); /* Never reached */
 }
@@ -41127,8 +40489,7 @@ try_strlen:
                } while (0);
        }
        zval_ptr_dtor_nogc(free_op1);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ADD_SPEC_TMPVAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -41171,8 +40532,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ADD_SPEC_TMPVAR_CONST_HANDLER(
        add_function(EX_VAR(opline->result.var), op1, op2);
        zval_ptr_dtor_nogc(free_op1);
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SUB_SPEC_TMPVAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -41215,8 +40575,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SUB_SPEC_TMPVAR_CONST_HANDLER(
        sub_function(EX_VAR(opline->result.var), op1, op2);
        zval_ptr_dtor_nogc(free_op1);
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_MUL_SPEC_TMPVAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -41262,8 +40621,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_MUL_SPEC_TMPVAR_CONST_HANDLER(
        mul_function(EX_VAR(opline->result.var), op1, op2);
        zval_ptr_dtor_nogc(free_op1);
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_DIV_SPEC_TMPVAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -41278,8 +40636,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_DIV_SPEC_TMPVAR_CONST_HANDLER(
        fast_div_function(EX_VAR(opline->result.var), op1, op2);
        zval_ptr_dtor_nogc(free_op1);
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_MOD_SPEC_TMPVAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -41317,8 +40674,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_MOD_SPEC_TMPVAR_CONST_HANDLER(
        mod_function(EX_VAR(opline->result.var), op1, op2);
        zval_ptr_dtor_nogc(free_op1);
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SL_SPEC_TMPVAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -41333,8 +40689,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SL_SPEC_TMPVAR_CONST_HANDLER(Z
        shift_left_function(EX_VAR(opline->result.var), op1, op2);
        zval_ptr_dtor_nogc(free_op1);
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SR_SPEC_TMPVAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -41349,8 +40704,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SR_SPEC_TMPVAR_CONST_HANDLER(Z
        shift_right_function(EX_VAR(opline->result.var), op1, op2);
        zval_ptr_dtor_nogc(free_op1);
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CONCAT_SPEC_TMPVAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -41410,8 +40764,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CONCAT_SPEC_TMPVAR_CONST_HANDL
                zval_ptr_dtor_nogc(free_op1);
        } while (0);
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_EQUAL_SPEC_TMPVAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -41479,8 +40832,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_EQUAL_SPEC_TMPVAR_CONST_HAN
        ZVAL_BOOL(result, Z_LVAL_P(result) == 0);
        zval_ptr_dtor_nogc(free_op1);
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_NOT_EQUAL_SPEC_TMPVAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -41548,8 +40900,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_NOT_EQUAL_SPEC_TMPVAR_CONST
        ZVAL_BOOL(result, Z_LVAL_P(result) != 0);
        zval_ptr_dtor_nogc(free_op1);
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_SPEC_TMPVAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -41599,8 +40950,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_SPEC_TMPVAR_CONST_H
        ZVAL_BOOL(result, Z_LVAL_P(result) < 0);
        zval_ptr_dtor_nogc(free_op1);
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -41650,8 +41000,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVA
        ZVAL_BOOL(result, Z_LVAL_P(result) <= 0);
        zval_ptr_dtor_nogc(free_op1);
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SPACESHIP_SPEC_TMPVAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -41666,8 +41015,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SPACESHIP_SPEC_TMPVAR_CONST_HA
        compare_function(EX_VAR(opline->result.var), op1, op2);
        zval_ptr_dtor_nogc(free_op1);
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BW_OR_SPEC_TMPVAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -41682,8 +41030,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BW_OR_SPEC_TMPVAR_CONST_HANDLE
        bitwise_or_function(EX_VAR(opline->result.var), op1, op2);
        zval_ptr_dtor_nogc(free_op1);
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BW_AND_SPEC_TMPVAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -41698,8 +41045,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BW_AND_SPEC_TMPVAR_CONST_HANDL
        bitwise_and_function(EX_VAR(opline->result.var), op1, op2);
        zval_ptr_dtor_nogc(free_op1);
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BW_XOR_SPEC_TMPVAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -41714,8 +41060,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BW_XOR_SPEC_TMPVAR_CONST_HANDL
        bitwise_xor_function(EX_VAR(opline->result.var), op1, op2);
        zval_ptr_dtor_nogc(free_op1);
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BOOL_XOR_SPEC_TMPVAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -41730,8 +41075,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BOOL_XOR_SPEC_TMPVAR_CONST_HAN
        boolean_xor_function(EX_VAR(opline->result.var), op1, op2);
        zval_ptr_dtor_nogc(free_op1);
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_TMPVAR_CONST(int type ZEND_OPCODE_HANDLER_ARGS_DC)
@@ -41784,8 +41128,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_
                                                zend_string_release(name);
                                        }
                                        zval_ptr_dtor_nogc(free_op1);
-                                       CHECK_EXCEPTION();
-                                       ZEND_VM_NEXT_OPCODE();
+                                       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
                                }
                                CACHE_PTR(Z_CACHE_SLOT_P(EX_CONSTANT(opline->op2)), ce);
                        }
@@ -41882,8 +41225,7 @@ fetch_var_return:
        } else {
                ZVAL_INDIRECT(EX_VAR(opline->result.var), retval);
        }
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_R_SPEC_TMPVAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -41933,8 +41275,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_R_SPEC_TMPVAR_CONST_
        zend_fetch_dimension_address_read_R(EX_VAR(opline->result.var), container, EX_CONSTANT(opline->op2), IS_CONST);
 
        zval_ptr_dtor_nogc(free_op1);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_IS_SPEC_TMPVAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -41948,8 +41289,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_IS_SPEC_TMPVAR_CONST
        zend_fetch_dimension_address_read_IS(EX_VAR(opline->result.var), container, EX_CONSTANT(opline->op2), IS_CONST);
 
        zval_ptr_dtor_nogc(free_op1);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_TMPVAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -42021,8 +41361,7 @@ fetch_obj_is_no_object:
        } while (0);
 
        zval_ptr_dtor_nogc(free_op1);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_LIST_SPEC_TMPVAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -42066,8 +41405,7 @@ try_fetch_list:
                }
                ZVAL_NULL(EX_VAR(opline->result.var));
        }
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FAST_CONCAT_SPEC_TMPVAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -42134,8 +41472,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FAST_CONCAT_SPEC_TMPVAR_CONST_
        } while (0);
        zval_ptr_dtor_nogc(free_op1);
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_TMPVAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -42255,8 +41592,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_TMPVAR_C
 
        zval_ptr_dtor_nogc(free_op1);
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CASE_SPEC_TMPVAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -42322,8 +41658,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CASE_SPEC_TMPVAR_CONST_HANDLER
        compare_function(result, op1, op2);
        ZVAL_BOOL(result, Z_LVAL_P(result) == 0);
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_VAR_SPEC_TMPVAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -42352,8 +41687,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_VAR_SPEC_TMPVAR_CONST_HA
                } else {
                        ZVAL_UNDEF(var);
                }
-               CHECK_EXCEPTION();
-               ZEND_VM_NEXT_OPCODE();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        }
 
        varname = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1);
@@ -42404,8 +41738,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_VAR_SPEC_TMPVAR_CONST_HA
                zend_string_release(Z_STR(tmp));
        }
        zval_ptr_dtor_nogc(free_op1);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_VAR_SPEC_TMPVAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -42465,8 +41798,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_VAR_SPEC_TMPVAR_
                                } else {
                                        ce = zend_fetch_class_by_name(Z_STR_P(EX_CONSTANT(opline->op2)), EX_CONSTANT(opline->op2) + 1, ZEND_FETCH_CLASS_DEFAULT | ZEND_FETCH_CLASS_EXCEPTION);
                                        if (UNEXPECTED(ce == NULL)) {
-                                               CHECK_EXCEPTION();
-                                               ZEND_VM_NEXT_OPCODE();
+                                               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
                                        }
                                        CACHE_PTR(Z_CACHE_SLOT_P(EX_CONSTANT(opline->op2)), ce);
                                }
@@ -42509,8 +41841,7 @@ is_var_return:
 
                ZEND_VM_SMART_BRANCH(result, 1);
                ZVAL_BOOL(EX_VAR(opline->result.var), result);
-               CHECK_EXCEPTION();
-               ZEND_VM_NEXT_OPCODE();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        }
 }
 
@@ -42648,8 +41979,7 @@ isset_dim_obj_exit:
        zval_ptr_dtor_nogc(free_op1);
        ZEND_VM_SMART_BRANCH(result, 1);
        ZVAL_BOOL(EX_VAR(opline->result.var), result);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_TMPVAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -42695,8 +42025,7 @@ isset_no_object:
        zval_ptr_dtor_nogc(free_op1);
        ZEND_VM_SMART_BRANCH(result, 1);
        ZVAL_BOOL(EX_VAR(opline->result.var), result);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INSTANCEOF_SPEC_TMPVAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -42721,8 +42050,7 @@ try_instanceof:
                                if (UNEXPECTED(ce == NULL)) {
                                        ZVAL_FALSE(EX_VAR(opline->result.var));
                                        zval_ptr_dtor_nogc(free_op1);
-                                       CHECK_EXCEPTION();
-                                       ZEND_VM_NEXT_OPCODE();
+                                       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
                                }
                                CACHE_PTR(Z_CACHE_SLOT_P(EX_CONSTANT(opline->op2)), ce);
                        }
@@ -42742,8 +42070,7 @@ try_instanceof:
        zval_ptr_dtor_nogc(free_op1);
        ZEND_VM_SMART_BRANCH(result, 1);
        ZVAL_BOOL(EX_VAR(opline->result.var), result);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_POW_SPEC_TMPVAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -42758,8 +42085,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_POW_SPEC_TMPVAR_CONST_HANDLER(
        pow_function(EX_VAR(opline->result.var), op1, op2);
        zval_ptr_dtor_nogc(free_op1);
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_TMPVAR_VAR(int type ZEND_OPCODE_HANDLER_ARGS_DC)
@@ -42812,8 +42138,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_
                                                zend_string_release(name);
                                        }
                                        zval_ptr_dtor_nogc(free_op1);
-                                       CHECK_EXCEPTION();
-                                       ZEND_VM_NEXT_OPCODE();
+                                       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
                                }
                                CACHE_PTR(Z_CACHE_SLOT_P(EX_CONSTANT(opline->op2)), ce);
                        }
@@ -42910,8 +42235,7 @@ fetch_var_return:
        } else {
                ZVAL_INDIRECT(EX_VAR(opline->result.var), retval);
        }
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_R_SPEC_TMPVAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -42976,8 +42300,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_VAR_SPEC_TMPVAR_VAR_HAND
                } else {
                        ZVAL_UNDEF(var);
                }
-               CHECK_EXCEPTION();
-               ZEND_VM_NEXT_OPCODE();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        }
 
        varname = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1);
@@ -43028,8 +42351,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_VAR_SPEC_TMPVAR_VAR_HAND
                zend_string_release(Z_STR(tmp));
        }
        zval_ptr_dtor_nogc(free_op1);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_VAR_SPEC_TMPVAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -43089,8 +42411,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_VAR_SPEC_TMPVAR_
                                } else {
                                        ce = zend_fetch_class_by_name(Z_STR_P(EX_CONSTANT(opline->op2)), EX_CONSTANT(opline->op2) + 1, ZEND_FETCH_CLASS_DEFAULT | ZEND_FETCH_CLASS_EXCEPTION);
                                        if (UNEXPECTED(ce == NULL)) {
-                                               CHECK_EXCEPTION();
-                                               ZEND_VM_NEXT_OPCODE();
+                                               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
                                        }
                                        CACHE_PTR(Z_CACHE_SLOT_P(EX_CONSTANT(opline->op2)), ce);
                                }
@@ -43133,8 +42454,7 @@ is_var_return:
 
                ZEND_VM_SMART_BRANCH(result, 1);
                ZVAL_BOOL(EX_VAR(opline->result.var), result);
-               CHECK_EXCEPTION();
-               ZEND_VM_NEXT_OPCODE();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        }
 }
 
@@ -43160,8 +42480,7 @@ try_instanceof:
                                if (UNEXPECTED(ce == NULL)) {
                                        ZVAL_FALSE(EX_VAR(opline->result.var));
                                        zval_ptr_dtor_nogc(free_op1);
-                                       CHECK_EXCEPTION();
-                                       ZEND_VM_NEXT_OPCODE();
+                                       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
                                }
                                CACHE_PTR(Z_CACHE_SLOT_P(EX_CONSTANT(opline->op2)), ce);
                        }
@@ -43181,8 +42500,7 @@ try_instanceof:
        zval_ptr_dtor_nogc(free_op1);
        ZEND_VM_SMART_BRANCH(result, 1);
        ZVAL_BOOL(EX_VAR(opline->result.var), result);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_TMPVAR_UNUSED(int type ZEND_OPCODE_HANDLER_ARGS_DC)
@@ -43235,8 +42553,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_
                                                zend_string_release(name);
                                        }
                                        zval_ptr_dtor_nogc(free_op1);
-                                       CHECK_EXCEPTION();
-                                       ZEND_VM_NEXT_OPCODE();
+                                       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
                                }
                                CACHE_PTR(Z_CACHE_SLOT_P(EX_CONSTANT(opline->op2)), ce);
                        }
@@ -43333,8 +42650,7 @@ fetch_var_return:
        } else {
                ZVAL_INDIRECT(EX_VAR(opline->result.var), retval);
        }
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_R_SPEC_TMPVAR_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -43399,8 +42715,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_VAR_SPEC_TMPVAR_UNUSED_H
                } else {
                        ZVAL_UNDEF(var);
                }
-               CHECK_EXCEPTION();
-               ZEND_VM_NEXT_OPCODE();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        }
 
        varname = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1);
@@ -43451,8 +42766,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_VAR_SPEC_TMPVAR_UNUSED_H
                zend_string_release(Z_STR(tmp));
        }
        zval_ptr_dtor_nogc(free_op1);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_VAR_SPEC_TMPVAR_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -43512,8 +42826,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_VAR_SPEC_TMPVAR_
                                } else {
                                        ce = zend_fetch_class_by_name(Z_STR_P(EX_CONSTANT(opline->op2)), EX_CONSTANT(opline->op2) + 1, ZEND_FETCH_CLASS_DEFAULT | ZEND_FETCH_CLASS_EXCEPTION);
                                        if (UNEXPECTED(ce == NULL)) {
-                                               CHECK_EXCEPTION();
-                                               ZEND_VM_NEXT_OPCODE();
+                                               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
                                        }
                                        CACHE_PTR(Z_CACHE_SLOT_P(EX_CONSTANT(opline->op2)), ce);
                                }
@@ -43556,8 +42869,7 @@ is_var_return:
 
                ZEND_VM_SMART_BRANCH(result, 1);
                ZVAL_BOOL(EX_VAR(opline->result.var), result);
-               CHECK_EXCEPTION();
-               ZEND_VM_NEXT_OPCODE();
+               ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
        }
 }
 
@@ -43601,8 +42913,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ADD_SPEC_TMPVAR_CV_HANDLER(ZEN
        add_function(EX_VAR(opline->result.var), op1, op2);
        zval_ptr_dtor_nogc(free_op1);
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SUB_SPEC_TMPVAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -43645,8 +42956,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SUB_SPEC_TMPVAR_CV_HANDLER(ZEN
        sub_function(EX_VAR(opline->result.var), op1, op2);
        zval_ptr_dtor_nogc(free_op1);
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_MUL_SPEC_TMPVAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -43692,8 +43002,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_MUL_SPEC_TMPVAR_CV_HANDLER(ZEN
        mul_function(EX_VAR(opline->result.var), op1, op2);
        zval_ptr_dtor_nogc(free_op1);
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_DIV_SPEC_TMPVAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -43708,8 +43017,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_DIV_SPEC_TMPVAR_CV_HANDLER(ZEN
        fast_div_function(EX_VAR(opline->result.var), op1, op2);
        zval_ptr_dtor_nogc(free_op1);
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_MOD_SPEC_TMPVAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -43747,8 +43055,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_MOD_SPEC_TMPVAR_CV_HANDLER(ZEN
        mod_function(EX_VAR(opline->result.var), op1, op2);
        zval_ptr_dtor_nogc(free_op1);
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SL_SPEC_TMPVAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -43763,8 +43070,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SL_SPEC_TMPVAR_CV_HANDLER(ZEND
        shift_left_function(EX_VAR(opline->result.var), op1, op2);
        zval_ptr_dtor_nogc(free_op1);
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SR_SPEC_TMPVAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -43779,8 +43085,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SR_SPEC_TMPVAR_CV_HANDLER(ZEND
        shift_right_function(EX_VAR(opline->result.var), op1, op2);
        zval_ptr_dtor_nogc(free_op1);
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CONCAT_SPEC_TMPVAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -43840,8 +43145,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CONCAT_SPEC_TMPVAR_CV_HANDLER(
                zval_ptr_dtor_nogc(free_op1);
        } while (0);
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_EQUAL_SPEC_TMPVAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -43909,8 +43213,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_EQUAL_SPEC_TMPVAR_CV_HANDLE
        ZVAL_BOOL(result, Z_LVAL_P(result) == 0);
        zval_ptr_dtor_nogc(free_op1);
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_NOT_EQUAL_SPEC_TMPVAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -43978,8 +43281,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_NOT_EQUAL_SPEC_TMPVAR_CV_HA
        ZVAL_BOOL(result, Z_LVAL_P(result) != 0);
        zval_ptr_dtor_nogc(free_op1);
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_SPEC_TMPVAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -44029,8 +43331,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_SPEC_TMPVAR_CV_HAND
        ZVAL_BOOL(result, Z_LVAL_P(result) < 0);
        zval_ptr_dtor_nogc(free_op1);
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -44080,8 +43381,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVA
        ZVAL_BOOL(result, Z_LVAL_P(result) <= 0);
        zval_ptr_dtor_nogc(free_op1);
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SPACESHIP_SPEC_TMPVAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -44096,8 +43396,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SPACESHIP_SPEC_TMPVAR_CV_HANDL
        compare_function(EX_VAR(opline->result.var), op1, op2);
        zval_ptr_dtor_nogc(free_op1);
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BW_OR_SPEC_TMPVAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -44112,8 +43411,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BW_OR_SPEC_TMPVAR_CV_HANDLER(Z
        bitwise_or_function(EX_VAR(opline->result.var), op1, op2);
        zval_ptr_dtor_nogc(free_op1);
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BW_AND_SPEC_TMPVAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -44128,8 +43426,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BW_AND_SPEC_TMPVAR_CV_HANDLER(
        bitwise_and_function(EX_VAR(opline->result.var), op1, op2);
        zval_ptr_dtor_nogc(free_op1);
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BW_XOR_SPEC_TMPVAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -44144,8 +43441,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BW_XOR_SPEC_TMPVAR_CV_HANDLER(
        bitwise_xor_function(EX_VAR(opline->result.var), op1, op2);
        zval_ptr_dtor_nogc(free_op1);
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BOOL_XOR_SPEC_TMPVAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -44160,8 +43456,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BOOL_XOR_SPEC_TMPVAR_CV_HANDLE
        boolean_xor_function(EX_VAR(opline->result.var), op1, op2);
        zval_ptr_dtor_nogc(free_op1);
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_R_SPEC_TMPVAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -44175,8 +43470,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_R_SPEC_TMPVAR_CV_HAN
        zend_fetch_dimension_address_read_R(EX_VAR(opline->result.var), container, _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var), IS_CV);
 
        zval_ptr_dtor_nogc(free_op1);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_IS_SPEC_TMPVAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -44190,8 +43484,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_IS_SPEC_TMPVAR_CV_HA
        zend_fetch_dimension_address_read_IS(EX_VAR(opline->result.var), container, _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var), IS_CV);
 
        zval_ptr_dtor_nogc(free_op1);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_TMPVAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -44263,8 +43556,7 @@ fetch_obj_is_no_object:
        } while (0);
 
        zval_ptr_dtor_nogc(free_op1);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FAST_CONCAT_SPEC_TMPVAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -44331,8 +43623,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FAST_CONCAT_SPEC_TMPVAR_CV_HAN
        } while (0);
        zval_ptr_dtor_nogc(free_op1);
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_TMPVAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -44452,8 +43743,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_TMPVAR_C
 
        zval_ptr_dtor_nogc(free_op1);
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CASE_SPEC_TMPVAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -44519,8 +43809,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CASE_SPEC_TMPVAR_CV_HANDLER(ZE
        compare_function(result, op1, op2);
        ZVAL_BOOL(result, Z_LVAL_P(result) == 0);
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_TMPVAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -44657,8 +43946,7 @@ isset_dim_obj_exit:
        zval_ptr_dtor_nogc(free_op1);
        ZEND_VM_SMART_BRANCH(result, 1);
        ZVAL_BOOL(EX_VAR(opline->result.var), result);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_TMPVAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -44704,8 +43992,7 @@ isset_no_object:
        zval_ptr_dtor_nogc(free_op1);
        ZEND_VM_SMART_BRANCH(result, 1);
        ZVAL_BOOL(EX_VAR(opline->result.var), result);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_POW_SPEC_TMPVAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -44720,8 +44007,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_POW_SPEC_TMPVAR_CV_HANDLER(ZEN
        pow_function(EX_VAR(opline->result.var), op1, op2);
        zval_ptr_dtor_nogc(free_op1);
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ADD_SPEC_TMPVAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -44764,8 +44050,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ADD_SPEC_TMPVAR_TMPVAR_HANDLER
        add_function(EX_VAR(opline->result.var), op1, op2);
        zval_ptr_dtor_nogc(free_op1);
        zval_ptr_dtor_nogc(free_op2);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SUB_SPEC_TMPVAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -44808,8 +44093,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SUB_SPEC_TMPVAR_TMPVAR_HANDLER
        sub_function(EX_VAR(opline->result.var), op1, op2);
        zval_ptr_dtor_nogc(free_op1);
        zval_ptr_dtor_nogc(free_op2);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_MUL_SPEC_TMPVAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -44855,8 +44139,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_MUL_SPEC_TMPVAR_TMPVAR_HANDLER
        mul_function(EX_VAR(opline->result.var), op1, op2);
        zval_ptr_dtor_nogc(free_op1);
        zval_ptr_dtor_nogc(free_op2);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_DIV_SPEC_TMPVAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -44871,8 +44154,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_DIV_SPEC_TMPVAR_TMPVAR_HANDLER
        fast_div_function(EX_VAR(opline->result.var), op1, op2);
        zval_ptr_dtor_nogc(free_op1);
        zval_ptr_dtor_nogc(free_op2);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_MOD_SPEC_TMPVAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -44910,8 +44192,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_MOD_SPEC_TMPVAR_TMPVAR_HANDLER
        mod_function(EX_VAR(opline->result.var), op1, op2);
        zval_ptr_dtor_nogc(free_op1);
        zval_ptr_dtor_nogc(free_op2);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SL_SPEC_TMPVAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -44926,8 +44207,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SL_SPEC_TMPVAR_TMPVAR_HANDLER(
        shift_left_function(EX_VAR(opline->result.var), op1, op2);
        zval_ptr_dtor_nogc(free_op1);
        zval_ptr_dtor_nogc(free_op2);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SR_SPEC_TMPVAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -44942,8 +44222,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SR_SPEC_TMPVAR_TMPVAR_HANDLER(
        shift_right_function(EX_VAR(opline->result.var), op1, op2);
        zval_ptr_dtor_nogc(free_op1);
        zval_ptr_dtor_nogc(free_op2);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CONCAT_SPEC_TMPVAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -45003,8 +44282,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CONCAT_SPEC_TMPVAR_TMPVAR_HAND
                zval_ptr_dtor_nogc(free_op1);
        } while (0);
        zval_ptr_dtor_nogc(free_op2);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_EQUAL_SPEC_TMPVAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -45072,8 +44350,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_EQUAL_SPEC_TMPVAR_TMPVAR_HA
        ZVAL_BOOL(result, Z_LVAL_P(result) == 0);
        zval_ptr_dtor_nogc(free_op1);
        zval_ptr_dtor_nogc(free_op2);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_NOT_EQUAL_SPEC_TMPVAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -45141,8 +44418,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_NOT_EQUAL_SPEC_TMPVAR_TMPVA
        ZVAL_BOOL(result, Z_LVAL_P(result) != 0);
        zval_ptr_dtor_nogc(free_op1);
        zval_ptr_dtor_nogc(free_op2);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_SPEC_TMPVAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -45192,8 +44468,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_SPEC_TMPVAR_TMPVAR_
        ZVAL_BOOL(result, Z_LVAL_P(result) < 0);
        zval_ptr_dtor_nogc(free_op1);
        zval_ptr_dtor_nogc(free_op2);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -45243,8 +44518,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVA
        ZVAL_BOOL(result, Z_LVAL_P(result) <= 0);
        zval_ptr_dtor_nogc(free_op1);
        zval_ptr_dtor_nogc(free_op2);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SPACESHIP_SPEC_TMPVAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -45259,8 +44533,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SPACESHIP_SPEC_TMPVAR_TMPVAR_H
        compare_function(EX_VAR(opline->result.var), op1, op2);
        zval_ptr_dtor_nogc(free_op1);
        zval_ptr_dtor_nogc(free_op2);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BW_OR_SPEC_TMPVAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -45275,8 +44548,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BW_OR_SPEC_TMPVAR_TMPVAR_HANDL
        bitwise_or_function(EX_VAR(opline->result.var), op1, op2);
        zval_ptr_dtor_nogc(free_op1);
        zval_ptr_dtor_nogc(free_op2);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BW_AND_SPEC_TMPVAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -45291,8 +44563,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BW_AND_SPEC_TMPVAR_TMPVAR_HAND
        bitwise_and_function(EX_VAR(opline->result.var), op1, op2);
        zval_ptr_dtor_nogc(free_op1);
        zval_ptr_dtor_nogc(free_op2);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BW_XOR_SPEC_TMPVAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -45307,8 +44578,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BW_XOR_SPEC_TMPVAR_TMPVAR_HAND
        bitwise_xor_function(EX_VAR(opline->result.var), op1, op2);
        zval_ptr_dtor_nogc(free_op1);
        zval_ptr_dtor_nogc(free_op2);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BOOL_XOR_SPEC_TMPVAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -45323,8 +44593,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BOOL_XOR_SPEC_TMPVAR_TMPVAR_HA
        boolean_xor_function(EX_VAR(opline->result.var), op1, op2);
        zval_ptr_dtor_nogc(free_op1);
        zval_ptr_dtor_nogc(free_op2);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_R_SPEC_TMPVAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -45338,8 +44607,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_R_SPEC_TMPVAR_TMPVAR
        zend_fetch_dimension_address_read_R(EX_VAR(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2), (IS_TMP_VAR|IS_VAR));
        zval_ptr_dtor_nogc(free_op2);
        zval_ptr_dtor_nogc(free_op1);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_IS_SPEC_TMPVAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -45353,8 +44621,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_IS_SPEC_TMPVAR_TMPVA
        zend_fetch_dimension_address_read_IS(EX_VAR(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2), (IS_TMP_VAR|IS_VAR));
        zval_ptr_dtor_nogc(free_op2);
        zval_ptr_dtor_nogc(free_op1);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_TMPVAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -45427,8 +44694,7 @@ fetch_obj_is_no_object:
 
        zval_ptr_dtor_nogc(free_op2);
        zval_ptr_dtor_nogc(free_op1);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FAST_CONCAT_SPEC_TMPVAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -45495,8 +44761,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FAST_CONCAT_SPEC_TMPVAR_TMPVAR
        } while (0);
        zval_ptr_dtor_nogc(free_op1);
        zval_ptr_dtor_nogc(free_op2);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_TMPVAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -45617,8 +44882,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_TMPVAR_T
        zval_ptr_dtor_nogc(free_op2);
        zval_ptr_dtor_nogc(free_op1);
 
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CASE_SPEC_TMPVAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -45684,8 +44948,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CASE_SPEC_TMPVAR_TMPVAR_HANDLE
        compare_function(result, op1, op2);
        ZVAL_BOOL(result, Z_LVAL_P(result) == 0);
        zval_ptr_dtor_nogc(free_op2);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_TMPVAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -45822,8 +45085,7 @@ isset_dim_obj_exit:
        zval_ptr_dtor_nogc(free_op1);
        ZEND_VM_SMART_BRANCH(result, 1);
        ZVAL_BOOL(EX_VAR(opline->result.var), result);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_TMPVAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -45870,8 +45132,7 @@ isset_no_object:
        zval_ptr_dtor_nogc(free_op1);
        ZEND_VM_SMART_BRANCH(result, 1);
        ZVAL_BOOL(EX_VAR(opline->result.var), result);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_POW_SPEC_TMPVAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -45886,12 +45147,13 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_POW_SPEC_TMPVAR_TMPVAR_HANDLER
        pow_function(EX_VAR(opline->result.var), op1, op2);
        zval_ptr_dtor_nogc(free_op1);
        zval_ptr_dtor_nogc(free_op2);
-       CHECK_EXCEPTION();
-       ZEND_VM_NEXT_OPCODE();
+       ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_NULL_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
 {
+       USE_OPLINE
+
        zend_error_noreturn(E_ERROR, "Invalid opcode %d/%d/%d.", OPLINE->opcode, OPLINE->op1_type, OPLINE->op2_type);
        ZEND_VM_NEXT_OPCODE(); /* Never reached */
 }
@@ -48570,11 +47832,11 @@ void zend_init_opcodes_handlers(void)
        ZEND_NULL_HANDLER,
        ZEND_NULL_HANDLER,
        ZEND_NULL_HANDLER,
-       ZEND_SEND_VAR_NO_REF_SPEC_CV_HANDLER,
-       ZEND_SEND_VAR_NO_REF_SPEC_CV_HANDLER,
-       ZEND_SEND_VAR_NO_REF_SPEC_CV_HANDLER,
-       ZEND_SEND_VAR_NO_REF_SPEC_CV_HANDLER,
-       ZEND_SEND_VAR_NO_REF_SPEC_CV_HANDLER,
+       ZEND_NULL_HANDLER,
+       ZEND_NULL_HANDLER,
+       ZEND_NULL_HANDLER,
+       ZEND_NULL_HANDLER,
+       ZEND_NULL_HANDLER,
        ZEND_NULL_HANDLER,
        ZEND_NULL_HANDLER,
        ZEND_NULL_HANDLER,
index ff181ce1e7608ed63d5b3585a4f777f3b5f02acb..250b2467e0db8266935b9085005a8727b24dd10a 100644 (file)
@@ -921,6 +921,8 @@ function gen_null_handler($f) {
                $done = 1;
                out($f,"static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_NULL_HANDLER(ZEND_OPCODE_HANDLER_ARGS)\n");
                out($f,"{\n");
+               out($f,"\tUSE_OPLINE\n");
+               out($f,"\n");
                out($f,"\tzend_error_noreturn(E_ERROR, \"Invalid opcode %d/%d/%d.\", OPLINE->opcode, OPLINE->op1_type, OPLINE->op2_type);\n");
                out($f,"\tZEND_VM_NEXT_OPCODE(); /* Never reached */\n");
                out($f,"}\n\n");
@@ -1030,11 +1032,11 @@ function gen_executor($f, $skl, $spec, $kind, $executor_name, $initializer_name)
                                                case ZEND_VM_KIND_CALL:
                                                        out($f,"\n");
                                                        out($f,"#ifdef ZEND_VM_FP_GLOBAL_REG\n");
-                                                       out($f,"register zend_execute_data *execute_data __asm__(ZEND_VM_FP_GLOBAL_REG);\n");
+                                                       out($f,"register zend_execute_data* volatile execute_data __asm__(ZEND_VM_FP_GLOBAL_REG);\n");
                                                        out($f,"#endif\n");
                                                        out($f,"\n");
                                                        out($f,"#ifdef ZEND_VM_IP_GLOBAL_REG\n");
-                                                       out($f,"register const zend_op *opline __asm__(ZEND_VM_IP_GLOBAL_REG);\n");
+                                                       out($f,"register const zend_op* volatile opline __asm__(ZEND_VM_IP_GLOBAL_REG);\n");
                                                        out($f,"#endif\n");
                                                        out($f,"\n");
                                                        out($f,"#ifdef ZEND_VM_FP_GLOBAL_REG\n");
@@ -1067,23 +1069,24 @@ function gen_executor($f, $skl, $spec, $kind, $executor_name, $initializer_name)
                                                        out($f,"#undef DCL_OPLINE\n");
                                                        out($f,"#undef USE_OPLINE\n");
                                                        out($f,"#undef LOAD_OPLINE\n");
+                                                       out($f,"#undef LOAD_OPLINE_EX\n");
                                                        out($f,"#undef SAVE_OPLINE\n");
                                                        out($f,"#define DCL_OPLINE\n");
                                                        out($f,"#ifdef ZEND_VM_IP_GLOBAL_REG\n");
                                                        out($f,"# define OPLINE opline\n");
                                                        out($f,"# define USE_OPLINE\n");
                                                        out($f,"# define LOAD_OPLINE() opline = EX(opline)\n");
+                                                       out($f,"# define LOAD_NEXT_OPLINE() opline = EX(opline) + 1\n");
                                                        out($f,"# define SAVE_OPLINE() EX(opline) = opline\n");
                                                        out($f,"#else\n");
                                                        out($f,"# define OPLINE EX(opline)\n");
                                                        out($f,"# define USE_OPLINE const zend_op *opline = EX(opline);\n");
                                                        out($f,"# define LOAD_OPLINE()\n");
+                                                       out($f,"# define LOAD_NEXT_OPLINE() ZEND_VM_INC_OPCODE()\n");
                                                        out($f,"# define SAVE_OPLINE()\n");
                                                        out($f,"#endif\n");
-                                                       out($f,"#undef CHECK_EXCEPTION\n");
                                                        out($f,"#undef HANDLE_EXCEPTION\n");
                                                        out($f,"#undef HANDLE_EXCEPTION_LEAVE\n");
-                                                       out($f,"#define CHECK_EXCEPTION() LOAD_OPLINE()\n");
                                                        out($f,"#define HANDLE_EXCEPTION() LOAD_OPLINE(); ZEND_VM_CONTINUE()\n");
                                                        out($f,"#define HANDLE_EXCEPTION_LEAVE() LOAD_OPLINE(); ZEND_VM_LEAVE()\n");
                                                        out($f,"#if defined(ZEND_VM_FP_GLOBAL_REG)\n");
@@ -1105,16 +1108,16 @@ function gen_executor($f, $skl, $spec, $kind, $executor_name, $initializer_name)
                                                        out($f,"#undef DCL_OPLINE\n");
                                                        out($f,"#undef USE_OPLINE\n");
                                                        out($f,"#undef LOAD_OPLINE\n");
+                                                       out($f,"#undef LOAD_NEXT_OPLINE\n");
                                                        out($f,"#undef SAVE_OPLINE\n");
                                                        out($f,"#define OPLINE opline\n");
                                                        out($f,"#define DCL_OPLINE const zend_op *opline;\n");
                                                        out($f,"#define USE_OPLINE\n");
                                                        out($f,"#define LOAD_OPLINE() opline = EX(opline)\n");
+                                                       out($f,"#define LOAD_NEXT_OPLINE() opline = EX(opline) + 1\n");
                                                        out($f,"#define SAVE_OPLINE() EX(opline) = opline\n");
-                                                       out($f,"#undef CHECK_EXCEPTION\n");
                                                        out($f,"#undef HANDLE_EXCEPTION\n");
                                                        out($f,"#undef HANDLE_EXCEPTION_LEAVE\n");
-                                                       out($f,"#define CHECK_EXCEPTION() LOAD_OPLINE()\n");
                                                        out($f,"#define HANDLE_EXCEPTION() LOAD_OPLINE(); ZEND_VM_CONTINUE()\n");
                                                        out($f,"#define HANDLE_EXCEPTION_LEAVE() LOAD_OPLINE(); ZEND_VM_LEAVE()\n");
                                                        out($f,"#define ZEND_VM_CONTINUE() goto zend_vm_continue\n");
@@ -1130,21 +1133,20 @@ function gen_executor($f, $skl, $spec, $kind, $executor_name, $initializer_name)
                                                        out($f,"#undef DCL_OPLINE\n");
                                                        out($f,"#undef USE_OPLINE\n");
                                                        out($f,"#undef LOAD_OPLINE\n");
+                                                       out($f,"#undef LOAD_NEXT_OPLINE()\n");
                                                        out($f,"#undef SAVE_OPLINE\n");
                                                        out($f,"#define OPLINE opline\n");
                                                        out($f,"#define DCL_OPLINE const zend_op *opline;\n");
                                                        out($f,"#define USE_OPLINE\n");
                                                        out($f,"#define LOAD_OPLINE() opline = EX(opline)\n");
+                                                       out($f,"#define LOAD_NEXT_OPLINE() opline = EX(opline) + 1\n");
                                                        out($f,"#define SAVE_OPLINE() EX(opline) = opline\n");
-                                                       out($f,"#undef CHECK_EXCEPTION\n");
                                                        out($f,"#undef HANDLE_EXCEPTION\n");
                                                        out($f,"#undef HANDLE_EXCEPTION_LEAVE\n");
                                                        if (ZEND_VM_SPEC) {
-                                                               out($f,"#define CHECK_EXCEPTION() if (UNEXPECTED(EG(exception) != NULL)) goto ZEND_HANDLE_EXCEPTION_SPEC_HANDLER\n");
                                                                out($f,"#define HANDLE_EXCEPTION() goto ZEND_HANDLE_EXCEPTION_SPEC_HANDLER\n");
                                                                out($f,"#define HANDLE_EXCEPTION_LEAVE() goto ZEND_HANDLE_EXCEPTION_SPEC_HANDLER\n");
                                                        } else {
-                                                               out($f,"#define CHECK_EXCEPTION() if (UNEXPECTED(EG(exception) != NULL)) goto ZEND_HANDLE_EXCEPTION_HANDLER\n");
                                                                out($f,"#define HANDLE_EXCEPTION() goto ZEND_HANDLE_EXCEPTION_HANDLER\n");
                                                                out($f,"#define HANDLE_EXCEPTION_LEAVE() goto ZEND_HANDLE_EXCEPTION_HANDLER\n");
                                                        }
@@ -1632,16 +1634,16 @@ function gen_vm($def, $skel) {
                out($f,"#undef DCL_OPLINE\n");
                out($f,"#undef USE_OPLINE\n");
                out($f,"#undef LOAD_OPLINE\n");
+               out($f,"#undef LOAD_NEXT_OPLINE()\n");
                out($f,"#undef SAVE_OPLINE\n");
                out($f,"#define OPLINE EX(opline)\n");
                out($f,"#define DCL_OPLINE\n");
                out($f,"#define USE_OPLINE const zend_op *opline = EX(opline);\n");
                out($f,"#define LOAD_OPLINE()\n");
+               out($f,"#define LOAD_NEXT_OPLINE() ZEND_VM_INC_OPCODE()\n");
                out($f,"#define SAVE_OPLINE()\n");
-               out($f,"#undef CHECK_EXCEPTION\n");
                out($f,"#undef HANDLE_EXCEPTION\n");
                out($f,"#undef HANDLE_EXCEPTION_LEAVE\n");
-               out($f,"#define CHECK_EXCEPTION() LOAD_OPLINE()\n");
                out($f,"#define HANDLE_EXCEPTION() LOAD_OPLINE(); ZEND_VM_CONTINUE()\n");
                out($f,"#define HANDLE_EXCEPTION_LEAVE() LOAD_OPLINE(); ZEND_VM_LEAVE()\n");
                out($f,"#undef ZEND_VM_CONTINUE\n");