From: Dmitry Stogov Date: Mon, 10 Feb 2020 10:42:24 +0000 (+0300) Subject: Save delayed call frame X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=a9e35b843c8ce2f077be9c4350949b0dd9aff06d;p=php Save delayed call frame --- 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