Skip to content

Commit 00ff93d

Browse files
committed
Fix support for TAILCALL VM
1 parent 81504d3 commit 00ff93d

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

ext/opcache/jit/zend_jit_ir.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7978,13 +7978,13 @@ static int zend_jit_escape_if_undef(zend_jit_ctx *jit, int var, uint32_t flags,
79787978
(zend_jit_op_array_trace_extension*)ZEND_FUNC_INFO(op_array);
79797979
size_t offset = jit_extension->offset;
79807980
ir_ref ref = ir_CONST_ADDR(ZEND_OP_TRACE_INFO((opline - 1), offset)->orig_handler);
7981-
if (GCC_GLOBAL_REGS) {
7982-
ir_TAILCALL(IR_VOID, ref);
7981+
if (GCC_GLOBAL_REGS || ZEND_VM_KIND == ZEND_VM_KIND_TAILCALL) {
7982+
ir_TAILCALL(IR_OPCODE_HANDLER_RET, ref);
79837983
} else {
79847984
#if defined(IR_TARGET_X86)
79857985
ref = ir_CAST_FC_FUNC(ref);
79867986
#endif
7987-
ir_TAILCALL_1(IR_I32, ref, jit_FP(jit));
7987+
ir_TAILCALL_2(IR_ADDR, ref, jit_FP(jit), jit_IP(jit));
79887988
}
79897989

79907990
ir_IF_TRUE(if_def);

0 commit comments

Comments
 (0)