@@ -22903,47 +22903,14 @@ static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SEND_VAR_SIMPLE_SP
22903
22903
ZEND_VM_NEXT_OPCODE();
22904
22904
}
22905
22905
22906
- static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SEND_VAR_EX_SIMPLE_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
22906
+ static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SEND_VAR_EX_SIMPLE_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
22907
22907
{
22908
22908
USE_OPLINE
22909
22909
zval *varptr, *arg;
22910
22910
zend_free_op free_op1;
22911
22911
uint32_t arg_num = opline->op2.num;
22912
22912
22913
- if (EXPECTED(0)) {
22914
- if (QUICK_ARG_SHOULD_BE_SENT_BY_REF(EX(call)->func, arg_num)) {
22915
- goto send_var_by_ref_simple;
22916
- }
22917
- } else if (ARG_SHOULD_BE_SENT_BY_REF(EX(call)->func, arg_num)) {
22918
- send_var_by_ref_simple:
22919
- ZEND_VM_TAIL_CALL(ZEND_SEND_REF_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU));
22920
- }
22921
-
22922
- varptr = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC);
22923
- arg = ZEND_CALL_VAR(EX(call), opline->result.var);
22924
-
22925
- if (IS_VAR == IS_CV) {
22926
- ZVAL_COPY(arg, varptr);
22927
- } else /* if (IS_VAR == IS_VAR) */ {
22928
- ZVAL_COPY_VALUE(arg, varptr);
22929
- }
22930
-
22931
- ZEND_VM_NEXT_OPCODE();
22932
- }
22933
-
22934
- static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SEND_VAR_EX_SIMPLE_SPEC_VAR_QUICK_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
22935
- {
22936
- USE_OPLINE
22937
- zval *varptr, *arg;
22938
- zend_free_op free_op1;
22939
- uint32_t arg_num = opline->op2.num;
22940
-
22941
- if (EXPECTED(1)) {
22942
- if (QUICK_ARG_SHOULD_BE_SENT_BY_REF(EX(call)->func, arg_num)) {
22943
- goto send_var_by_ref_simple;
22944
- }
22945
- } else if (ARG_SHOULD_BE_SENT_BY_REF(EX(call)->func, arg_num)) {
22946
- send_var_by_ref_simple:
22913
+ if (QUICK_ARG_SHOULD_BE_SENT_BY_REF(EX(call)->func, arg_num)) {
22947
22914
ZEND_VM_TAIL_CALL(ZEND_SEND_REF_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU));
22948
22915
}
22949
22916
@@ -39888,47 +39855,14 @@ static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SEND_VAR_SIMPLE_SP
39888
39855
ZEND_VM_NEXT_OPCODE();
39889
39856
}
39890
39857
39891
- static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SEND_VAR_EX_SIMPLE_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
39858
+ static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SEND_VAR_EX_SIMPLE_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
39892
39859
{
39893
39860
USE_OPLINE
39894
39861
zval *varptr, *arg;
39895
39862
39896
39863
uint32_t arg_num = opline->op2.num;
39897
39864
39898
- if (EXPECTED(0)) {
39899
- if (QUICK_ARG_SHOULD_BE_SENT_BY_REF(EX(call)->func, arg_num)) {
39900
- goto send_var_by_ref_simple;
39901
- }
39902
- } else if (ARG_SHOULD_BE_SENT_BY_REF(EX(call)->func, arg_num)) {
39903
- send_var_by_ref_simple:
39904
- ZEND_VM_TAIL_CALL(ZEND_SEND_REF_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU));
39905
- }
39906
-
39907
- varptr = _get_zval_ptr_cv_undef(opline->op1.var EXECUTE_DATA_CC);
39908
- arg = ZEND_CALL_VAR(EX(call), opline->result.var);
39909
-
39910
- if (IS_CV == IS_CV) {
39911
- ZVAL_COPY(arg, varptr);
39912
- } else /* if (IS_CV == IS_VAR) */ {
39913
- ZVAL_COPY_VALUE(arg, varptr);
39914
- }
39915
-
39916
- ZEND_VM_NEXT_OPCODE();
39917
- }
39918
-
39919
- static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SEND_VAR_EX_SIMPLE_SPEC_CV_QUICK_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
39920
- {
39921
- USE_OPLINE
39922
- zval *varptr, *arg;
39923
-
39924
- uint32_t arg_num = opline->op2.num;
39925
-
39926
- if (EXPECTED(1)) {
39927
- if (QUICK_ARG_SHOULD_BE_SENT_BY_REF(EX(call)->func, arg_num)) {
39928
- goto send_var_by_ref_simple;
39929
- }
39930
- } else if (ARG_SHOULD_BE_SENT_BY_REF(EX(call)->func, arg_num)) {
39931
- send_var_by_ref_simple:
39865
+ if (QUICK_ARG_SHOULD_BE_SENT_BY_REF(EX(call)->func, arg_num)) {
39932
39866
ZEND_VM_TAIL_CALL(ZEND_SEND_REF_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU));
39933
39867
}
39934
39868
@@ -57363,14 +57297,9 @@ ZEND_API void execute_ex(zend_execute_data *ex)
57363
57297
(void*)&&ZEND_SEND_VAR_SIMPLE_SPEC_CV_LABEL,
57364
57298
(void*)&&ZEND_NULL_LABEL,
57365
57299
(void*)&&ZEND_NULL_LABEL,
57366
- (void*)&&ZEND_NULL_LABEL,
57367
- (void*)&&ZEND_NULL_LABEL,
57368
57300
(void*)&&ZEND_SEND_VAR_EX_SIMPLE_SPEC_VAR_LABEL,
57369
- (void*)&&ZEND_SEND_VAR_EX_SIMPLE_SPEC_VAR_QUICK_LABEL,
57370
- (void*)&&ZEND_NULL_LABEL,
57371
57301
(void*)&&ZEND_NULL_LABEL,
57372
57302
(void*)&&ZEND_SEND_VAR_EX_SIMPLE_SPEC_CV_LABEL,
57373
- (void*)&&ZEND_SEND_VAR_EX_SIMPLE_SPEC_CV_QUICK_LABEL,
57374
57303
(void*)&&ZEND_FE_FETCH_R_SIMPLE_SPEC_VAR_CV_RETVAL_UNUSED_LABEL,
57375
57304
(void*)&&ZEND_FE_FETCH_R_SIMPLE_SPEC_VAR_CV_RETVAL_USED_LABEL,
57376
57305
(void*)&&ZEND_NULL_LABEL
@@ -59015,9 +58944,6 @@ ZEND_API void execute_ex(zend_execute_data *ex)
59015
58944
HYBRID_CASE(ZEND_SEND_VAR_EX_SIMPLE_SPEC_VAR):
59016
58945
ZEND_SEND_VAR_EX_SIMPLE_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
59017
58946
HYBRID_BREAK();
59018
- HYBRID_CASE(ZEND_SEND_VAR_EX_SIMPLE_SPEC_VAR_QUICK):
59019
- ZEND_SEND_VAR_EX_SIMPLE_SPEC_VAR_QUICK_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
59020
- HYBRID_BREAK();
59021
58947
HYBRID_CASE(ZEND_IS_IDENTICAL_SPEC_VAR_CONST):
59022
58948
ZEND_IS_IDENTICAL_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
59023
58949
HYBRID_BREAK();
@@ -60206,9 +60132,6 @@ ZEND_API void execute_ex(zend_execute_data *ex)
60206
60132
HYBRID_CASE(ZEND_SEND_VAR_EX_SIMPLE_SPEC_CV):
60207
60133
ZEND_SEND_VAR_EX_SIMPLE_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
60208
60134
HYBRID_BREAK();
60209
- HYBRID_CASE(ZEND_SEND_VAR_EX_SIMPLE_SPEC_CV_QUICK):
60210
- ZEND_SEND_VAR_EX_SIMPLE_SPEC_CV_QUICK_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
60211
- HYBRID_BREAK();
60212
60135
HYBRID_CASE(ZEND_ADD_SPEC_CV_CONST):
60213
60136
ZEND_ADD_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
60214
60137
HYBRID_BREAK();
@@ -65260,14 +65183,9 @@ void zend_init_opcodes_handlers(void)
65260
65183
ZEND_SEND_VAR_SIMPLE_SPEC_CV_HANDLER,
65261
65184
ZEND_NULL_HANDLER,
65262
65185
ZEND_NULL_HANDLER,
65263
- ZEND_NULL_HANDLER,
65264
- ZEND_NULL_HANDLER,
65265
65186
ZEND_SEND_VAR_EX_SIMPLE_SPEC_VAR_HANDLER,
65266
- ZEND_SEND_VAR_EX_SIMPLE_SPEC_VAR_QUICK_HANDLER,
65267
- ZEND_NULL_HANDLER,
65268
65187
ZEND_NULL_HANDLER,
65269
65188
ZEND_SEND_VAR_EX_SIMPLE_SPEC_CV_HANDLER,
65270
- ZEND_SEND_VAR_EX_SIMPLE_SPEC_CV_QUICK_HANDLER,
65271
65189
ZEND_FE_FETCH_R_SIMPLE_SPEC_VAR_CV_RETVAL_UNUSED_HANDLER,
65272
65190
ZEND_FE_FETCH_R_SIMPLE_SPEC_VAR_CV_RETVAL_USED_HANDLER,
65273
65191
ZEND_NULL_HANDLER
@@ -65472,7 +65390,7 @@ void zend_init_opcodes_handlers(void)
65472
65390
3019,
65473
65391
3020,
65474
65392
3021 | SPEC_RULE_OP1 | SPEC_RULE_OP2,
65475
- 3942
65393
+ 3937
65476
65394
};
65477
65395
#if (ZEND_VM_KIND == ZEND_VM_KIND_HYBRID)
65478
65396
zend_opcode_handler_funcs = labels;
@@ -65828,13 +65746,13 @@ ZEND_API void ZEND_FASTCALL zend_vm_set_opcode_handler_ex(zend_op* op, uint32_t
65828
65746
}
65829
65747
break;
65830
65748
case ZEND_SEND_VAR_EX:
65831
- if ((op1_info & (MAY_BE_UNDEF|MAY_BE_REF)) == 0) {
65832
- spec = 3930 | SPEC_RULE_OP1 | SPEC_RULE_QUICK_ARG ;
65749
+ if (op->op2.num <= MAX_ARG_FLAG_NUM && (op1_info & (MAY_BE_UNDEF|MAY_BE_REF)) == 0) {
65750
+ spec = 3930 | SPEC_RULE_OP1;
65833
65751
}
65834
65752
break;
65835
65753
case ZEND_FE_FETCH_R:
65836
65754
if (op->op2_type == IS_CV && (op1_info & (MAY_BE_UNDEF|MAY_BE_ANY|MAY_BE_REF)) == MAY_BE_ARRAY) {
65837
- spec = 3940 | SPEC_RULE_RETVAL;
65755
+ spec = 3935 | SPEC_RULE_RETVAL;
65838
65756
}
65839
65757
break;
65840
65758
case ZEND_FETCH_DIM_R:
0 commit comments