Skip to content

Commit 626ccc4

Browse files
committed
Eliminate a dead check
1 parent 8425214 commit 626ccc4

File tree

1 file changed

+24
-12
lines changed

1 file changed

+24
-12
lines changed

ext/opcache/jit/zend_jit_x86.dasc

Lines changed: 24 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -10293,20 +10293,32 @@ static int zend_jit_isset_isempty_dim(dasm_State **Dst, const zend_op *opline, c
1029310293
|7:
1029410294
}
1029510295

10296-
| SAVE_VALID_OPLINE opline, r0
10297-
if (Z_REG(op1_addr) != ZREG_FCARG1a) {
10298-
| LOAD_ZVAL_ADDR FCARG1a, op1_addr
10299-
}
10300-
if (opline->op2_type == IS_CONST && Z_EXTRA_P(RT_CONSTANT(opline, opline->op2)) == ZEND_EXTRA_VALUE) {
10301-
ZEND_ASSERT(Z_MODE(op2_addr) == IS_CONST_ZVAL);
10302-
| LOAD_ADDR FCARG2a, (Z_ZV(op2_addr) + 1)
10296+
if (op1_info & (MAY_BE_STRING|MAY_BE_OBJECT)) {
10297+
| SAVE_VALID_OPLINE opline, r0
10298+
if (Z_REG(op1_addr) != ZREG_FCARG1a) {
10299+
| LOAD_ZVAL_ADDR FCARG1a, op1_addr
10300+
}
10301+
if (opline->op2_type == IS_CONST && Z_EXTRA_P(RT_CONSTANT(opline, opline->op2)) == ZEND_EXTRA_VALUE) {
10302+
ZEND_ASSERT(Z_MODE(op2_addr) == IS_CONST_ZVAL);
10303+
| LOAD_ADDR FCARG2a, (Z_ZV(op2_addr) + 1)
10304+
} else {
10305+
| LOAD_ZVAL_ADDR FCARG2a, op2_addr
10306+
}
10307+
| EXT_CALL zend_jit_isset_dim_helper, r0
10308+
| test r0, r0
10309+
| jz >9
10310+
| jmp >8
1030310311
} else {
10304-
| LOAD_ZVAL_ADDR FCARG2a, op2_addr
10312+
if (op2_info & MAY_BE_UNDEF) {
10313+
if (op2_info & MAY_BE_ANY) {
10314+
| IF_NOT_ZVAL_TYPE op2_addr, IS_UNDEF, >1
10315+
}
10316+
| mov FCARG1d, opline->op2.var
10317+
| EXT_CALL zend_jit_undefined_op_helper, r0
10318+
|1:
10319+
}
10320+
| jmp >9
1030510321
}
10306-
| EXT_CALL zend_jit_isset_dim_helper, r0
10307-
| test r0, r0
10308-
| jz >9
10309-
| jmp >8
1031010322

1031110323
if (op1_info & MAY_BE_ARRAY) {
1031210324
|.code

0 commit comments

Comments
 (0)