]> granicus.if.org Git - php/commitdiff
Fixed observer API and JIT compatibility
authorDmitry Stogov <dmitry@zend.com>
Tue, 26 Jan 2021 18:31:15 +0000 (21:31 +0300)
committerDmitry Stogov <dmitry@zend.com>
Tue, 26 Jan 2021 18:31:15 +0000 (21:31 +0300)
ext/opcache/jit/zend_jit_x86.dasc

index 91038b1be4217f39f7692140a9f8c140157cd200..93e95886aa095e6283fe402b52f1fa3be3b03bb7 100644 (file)
@@ -11432,6 +11432,14 @@ static int zend_jit_return(dasm_State **Dst, const zend_op *opline, const zend_o
        }
 
        if (ZEND_OBSERVER_ENABLED) {
+               if (Z_MODE(op1_addr) == IS_REG) {
+                       zend_jit_addr dst = ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var);
+
+                       if (!zend_jit_spill_store(Dst, op1_addr, dst, op1_info, 1)) {
+                               return 0;
+                       }
+                       op1_addr = dst;
+               }
                |       LOAD_ZVAL_ADDR FCARG2a, op1_addr
                |       mov FCARG1a, FP
                |       SET_EX_OPLINE opline, r0