]> granicus.if.org Git - php/commitdiff
Avoid redundand mask extraction
authorDmitry Stogov <dmitry@zend.com>
Wed, 31 Jan 2018 10:34:34 +0000 (13:34 +0300)
committerDmitry Stogov <dmitry@zend.com>
Wed, 31 Jan 2018 10:34:34 +0000 (13:34 +0300)
Zend/zend_execute.c
Zend/zend_vm_def.h
Zend/zend_vm_execute.h

index 50d518cefccb05171fa6b8d597ba9056c74db594..146f620c10ff1bcba8ce795618a1eef1a5d842df 100644 (file)
@@ -2368,14 +2368,12 @@ ZEND_API void zend_init_execute_data(zend_execute_data *execute_data, zend_op_ar
 }
 /* }}} */
 
-static zend_always_inline zend_bool zend_is_by_ref_func_arg_fetch(const zend_op *opline, zend_execute_data *call) /* {{{ */
+static zend_always_inline zend_bool zend_is_by_ref_func_arg_fetch(uint32_t arg_num, zend_function *func) /* {{{ */
 {
-       uint32_t arg_num = opline->extended_value & ZEND_FETCH_ARG_MASK;
-
        if (EXPECTED(arg_num <= MAX_ARG_FLAG_NUM)) {
-               return QUICK_ARG_SHOULD_BE_SENT_BY_REF(call->func, arg_num);
+               return QUICK_ARG_SHOULD_BE_SENT_BY_REF(func, arg_num);
        }
-       return ARG_SHOULD_BE_SENT_BY_REF(call->func, arg_num);
+       return ARG_SHOULD_BE_SENT_BY_REF(func, arg_num);
 }
 /* }}} */
 
index 596d0448d8133812b14b34df7794d316e8d12977..0d4781b3e67e5397c7585c5e7f7bfe3d3738383b 100644 (file)
@@ -1486,7 +1486,7 @@ ZEND_VM_HANDLER(92, ZEND_FETCH_FUNC_ARG, CONST|TMPVAR|CV, UNUSED, VAR_FETCH|ARG_
 {
        USE_OPLINE
 
-       if (zend_is_by_ref_func_arg_fetch(opline, EX(call))) {
+       if (zend_is_by_ref_func_arg_fetch(opline->extended_value & ZEND_FETCH_ARG_MASK, EX(call)->func)) {
                ZEND_VM_DISPATCH_TO_HELPER(zend_fetch_var_address_helper, type, BP_VAR_W);
        } else {
                ZEND_VM_DISPATCH_TO_HELPER(zend_fetch_var_address_helper, type, BP_VAR_R);
@@ -1555,7 +1555,7 @@ ZEND_VM_HANDLER(177, ZEND_FETCH_STATIC_PROP_FUNC_ARG, CONST|TMPVAR|CV, UNUSED|CL
 {
        USE_OPLINE
 
-       if (zend_is_by_ref_func_arg_fetch(opline, EX(call))) {
+       if (zend_is_by_ref_func_arg_fetch(opline->extended_value, EX(call)->func)) {
                ZEND_VM_DISPATCH_TO_HELPER(zend_fetch_static_prop_helper, type, BP_VAR_W);
        } else {
                ZEND_VM_DISPATCH_TO_HELPER(zend_fetch_static_prop_helper, type, BP_VAR_R);
@@ -1660,7 +1660,7 @@ ZEND_VM_HANDLER(93, ZEND_FETCH_DIM_FUNC_ARG, CONST|TMP|VAR|CV, CONST|TMPVAR|UNUS
 {
        USE_OPLINE
 
-       if (zend_is_by_ref_func_arg_fetch(opline, EX(call))) {
+       if (zend_is_by_ref_func_arg_fetch(opline->extended_value, EX(call)->func)) {
         if ((OP1_TYPE & (IS_CONST|IS_TMP_VAR))) {
                        SAVE_OPLINE();
             zend_throw_error(NULL, "Cannot use temporary expression in write context");
@@ -1947,7 +1947,7 @@ ZEND_VM_HANDLER(94, ZEND_FETCH_OBJ_FUNC_ARG, CONST|TMP|VAR|UNUSED|THIS|CV, CONST
 {
        USE_OPLINE
 
-       if (zend_is_by_ref_func_arg_fetch(opline, EX(call))) {
+       if (zend_is_by_ref_func_arg_fetch(opline->extended_value, EX(call)->func)) {
                /* Behave like FETCH_OBJ_W */
                if ((OP1_TYPE & (IS_CONST|IS_TMP_VAR))) {
                        SAVE_OPLINE();
index 71b496d643b40b75e63316753bbd80164837dd57..5d73c9bd9cf47ea33c691e437bf1152e1e437471 100644 (file)
@@ -4844,7 +4844,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_STATIC_PROP_FUNC_ARG_SPE
 {
        USE_OPLINE
 
-       if (zend_is_by_ref_func_arg_fetch(opline, EX(call))) {
+       if (zend_is_by_ref_func_arg_fetch(opline->extended_value, EX(call)->func)) {
                ZEND_VM_TAIL_CALL(zend_fetch_static_prop_helper_SPEC_CONST_CONST(BP_VAR_W ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC));
        } else {
                ZEND_VM_TAIL_CALL(zend_fetch_static_prop_helper_SPEC_CONST_CONST(BP_VAR_R ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC));
@@ -4915,7 +4915,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_CONST_
 {
        USE_OPLINE
 
-       if (zend_is_by_ref_func_arg_fetch(opline, EX(call))) {
+       if (zend_is_by_ref_func_arg_fetch(opline->extended_value, EX(call)->func)) {
         if ((IS_CONST & (IS_CONST|IS_TMP_VAR))) {
                        SAVE_OPLINE();
             zend_throw_error(NULL, "Cannot use temporary expression in write context");
@@ -5138,7 +5138,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_CONST_
 {
        USE_OPLINE
 
-       if (zend_is_by_ref_func_arg_fetch(opline, EX(call))) {
+       if (zend_is_by_ref_func_arg_fetch(opline->extended_value, EX(call)->func)) {
                /* Behave like FETCH_OBJ_W */
                if ((IS_CONST & (IS_CONST|IS_TMP_VAR))) {
                        SAVE_OPLINE();
@@ -7122,7 +7122,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_CONST_
 {
        USE_OPLINE
 
-       if (zend_is_by_ref_func_arg_fetch(opline, EX(call))) {
+       if (zend_is_by_ref_func_arg_fetch(opline->extended_value, EX(call)->func)) {
         if ((IS_CONST & (IS_CONST|IS_TMP_VAR))) {
                        SAVE_OPLINE();
             zend_throw_error(NULL, "Cannot use temporary expression in write context");
@@ -7347,7 +7347,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_CONST_
 {
        USE_OPLINE
 
-       if (zend_is_by_ref_func_arg_fetch(opline, EX(call))) {
+       if (zend_is_by_ref_func_arg_fetch(opline->extended_value, EX(call)->func)) {
                /* Behave like FETCH_OBJ_W */
                if ((IS_CONST & (IS_CONST|IS_TMP_VAR))) {
                        SAVE_OPLINE();
@@ -8378,7 +8378,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_STATIC_PROP_FUNC_ARG_SPE
 {
        USE_OPLINE
 
-       if (zend_is_by_ref_func_arg_fetch(opline, EX(call))) {
+       if (zend_is_by_ref_func_arg_fetch(opline->extended_value, EX(call)->func)) {
                ZEND_VM_TAIL_CALL(zend_fetch_static_prop_helper_SPEC_CONST_VAR(BP_VAR_W ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC));
        } else {
                ZEND_VM_TAIL_CALL(zend_fetch_static_prop_helper_SPEC_CONST_VAR(BP_VAR_R ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC));
@@ -8830,7 +8830,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_FUNC_ARG_SPEC_CONST_UNUS
 {
        USE_OPLINE
 
-       if (zend_is_by_ref_func_arg_fetch(opline, EX(call))) {
+       if (zend_is_by_ref_func_arg_fetch(opline->extended_value & ZEND_FETCH_ARG_MASK, EX(call)->func)) {
                ZEND_VM_TAIL_CALL(zend_fetch_var_address_helper_SPEC_CONST_UNUSED(BP_VAR_W ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC));
        } else {
                ZEND_VM_TAIL_CALL(zend_fetch_var_address_helper_SPEC_CONST_UNUSED(BP_VAR_R ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC));
@@ -8897,7 +8897,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_STATIC_PROP_FUNC_ARG_SPE
 {
        USE_OPLINE
 
-       if (zend_is_by_ref_func_arg_fetch(opline, EX(call))) {
+       if (zend_is_by_ref_func_arg_fetch(opline->extended_value, EX(call)->func)) {
                ZEND_VM_TAIL_CALL(zend_fetch_static_prop_helper_SPEC_CONST_UNUSED(BP_VAR_W ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC));
        } else {
                ZEND_VM_TAIL_CALL(zend_fetch_static_prop_helper_SPEC_CONST_UNUSED(BP_VAR_R ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC));
@@ -8918,7 +8918,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_CONST_
 {
        USE_OPLINE
 
-       if (zend_is_by_ref_func_arg_fetch(opline, EX(call))) {
+       if (zend_is_by_ref_func_arg_fetch(opline->extended_value, EX(call)->func)) {
         if ((IS_CONST & (IS_CONST|IS_TMP_VAR))) {
                        SAVE_OPLINE();
             zend_throw_error(NULL, "Cannot use temporary expression in write context");
@@ -10261,7 +10261,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_CONST_
 {
        USE_OPLINE
 
-       if (zend_is_by_ref_func_arg_fetch(opline, EX(call))) {
+       if (zend_is_by_ref_func_arg_fetch(opline->extended_value, EX(call)->func)) {
         if ((IS_CONST & (IS_CONST|IS_TMP_VAR))) {
                        SAVE_OPLINE();
             zend_throw_error(NULL, "Cannot use temporary expression in write context");
@@ -10484,7 +10484,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_CONST_
 {
        USE_OPLINE
 
-       if (zend_is_by_ref_func_arg_fetch(opline, EX(call))) {
+       if (zend_is_by_ref_func_arg_fetch(opline->extended_value, EX(call)->func)) {
                /* Behave like FETCH_OBJ_W */
                if ((IS_CONST & (IS_CONST|IS_TMP_VAR))) {
                        SAVE_OPLINE();
@@ -14011,7 +14011,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_STATIC_PROP_FUNC_ARG_SPE
 {
        USE_OPLINE
 
-       if (zend_is_by_ref_func_arg_fetch(opline, EX(call))) {
+       if (zend_is_by_ref_func_arg_fetch(opline->extended_value, EX(call)->func)) {
                ZEND_VM_TAIL_CALL(zend_fetch_static_prop_helper_SPEC_TMPVAR_CONST(BP_VAR_W ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC));
        } else {
                ZEND_VM_TAIL_CALL(zend_fetch_static_prop_helper_SPEC_TMPVAR_CONST(BP_VAR_R ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC));
@@ -16459,7 +16459,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_STATIC_PROP_FUNC_ARG_SPE
 {
        USE_OPLINE
 
-       if (zend_is_by_ref_func_arg_fetch(opline, EX(call))) {
+       if (zend_is_by_ref_func_arg_fetch(opline->extended_value, EX(call)->func)) {
                ZEND_VM_TAIL_CALL(zend_fetch_static_prop_helper_SPEC_TMPVAR_VAR(BP_VAR_W ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC));
        } else {
                ZEND_VM_TAIL_CALL(zend_fetch_static_prop_helper_SPEC_TMPVAR_VAR(BP_VAR_R ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC));
@@ -16820,7 +16820,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_FUNC_ARG_SPEC_TMPVAR_UNU
 {
        USE_OPLINE
 
-       if (zend_is_by_ref_func_arg_fetch(opline, EX(call))) {
+       if (zend_is_by_ref_func_arg_fetch(opline->extended_value & ZEND_FETCH_ARG_MASK, EX(call)->func)) {
                ZEND_VM_TAIL_CALL(zend_fetch_var_address_helper_SPEC_TMPVAR_UNUSED(BP_VAR_W ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC));
        } else {
                ZEND_VM_TAIL_CALL(zend_fetch_var_address_helper_SPEC_TMPVAR_UNUSED(BP_VAR_R ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC));
@@ -16889,7 +16889,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_STATIC_PROP_FUNC_ARG_SPE
 {
        USE_OPLINE
 
-       if (zend_is_by_ref_func_arg_fetch(opline, EX(call))) {
+       if (zend_is_by_ref_func_arg_fetch(opline->extended_value, EX(call)->func)) {
                ZEND_VM_TAIL_CALL(zend_fetch_static_prop_helper_SPEC_TMPVAR_UNUSED(BP_VAR_W ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC));
        } else {
                ZEND_VM_TAIL_CALL(zend_fetch_static_prop_helper_SPEC_TMPVAR_UNUSED(BP_VAR_R ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC));
@@ -19274,7 +19274,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_TMP_CO
 {
        USE_OPLINE
 
-       if (zend_is_by_ref_func_arg_fetch(opline, EX(call))) {
+       if (zend_is_by_ref_func_arg_fetch(opline->extended_value, EX(call)->func)) {
         if ((IS_TMP_VAR & (IS_CONST|IS_TMP_VAR))) {
                        SAVE_OPLINE();
             zend_throw_error(NULL, "Cannot use temporary expression in write context");
@@ -19301,7 +19301,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_TMP_CO
 {
        USE_OPLINE
 
-       if (zend_is_by_ref_func_arg_fetch(opline, EX(call))) {
+       if (zend_is_by_ref_func_arg_fetch(opline->extended_value, EX(call)->func)) {
                /* Behave like FETCH_OBJ_W */
                if ((IS_TMP_VAR & (IS_CONST|IS_TMP_VAR))) {
                        SAVE_OPLINE();
@@ -19711,7 +19711,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_TMP_TM
 {
        USE_OPLINE
 
-       if (zend_is_by_ref_func_arg_fetch(opline, EX(call))) {
+       if (zend_is_by_ref_func_arg_fetch(opline->extended_value, EX(call)->func)) {
         if ((IS_TMP_VAR & (IS_CONST|IS_TMP_VAR))) {
                        SAVE_OPLINE();
             zend_throw_error(NULL, "Cannot use temporary expression in write context");
@@ -19738,7 +19738,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_TMP_TM
 {
        USE_OPLINE
 
-       if (zend_is_by_ref_func_arg_fetch(opline, EX(call))) {
+       if (zend_is_by_ref_func_arg_fetch(opline->extended_value, EX(call)->func)) {
                /* Behave like FETCH_OBJ_W */
                if ((IS_TMP_VAR & (IS_CONST|IS_TMP_VAR))) {
                        SAVE_OPLINE();
@@ -20285,7 +20285,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_TMP_UN
 {
        USE_OPLINE
 
-       if (zend_is_by_ref_func_arg_fetch(opline, EX(call))) {
+       if (zend_is_by_ref_func_arg_fetch(opline->extended_value, EX(call)->func)) {
         if ((IS_TMP_VAR & (IS_CONST|IS_TMP_VAR))) {
                        SAVE_OPLINE();
             zend_throw_error(NULL, "Cannot use temporary expression in write context");
@@ -20714,7 +20714,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_TMP_CV
 {
        USE_OPLINE
 
-       if (zend_is_by_ref_func_arg_fetch(opline, EX(call))) {
+       if (zend_is_by_ref_func_arg_fetch(opline->extended_value, EX(call)->func)) {
         if ((IS_TMP_VAR & (IS_CONST|IS_TMP_VAR))) {
                        SAVE_OPLINE();
             zend_throw_error(NULL, "Cannot use temporary expression in write context");
@@ -20741,7 +20741,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_TMP_CV
 {
        USE_OPLINE
 
-       if (zend_is_by_ref_func_arg_fetch(opline, EX(call))) {
+       if (zend_is_by_ref_func_arg_fetch(opline->extended_value, EX(call)->func)) {
                /* Behave like FETCH_OBJ_W */
                if ((IS_TMP_VAR & (IS_CONST|IS_TMP_VAR))) {
                        SAVE_OPLINE();
@@ -23576,7 +23576,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_CO
 {
        USE_OPLINE
 
-       if (zend_is_by_ref_func_arg_fetch(opline, EX(call))) {
+       if (zend_is_by_ref_func_arg_fetch(opline->extended_value, EX(call)->func)) {
         if ((IS_VAR & (IS_CONST|IS_TMP_VAR))) {
                        SAVE_OPLINE();
             zend_throw_error(NULL, "Cannot use temporary expression in write context");
@@ -23665,7 +23665,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_VAR_CO
 {
        USE_OPLINE
 
-       if (zend_is_by_ref_func_arg_fetch(opline, EX(call))) {
+       if (zend_is_by_ref_func_arg_fetch(opline->extended_value, EX(call)->func)) {
                /* Behave like FETCH_OBJ_W */
                if ((IS_VAR & (IS_CONST|IS_TMP_VAR))) {
                        SAVE_OPLINE();
@@ -26008,7 +26008,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_TM
 {
        USE_OPLINE
 
-       if (zend_is_by_ref_func_arg_fetch(opline, EX(call))) {
+       if (zend_is_by_ref_func_arg_fetch(opline->extended_value, EX(call)->func)) {
         if ((IS_VAR & (IS_CONST|IS_TMP_VAR))) {
                        SAVE_OPLINE();
             zend_throw_error(NULL, "Cannot use temporary expression in write context");
@@ -26097,7 +26097,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_VAR_TM
 {
        USE_OPLINE
 
-       if (zend_is_by_ref_func_arg_fetch(opline, EX(call))) {
+       if (zend_is_by_ref_func_arg_fetch(opline->extended_value, EX(call)->func)) {
                /* Behave like FETCH_OBJ_W */
                if ((IS_VAR & (IS_CONST|IS_TMP_VAR))) {
                        SAVE_OPLINE();
@@ -28258,7 +28258,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_UN
 {
        USE_OPLINE
 
-       if (zend_is_by_ref_func_arg_fetch(opline, EX(call))) {
+       if (zend_is_by_ref_func_arg_fetch(opline->extended_value, EX(call)->func)) {
         if ((IS_VAR & (IS_CONST|IS_TMP_VAR))) {
                        SAVE_OPLINE();
             zend_throw_error(NULL, "Cannot use temporary expression in write context");
@@ -29851,7 +29851,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_CV
 {
        USE_OPLINE
 
-       if (zend_is_by_ref_func_arg_fetch(opline, EX(call))) {
+       if (zend_is_by_ref_func_arg_fetch(opline->extended_value, EX(call)->func)) {
         if ((IS_VAR & (IS_CONST|IS_TMP_VAR))) {
                        SAVE_OPLINE();
             zend_throw_error(NULL, "Cannot use temporary expression in write context");
@@ -29940,7 +29940,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_VAR_CV
 {
        USE_OPLINE
 
-       if (zend_is_by_ref_func_arg_fetch(opline, EX(call))) {
+       if (zend_is_by_ref_func_arg_fetch(opline->extended_value, EX(call)->func)) {
                /* Behave like FETCH_OBJ_W */
                if ((IS_VAR & (IS_CONST|IS_TMP_VAR))) {
                        SAVE_OPLINE();
@@ -32433,7 +32433,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_UNUSED
 {
        USE_OPLINE
 
-       if (zend_is_by_ref_func_arg_fetch(opline, EX(call))) {
+       if (zend_is_by_ref_func_arg_fetch(opline->extended_value, EX(call)->func)) {
                /* Behave like FETCH_OBJ_W */
                if ((IS_UNUSED & (IS_CONST|IS_TMP_VAR))) {
                        SAVE_OPLINE();
@@ -34258,7 +34258,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_UNUSED
 {
        USE_OPLINE
 
-       if (zend_is_by_ref_func_arg_fetch(opline, EX(call))) {
+       if (zend_is_by_ref_func_arg_fetch(opline->extended_value, EX(call)->func)) {
                /* Behave like FETCH_OBJ_W */
                if ((IS_UNUSED & (IS_CONST|IS_TMP_VAR))) {
                        SAVE_OPLINE();
@@ -36613,7 +36613,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_UNUSED
 {
        USE_OPLINE
 
-       if (zend_is_by_ref_func_arg_fetch(opline, EX(call))) {
+       if (zend_is_by_ref_func_arg_fetch(opline->extended_value, EX(call)->func)) {
                /* Behave like FETCH_OBJ_W */
                if ((IS_UNUSED & (IS_CONST|IS_TMP_VAR))) {
                        SAVE_OPLINE();
@@ -40851,7 +40851,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_STATIC_PROP_FUNC_ARG_SPE
 {
        USE_OPLINE
 
-       if (zend_is_by_ref_func_arg_fetch(opline, EX(call))) {
+       if (zend_is_by_ref_func_arg_fetch(opline->extended_value, EX(call)->func)) {
                ZEND_VM_TAIL_CALL(zend_fetch_static_prop_helper_SPEC_CV_CONST(BP_VAR_W ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC));
        } else {
                ZEND_VM_TAIL_CALL(zend_fetch_static_prop_helper_SPEC_CV_CONST(BP_VAR_R ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC));
@@ -40956,7 +40956,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_CV_CON
 {
        USE_OPLINE
 
-       if (zend_is_by_ref_func_arg_fetch(opline, EX(call))) {
+       if (zend_is_by_ref_func_arg_fetch(opline->extended_value, EX(call)->func)) {
         if ((IS_CV & (IS_CONST|IS_TMP_VAR))) {
                        SAVE_OPLINE();
             zend_throw_error(NULL, "Cannot use temporary expression in write context");
@@ -41241,7 +41241,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_CV_CON
 {
        USE_OPLINE
 
-       if (zend_is_by_ref_func_arg_fetch(opline, EX(call))) {
+       if (zend_is_by_ref_func_arg_fetch(opline->extended_value, EX(call)->func)) {
                /* Behave like FETCH_OBJ_W */
                if ((IS_CV & (IS_CONST|IS_TMP_VAR))) {
                        SAVE_OPLINE();
@@ -44842,7 +44842,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_CV_TMP
 {
        USE_OPLINE
 
-       if (zend_is_by_ref_func_arg_fetch(opline, EX(call))) {
+       if (zend_is_by_ref_func_arg_fetch(opline->extended_value, EX(call)->func)) {
         if ((IS_CV & (IS_CONST|IS_TMP_VAR))) {
                        SAVE_OPLINE();
             zend_throw_error(NULL, "Cannot use temporary expression in write context");
@@ -45129,7 +45129,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_CV_TMP
 {
        USE_OPLINE
 
-       if (zend_is_by_ref_func_arg_fetch(opline, EX(call))) {
+       if (zend_is_by_ref_func_arg_fetch(opline->extended_value, EX(call)->func)) {
                /* Behave like FETCH_OBJ_W */
                if ((IS_CV & (IS_CONST|IS_TMP_VAR))) {
                        SAVE_OPLINE();
@@ -47187,7 +47187,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_STATIC_PROP_FUNC_ARG_SPE
 {
        USE_OPLINE
 
-       if (zend_is_by_ref_func_arg_fetch(opline, EX(call))) {
+       if (zend_is_by_ref_func_arg_fetch(opline->extended_value, EX(call)->func)) {
                ZEND_VM_TAIL_CALL(zend_fetch_static_prop_helper_SPEC_CV_VAR(BP_VAR_W ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC));
        } else {
                ZEND_VM_TAIL_CALL(zend_fetch_static_prop_helper_SPEC_CV_VAR(BP_VAR_R ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC));
@@ -47968,7 +47968,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_FUNC_ARG_SPEC_CV_UNUSED_
 {
        USE_OPLINE
 
-       if (zend_is_by_ref_func_arg_fetch(opline, EX(call))) {
+       if (zend_is_by_ref_func_arg_fetch(opline->extended_value & ZEND_FETCH_ARG_MASK, EX(call)->func)) {
                ZEND_VM_TAIL_CALL(zend_fetch_var_address_helper_SPEC_CV_UNUSED(BP_VAR_W ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC));
        } else {
                ZEND_VM_TAIL_CALL(zend_fetch_var_address_helper_SPEC_CV_UNUSED(BP_VAR_R ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC));
@@ -48035,7 +48035,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_STATIC_PROP_FUNC_ARG_SPE
 {
        USE_OPLINE
 
-       if (zend_is_by_ref_func_arg_fetch(opline, EX(call))) {
+       if (zend_is_by_ref_func_arg_fetch(opline->extended_value, EX(call)->func)) {
                ZEND_VM_TAIL_CALL(zend_fetch_static_prop_helper_SPEC_CV_UNUSED(BP_VAR_W ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC));
        } else {
                ZEND_VM_TAIL_CALL(zend_fetch_static_prop_helper_SPEC_CV_UNUSED(BP_VAR_R ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC));
@@ -48090,7 +48090,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_CV_UNU
 {
        USE_OPLINE
 
-       if (zend_is_by_ref_func_arg_fetch(opline, EX(call))) {
+       if (zend_is_by_ref_func_arg_fetch(opline->extended_value, EX(call)->func)) {
         if ((IS_CV & (IS_CONST|IS_TMP_VAR))) {
                        SAVE_OPLINE();
             zend_throw_error(NULL, "Cannot use temporary expression in write context");
@@ -50573,7 +50573,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_CV_CV_
 {
        USE_OPLINE
 
-       if (zend_is_by_ref_func_arg_fetch(opline, EX(call))) {
+       if (zend_is_by_ref_func_arg_fetch(opline->extended_value, EX(call)->func)) {
         if ((IS_CV & (IS_CONST|IS_TMP_VAR))) {
                        SAVE_OPLINE();
             zend_throw_error(NULL, "Cannot use temporary expression in write context");
@@ -50858,7 +50858,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_CV_CV_
 {
        USE_OPLINE
 
-       if (zend_is_by_ref_func_arg_fetch(opline, EX(call))) {
+       if (zend_is_by_ref_func_arg_fetch(opline->extended_value, EX(call)->func)) {
                /* Behave like FETCH_OBJ_W */
                if ((IS_CV & (IS_CONST|IS_TMP_VAR))) {
                        SAVE_OPLINE();