From: Dmitry Stogov Date: Mon, 20 Jul 2020 17:57:12 +0000 (+0300) Subject: Fixed tracing JIT for VM without global register variables X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=2b7035e824e2518f506e23ea7b28b0fd3bacbe9c;p=php Fixed tracing JIT for VM without global register variables --- diff --git a/ext/opcache/jit/zend_jit_vm_helpers.c b/ext/opcache/jit/zend_jit_vm_helpers.c index 755af16ede..0fdf7f15dd 100644 --- a/ext/opcache/jit/zend_jit_vm_helpers.c +++ b/ext/opcache/jit/zend_jit_vm_helpers.c @@ -123,6 +123,8 @@ void ZEND_FASTCALL zend_jit_copy_extra_args_helper(EXECUTE_DATA_D) /* Skip useless ZEND_RECV and ZEND_RECV_INIT opcodes */ #ifdef HAVE_GCC_GLOBAL_REGS opline += first_extra_arg; +#else + EX(opline) += first_extra_arg; #endif } diff --git a/ext/opcache/jit/zend_jit_x86.dasc b/ext/opcache/jit/zend_jit_x86.dasc index ce2b3d103c..5d57f10550 100644 --- a/ext/opcache/jit/zend_jit_x86.dasc +++ b/ext/opcache/jit/zend_jit_x86.dasc @@ -3180,7 +3180,8 @@ static int zend_jit_trace_handler(dasm_State **Dst, const zend_op_array *op_arra opline->opcode == ZEND_RETURN_BY_REF || opline->opcode == ZEND_DO_UCALL || opline->opcode == ZEND_DO_FCALL_BY_NAME || - opline->opcode == ZEND_DO_FCALL) { + opline->opcode == ZEND_DO_FCALL || + opline->opcode == ZEND_GENERATOR_CREATE) { | MEM_OP2_2_ZTS mov, FP, aword, executor_globals, current_execute_data, r0 } }