]> granicus.if.org Git - php/commitdiff
Fixed register clobbering
authorDmitry Stogov <dmitry@zend.com>
Wed, 18 Nov 2020 07:22:25 +0000 (10:22 +0300)
committerDmitry Stogov <dmitry@zend.com>
Wed, 18 Nov 2020 07:22:25 +0000 (10:22 +0300)
ext/opcache/jit/zend_jit_x86.dasc

index f00ea8cb9c92eca7d6ddabf4820056f43f3a280f..9187e3d7f0d13ddf205f1047245fa680f3190a5a 100644 (file)
@@ -3137,6 +3137,10 @@ static int zend_jit_trace_begin(dasm_State **Dst, uint32_t trace_num, zend_jit_t
                }
        }
 
+       if (parent && parent->exit_info[exit_num].flags & ZEND_JIT_EXIT_METHOD_CALL) {
+               ZEND_REGSET_EXCL(regset, ZREG_R0);
+       }
+
        current_trace_num = trace_num;
 
        |       // EG(jit_trace_num) = trace_num;