@@ -10973,17 +10973,17 @@ static int zend_jit_recv(dasm_State **Dst, const zend_op *opline, const zend_op_
10973
10973
}
10974
10974
10975
10975
if (arg_info || (opline+1)->opcode != ZEND_RECV) {
10976
- | cmp dword EX->This.u2.num_args, arg_num
10976
+ zend_jit_addr res_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->result.var);
10977
10977
if (JIT_G(trigger) == ZEND_JIT_ON_HOT_TRACE) {
10978
10978
int32_t exit_point = zend_jit_trace_get_exit_point(opline, opline, NULL, ZEND_JIT_EXIT_TO_VM);
10979
10979
const void *exit_addr = zend_jit_trace_get_exit_addr(exit_point);
10980
10980
10981
10981
if (!exit_addr) {
10982
10982
return 0;
10983
10983
}
10984
- | jb &exit_addr
10984
+ | IF_ZVAL_TYPE res_addr, IS_UNDEF, &exit_addr
10985
10985
} else {
10986
- | jb >1
10986
+ | IF_ZVAL_TYPE res_addr, IS_UNDEF, >1
10987
10987
|.cold_code
10988
10988
|1:
10989
10989
if (JIT_G(trigger) == ZEND_JIT_ON_HOT_TRACE) {
@@ -11025,8 +11025,7 @@ static int zend_jit_recv_init(dasm_State **Dst, const zend_op *opline, const zen
11025
11025
11026
11026
if (JIT_G(trigger) != ZEND_JIT_ON_HOT_TRACE ||
11027
11027
(op_array->fn_flags & ZEND_ACC_HAS_TYPE_HINTS)) {
11028
- | cmp dword EX->This.u2.num_args, arg_num
11029
- | jae >5
11028
+ | IF_NOT_ZVAL_TYPE res_addr, IS_UNDEF, >5
11030
11029
}
11031
11030
| ZVAL_COPY_CONST res_addr, -1, -1, zv, r0
11032
11031
if (Z_REFCOUNTED_P(zv)) {
0 commit comments