Skip to content

Commit 0b47068

Browse files
committed
Fix register save/restore around calls. (This fixes ext/opcache/tests/jit/fetch_dim_rw_001.phpt with -d opcache.jit=1202 without PROFITABILITY_CHECKS)
1 parent e9d1718 commit 0b47068

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

ext/opcache/jit/zend_jit_arm64.dasc

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11517,6 +11517,9 @@ static int zend_jit_fetch_dim(dasm_State **Dst,
1151711517
| CMP_ZVAL_TYPE op1_addr, IS_FALSE, ZREG_TMP1
1151811518
| bgt >7
1151911519
}
11520+
if (Z_REG(op1_addr) != ZREG_FP) {
11521+
| str Rx(Z_REG(op1_addr)), T1 // save
11522+
}
1152011523
if ((op1_info & MAY_BE_UNDEF)
1152111524
&& opline->opcode == ZEND_FETCH_DIM_RW) {
1152211525
if (op1_info & (MAY_BE_NULL|MAY_BE_FALSE)) {
@@ -11528,9 +11531,6 @@ static int zend_jit_fetch_dim(dasm_State **Dst,
1152811531
|1:
1152911532
}
1153011533
| // ZVAL_ARR(container, zend_new_array(8));
11531-
if (Z_REG(op1_addr) != ZREG_FP) {
11532-
| str Rx(Z_REG(op1_addr)), T1 // save
11533-
}
1153411534
| EXT_CALL _zend_new_array_0, REG0
1153511535
| mov REG0, RETVALx
1153611536
if (Z_REG(op1_addr) != ZREG_FP) {

0 commit comments

Comments
 (0)