]> granicus.if.org Git - php/commitdiff
Fixed tracing JIT for VM without global register variables
authorDmitry Stogov <dmitry@zend.com>
Mon, 20 Jul 2020 17:57:12 +0000 (20:57 +0300)
committerDmitry Stogov <dmitry@zend.com>
Mon, 20 Jul 2020 17:59:31 +0000 (20:59 +0300)
ext/opcache/jit/zend_jit_vm_helpers.c
ext/opcache/jit/zend_jit_x86.dasc

index 755af16edefc455e7f52d3985a08c524c2aafc3c..0fdf7f15dde3323bd59e565bf4b16731132b6ba7 100644 (file)
@@ -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
                }
 
index ce2b3d103c7614a0963c7cd03c18ab0b47f94abd..5d57f10550142478a9dbd28c3185d9a595da46e6 100644 (file)
@@ -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
                }
        }