@@ -4688,15 +4688,15 @@ static const void *zend_jit_trace(zend_jit_trace_rec *trace_buffer, uint32_t par
46884688 }
46894689 op1_info = OP1_INFO ();
46904690 op1_addr = OP1_REG_ADDR ();
4691+ op1_indirect = 0 ;
46914692 if (opline -> op1_type == IS_VAR ) {
46924693 if (orig_op1_type != IS_UNKNOWN
46934694 && (orig_op1_type & IS_TRACE_INDIRECT )) {
4695+ op1_indirect = 1 ;
46944696 if (!zend_jit_fetch_indirect_var (& ctx , opline , orig_op1_type ,
46954697 & op1_info , & op1_addr , !ssa -> var_info [ssa_op -> op1_use ].indirect_reference )) {
46964698 goto jit_failure ;
46974699 }
4698- } else {
4699- break ;
47004700 }
47014701 }
47024702 if (orig_op1_type != IS_UNKNOWN
@@ -4727,7 +4727,7 @@ static const void *zend_jit_trace(zend_jit_trace_rec *trace_buffer, uint32_t par
47274727 ffi_info = zend_arena_calloc (& CG (arena ), ssa -> vars_count , sizeof (zend_jit_ffi_info ));
47284728 }
47294729 if (!zend_jit_ffi_assign_dim_op (& ctx , opline , ssa , ssa_op ,
4730- op1_info , op1_def_info , op1_addr ,
4730+ op1_info , op1_def_info , op1_addr , op1_indirect ,
47314731 op2_info , (opline -> op2_type != IS_UNUSED ) ? OP2_REG_ADDR () : 0 ,
47324732 (opline -> op2_type != IS_UNUSED ) ? OP2_RANGE () : NULL ,
47334733 op1_data_info , OP1_DATA_REG_ADDR (), OP1_DATA_RANGE (),
@@ -4737,7 +4737,7 @@ static const void *zend_jit_trace(zend_jit_trace_rec *trace_buffer, uint32_t par
47374737 } else
47384738#endif
47394739 if (!zend_jit_assign_dim_op (& ctx , opline ,
4740- op1_info , op1_def_info , op1_addr ,
4740+ op1_info , op1_def_info , op1_addr , op1_indirect ,
47414741 op2_info , (opline -> op2_type != IS_UNUSED ) ? OP2_REG_ADDR () : 0 ,
47424742 (opline -> op2_type != IS_UNUSED ) ? OP2_RANGE () : NULL ,
47434743 op1_data_info , OP1_DATA_REG_ADDR (), OP1_DATA_RANGE (), val_type ,
0 commit comments