@@ -5785,7 +5785,7 @@ static int zend_jit_assign_dim(dasm_State **Dst, const zend_op *opline, const ze
5785
5785
5786
5786
if (op1_info & (MAY_BE_ANY-(MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_ARRAY))) {
5787
5787
| SAVE_VALID_OPLINE opline, r0
5788
- if (Z_REG(op1_addr) != ZREG_FCARG1a) {
5788
+ if (Z_REG(op1_addr) != ZREG_FCARG1a || Z_OFFSET(op1_addr) != 0 ) {
5789
5789
| LOAD_ZVAL_ADDR FCARG1a, op1_addr
5790
5790
}
5791
5791
if (opline->op2_type == IS_UNUSED) {
@@ -6039,7 +6039,7 @@ static int zend_jit_assign_dim_op(dasm_State **Dst, const zend_op *opline, const
6039
6039
}
6040
6040
6041
6041
| SAVE_VALID_OPLINE opline, r0
6042
- if (Z_REG(op1_addr) != ZREG_FCARG1a) {
6042
+ if (Z_REG(op1_addr) != ZREG_FCARG1a || Z_OFFSET(op1_addr) != 0 ) {
6043
6043
| LOAD_ZVAL_ADDR FCARG1a, op1_addr
6044
6044
}
6045
6045
if (opline->op2_type == IS_UNUSED) {
@@ -7872,7 +7872,7 @@ static int zend_jit_bool_jmpznz(dasm_State **Dst, const zend_op *opline, const z
7872
7872
|.cold_code
7873
7873
|2:
7874
7874
}
7875
- if (Z_REG(op1_addr) != ZREG_FCARG1a) {
7875
+ if (Z_REG(op1_addr) != ZREG_FCARG1a || Z_OFFSET(op1_addr) != 0 ) {
7876
7876
| LOAD_ZVAL_ADDR FCARG1a, op1_addr
7877
7877
}
7878
7878
| SAVE_VALID_OPLINE opline, r0
@@ -10479,7 +10479,7 @@ static int zend_jit_fetch_dim_read(dasm_State **Dst, const zend_op *opline, cons
10479
10479
}
10480
10480
}
10481
10481
| SAVE_VALID_OPLINE opline, r0
10482
- if (Z_REG(op1_addr) != ZREG_FCARG1a) {
10482
+ if (Z_REG(op1_addr) != ZREG_FCARG1a || Z_OFFSET(op1_addr) != 0 ) {
10483
10483
| LOAD_ZVAL_ADDR FCARG1a, op1_addr
10484
10484
}
10485
10485
| LOAD_ZVAL_ADDR FCARG2a, op2_addr
@@ -10513,7 +10513,7 @@ static int zend_jit_fetch_dim_read(dasm_State **Dst, const zend_op *opline, cons
10513
10513
}
10514
10514
}
10515
10515
| SAVE_VALID_OPLINE opline, r0
10516
- if (Z_REG(op1_addr) != ZREG_FCARG1a) {
10516
+ if (Z_REG(op1_addr) != ZREG_FCARG1a || Z_OFFSET(op1_addr) != 0 ) {
10517
10517
| LOAD_ZVAL_ADDR FCARG1a, op1_addr
10518
10518
}
10519
10519
if (opline->op2_type == IS_CONST && Z_EXTRA_P(RT_CONSTANT(opline, opline->op2)) == ZEND_EXTRA_VALUE) {
@@ -10694,7 +10694,7 @@ static int zend_jit_isset_isempty_dim(dasm_State **Dst, const zend_op *opline, c
10694
10694
10695
10695
if (op1_info & (MAY_BE_STRING|MAY_BE_OBJECT)) {
10696
10696
| SAVE_VALID_OPLINE opline, r0
10697
- if (Z_REG(op1_addr) != ZREG_FCARG1a) {
10697
+ if (Z_REG(op1_addr) != ZREG_FCARG1a || Z_OFFSET(op1_addr) != 0 ) {
10698
10698
| LOAD_ZVAL_ADDR FCARG1a, op1_addr
10699
10699
}
10700
10700
if (opline->op2_type == IS_CONST && Z_EXTRA_P(RT_CONSTANT(opline, opline->op2)) == ZEND_EXTRA_VALUE) {
0 commit comments