1
0
mirror of https://github.com/php/php-src.git synced 2026-04-18 13:31:27 +02:00

Tracing JIT: Fixed missed type store in deoptimization code

This commit is contained in:
Dmitry Stogov
2021-11-09 00:55:40 +03:00
parent 9bd490dc33
commit eda9d7ac22

View File

@@ -3495,14 +3495,14 @@ static int zend_jit_trace_deoptimization(dasm_State **Dst,
} else {
uint8_t type = STACK_TYPE(parent_stack, i);
if (stack) {
SET_STACK_TYPE(stack, i, type, 1);
}
if (!(STACK_FLAGS(parent_stack, i) & (ZREG_LOAD|ZREG_STORE))
&& !zend_jit_store_var(Dst, 1 << type, i, reg,
STACK_MEM_TYPE(parent_stack, i) != type)) {
return 0;
}
if (stack) {
SET_STACK_TYPE(stack, i, type, 1);
}
}
} else {
/* delay custom deoptimization instructions to prevent register clobbering */