]> granicus.if.org Git - php/commitdiff
Fixed incorrect register allocation in ext/gd/tests/imagecopyresampled_variation1...
authorDmitry Stogov <dmitry@zend.com>
Mon, 26 Oct 2020 12:56:37 +0000 (15:56 +0300)
committerDmitry Stogov <dmitry@zend.com>
Mon, 26 Oct 2020 12:56:37 +0000 (15:56 +0300)
ext/opcache/jit/zend_jit_x86.dasc

index 3acf4b740ed3fafea11936c5e5b0c30ece54bbc2..c0f4ce3e30027f4e085362f7a06448bcd67758bb 100644 (file)
@@ -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);