From 2b7035e824e2518f506e23ea7b28b0fd3bacbe9c Mon Sep 17 00:00:00 2001 From: Dmitry Stogov Date: Mon, 20 Jul 2020 20:57:12 +0300 Subject: [PATCH] Fixed tracing JIT for VM without global register variables --- ext/opcache/jit/zend_jit_vm_helpers.c | 2 ++ ext/opcache/jit/zend_jit_x86.dasc | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) 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 } } -- 2.50.1