Merge branch 'PHP-7.4'

* PHP-7.4:
  Eliminate exception checks
This commit is contained in:
Dmitry Stogov 2019-07-02 01:13:23 +03:00
commit 686f6b383a
2 changed files with 442 additions and 78 deletions

View File

@ -2036,7 +2036,13 @@ ZEND_VM_HOT_OBJ_HANDLER(82, ZEND_FETCH_OBJ_R, CONST|TMPVAR|UNUSED|THIS|CV, CONST
if (EXPECTED(IS_VALID_PROPERTY_OFFSET(prop_offset))) {
retval = OBJ_PROP(zobj, prop_offset);
if (EXPECTED(Z_TYPE_INFO_P(retval) != IS_UNDEF)) {
ZEND_VM_C_GOTO(fetch_obj_r_copy);
if (!ZEND_VM_SPEC || (OP1_TYPE & (IS_TMP_VAR|IS_VAR))) {
ZEND_VM_C_GOTO(fetch_obj_r_copy);
} else {
ZEND_VM_C_LABEL(fetch_obj_r_fast_copy):
ZVAL_COPY_DEREF(EX_VAR(opline->result.var), retval);
ZEND_VM_NEXT_OPCODE();
}
}
} else if (EXPECTED(zobj->properties != NULL)) {
if (!IS_UNKNOWN_DYNAMIC_PROPERTY_OFFSET(prop_offset)) {
@ -2051,7 +2057,11 @@ ZEND_VM_HOT_OBJ_HANDLER(82, ZEND_FETCH_OBJ_R, CONST|TMPVAR|UNUSED|THIS|CV, CONST
EXPECTED(p->key != NULL) &&
EXPECTED(zend_string_equal_content(p->key, name))))) {
retval = &p->val;
ZEND_VM_C_GOTO(fetch_obj_r_copy);
if (!ZEND_VM_SPEC || (OP1_TYPE & (IS_TMP_VAR|IS_VAR))) {
ZEND_VM_C_GOTO(fetch_obj_r_copy);
} else {
ZEND_VM_C_GOTO(fetch_obj_r_fast_copy);
}
}
}
CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_DYNAMIC_PROPERTY_OFFSET);
@ -2060,7 +2070,11 @@ ZEND_VM_HOT_OBJ_HANDLER(82, ZEND_FETCH_OBJ_R, CONST|TMPVAR|UNUSED|THIS|CV, CONST
if (EXPECTED(retval)) {
uintptr_t idx = (char*)retval - (char*)zobj->properties->arData;
CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_ENCODE_DYN_PROP_OFFSET(idx));
ZEND_VM_C_GOTO(fetch_obj_r_copy);
if (!ZEND_VM_SPEC || (OP1_TYPE & (IS_TMP_VAR|IS_VAR))) {
ZEND_VM_C_GOTO(fetch_obj_r_copy);
} else {
ZEND_VM_C_GOTO(fetch_obj_r_fast_copy);
}
}
}
}
@ -2191,7 +2205,13 @@ ZEND_VM_COLD_CONST_HANDLER(91, ZEND_FETCH_OBJ_IS, CONST|TMPVAR|UNUSED|THIS|CV, C
if (EXPECTED(IS_VALID_PROPERTY_OFFSET(prop_offset))) {
retval = OBJ_PROP(zobj, prop_offset);
if (EXPECTED(Z_TYPE_P(retval) != IS_UNDEF)) {
ZEND_VM_C_GOTO(fetch_obj_is_copy);
if (!ZEND_VM_SPEC || (OP1_TYPE & (IS_TMP_VAR|IS_VAR))) {
ZEND_VM_C_GOTO(fetch_obj_is_copy);
} else {
ZEND_VM_C_LABEL(fetch_obj_is_fast_copy):
ZVAL_COPY(EX_VAR(opline->result.var), retval);
ZEND_VM_NEXT_OPCODE();
}
}
} else if (EXPECTED(zobj->properties != NULL)) {
if (!IS_UNKNOWN_DYNAMIC_PROPERTY_OFFSET(prop_offset)) {
@ -2206,7 +2226,11 @@ ZEND_VM_COLD_CONST_HANDLER(91, ZEND_FETCH_OBJ_IS, CONST|TMPVAR|UNUSED|THIS|CV, C
EXPECTED(p->key != NULL) &&
EXPECTED(zend_string_equal_content(p->key, name))))) {
retval = &p->val;
ZEND_VM_C_GOTO(fetch_obj_is_copy);
if (!ZEND_VM_SPEC || (OP1_TYPE & (IS_TMP_VAR|IS_VAR))) {
ZEND_VM_C_GOTO(fetch_obj_is_copy);
} else {
ZEND_VM_C_GOTO(fetch_obj_is_fast_copy);
}
}
}
CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_DYNAMIC_PROPERTY_OFFSET);
@ -2215,7 +2239,11 @@ ZEND_VM_COLD_CONST_HANDLER(91, ZEND_FETCH_OBJ_IS, CONST|TMPVAR|UNUSED|THIS|CV, C
if (EXPECTED(retval)) {
uintptr_t idx = (char*)retval - (char*)zobj->properties->arData;
CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_ENCODE_DYN_PROP_OFFSET(idx));
ZEND_VM_C_GOTO(fetch_obj_is_copy);
if (!ZEND_VM_SPEC || (OP1_TYPE & (IS_TMP_VAR|IS_VAR))) {
ZEND_VM_C_GOTO(fetch_obj_is_copy);
} else {
ZEND_VM_C_GOTO(fetch_obj_is_fast_copy);
}
}
}
}

View File

@ -5159,7 +5159,13 @@ static ZEND_VM_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_R_SPEC_
if (EXPECTED(IS_VALID_PROPERTY_OFFSET(prop_offset))) {
retval = OBJ_PROP(zobj, prop_offset);
if (EXPECTED(Z_TYPE_INFO_P(retval) != IS_UNDEF)) {
goto fetch_obj_r_copy;
if (!ZEND_VM_SPEC || (IS_CONST & (IS_TMP_VAR|IS_VAR))) {
goto fetch_obj_r_copy;
} else {
fetch_obj_r_fast_copy:
ZVAL_COPY_DEREF(EX_VAR(opline->result.var), retval);
ZEND_VM_NEXT_OPCODE();
}
}
} else if (EXPECTED(zobj->properties != NULL)) {
if (!IS_UNKNOWN_DYNAMIC_PROPERTY_OFFSET(prop_offset)) {
@ -5174,7 +5180,11 @@ static ZEND_VM_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_R_SPEC_
EXPECTED(p->key != NULL) &&
EXPECTED(zend_string_equal_content(p->key, name))))) {
retval = &p->val;
goto fetch_obj_r_copy;
if (!ZEND_VM_SPEC || (IS_CONST & (IS_TMP_VAR|IS_VAR))) {
goto fetch_obj_r_copy;
} else {
goto fetch_obj_r_fast_copy;
}
}
}
CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_DYNAMIC_PROPERTY_OFFSET);
@ -5183,7 +5193,11 @@ static ZEND_VM_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_R_SPEC_
if (EXPECTED(retval)) {
uintptr_t idx = (char*)retval - (char*)zobj->properties->arData;
CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_ENCODE_DYN_PROP_OFFSET(idx));
goto fetch_obj_r_copy;
if (!ZEND_VM_SPEC || (IS_CONST & (IS_TMP_VAR|IS_VAR))) {
goto fetch_obj_r_copy;
} else {
goto fetch_obj_r_fast_copy;
}
}
}
}
@ -5266,7 +5280,13 @@ static ZEND_VM_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC
if (EXPECTED(IS_VALID_PROPERTY_OFFSET(prop_offset))) {
retval = OBJ_PROP(zobj, prop_offset);
if (EXPECTED(Z_TYPE_P(retval) != IS_UNDEF)) {
goto fetch_obj_is_copy;
if (!ZEND_VM_SPEC || (IS_CONST & (IS_TMP_VAR|IS_VAR))) {
goto fetch_obj_is_copy;
} else {
fetch_obj_is_fast_copy:
ZVAL_COPY(EX_VAR(opline->result.var), retval);
ZEND_VM_NEXT_OPCODE();
}
}
} else if (EXPECTED(zobj->properties != NULL)) {
if (!IS_UNKNOWN_DYNAMIC_PROPERTY_OFFSET(prop_offset)) {
@ -5281,7 +5301,11 @@ static ZEND_VM_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC
EXPECTED(p->key != NULL) &&
EXPECTED(zend_string_equal_content(p->key, name))))) {
retval = &p->val;
goto fetch_obj_is_copy;
if (!ZEND_VM_SPEC || (IS_CONST & (IS_TMP_VAR|IS_VAR))) {
goto fetch_obj_is_copy;
} else {
goto fetch_obj_is_fast_copy;
}
}
}
CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_DYNAMIC_PROPERTY_OFFSET);
@ -5290,7 +5314,11 @@ static ZEND_VM_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC
if (EXPECTED(retval)) {
uintptr_t idx = (char*)retval - (char*)zobj->properties->arData;
CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_ENCODE_DYN_PROP_OFFSET(idx));
goto fetch_obj_is_copy;
if (!ZEND_VM_SPEC || (IS_CONST & (IS_TMP_VAR|IS_VAR))) {
goto fetch_obj_is_copy;
} else {
goto fetch_obj_is_fast_copy;
}
}
}
}
@ -7240,7 +7268,13 @@ static ZEND_VM_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_R_SPEC_
if (EXPECTED(IS_VALID_PROPERTY_OFFSET(prop_offset))) {
retval = OBJ_PROP(zobj, prop_offset);
if (EXPECTED(Z_TYPE_INFO_P(retval) != IS_UNDEF)) {
goto fetch_obj_r_copy;
if (!ZEND_VM_SPEC || (IS_CONST & (IS_TMP_VAR|IS_VAR))) {
goto fetch_obj_r_copy;
} else {
fetch_obj_r_fast_copy:
ZVAL_COPY_DEREF(EX_VAR(opline->result.var), retval);
ZEND_VM_NEXT_OPCODE();
}
}
} else if (EXPECTED(zobj->properties != NULL)) {
if (!IS_UNKNOWN_DYNAMIC_PROPERTY_OFFSET(prop_offset)) {
@ -7255,7 +7289,11 @@ static ZEND_VM_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_R_SPEC_
EXPECTED(p->key != NULL) &&
EXPECTED(zend_string_equal_content(p->key, name))))) {
retval = &p->val;
goto fetch_obj_r_copy;
if (!ZEND_VM_SPEC || (IS_CONST & (IS_TMP_VAR|IS_VAR))) {
goto fetch_obj_r_copy;
} else {
goto fetch_obj_r_fast_copy;
}
}
}
CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_DYNAMIC_PROPERTY_OFFSET);
@ -7264,7 +7302,11 @@ static ZEND_VM_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_R_SPEC_
if (EXPECTED(retval)) {
uintptr_t idx = (char*)retval - (char*)zobj->properties->arData;
CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_ENCODE_DYN_PROP_OFFSET(idx));
goto fetch_obj_r_copy;
if (!ZEND_VM_SPEC || (IS_CONST & (IS_TMP_VAR|IS_VAR))) {
goto fetch_obj_r_copy;
} else {
goto fetch_obj_r_fast_copy;
}
}
}
}
@ -7347,7 +7389,13 @@ static ZEND_VM_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC
if (EXPECTED(IS_VALID_PROPERTY_OFFSET(prop_offset))) {
retval = OBJ_PROP(zobj, prop_offset);
if (EXPECTED(Z_TYPE_P(retval) != IS_UNDEF)) {
goto fetch_obj_is_copy;
if (!ZEND_VM_SPEC || (IS_CONST & (IS_TMP_VAR|IS_VAR))) {
goto fetch_obj_is_copy;
} else {
fetch_obj_is_fast_copy:
ZVAL_COPY(EX_VAR(opline->result.var), retval);
ZEND_VM_NEXT_OPCODE();
}
}
} else if (EXPECTED(zobj->properties != NULL)) {
if (!IS_UNKNOWN_DYNAMIC_PROPERTY_OFFSET(prop_offset)) {
@ -7362,7 +7410,11 @@ static ZEND_VM_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC
EXPECTED(p->key != NULL) &&
EXPECTED(zend_string_equal_content(p->key, name))))) {
retval = &p->val;
goto fetch_obj_is_copy;
if (!ZEND_VM_SPEC || (IS_CONST & (IS_TMP_VAR|IS_VAR))) {
goto fetch_obj_is_copy;
} else {
goto fetch_obj_is_fast_copy;
}
}
}
CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_DYNAMIC_PROPERTY_OFFSET);
@ -7371,7 +7423,11 @@ static ZEND_VM_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC
if (EXPECTED(retval)) {
uintptr_t idx = (char*)retval - (char*)zobj->properties->arData;
CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_ENCODE_DYN_PROP_OFFSET(idx));
goto fetch_obj_is_copy;
if (!ZEND_VM_SPEC || (IS_CONST & (IS_TMP_VAR|IS_VAR))) {
goto fetch_obj_is_copy;
} else {
goto fetch_obj_is_fast_copy;
}
}
}
}
@ -9911,7 +9967,13 @@ static ZEND_VM_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_R_SPEC_
if (EXPECTED(IS_VALID_PROPERTY_OFFSET(prop_offset))) {
retval = OBJ_PROP(zobj, prop_offset);
if (EXPECTED(Z_TYPE_INFO_P(retval) != IS_UNDEF)) {
goto fetch_obj_r_copy;
if (!ZEND_VM_SPEC || (IS_CONST & (IS_TMP_VAR|IS_VAR))) {
goto fetch_obj_r_copy;
} else {
fetch_obj_r_fast_copy:
ZVAL_COPY_DEREF(EX_VAR(opline->result.var), retval);
ZEND_VM_NEXT_OPCODE();
}
}
} else if (EXPECTED(zobj->properties != NULL)) {
if (!IS_UNKNOWN_DYNAMIC_PROPERTY_OFFSET(prop_offset)) {
@ -9926,7 +9988,11 @@ static ZEND_VM_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_R_SPEC_
EXPECTED(p->key != NULL) &&
EXPECTED(zend_string_equal_content(p->key, name))))) {
retval = &p->val;
goto fetch_obj_r_copy;
if (!ZEND_VM_SPEC || (IS_CONST & (IS_TMP_VAR|IS_VAR))) {
goto fetch_obj_r_copy;
} else {
goto fetch_obj_r_fast_copy;
}
}
}
CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_DYNAMIC_PROPERTY_OFFSET);
@ -9935,7 +10001,11 @@ static ZEND_VM_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_R_SPEC_
if (EXPECTED(retval)) {
uintptr_t idx = (char*)retval - (char*)zobj->properties->arData;
CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_ENCODE_DYN_PROP_OFFSET(idx));
goto fetch_obj_r_copy;
if (!ZEND_VM_SPEC || (IS_CONST & (IS_TMP_VAR|IS_VAR))) {
goto fetch_obj_r_copy;
} else {
goto fetch_obj_r_fast_copy;
}
}
}
}
@ -10018,7 +10088,13 @@ static ZEND_VM_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC
if (EXPECTED(IS_VALID_PROPERTY_OFFSET(prop_offset))) {
retval = OBJ_PROP(zobj, prop_offset);
if (EXPECTED(Z_TYPE_P(retval) != IS_UNDEF)) {
goto fetch_obj_is_copy;
if (!ZEND_VM_SPEC || (IS_CONST & (IS_TMP_VAR|IS_VAR))) {
goto fetch_obj_is_copy;
} else {
fetch_obj_is_fast_copy:
ZVAL_COPY(EX_VAR(opline->result.var), retval);
ZEND_VM_NEXT_OPCODE();
}
}
} else if (EXPECTED(zobj->properties != NULL)) {
if (!IS_UNKNOWN_DYNAMIC_PROPERTY_OFFSET(prop_offset)) {
@ -10033,7 +10109,11 @@ static ZEND_VM_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC
EXPECTED(p->key != NULL) &&
EXPECTED(zend_string_equal_content(p->key, name))))) {
retval = &p->val;
goto fetch_obj_is_copy;
if (!ZEND_VM_SPEC || (IS_CONST & (IS_TMP_VAR|IS_VAR))) {
goto fetch_obj_is_copy;
} else {
goto fetch_obj_is_fast_copy;
}
}
}
CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_DYNAMIC_PROPERTY_OFFSET);
@ -10042,7 +10122,11 @@ static ZEND_VM_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC
if (EXPECTED(retval)) {
uintptr_t idx = (char*)retval - (char*)zobj->properties->arData;
CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_ENCODE_DYN_PROP_OFFSET(idx));
goto fetch_obj_is_copy;
if (!ZEND_VM_SPEC || (IS_CONST & (IS_TMP_VAR|IS_VAR))) {
goto fetch_obj_is_copy;
} else {
goto fetch_obj_is_fast_copy;
}
}
}
}
@ -13621,7 +13705,13 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_R_SPEC_TMPVAR_CONST_
if (EXPECTED(IS_VALID_PROPERTY_OFFSET(prop_offset))) {
retval = OBJ_PROP(zobj, prop_offset);
if (EXPECTED(Z_TYPE_INFO_P(retval) != IS_UNDEF)) {
goto fetch_obj_r_copy;
if (!ZEND_VM_SPEC || ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR))) {
goto fetch_obj_r_copy;
} else {
fetch_obj_r_fast_copy:
ZVAL_COPY_DEREF(EX_VAR(opline->result.var), retval);
ZEND_VM_NEXT_OPCODE();
}
}
} else if (EXPECTED(zobj->properties != NULL)) {
if (!IS_UNKNOWN_DYNAMIC_PROPERTY_OFFSET(prop_offset)) {
@ -13636,7 +13726,11 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_R_SPEC_TMPVAR_CONST_
EXPECTED(p->key != NULL) &&
EXPECTED(zend_string_equal_content(p->key, name))))) {
retval = &p->val;
goto fetch_obj_r_copy;
if (!ZEND_VM_SPEC || ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR))) {
goto fetch_obj_r_copy;
} else {
goto fetch_obj_r_fast_copy;
}
}
}
CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_DYNAMIC_PROPERTY_OFFSET);
@ -13645,7 +13739,11 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_R_SPEC_TMPVAR_CONST_
if (EXPECTED(retval)) {
uintptr_t idx = (char*)retval - (char*)zobj->properties->arData;
CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_ENCODE_DYN_PROP_OFFSET(idx));
goto fetch_obj_r_copy;
if (!ZEND_VM_SPEC || ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR))) {
goto fetch_obj_r_copy;
} else {
goto fetch_obj_r_fast_copy;
}
}
}
}
@ -13728,7 +13826,13 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_TMPVAR_CONST
if (EXPECTED(IS_VALID_PROPERTY_OFFSET(prop_offset))) {
retval = OBJ_PROP(zobj, prop_offset);
if (EXPECTED(Z_TYPE_P(retval) != IS_UNDEF)) {
goto fetch_obj_is_copy;
if (!ZEND_VM_SPEC || ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR))) {
goto fetch_obj_is_copy;
} else {
fetch_obj_is_fast_copy:
ZVAL_COPY(EX_VAR(opline->result.var), retval);
ZEND_VM_NEXT_OPCODE();
}
}
} else if (EXPECTED(zobj->properties != NULL)) {
if (!IS_UNKNOWN_DYNAMIC_PROPERTY_OFFSET(prop_offset)) {
@ -13743,7 +13847,11 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_TMPVAR_CONST
EXPECTED(p->key != NULL) &&
EXPECTED(zend_string_equal_content(p->key, name))))) {
retval = &p->val;
goto fetch_obj_is_copy;
if (!ZEND_VM_SPEC || ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR))) {
goto fetch_obj_is_copy;
} else {
goto fetch_obj_is_fast_copy;
}
}
}
CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_DYNAMIC_PROPERTY_OFFSET);
@ -13752,7 +13860,11 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_TMPVAR_CONST
if (EXPECTED(retval)) {
uintptr_t idx = (char*)retval - (char*)zobj->properties->arData;
CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_ENCODE_DYN_PROP_OFFSET(idx));
goto fetch_obj_is_copy;
if (!ZEND_VM_SPEC || ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR))) {
goto fetch_obj_is_copy;
} else {
goto fetch_obj_is_fast_copy;
}
}
}
}
@ -15246,7 +15358,13 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_R_SPEC_TMPVAR_TMPVAR
if (EXPECTED(IS_VALID_PROPERTY_OFFSET(prop_offset))) {
retval = OBJ_PROP(zobj, prop_offset);
if (EXPECTED(Z_TYPE_INFO_P(retval) != IS_UNDEF)) {
goto fetch_obj_r_copy;
if (!ZEND_VM_SPEC || ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR))) {
goto fetch_obj_r_copy;
} else {
fetch_obj_r_fast_copy:
ZVAL_COPY_DEREF(EX_VAR(opline->result.var), retval);
ZEND_VM_NEXT_OPCODE();
}
}
} else if (EXPECTED(zobj->properties != NULL)) {
if (!IS_UNKNOWN_DYNAMIC_PROPERTY_OFFSET(prop_offset)) {
@ -15261,7 +15379,11 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_R_SPEC_TMPVAR_TMPVAR
EXPECTED(p->key != NULL) &&
EXPECTED(zend_string_equal_content(p->key, name))))) {
retval = &p->val;
goto fetch_obj_r_copy;
if (!ZEND_VM_SPEC || ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR))) {
goto fetch_obj_r_copy;
} else {
goto fetch_obj_r_fast_copy;
}
}
}
CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_DYNAMIC_PROPERTY_OFFSET);
@ -15270,7 +15392,11 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_R_SPEC_TMPVAR_TMPVAR
if (EXPECTED(retval)) {
uintptr_t idx = (char*)retval - (char*)zobj->properties->arData;
CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_ENCODE_DYN_PROP_OFFSET(idx));
goto fetch_obj_r_copy;
if (!ZEND_VM_SPEC || ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR))) {
goto fetch_obj_r_copy;
} else {
goto fetch_obj_r_fast_copy;
}
}
}
}
@ -15353,7 +15479,13 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_TMPVAR_TMPVA
if (EXPECTED(IS_VALID_PROPERTY_OFFSET(prop_offset))) {
retval = OBJ_PROP(zobj, prop_offset);
if (EXPECTED(Z_TYPE_P(retval) != IS_UNDEF)) {
goto fetch_obj_is_copy;
if (!ZEND_VM_SPEC || ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR))) {
goto fetch_obj_is_copy;
} else {
fetch_obj_is_fast_copy:
ZVAL_COPY(EX_VAR(opline->result.var), retval);
ZEND_VM_NEXT_OPCODE();
}
}
} else if (EXPECTED(zobj->properties != NULL)) {
if (!IS_UNKNOWN_DYNAMIC_PROPERTY_OFFSET(prop_offset)) {
@ -15368,7 +15500,11 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_TMPVAR_TMPVA
EXPECTED(p->key != NULL) &&
EXPECTED(zend_string_equal_content(p->key, name))))) {
retval = &p->val;
goto fetch_obj_is_copy;
if (!ZEND_VM_SPEC || ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR))) {
goto fetch_obj_is_copy;
} else {
goto fetch_obj_is_fast_copy;
}
}
}
CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_DYNAMIC_PROPERTY_OFFSET);
@ -15377,7 +15513,11 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_TMPVAR_TMPVA
if (EXPECTED(retval)) {
uintptr_t idx = (char*)retval - (char*)zobj->properties->arData;
CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_ENCODE_DYN_PROP_OFFSET(idx));
goto fetch_obj_is_copy;
if (!ZEND_VM_SPEC || ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR))) {
goto fetch_obj_is_copy;
} else {
goto fetch_obj_is_fast_copy;
}
}
}
}
@ -16747,7 +16887,13 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_R_SPEC_TMPVAR_CV_HAN
if (EXPECTED(IS_VALID_PROPERTY_OFFSET(prop_offset))) {
retval = OBJ_PROP(zobj, prop_offset);
if (EXPECTED(Z_TYPE_INFO_P(retval) != IS_UNDEF)) {
goto fetch_obj_r_copy;
if (!ZEND_VM_SPEC || ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR))) {
goto fetch_obj_r_copy;
} else {
fetch_obj_r_fast_copy:
ZVAL_COPY_DEREF(EX_VAR(opline->result.var), retval);
ZEND_VM_NEXT_OPCODE();
}
}
} else if (EXPECTED(zobj->properties != NULL)) {
if (!IS_UNKNOWN_DYNAMIC_PROPERTY_OFFSET(prop_offset)) {
@ -16762,7 +16908,11 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_R_SPEC_TMPVAR_CV_HAN
EXPECTED(p->key != NULL) &&
EXPECTED(zend_string_equal_content(p->key, name))))) {
retval = &p->val;
goto fetch_obj_r_copy;
if (!ZEND_VM_SPEC || ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR))) {
goto fetch_obj_r_copy;
} else {
goto fetch_obj_r_fast_copy;
}
}
}
CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_DYNAMIC_PROPERTY_OFFSET);
@ -16771,7 +16921,11 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_R_SPEC_TMPVAR_CV_HAN
if (EXPECTED(retval)) {
uintptr_t idx = (char*)retval - (char*)zobj->properties->arData;
CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_ENCODE_DYN_PROP_OFFSET(idx));
goto fetch_obj_r_copy;
if (!ZEND_VM_SPEC || ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR))) {
goto fetch_obj_r_copy;
} else {
goto fetch_obj_r_fast_copy;
}
}
}
}
@ -16854,7 +17008,13 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_TMPVAR_CV_HA
if (EXPECTED(IS_VALID_PROPERTY_OFFSET(prop_offset))) {
retval = OBJ_PROP(zobj, prop_offset);
if (EXPECTED(Z_TYPE_P(retval) != IS_UNDEF)) {
goto fetch_obj_is_copy;
if (!ZEND_VM_SPEC || ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR))) {
goto fetch_obj_is_copy;
} else {
fetch_obj_is_fast_copy:
ZVAL_COPY(EX_VAR(opline->result.var), retval);
ZEND_VM_NEXT_OPCODE();
}
}
} else if (EXPECTED(zobj->properties != NULL)) {
if (!IS_UNKNOWN_DYNAMIC_PROPERTY_OFFSET(prop_offset)) {
@ -16869,7 +17029,11 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_TMPVAR_CV_HA
EXPECTED(p->key != NULL) &&
EXPECTED(zend_string_equal_content(p->key, name))))) {
retval = &p->val;
goto fetch_obj_is_copy;
if (!ZEND_VM_SPEC || ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR))) {
goto fetch_obj_is_copy;
} else {
goto fetch_obj_is_fast_copy;
}
}
}
CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_DYNAMIC_PROPERTY_OFFSET);
@ -16878,7 +17042,11 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_TMPVAR_CV_HA
if (EXPECTED(retval)) {
uintptr_t idx = (char*)retval - (char*)zobj->properties->arData;
CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_ENCODE_DYN_PROP_OFFSET(idx));
goto fetch_obj_is_copy;
if (!ZEND_VM_SPEC || ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR))) {
goto fetch_obj_is_copy;
} else {
goto fetch_obj_is_fast_copy;
}
}
}
}
@ -31532,7 +31700,13 @@ static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_R_SPEC_U
if (EXPECTED(IS_VALID_PROPERTY_OFFSET(prop_offset))) {
retval = OBJ_PROP(zobj, prop_offset);
if (EXPECTED(Z_TYPE_INFO_P(retval) != IS_UNDEF)) {
goto fetch_obj_r_copy;
if (!ZEND_VM_SPEC || (IS_UNUSED & (IS_TMP_VAR|IS_VAR))) {
goto fetch_obj_r_copy;
} else {
fetch_obj_r_fast_copy:
ZVAL_COPY_DEREF(EX_VAR(opline->result.var), retval);
ZEND_VM_NEXT_OPCODE();
}
}
} else if (EXPECTED(zobj->properties != NULL)) {
if (!IS_UNKNOWN_DYNAMIC_PROPERTY_OFFSET(prop_offset)) {
@ -31547,7 +31721,11 @@ static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_R_SPEC_U
EXPECTED(p->key != NULL) &&
EXPECTED(zend_string_equal_content(p->key, name))))) {
retval = &p->val;
goto fetch_obj_r_copy;
if (!ZEND_VM_SPEC || (IS_UNUSED & (IS_TMP_VAR|IS_VAR))) {
goto fetch_obj_r_copy;
} else {
goto fetch_obj_r_fast_copy;
}
}
}
CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_DYNAMIC_PROPERTY_OFFSET);
@ -31556,7 +31734,11 @@ static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_R_SPEC_U
if (EXPECTED(retval)) {
uintptr_t idx = (char*)retval - (char*)zobj->properties->arData;
CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_ENCODE_DYN_PROP_OFFSET(idx));
goto fetch_obj_r_copy;
if (!ZEND_VM_SPEC || (IS_UNUSED & (IS_TMP_VAR|IS_VAR))) {
goto fetch_obj_r_copy;
} else {
goto fetch_obj_r_fast_copy;
}
}
}
}
@ -31687,7 +31869,13 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_UNUSED_CONST
if (EXPECTED(IS_VALID_PROPERTY_OFFSET(prop_offset))) {
retval = OBJ_PROP(zobj, prop_offset);
if (EXPECTED(Z_TYPE_P(retval) != IS_UNDEF)) {
goto fetch_obj_is_copy;
if (!ZEND_VM_SPEC || (IS_UNUSED & (IS_TMP_VAR|IS_VAR))) {
goto fetch_obj_is_copy;
} else {
fetch_obj_is_fast_copy:
ZVAL_COPY(EX_VAR(opline->result.var), retval);
ZEND_VM_NEXT_OPCODE();
}
}
} else if (EXPECTED(zobj->properties != NULL)) {
if (!IS_UNKNOWN_DYNAMIC_PROPERTY_OFFSET(prop_offset)) {
@ -31702,7 +31890,11 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_UNUSED_CONST
EXPECTED(p->key != NULL) &&
EXPECTED(zend_string_equal_content(p->key, name))))) {
retval = &p->val;
goto fetch_obj_is_copy;
if (!ZEND_VM_SPEC || (IS_UNUSED & (IS_TMP_VAR|IS_VAR))) {
goto fetch_obj_is_copy;
} else {
goto fetch_obj_is_fast_copy;
}
}
}
CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_DYNAMIC_PROPERTY_OFFSET);
@ -31711,7 +31903,11 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_UNUSED_CONST
if (EXPECTED(retval)) {
uintptr_t idx = (char*)retval - (char*)zobj->properties->arData;
CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_ENCODE_DYN_PROP_OFFSET(idx));
goto fetch_obj_is_copy;
if (!ZEND_VM_SPEC || (IS_UNUSED & (IS_TMP_VAR|IS_VAR))) {
goto fetch_obj_is_copy;
} else {
goto fetch_obj_is_fast_copy;
}
}
}
}
@ -33554,7 +33750,13 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_R_SPEC_UNUSED_TMPVAR
if (EXPECTED(IS_VALID_PROPERTY_OFFSET(prop_offset))) {
retval = OBJ_PROP(zobj, prop_offset);
if (EXPECTED(Z_TYPE_INFO_P(retval) != IS_UNDEF)) {
goto fetch_obj_r_copy;
if (!ZEND_VM_SPEC || (IS_UNUSED & (IS_TMP_VAR|IS_VAR))) {
goto fetch_obj_r_copy;
} else {
fetch_obj_r_fast_copy:
ZVAL_COPY_DEREF(EX_VAR(opline->result.var), retval);
ZEND_VM_NEXT_OPCODE();
}
}
} else if (EXPECTED(zobj->properties != NULL)) {
if (!IS_UNKNOWN_DYNAMIC_PROPERTY_OFFSET(prop_offset)) {
@ -33569,7 +33771,11 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_R_SPEC_UNUSED_TMPVAR
EXPECTED(p->key != NULL) &&
EXPECTED(zend_string_equal_content(p->key, name))))) {
retval = &p->val;
goto fetch_obj_r_copy;
if (!ZEND_VM_SPEC || (IS_UNUSED & (IS_TMP_VAR|IS_VAR))) {
goto fetch_obj_r_copy;
} else {
goto fetch_obj_r_fast_copy;
}
}
}
CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_DYNAMIC_PROPERTY_OFFSET);
@ -33578,7 +33784,11 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_R_SPEC_UNUSED_TMPVAR
if (EXPECTED(retval)) {
uintptr_t idx = (char*)retval - (char*)zobj->properties->arData;
CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_ENCODE_DYN_PROP_OFFSET(idx));
goto fetch_obj_r_copy;
if (!ZEND_VM_SPEC || (IS_UNUSED & (IS_TMP_VAR|IS_VAR))) {
goto fetch_obj_r_copy;
} else {
goto fetch_obj_r_fast_copy;
}
}
}
}
@ -33709,7 +33919,13 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_UNUSED_TMPVA
if (EXPECTED(IS_VALID_PROPERTY_OFFSET(prop_offset))) {
retval = OBJ_PROP(zobj, prop_offset);
if (EXPECTED(Z_TYPE_P(retval) != IS_UNDEF)) {
goto fetch_obj_is_copy;
if (!ZEND_VM_SPEC || (IS_UNUSED & (IS_TMP_VAR|IS_VAR))) {
goto fetch_obj_is_copy;
} else {
fetch_obj_is_fast_copy:
ZVAL_COPY(EX_VAR(opline->result.var), retval);
ZEND_VM_NEXT_OPCODE();
}
}
} else if (EXPECTED(zobj->properties != NULL)) {
if (!IS_UNKNOWN_DYNAMIC_PROPERTY_OFFSET(prop_offset)) {
@ -33724,7 +33940,11 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_UNUSED_TMPVA
EXPECTED(p->key != NULL) &&
EXPECTED(zend_string_equal_content(p->key, name))))) {
retval = &p->val;
goto fetch_obj_is_copy;
if (!ZEND_VM_SPEC || (IS_UNUSED & (IS_TMP_VAR|IS_VAR))) {
goto fetch_obj_is_copy;
} else {
goto fetch_obj_is_fast_copy;
}
}
}
CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_DYNAMIC_PROPERTY_OFFSET);
@ -33733,7 +33953,11 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_UNUSED_TMPVA
if (EXPECTED(retval)) {
uintptr_t idx = (char*)retval - (char*)zobj->properties->arData;
CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_ENCODE_DYN_PROP_OFFSET(idx));
goto fetch_obj_is_copy;
if (!ZEND_VM_SPEC || (IS_UNUSED & (IS_TMP_VAR|IS_VAR))) {
goto fetch_obj_is_copy;
} else {
goto fetch_obj_is_fast_copy;
}
}
}
}
@ -36241,7 +36465,13 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_R_SPEC_UNUSED_CV_HAN
if (EXPECTED(IS_VALID_PROPERTY_OFFSET(prop_offset))) {
retval = OBJ_PROP(zobj, prop_offset);
if (EXPECTED(Z_TYPE_INFO_P(retval) != IS_UNDEF)) {
goto fetch_obj_r_copy;
if (!ZEND_VM_SPEC || (IS_UNUSED & (IS_TMP_VAR|IS_VAR))) {
goto fetch_obj_r_copy;
} else {
fetch_obj_r_fast_copy:
ZVAL_COPY_DEREF(EX_VAR(opline->result.var), retval);
ZEND_VM_NEXT_OPCODE();
}
}
} else if (EXPECTED(zobj->properties != NULL)) {
if (!IS_UNKNOWN_DYNAMIC_PROPERTY_OFFSET(prop_offset)) {
@ -36256,7 +36486,11 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_R_SPEC_UNUSED_CV_HAN
EXPECTED(p->key != NULL) &&
EXPECTED(zend_string_equal_content(p->key, name))))) {
retval = &p->val;
goto fetch_obj_r_copy;
if (!ZEND_VM_SPEC || (IS_UNUSED & (IS_TMP_VAR|IS_VAR))) {
goto fetch_obj_r_copy;
} else {
goto fetch_obj_r_fast_copy;
}
}
}
CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_DYNAMIC_PROPERTY_OFFSET);
@ -36265,7 +36499,11 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_R_SPEC_UNUSED_CV_HAN
if (EXPECTED(retval)) {
uintptr_t idx = (char*)retval - (char*)zobj->properties->arData;
CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_ENCODE_DYN_PROP_OFFSET(idx));
goto fetch_obj_r_copy;
if (!ZEND_VM_SPEC || (IS_UNUSED & (IS_TMP_VAR|IS_VAR))) {
goto fetch_obj_r_copy;
} else {
goto fetch_obj_r_fast_copy;
}
}
}
}
@ -36396,7 +36634,13 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_UNUSED_CV_HA
if (EXPECTED(IS_VALID_PROPERTY_OFFSET(prop_offset))) {
retval = OBJ_PROP(zobj, prop_offset);
if (EXPECTED(Z_TYPE_P(retval) != IS_UNDEF)) {
goto fetch_obj_is_copy;
if (!ZEND_VM_SPEC || (IS_UNUSED & (IS_TMP_VAR|IS_VAR))) {
goto fetch_obj_is_copy;
} else {
fetch_obj_is_fast_copy:
ZVAL_COPY(EX_VAR(opline->result.var), retval);
ZEND_VM_NEXT_OPCODE();
}
}
} else if (EXPECTED(zobj->properties != NULL)) {
if (!IS_UNKNOWN_DYNAMIC_PROPERTY_OFFSET(prop_offset)) {
@ -36411,7 +36655,11 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_UNUSED_CV_HA
EXPECTED(p->key != NULL) &&
EXPECTED(zend_string_equal_content(p->key, name))))) {
retval = &p->val;
goto fetch_obj_is_copy;
if (!ZEND_VM_SPEC || (IS_UNUSED & (IS_TMP_VAR|IS_VAR))) {
goto fetch_obj_is_copy;
} else {
goto fetch_obj_is_fast_copy;
}
}
}
CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_DYNAMIC_PROPERTY_OFFSET);
@ -36420,7 +36668,11 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_UNUSED_CV_HA
if (EXPECTED(retval)) {
uintptr_t idx = (char*)retval - (char*)zobj->properties->arData;
CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_ENCODE_DYN_PROP_OFFSET(idx));
goto fetch_obj_is_copy;
if (!ZEND_VM_SPEC || (IS_UNUSED & (IS_TMP_VAR|IS_VAR))) {
goto fetch_obj_is_copy;
} else {
goto fetch_obj_is_fast_copy;
}
}
}
}
@ -40969,7 +41221,13 @@ static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_R_SPEC_C
if (EXPECTED(IS_VALID_PROPERTY_OFFSET(prop_offset))) {
retval = OBJ_PROP(zobj, prop_offset);
if (EXPECTED(Z_TYPE_INFO_P(retval) != IS_UNDEF)) {
goto fetch_obj_r_copy;
if (!ZEND_VM_SPEC || (IS_CV & (IS_TMP_VAR|IS_VAR))) {
goto fetch_obj_r_copy;
} else {
fetch_obj_r_fast_copy:
ZVAL_COPY_DEREF(EX_VAR(opline->result.var), retval);
ZEND_VM_NEXT_OPCODE();
}
}
} else if (EXPECTED(zobj->properties != NULL)) {
if (!IS_UNKNOWN_DYNAMIC_PROPERTY_OFFSET(prop_offset)) {
@ -40984,7 +41242,11 @@ static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_R_SPEC_C
EXPECTED(p->key != NULL) &&
EXPECTED(zend_string_equal_content(p->key, name))))) {
retval = &p->val;
goto fetch_obj_r_copy;
if (!ZEND_VM_SPEC || (IS_CV & (IS_TMP_VAR|IS_VAR))) {
goto fetch_obj_r_copy;
} else {
goto fetch_obj_r_fast_copy;
}
}
}
CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_DYNAMIC_PROPERTY_OFFSET);
@ -40993,7 +41255,11 @@ static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_R_SPEC_C
if (EXPECTED(retval)) {
uintptr_t idx = (char*)retval - (char*)zobj->properties->arData;
CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_ENCODE_DYN_PROP_OFFSET(idx));
goto fetch_obj_r_copy;
if (!ZEND_VM_SPEC || (IS_CV & (IS_TMP_VAR|IS_VAR))) {
goto fetch_obj_r_copy;
} else {
goto fetch_obj_r_fast_copy;
}
}
}
}
@ -41124,7 +41390,13 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_CV_CONST_HAN
if (EXPECTED(IS_VALID_PROPERTY_OFFSET(prop_offset))) {
retval = OBJ_PROP(zobj, prop_offset);
if (EXPECTED(Z_TYPE_P(retval) != IS_UNDEF)) {
goto fetch_obj_is_copy;
if (!ZEND_VM_SPEC || (IS_CV & (IS_TMP_VAR|IS_VAR))) {
goto fetch_obj_is_copy;
} else {
fetch_obj_is_fast_copy:
ZVAL_COPY(EX_VAR(opline->result.var), retval);
ZEND_VM_NEXT_OPCODE();
}
}
} else if (EXPECTED(zobj->properties != NULL)) {
if (!IS_UNKNOWN_DYNAMIC_PROPERTY_OFFSET(prop_offset)) {
@ -41139,7 +41411,11 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_CV_CONST_HAN
EXPECTED(p->key != NULL) &&
EXPECTED(zend_string_equal_content(p->key, name))))) {
retval = &p->val;
goto fetch_obj_is_copy;
if (!ZEND_VM_SPEC || (IS_CV & (IS_TMP_VAR|IS_VAR))) {
goto fetch_obj_is_copy;
} else {
goto fetch_obj_is_fast_copy;
}
}
}
CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_DYNAMIC_PROPERTY_OFFSET);
@ -41148,7 +41424,11 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_CV_CONST_HAN
if (EXPECTED(retval)) {
uintptr_t idx = (char*)retval - (char*)zobj->properties->arData;
CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_ENCODE_DYN_PROP_OFFSET(idx));
goto fetch_obj_is_copy;
if (!ZEND_VM_SPEC || (IS_CV & (IS_TMP_VAR|IS_VAR))) {
goto fetch_obj_is_copy;
} else {
goto fetch_obj_is_fast_copy;
}
}
}
}
@ -44977,7 +45257,13 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_R_SPEC_CV_TMPVAR_HAN
if (EXPECTED(IS_VALID_PROPERTY_OFFSET(prop_offset))) {
retval = OBJ_PROP(zobj, prop_offset);
if (EXPECTED(Z_TYPE_INFO_P(retval) != IS_UNDEF)) {
goto fetch_obj_r_copy;
if (!ZEND_VM_SPEC || (IS_CV & (IS_TMP_VAR|IS_VAR))) {
goto fetch_obj_r_copy;
} else {
fetch_obj_r_fast_copy:
ZVAL_COPY_DEREF(EX_VAR(opline->result.var), retval);
ZEND_VM_NEXT_OPCODE();
}
}
} else if (EXPECTED(zobj->properties != NULL)) {
if (!IS_UNKNOWN_DYNAMIC_PROPERTY_OFFSET(prop_offset)) {
@ -44992,7 +45278,11 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_R_SPEC_CV_TMPVAR_HAN
EXPECTED(p->key != NULL) &&
EXPECTED(zend_string_equal_content(p->key, name))))) {
retval = &p->val;
goto fetch_obj_r_copy;
if (!ZEND_VM_SPEC || (IS_CV & (IS_TMP_VAR|IS_VAR))) {
goto fetch_obj_r_copy;
} else {
goto fetch_obj_r_fast_copy;
}
}
}
CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_DYNAMIC_PROPERTY_OFFSET);
@ -45001,7 +45291,11 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_R_SPEC_CV_TMPVAR_HAN
if (EXPECTED(retval)) {
uintptr_t idx = (char*)retval - (char*)zobj->properties->arData;
CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_ENCODE_DYN_PROP_OFFSET(idx));
goto fetch_obj_r_copy;
if (!ZEND_VM_SPEC || (IS_CV & (IS_TMP_VAR|IS_VAR))) {
goto fetch_obj_r_copy;
} else {
goto fetch_obj_r_fast_copy;
}
}
}
}
@ -45132,7 +45426,13 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_CV_TMPVAR_HA
if (EXPECTED(IS_VALID_PROPERTY_OFFSET(prop_offset))) {
retval = OBJ_PROP(zobj, prop_offset);
if (EXPECTED(Z_TYPE_P(retval) != IS_UNDEF)) {
goto fetch_obj_is_copy;
if (!ZEND_VM_SPEC || (IS_CV & (IS_TMP_VAR|IS_VAR))) {
goto fetch_obj_is_copy;
} else {
fetch_obj_is_fast_copy:
ZVAL_COPY(EX_VAR(opline->result.var), retval);
ZEND_VM_NEXT_OPCODE();
}
}
} else if (EXPECTED(zobj->properties != NULL)) {
if (!IS_UNKNOWN_DYNAMIC_PROPERTY_OFFSET(prop_offset)) {
@ -45147,7 +45447,11 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_CV_TMPVAR_HA
EXPECTED(p->key != NULL) &&
EXPECTED(zend_string_equal_content(p->key, name))))) {
retval = &p->val;
goto fetch_obj_is_copy;
if (!ZEND_VM_SPEC || (IS_CV & (IS_TMP_VAR|IS_VAR))) {
goto fetch_obj_is_copy;
} else {
goto fetch_obj_is_fast_copy;
}
}
}
CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_DYNAMIC_PROPERTY_OFFSET);
@ -45156,7 +45460,11 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_CV_TMPVAR_HA
if (EXPECTED(retval)) {
uintptr_t idx = (char*)retval - (char*)zobj->properties->arData;
CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_ENCODE_DYN_PROP_OFFSET(idx));
goto fetch_obj_is_copy;
if (!ZEND_VM_SPEC || (IS_CV & (IS_TMP_VAR|IS_VAR))) {
goto fetch_obj_is_copy;
} else {
goto fetch_obj_is_fast_copy;
}
}
}
}
@ -50616,7 +50924,13 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_R_SPEC_CV_CV_HANDLER
if (EXPECTED(IS_VALID_PROPERTY_OFFSET(prop_offset))) {
retval = OBJ_PROP(zobj, prop_offset);
if (EXPECTED(Z_TYPE_INFO_P(retval) != IS_UNDEF)) {
goto fetch_obj_r_copy;
if (!ZEND_VM_SPEC || (IS_CV & (IS_TMP_VAR|IS_VAR))) {
goto fetch_obj_r_copy;
} else {
fetch_obj_r_fast_copy:
ZVAL_COPY_DEREF(EX_VAR(opline->result.var), retval);
ZEND_VM_NEXT_OPCODE();
}
}
} else if (EXPECTED(zobj->properties != NULL)) {
if (!IS_UNKNOWN_DYNAMIC_PROPERTY_OFFSET(prop_offset)) {
@ -50631,7 +50945,11 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_R_SPEC_CV_CV_HANDLER
EXPECTED(p->key != NULL) &&
EXPECTED(zend_string_equal_content(p->key, name))))) {
retval = &p->val;
goto fetch_obj_r_copy;
if (!ZEND_VM_SPEC || (IS_CV & (IS_TMP_VAR|IS_VAR))) {
goto fetch_obj_r_copy;
} else {
goto fetch_obj_r_fast_copy;
}
}
}
CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_DYNAMIC_PROPERTY_OFFSET);
@ -50640,7 +50958,11 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_R_SPEC_CV_CV_HANDLER
if (EXPECTED(retval)) {
uintptr_t idx = (char*)retval - (char*)zobj->properties->arData;
CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_ENCODE_DYN_PROP_OFFSET(idx));
goto fetch_obj_r_copy;
if (!ZEND_VM_SPEC || (IS_CV & (IS_TMP_VAR|IS_VAR))) {
goto fetch_obj_r_copy;
} else {
goto fetch_obj_r_fast_copy;
}
}
}
}
@ -50771,7 +51093,13 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_CV_CV_HANDLE
if (EXPECTED(IS_VALID_PROPERTY_OFFSET(prop_offset))) {
retval = OBJ_PROP(zobj, prop_offset);
if (EXPECTED(Z_TYPE_P(retval) != IS_UNDEF)) {
goto fetch_obj_is_copy;
if (!ZEND_VM_SPEC || (IS_CV & (IS_TMP_VAR|IS_VAR))) {
goto fetch_obj_is_copy;
} else {
fetch_obj_is_fast_copy:
ZVAL_COPY(EX_VAR(opline->result.var), retval);
ZEND_VM_NEXT_OPCODE();
}
}
} else if (EXPECTED(zobj->properties != NULL)) {
if (!IS_UNKNOWN_DYNAMIC_PROPERTY_OFFSET(prop_offset)) {
@ -50786,7 +51114,11 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_CV_CV_HANDLE
EXPECTED(p->key != NULL) &&
EXPECTED(zend_string_equal_content(p->key, name))))) {
retval = &p->val;
goto fetch_obj_is_copy;
if (!ZEND_VM_SPEC || (IS_CV & (IS_TMP_VAR|IS_VAR))) {
goto fetch_obj_is_copy;
} else {
goto fetch_obj_is_fast_copy;
}
}
}
CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_DYNAMIC_PROPERTY_OFFSET);
@ -50795,7 +51127,11 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_CV_CV_HANDLE
if (EXPECTED(retval)) {
uintptr_t idx = (char*)retval - (char*)zobj->properties->arData;
CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_ENCODE_DYN_PROP_OFFSET(idx));
goto fetch_obj_is_copy;
if (!ZEND_VM_SPEC || (IS_CV & (IS_TMP_VAR|IS_VAR))) {
goto fetch_obj_is_copy;
} else {
goto fetch_obj_is_fast_copy;
}
}
}
}