summaryrefslogtreecommitdiff
path: root/ext/opcache
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@zend.com>2020-11-18 10:22:25 +0300
committerDmitry Stogov <dmitry@zend.com>2020-11-18 10:22:25 +0300
commitfeed041fc88d14da20e3bb1db7e17b8982b2687f (patch)
tree7368d4504ee5c2da56fdf98b7ceffec3880d53c6 /ext/opcache
parent9841e8e411b562675f7705ff67f6a2f2bd1c2bd9 (diff)
downloadphp-git-feed041fc88d14da20e3bb1db7e17b8982b2687f.tar.gz
Fixed register clobbering
Diffstat (limited to 'ext/opcache')
-rw-r--r--ext/opcache/jit/zend_jit_x86.dasc4
1 files changed, 4 insertions, 0 deletions
diff --git a/ext/opcache/jit/zend_jit_x86.dasc b/ext/opcache/jit/zend_jit_x86.dasc
index f00ea8cb9c..9187e3d7f0 100644
--- a/ext/opcache/jit/zend_jit_x86.dasc
+++ b/ext/opcache/jit/zend_jit_x86.dasc
@@ -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;