@@ -8782,6 +8782,9 @@ static int zend_jit_bool_jmpznz(dasm_State **Dst, const zend_op *opline, uint32_
87828782 }
87838783
87848784 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+ }
87858788 |2:
87868789 if (CAN_USE_AVX()) {
87878790 | vxorps xmm0, xmm0, xmm0
@@ -8830,6 +8833,10 @@ static int zend_jit_bool_jmpznz(dasm_State **Dst, const zend_op *opline, uint32_
88308833 |1:
88318834 | SET_ZVAL_TYPE_INFO res_addr, eax
88328835 }
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+ }
88338840 } else {
88348841 if (exit_addr) {
88358842 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_
88418848 | je &exit_addr
88428849 |1:
88438850 }
8851+ if (op1_info & (MAY_BE_UNDEF|MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE|MAY_BE_LONG)) {
8852+ | jmp >9
8853+ }
88448854 } else {
88458855 ZEND_ASSERT(true_label != (uint32_t)-1 || false_label != (uint32_t)-1);
88468856 if (false_label != (uint32_t)-1 ) {
@@ -8849,12 +8859,20 @@ static int zend_jit_bool_jmpznz(dasm_State **Dst, const zend_op *opline, uint32_
88498859 |1:
88508860 if (true_label != (uint32_t)-1) {
88518861 | 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
88528864 }
88538865 } else {
88548866 | jp => true_label
88558867 | 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+ }
88568871 }
88578872 }
8873+ if (op1_info & (MAY_BE_UNDEF|MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE|MAY_BE_LONG)) {
8874+ |.code
8875+ }
88588876 }
88598877 } else if (op1_info & (MAY_BE_ANY - (MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE|MAY_BE_LONG))) {
88608878 if (op1_info & (MAY_BE_UNDEF|MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE|MAY_BE_LONG)) {
0 commit comments