@@ -2205,7 +2205,7 @@ static zend_ssa *zend_jit_trace_build_tssa(zend_jit_trace_rec *trace_buffer, uin
2205
2205
assert (0 );
2206
2206
}
2207
2207
if (opline -> opcode == ZEND_ASSIGN_DIM_OP
2208
- && ssa_ops [idx ].op1_def > 0
2208
+ && ssa_ops [idx ].op1_def >= 0
2209
2209
&& op1_type == IS_ARRAY
2210
2210
&& (orig_op1_type & IS_TRACE_PACKED )
2211
2211
&& val_type != IS_UNKNOWN
@@ -5033,7 +5033,7 @@ static const void *zend_jit_trace(zend_jit_trace_rec *trace_buffer, uint32_t par
5033
5033
zend_may_throw_ex (opline , ssa_op , op_array , ssa , op1_info , op2_info ))) {
5034
5034
goto jit_failure ;
5035
5035
}
5036
- if (ssa_op -> op2_def > 0
5036
+ if (ssa_op -> op2_def >= 0
5037
5037
&& Z_MODE (op2_addr ) == IS_REG
5038
5038
&& ssa -> vars [ssa_op -> op2_def ].no_val ) {
5039
5039
uint8_t type = (op2_info & MAY_BE_LONG ) ? IS_LONG : IS_DOUBLE ;
@@ -5083,7 +5083,7 @@ static const void *zend_jit_trace(zend_jit_trace_rec *trace_buffer, uint32_t par
5083
5083
res_use_info , res_info , res_addr )) {
5084
5084
goto jit_failure ;
5085
5085
}
5086
- if (ssa_op -> op1_def > 0
5086
+ if (ssa_op -> op1_def >= 0
5087
5087
&& Z_MODE (op1_addr ) == IS_REG
5088
5088
&& ssa -> vars [ssa_op -> op1_def ].no_val ) {
5089
5089
uint8_t type = (op1_info & MAY_BE_LONG ) ? IS_LONG : IS_DOUBLE ;
@@ -5180,7 +5180,7 @@ static const void *zend_jit_trace(zend_jit_trace_rec *trace_buffer, uint32_t par
5180
5180
op1_info , op1_addr , op1_def_addr )) {
5181
5181
goto jit_failure ;
5182
5182
}
5183
- if (ssa_op -> op1_def > 0
5183
+ if (ssa_op -> op1_def >= 0
5184
5184
&& Z_MODE (op1_addr ) == IS_REG
5185
5185
&& ssa -> vars [ssa_op -> op1_def ].no_val ) {
5186
5186
uint8_t type = (op1_info & MAY_BE_LONG ) ? IS_LONG : IS_DOUBLE ;
@@ -5730,7 +5730,7 @@ static const void *zend_jit_trace(zend_jit_trace_rec *trace_buffer, uint32_t par
5730
5730
op1_info , op1_addr , op2_info , RES_REG_ADDR (), val_type )) {
5731
5731
goto jit_failure ;
5732
5732
}
5733
- if (ssa_op -> result_def > 0
5733
+ if (ssa_op -> result_def >= 0
5734
5734
&& (opline -> opcode == ZEND_FETCH_DIM_W || opline -> opcode == ZEND_FETCH_LIST_W )
5735
5735
&& !(op1_info & (MAY_BE_FALSE |MAY_BE_TRUE |MAY_BE_LONG |MAY_BE_DOUBLE |MAY_BE_STRING |MAY_BE_OBJECT |MAY_BE_RESOURCE |MAY_BE_REF ))
5736
5736
&& !(op2_info & (MAY_BE_UNDEF |MAY_BE_RESOURCE |MAY_BE_ARRAY |MAY_BE_OBJECT ))) {
0 commit comments