summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@zend.com>2020-10-26 15:56:37 +0300
committerDmitry Stogov <dmitry@zend.com>2020-10-26 15:56:37 +0300
commit0fa154ad8da89f25dae6141dd5398aa9c1821699 (patch)
treee53ef9f8bc5d2f01c9b93d2371c1016a08902fd3
parente71036ce03a46b2c0c8b9200262fadfac0ea65eb (diff)
downloadphp-git-0fa154ad8da89f25dae6141dd5398aa9c1821699.tar.gz
Fixed incorrect register allocation in ext/gd/tests/imagecopyresampled_variation1.phpt
-rw-r--r--ext/opcache/jit/zend_jit_x86.dasc4
1 files changed, 3 insertions, 1 deletions
diff --git a/ext/opcache/jit/zend_jit_x86.dasc b/ext/opcache/jit/zend_jit_x86.dasc
index 3acf4b740e..c0f4ce3e30 100644
--- a/ext/opcache/jit/zend_jit_x86.dasc
+++ b/ext/opcache/jit/zend_jit_x86.dasc
@@ -15382,7 +15382,9 @@ static zend_regset zend_jit_get_scratch_regset(const zend_op *opline, const zend
regset = ZEND_REGSET_EMPTY;
if (opline->op2_type == IS_CONST &&
Z_TYPE_P(RT_CONSTANT(opline, opline->op2)) == IS_LONG &&
- zend_long_is_power_of_two(Z_LVAL_P(RT_CONSTANT(opline, opline->op2)))) {
+ zend_long_is_power_of_two(Z_LVAL_P(RT_CONSTANT(opline, opline->op2))) &&
+ OP1_HAS_RANGE() &&
+ OP1_MIN_RANGE() >= 0) {
if (ssa_op->result_def != current_var &&
(ssa_op->op1_use != current_var || !last_use)) {
ZEND_REGSET_INCL(regset, ZREG_R0);