mirror of
https://github.com/php/php-src.git
synced 2026-03-24 00:02:20 +01:00
Fix support for TAILCALL VM
This commit is contained in:
@@ -7978,13 +7978,13 @@ static int zend_jit_escape_if_undef(zend_jit_ctx *jit, int var, uint32_t flags,
|
||||
(zend_jit_op_array_trace_extension*)ZEND_FUNC_INFO(op_array);
|
||||
size_t offset = jit_extension->offset;
|
||||
ir_ref ref = ir_CONST_ADDR(ZEND_OP_TRACE_INFO((opline - 1), offset)->orig_handler);
|
||||
if (GCC_GLOBAL_REGS) {
|
||||
ir_TAILCALL(IR_VOID, ref);
|
||||
if (GCC_GLOBAL_REGS || ZEND_VM_KIND == ZEND_VM_KIND_TAILCALL) {
|
||||
ir_TAILCALL(IR_OPCODE_HANDLER_RET, ref);
|
||||
} else {
|
||||
#if defined(IR_TARGET_X86)
|
||||
ref = ir_CAST_FC_FUNC(ref);
|
||||
#endif
|
||||
ir_TAILCALL_1(IR_I32, ref, jit_FP(jit));
|
||||
ir_TAILCALL_2(IR_ADDR, ref, jit_FP(jit), jit_IP(jit));
|
||||
}
|
||||
|
||||
ir_IF_TRUE(if_def);
|
||||
|
||||
Reference in New Issue
Block a user