From: Dmitry Stogov Date: Fri, 6 Dec 2019 14:16:46 +0000 (+0300) Subject: Fixed operation with result in CPU register X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=ebf35cc8e8a8affd7d6b007c30db46259b5b8264;p=php Fixed operation with result in CPU register --- diff --git a/ext/opcache/jit/zend_jit_x86.dasc b/ext/opcache/jit/zend_jit_x86.dasc index ac64668e67..e48f406149 100644 --- a/ext/opcache/jit/zend_jit_x86.dasc +++ b/ext/opcache/jit/zend_jit_x86.dasc @@ -3038,10 +3038,12 @@ static int zend_jit_math_long_long(dasm_State **Dst, | jo >1 } - | SET_ZVAL_LVAL res_addr, Ra(result_reg) - if (Z_MODE(op1_addr) != IS_MEM_ZVAL || Z_REG(op1_addr) != Z_REG(res_addr) || Z_OFFSET(op1_addr) != Z_OFFSET(res_addr)) { - if ((res_use_info & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_REF)) != MAY_BE_LONG) { - | SET_ZVAL_TYPE_INFO res_addr, IS_LONG + if (Z_MODE(res_addr) == IS_MEM_ZVAL) { + | SET_ZVAL_LVAL res_addr, Ra(result_reg) + if (Z_MODE(op1_addr) != IS_MEM_ZVAL || Z_REG(op1_addr) != Z_REG(res_addr) || Z_OFFSET(op1_addr) != Z_OFFSET(res_addr)) { + if ((res_use_info & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_REF)) != MAY_BE_LONG) { + | SET_ZVAL_TYPE_INFO res_addr, IS_LONG + } } }