From a9e35b843c8ce2f077be9c4350949b0dd9aff06d Mon Sep 17 00:00:00 2001 From: Dmitry Stogov Date: Mon, 10 Feb 2020 13:42:24 +0300 Subject: [PATCH] Save delayed call frame --- ext/opcache/jit/zend_jit_x86.dasc | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/ext/opcache/jit/zend_jit_x86.dasc b/ext/opcache/jit/zend_jit_x86.dasc index a255b3bdd9..a3bd4a36d6 100644 --- a/ext/opcache/jit/zend_jit_x86.dasc +++ b/ext/opcache/jit/zend_jit_x86.dasc @@ -1823,6 +1823,13 @@ static int zend_jit_throw_cannot_pass_by_ref_stub(dasm_State **Dst) | mov r1, OP:r0->result.var |.endif | SET_Z_TYPE_INFO RX+r1, IS_UNDEF + | // last EX(call) frame may be delayed + | cmp RX, EX->call + | je >1 + | mov r1, EX->call + | mov EX:RX->prev_execute_data, r1 + | mov EX->call, RX + |1: | mov RX, r0 |.if X64 | xor CARG1, CARG1 -- 2.49.0