Skip to content

Commit c59edf0

Browse files
committed
Fixed abstract stack consistency for JMPZ_EX/JMPNZ_EX
1 parent 3fae143 commit c59edf0

File tree

1 file changed

+7
-7
lines changed

1 file changed

+7
-7
lines changed

ext/opcache/jit/zend_jit_trace.c

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3502,13 +3502,6 @@ static const void *zend_jit_trace(zend_jit_trace_rec *trace_buffer, uint32_t par
35023502
case ZEND_JMPZNZ:
35033503
case ZEND_JMPZ_EX:
35043504
case ZEND_JMPNZ_EX:
3505-
if (opline->result_type == IS_UNDEF) {
3506-
res_addr = 0;
3507-
} else {
3508-
res_addr = RES_REG_ADDR();
3509-
}
3510-
op1_info = OP1_INFO();
3511-
CHECK_OP1_TRACE_TYPE();
35123505
if ((p+1)->op == ZEND_JIT_TRACE_VM || (p+1)->op == ZEND_JIT_TRACE_END) {
35133506
const zend_op *exit_opline = NULL;
35143507
uint32_t exit_point;
@@ -3549,6 +3542,13 @@ static const void *zend_jit_trace(zend_jit_trace_rec *trace_buffer, uint32_t par
35493542
} else {
35503543
ZEND_ASSERT(0);
35513544
}
3545+
if (opline->result_type == IS_UNDEF) {
3546+
res_addr = 0;
3547+
} else {
3548+
res_addr = RES_REG_ADDR();
3549+
}
3550+
op1_info = OP1_INFO();
3551+
CHECK_OP1_TRACE_TYPE();
35523552
if (!zend_jit_bool_jmpznz(&dasm_state, opline, op_array,
35533553
op1_info, OP1_REG_ADDR(), res_addr,
35543554
-1, -1,

0 commit comments

Comments
 (0)