From 7f3a296f847de74f20f2e1fc64ad6ea706e33a12 Mon Sep 17 00:00:00 2001 From: Dmitry Stogov Date: Wed, 27 May 2020 15:59:29 +0300 Subject: [PATCH] Fixed tracing JIT for CALL VM --- ext/opcache/jit/zend_jit_x86.dasc | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/ext/opcache/jit/zend_jit_x86.dasc b/ext/opcache/jit/zend_jit_x86.dasc index abee45b95c..f76175a7d7 100644 --- a/ext/opcache/jit/zend_jit_x86.dasc +++ b/ext/opcache/jit/zend_jit_x86.dasc @@ -2433,7 +2433,11 @@ static int zend_jit_trace_exit_stub(dasm_State **Dst) } |1: - | jl ->trace_halt + if (zend_jit_vm_kind == ZEND_VM_KIND_HYBRID) { + | jl ->trace_halt + } else { + | jl >2 + } | // execute_data = EG(current_execute_data) | MEM_OP2_2_ZTS mov, FP, aword, executor_globals, current_execute_data, r0 @@ -2456,6 +2460,9 @@ static int zend_jit_trace_exit_stub(dasm_State **Dst) | mov r0, aword [r0 + offsetof(zend_op_array, reserved[zend_func_info_rid])] | mov r0, aword [r0 + offsetof(zend_jit_op_array_trace_extension, offset)] | jmp aword [IP + r0] + |2: + | add r4, SPAD // stack alignment + | ret } else { | mov IP, aword EX->opline | mov FCARG1a, FP @@ -2468,6 +2475,9 @@ static int zend_jit_trace_exit_stub(dasm_State **Dst) | add r4, NR_SPAD // stack alignment | mov r0, 1 // ZEND_VM_ENTER | ret + |2: + | add r4, NR_SPAD // stack alignment + | ret } return 1; -- 2.50.1