mirror of
https://github.com/php/php-src.git
synced 2026-04-04 14:42:49 +02:00
Merge branch 'PHP-8.0' into PHP-8.1
* PHP-8.0: JIT: Split zend_jit_hash_index_lookup_rw() into zend_jit_hash_index_lookup_rw() and zend_jit_hash_index_lookup_rw_no_packed().
This commit is contained in:
@@ -5167,7 +5167,11 @@ static int zend_jit_fetch_dimension_address_inner(dasm_State **Dst, const zend_o
|
||||
| GET_ZVAL_LVAL ZREG_FCARG2, op2_addr, TMP1
|
||||
}
|
||||
| SET_EX_OPLINE opline, REG0
|
||||
| EXT_CALL zend_jit_hash_index_lookup_rw, REG0
|
||||
if (packed_loaded) {
|
||||
| EXT_CALL zend_jit_hash_index_lookup_rw_no_packed, REG0
|
||||
} else {
|
||||
| EXT_CALL zend_jit_hash_index_lookup_rw, REG0
|
||||
}
|
||||
| mov REG0, RETVALx
|
||||
if (not_found_exit_addr) {
|
||||
if (packed_loaded) {
|
||||
|
||||
@@ -615,6 +615,7 @@ static int zend_jit_disasm_init(void)
|
||||
REGISTER_HELPER(zend_jit_leave_top_func_helper);
|
||||
REGISTER_HELPER(zend_jit_leave_func_helper);
|
||||
REGISTER_HELPER(zend_jit_symtable_find);
|
||||
REGISTER_HELPER(zend_jit_hash_index_lookup_rw_no_packed);
|
||||
REGISTER_HELPER(zend_jit_hash_index_lookup_rw);
|
||||
REGISTER_HELPER(zend_jit_hash_lookup_rw);
|
||||
REGISTER_HELPER(zend_jit_symtable_lookup_rw);
|
||||
|
||||
@@ -252,7 +252,7 @@ static zval* ZEND_FASTCALL zend_jit_symtable_find(HashTable *ht, zend_string *st
|
||||
return zend_hash_find(ht, str);
|
||||
}
|
||||
|
||||
static zval* ZEND_FASTCALL zend_jit_hash_index_lookup_rw(HashTable *ht, zend_long idx)
|
||||
static zval* ZEND_FASTCALL zend_jit_hash_index_lookup_rw_no_packed(HashTable *ht, zend_long idx)
|
||||
{
|
||||
zval *retval = _zend_hash_index_find(ht, idx);
|
||||
|
||||
@@ -262,6 +262,16 @@ static zval* ZEND_FASTCALL zend_jit_hash_index_lookup_rw(HashTable *ht, zend_lon
|
||||
return retval;
|
||||
}
|
||||
|
||||
static zval* ZEND_FASTCALL zend_jit_hash_index_lookup_rw(HashTable *ht, zend_long idx)
|
||||
{
|
||||
zval *retval = zend_hash_index_find(ht, idx);
|
||||
|
||||
if (!retval) {
|
||||
retval = zend_undefined_offset_write(ht, idx);
|
||||
}
|
||||
return retval;
|
||||
}
|
||||
|
||||
static zval* ZEND_FASTCALL zend_jit_hash_lookup_rw(HashTable *ht, zend_string *str)
|
||||
{
|
||||
zval *retval = zend_hash_find_known_hash(ht, str);
|
||||
|
||||
@@ -5646,7 +5646,11 @@ static int zend_jit_fetch_dimension_address_inner(dasm_State **Dst, const zend_o
|
||||
| GET_ZVAL_LVAL ZREG_FCARG2, op2_addr
|
||||
}
|
||||
| SET_EX_OPLINE opline, r0
|
||||
| EXT_CALL zend_jit_hash_index_lookup_rw, r0
|
||||
if (packed_loaded) {
|
||||
| EXT_CALL zend_jit_hash_index_lookup_rw_no_packed, r0
|
||||
} else {
|
||||
| EXT_CALL zend_jit_hash_index_lookup_rw, r0
|
||||
}
|
||||
| test r0, r0
|
||||
if (not_found_exit_addr) {
|
||||
if (packed_loaded) {
|
||||
|
||||
Reference in New Issue
Block a user