mirror of
https://github.com/php/php-src.git
synced 2024-09-25 03:47:26 +00:00
Support for optimization introduced in DFA pass (it may change type of instruction return oprand to IS_CV)
This commit is contained in:
parent
62e8eadfa0
commit
00a3714e05
@ -6021,7 +6021,7 @@ ZEND_VM_HANDLER(78, ZEND_FE_FETCH_R, VAR, ANY, JMP_ADDR)
|
||||
break;
|
||||
}
|
||||
Z_FE_POS_P(array) = pos + 1;
|
||||
if (opline->result_type == IS_TMP_VAR) {
|
||||
if (opline->result_type & (IS_TMP_VAR|IS_CV)) {
|
||||
if (!p->key) {
|
||||
ZVAL_LONG(EX_VAR(opline->result.var), p->h);
|
||||
} else {
|
||||
@ -6065,7 +6065,7 @@ ZEND_VM_HANDLER(78, ZEND_FE_FETCH_R, VAR, ANY, JMP_ADDR)
|
||||
pos++;
|
||||
p++;
|
||||
}
|
||||
if (opline->result_type == IS_TMP_VAR) {
|
||||
if (opline->result_type & (IS_TMP_VAR|IS_CV)) {
|
||||
if (UNEXPECTED(!p->key)) {
|
||||
ZVAL_LONG(EX_VAR(opline->result.var), p->h);
|
||||
} else if (ZSTR_VAL(p->key)[0]) {
|
||||
@ -6118,7 +6118,7 @@ ZEND_VM_HANDLER(78, ZEND_FE_FETCH_R, VAR, ANY, JMP_ADDR)
|
||||
/* failure in get_current_data */
|
||||
ZEND_VM_C_GOTO(fe_fetch_r_exit);
|
||||
}
|
||||
if (opline->result_type == IS_TMP_VAR) {
|
||||
if (opline->result_type & (IS_TMP_VAR|IS_CV)) {
|
||||
if (iter->funcs->get_current_key) {
|
||||
iter->funcs->get_current_key(iter, EX_VAR(opline->result.var));
|
||||
if (UNEXPECTED(EG(exception) != NULL)) {
|
||||
@ -6195,7 +6195,7 @@ ZEND_VM_HANDLER(126, ZEND_FE_FETCH_RW, VAR, ANY, JMP_ADDR)
|
||||
}
|
||||
break;
|
||||
}
|
||||
if (opline->result_type == IS_TMP_VAR) {
|
||||
if (opline->result_type & (IS_TMP_VAR|IS_CV)) {
|
||||
if (!p->key) {
|
||||
ZVAL_LONG(EX_VAR(opline->result.var), p->h);
|
||||
} else {
|
||||
@ -6253,7 +6253,7 @@ ZEND_VM_HANDLER(126, ZEND_FE_FETCH_RW, VAR, ANY, JMP_ADDR)
|
||||
pos++;
|
||||
p++;
|
||||
}
|
||||
if (opline->result_type == IS_TMP_VAR) {
|
||||
if (opline->result_type & (IS_TMP_VAR|IS_CV)) {
|
||||
if (UNEXPECTED(!p->key)) {
|
||||
ZVAL_LONG(EX_VAR(opline->result.var), p->h);
|
||||
} else if (ZSTR_VAL(p->key)[0]) {
|
||||
@ -6306,7 +6306,7 @@ ZEND_VM_HANDLER(126, ZEND_FE_FETCH_RW, VAR, ANY, JMP_ADDR)
|
||||
/* failure in get_current_data */
|
||||
ZEND_VM_C_GOTO(fe_fetch_w_exit);
|
||||
}
|
||||
if (opline->result_type == IS_TMP_VAR) {
|
||||
if (opline->result_type & (IS_TMP_VAR|IS_CV)) {
|
||||
if (iter->funcs->get_current_key) {
|
||||
iter->funcs->get_current_key(iter, EX_VAR(opline->result.var));
|
||||
if (UNEXPECTED(EG(exception) != NULL)) {
|
||||
|
@ -15583,7 +15583,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FE_FETCH_R_SPEC_VAR_HANDLER(ZE
|
||||
break;
|
||||
}
|
||||
Z_FE_POS_P(array) = pos + 1;
|
||||
if (opline->result_type == IS_TMP_VAR) {
|
||||
if (opline->result_type & (IS_TMP_VAR|IS_CV)) {
|
||||
if (!p->key) {
|
||||
ZVAL_LONG(EX_VAR(opline->result.var), p->h);
|
||||
} else {
|
||||
@ -15627,7 +15627,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FE_FETCH_R_SPEC_VAR_HANDLER(ZE
|
||||
pos++;
|
||||
p++;
|
||||
}
|
||||
if (opline->result_type == IS_TMP_VAR) {
|
||||
if (opline->result_type & (IS_TMP_VAR|IS_CV)) {
|
||||
if (UNEXPECTED(!p->key)) {
|
||||
ZVAL_LONG(EX_VAR(opline->result.var), p->h);
|
||||
} else if (ZSTR_VAL(p->key)[0]) {
|
||||
@ -15680,7 +15680,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FE_FETCH_R_SPEC_VAR_HANDLER(ZE
|
||||
/* failure in get_current_data */
|
||||
goto fe_fetch_r_exit;
|
||||
}
|
||||
if (opline->result_type == IS_TMP_VAR) {
|
||||
if (opline->result_type & (IS_TMP_VAR|IS_CV)) {
|
||||
if (iter->funcs->get_current_key) {
|
||||
iter->funcs->get_current_key(iter, EX_VAR(opline->result.var));
|
||||
if (UNEXPECTED(EG(exception) != NULL)) {
|
||||
@ -15757,7 +15757,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FE_FETCH_RW_SPEC_VAR_HANDLER(Z
|
||||
}
|
||||
break;
|
||||
}
|
||||
if (opline->result_type == IS_TMP_VAR) {
|
||||
if (opline->result_type & (IS_TMP_VAR|IS_CV)) {
|
||||
if (!p->key) {
|
||||
ZVAL_LONG(EX_VAR(opline->result.var), p->h);
|
||||
} else {
|
||||
@ -15815,7 +15815,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FE_FETCH_RW_SPEC_VAR_HANDLER(Z
|
||||
pos++;
|
||||
p++;
|
||||
}
|
||||
if (opline->result_type == IS_TMP_VAR) {
|
||||
if (opline->result_type & (IS_TMP_VAR|IS_CV)) {
|
||||
if (UNEXPECTED(!p->key)) {
|
||||
ZVAL_LONG(EX_VAR(opline->result.var), p->h);
|
||||
} else if (ZSTR_VAL(p->key)[0]) {
|
||||
@ -15868,7 +15868,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FE_FETCH_RW_SPEC_VAR_HANDLER(Z
|
||||
/* failure in get_current_data */
|
||||
goto fe_fetch_w_exit;
|
||||
}
|
||||
if (opline->result_type == IS_TMP_VAR) {
|
||||
if (opline->result_type & (IS_TMP_VAR|IS_CV)) {
|
||||
if (iter->funcs->get_current_key) {
|
||||
iter->funcs->get_current_key(iter, EX_VAR(opline->result.var));
|
||||
if (UNEXPECTED(EG(exception) != NULL)) {
|
||||
|
Loading…
Reference in New Issue
Block a user