@@ -8782,6 +8782,9 @@ static int zend_jit_bool_jmpznz(dasm_State **Dst, const zend_op *opline, uint32_
8782
8782
}
8783
8783
8784
8784
if ((op1_info & (MAY_BE_ANY-(MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE|MAY_BE_LONG))) == MAY_BE_DOUBLE) {
8785
+ if (op1_info & (MAY_BE_UNDEF|MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE|MAY_BE_LONG)) {
8786
+ |.cold_code
8787
+ }
8785
8788
|2:
8786
8789
if (CAN_USE_AVX()) {
8787
8790
| vxorps xmm0, xmm0, xmm0
@@ -8830,6 +8833,10 @@ static int zend_jit_bool_jmpznz(dasm_State **Dst, const zend_op *opline, uint32_
8830
8833
|1:
8831
8834
| SET_ZVAL_TYPE_INFO res_addr, eax
8832
8835
}
8836
+ if (op1_info & (MAY_BE_UNDEF|MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE|MAY_BE_LONG)) {
8837
+ | jmp >9
8838
+ |.code
8839
+ }
8833
8840
} else {
8834
8841
if (exit_addr) {
8835
8842
if (branch_opcode == ZEND_JMPNZ || branch_opcode == ZEND_JMPNZ_EX) {
@@ -8841,6 +8848,9 @@ static int zend_jit_bool_jmpznz(dasm_State **Dst, const zend_op *opline, uint32_
8841
8848
| je &exit_addr
8842
8849
|1:
8843
8850
}
8851
+ if (op1_info & (MAY_BE_UNDEF|MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE|MAY_BE_LONG)) {
8852
+ | jmp >9
8853
+ }
8844
8854
} else {
8845
8855
ZEND_ASSERT(true_label != (uint32_t)-1 || false_label != (uint32_t)-1);
8846
8856
if (false_label != (uint32_t)-1 ) {
@@ -8849,12 +8859,20 @@ static int zend_jit_bool_jmpznz(dasm_State **Dst, const zend_op *opline, uint32_
8849
8859
|1:
8850
8860
if (true_label != (uint32_t)-1) {
8851
8861
| jmp =>true_label
8862
+ } else if (op1_info & (MAY_BE_UNDEF|MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE|MAY_BE_LONG)) {
8863
+ | jmp >9
8852
8864
}
8853
8865
} else {
8854
8866
| jp => true_label
8855
8867
| jne => true_label
8868
+ if (op1_info & (MAY_BE_UNDEF|MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE|MAY_BE_LONG)) {
8869
+ | jmp >9
8870
+ }
8856
8871
}
8857
8872
}
8873
+ if (op1_info & (MAY_BE_UNDEF|MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE|MAY_BE_LONG)) {
8874
+ |.code
8875
+ }
8858
8876
}
8859
8877
} else if (op1_info & (MAY_BE_ANY - (MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE|MAY_BE_LONG))) {
8860
8878
if (op1_info & (MAY_BE_UNDEF|MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE|MAY_BE_LONG)) {
0 commit comments