@@ -1156,6 +1156,11 @@ static void* dasm_labels[zend_lb_MAX];
1156
1156
|| }
1157
1157
|.endmacro
1158
1158
1159
+ |.macro IF_UNDEF, type_reg, label
1160
+ | test type_reg, type_reg
1161
+ | je label
1162
+ |.endmacro
1163
+
1159
1164
|.macro IF_TYPE, type, val, label
1160
1165
| cmp type, val
1161
1166
| je label
@@ -1204,7 +1209,9 @@ static void* dasm_labels[zend_lb_MAX];
1204
1209
|.endmacro
1205
1210
1206
1211
|.macro IF_NOT_REFCOUNTED, type_flags, label
1207
- | IF_NOT_FLAGS type_flags, IS_TYPE_REFCOUNTED, label
1212
+ | //IF_NOT_FLAGS type_flags, IS_TYPE_REFCOUNTED, label
1213
+ | test type_flags, type_flags
1214
+ | jz label
1208
1215
|.endmacro
1209
1216
1210
1217
|.macro IF_ZVAL_FLAGS, addr, mask, label
@@ -10767,7 +10774,7 @@ static int zend_jit_fetch_obj_read(dasm_State **Dst, const zend_op *opline, cons
10767
10774
| jl >8 // dynamic property
10768
10775
}
10769
10776
| mov edx, dword [FCARG1a + r0 + 8]
10770
- | IF_TYPE dl, IS_UNDEF , >5
10777
+ | IF_UNDEF dl, >5
10771
10778
| add FCARG1a, r0
10772
10779
prop_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG1a, 0);
10773
10780
} else {
@@ -10780,9 +10787,9 @@ static int zend_jit_fetch_obj_read(dasm_State **Dst, const zend_op *opline, cons
10780
10787
if (!exit_addr) {
10781
10788
return 0;
10782
10789
}
10783
- | IF_TYPE dl, IS_UNDEF , &exit_addr
10790
+ | IF_UNDEF dl, &exit_addr
10784
10791
} else {
10785
- | IF_TYPE dl, IS_UNDEF , >5
10792
+ | IF_UNDEF dl, >5
10786
10793
}
10787
10794
}
10788
10795
| GET_ZVAL_PTR r0, prop_addr
0 commit comments