Skip to content

Commit 7718dc0

Browse files
committed
Merge branch 'PHP-8.1'
* PHP-8.1: JIT: Call zend_hash_index_find() instead of _zend_hash_index_find() if we didn't check for packed array before
2 parents 83697aa + e046ff4 commit 7718dc0

File tree

2 files changed

+20
-4
lines changed

2 files changed

+20
-4
lines changed

ext/opcache/jit/zend_jit_arm64.dasc

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5058,7 +5058,11 @@ static int zend_jit_fetch_dimension_address_inner(dasm_State **Dst, const zend_o
50585058
| // hval = Z_LVAL_P(dim);
50595059
| GET_ZVAL_LVAL ZREG_FCARG2, op2_addr, TMP1
50605060
}
5061-
| EXT_CALL _zend_hash_index_find, REG0
5061+
if (packed_loaded) {
5062+
| EXT_CALL _zend_hash_index_find, REG0
5063+
} else {
5064+
| EXT_CALL zend_hash_index_find, REG0
5065+
}
50625066
| mov REG0, RETVALx
50635067
if (not_found_exit_addr) {
50645068
| cbz REG0, &not_found_exit_addr
@@ -5114,7 +5118,11 @@ static int zend_jit_fetch_dimension_address_inner(dasm_State **Dst, const zend_o
51145118
| // hval = Z_LVAL_P(dim);
51155119
| GET_ZVAL_LVAL ZREG_FCARG2, op2_addr, TMP1
51165120
}
5117-
| EXT_CALL _zend_hash_index_find, REG0
5121+
if (packed_loaded) {
5122+
| EXT_CALL _zend_hash_index_find, REG0
5123+
} else {
5124+
| EXT_CALL zend_hash_index_find, REG0
5125+
}
51185126
| mov REG0, RETVALx
51195127
if (JIT_G(trigger) == ZEND_JIT_ON_HOT_TRACE && type == BP_VAR_R) {
51205128
| cbz REG0, &exit_addr

ext/opcache/jit/zend_jit_x86.dasc

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5537,7 +5537,11 @@ static int zend_jit_fetch_dimension_address_inner(dasm_State **Dst, const zend_o
55375537
| // hval = Z_LVAL_P(dim);
55385538
| GET_ZVAL_LVAL ZREG_FCARG2, op2_addr
55395539
}
5540-
| EXT_CALL _zend_hash_index_find, r0
5540+
if (packed_loaded) {
5541+
| EXT_CALL _zend_hash_index_find, r0
5542+
} else {
5543+
| EXT_CALL zend_hash_index_find, r0
5544+
}
55415545
| test r0, r0
55425546
if (not_found_exit_addr) {
55435547
| jz &not_found_exit_addr
@@ -5593,7 +5597,11 @@ static int zend_jit_fetch_dimension_address_inner(dasm_State **Dst, const zend_o
55935597
| // hval = Z_LVAL_P(dim);
55945598
| GET_ZVAL_LVAL ZREG_FCARG2, op2_addr
55955599
}
5596-
| EXT_CALL _zend_hash_index_find, r0
5600+
if (packed_loaded) {
5601+
| EXT_CALL _zend_hash_index_find, r0
5602+
} else {
5603+
| EXT_CALL zend_hash_index_find, r0
5604+
}
55975605
| test r0, r0
55985606
if (JIT_G(trigger) == ZEND_JIT_ON_HOT_TRACE && type == BP_VAR_R) {
55995607
| jz &exit_addr

0 commit comments

Comments
 (0)