@@ -3053,6 +3053,7 @@ static void zend_jit_setup_disasm(void)
30533053 REGISTER_HELPER(zend_jit_undefined_long_key_ex);
30543054 REGISTER_HELPER(zend_jit_undefined_string_key);
30553055 REGISTER_HELPER(zend_jit_copy_extra_args_helper);
3056+ REGISTER_HELPER(zend_jit_copy_extra_args_helper_no_skip_recv);
30563057 REGISTER_HELPER(zend_jit_vm_stack_free_args_helper);
30573058 REGISTER_HELPER(zend_free_extra_named_params);
30583059 REGISTER_HELPER(zend_jit_free_call_frame);
@@ -10292,6 +10293,7 @@ static int zend_jit_do_fcall(zend_jit_ctx *jit, const zend_op *opline, const zen
1029210293 }
1029310294 }
1029410295 } else {
10296+ ir_ref helper;
1029510297 if (!trace || (trace->op == ZEND_JIT_TRACE_END
1029610298 && trace->stop >= ZEND_JIT_TRACE_STOP_INTERPRETER)) {
1029710299 ir_ref ip;
@@ -10305,11 +10307,14 @@ static int zend_jit_do_fcall(zend_jit_ctx *jit, const zend_op *opline, const zen
1030510307 ip = ir_LOAD_A(ir_ADD_OFFSET(func_ref, offsetof(zend_op_array, opcodes)));
1030610308 }
1030710309 jit_LOAD_IP(jit, ip);
10310+ helper = ir_CONST_FC_FUNC(zend_jit_copy_extra_args_helper);
10311+ } else {
10312+ helper = ir_CONST_FC_FUNC(zend_jit_copy_extra_args_helper_no_skip_recv);
1030810313 }
1030910314 if (GCC_GLOBAL_REGS) {
10310- ir_CALL(IR_VOID, ir_CONST_FC_FUNC(zend_jit_copy_extra_args_helper) );
10315+ ir_CALL(IR_VOID, helper );
1031110316 } else {
10312- ir_CALL_1(IR_VOID, ir_CONST_FC_FUNC(zend_jit_copy_extra_args_helper) , jit_FP(jit));
10317+ ir_CALL_1(IR_VOID, helper , jit_FP(jit));
1031310318 }
1031410319 }
1031510320 } else {
0 commit comments