]> granicus.if.org Git - php/commitdiff
Fixed operation with result in CPU register
authorDmitry Stogov <dmitry@zend.com>
Fri, 6 Dec 2019 14:16:46 +0000 (17:16 +0300)
committerDmitry Stogov <dmitry@zend.com>
Fri, 6 Dec 2019 14:16:46 +0000 (17:16 +0300)
ext/opcache/jit/zend_jit_x86.dasc

index ac64668e674787faaaeb163646f06474e0260a8e..e48f406149b76a764cdae8c014c1078aa03826b5 100644 (file)
@@ -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
+                       }
                }
        }