Skip to content

Commit 474866e

Browse files
committed
JIT for FETCH_DIM_W/VAR with FFI::CData op1
1 parent c9853b6 commit 474866e

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

ext/opcache/jit/zend_jit_trace.c

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2152,6 +2152,9 @@ static zend_ssa *zend_jit_trace_build_tssa(zend_jit_trace_rec *trace_buffer, uin
21522152
// case ZEND_FETCH_DIM_UNSET:
21532153
case ZEND_FETCH_LIST_W:
21542154
if (opline->op1_type != IS_CV
2155+
#ifdef HAVE_FFI
2156+
&& !op1_ffi_type
2157+
#endif
21552158
&& (orig_op1_type == IS_UNKNOWN
21562159
|| !(orig_op1_type & IS_TRACE_INDIRECT))) {
21572160
break;
@@ -6350,6 +6353,9 @@ static const void *zend_jit_trace(zend_jit_trace_rec *trace_buffer, uint32_t par
63506353
// case ZEND_FETCH_DIM_UNSET:
63516354
case ZEND_FETCH_LIST_W:
63526355
if (opline->op1_type != IS_CV
6356+
#ifdef HAVE_FFI
6357+
&& !op1_ffi_type
6358+
#endif
63536359
&& (orig_op1_type == IS_UNKNOWN
63546360
|| !(orig_op1_type & IS_TRACE_INDIRECT))) {
63556361
break;
@@ -6365,8 +6371,6 @@ static const void *zend_jit_trace(zend_jit_trace_rec *trace_buffer, uint32_t par
63656371
&op1_info, &op1_addr, !ssa->var_info[ssa_op->op1_use].indirect_reference)) {
63666372
goto jit_failure;
63676373
}
6368-
} else {
6369-
break;
63706374
}
63716375
}
63726376
if (orig_op1_type != IS_UNKNOWN

0 commit comments

Comments
 (0)