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

Merge branch 'PHP-8.1'

* PHP-8.1:
  Tracing JIT: Fixed missed type store in deoptimization code
This commit is contained in:
Dmitry Stogov
2021-11-09 00:56:42 +03:00

View File

@@ -3508,14 +3508,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 */