mirror of
https://github.com/php/php-src.git
synced 2026-04-26 01:18:19 +02:00
Merge branch 'PHP-8.0' into PHP-8.1
* PHP-8.0:
Fix ext/opcache/tests/jit/inc_obj_004.phpt failure introduced by fd74ee7e90
This commit is contained in:
@@ -8234,6 +8234,9 @@ static int zend_jit_bool_jmpznz(dasm_State **Dst, const zend_op *opline, uint32_
|
||||
}
|
||||
|
||||
if ((op1_info & (MAY_BE_ANY-(MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE|MAY_BE_LONG))) == MAY_BE_DOUBLE) {
|
||||
if (op1_info & (MAY_BE_UNDEF|MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE|MAY_BE_LONG)) {
|
||||
|.cold_code
|
||||
}
|
||||
|2:
|
||||
| fmov FPR0, xzr // TODO: "movi d0, #0" is not recognized by DynASM/arm64
|
||||
| DOUBLE_CMP ZREG_FPR0, op1_addr, ZREG_TMP1, ZREG_FPTMP
|
||||
@@ -8278,6 +8281,10 @@ static int zend_jit_bool_jmpznz(dasm_State **Dst, const zend_op *opline, uint32_
|
||||
|1:
|
||||
| SET_ZVAL_TYPE_INFO_FROM_REG res_addr, REG0w, TMP1
|
||||
}
|
||||
if (op1_info & (MAY_BE_UNDEF|MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE|MAY_BE_LONG)) {
|
||||
| b >9
|
||||
|.code
|
||||
}
|
||||
} else {
|
||||
if (exit_addr) {
|
||||
if (branch_opcode == ZEND_JMPNZ || branch_opcode == ZEND_JMPNZ_EX) {
|
||||
@@ -8289,6 +8296,9 @@ static int zend_jit_bool_jmpznz(dasm_State **Dst, const zend_op *opline, uint32_
|
||||
| beq &exit_addr
|
||||
|1:
|
||||
}
|
||||
if (op1_info & (MAY_BE_UNDEF|MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE|MAY_BE_LONG)) {
|
||||
| b >9
|
||||
}
|
||||
} else {
|
||||
ZEND_ASSERT(true_label != (uint32_t)-1 || false_label != (uint32_t)-1);
|
||||
if (false_label != (uint32_t)-1 ) {
|
||||
@@ -8297,12 +8307,20 @@ static int zend_jit_bool_jmpznz(dasm_State **Dst, const zend_op *opline, uint32_
|
||||
|1:
|
||||
if (true_label != (uint32_t)-1) {
|
||||
| b =>true_label
|
||||
} else if (op1_info & (MAY_BE_UNDEF|MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE|MAY_BE_LONG)) {
|
||||
| b >9
|
||||
}
|
||||
} else {
|
||||
| bvs => true_label
|
||||
| bne => true_label
|
||||
if (op1_info & (MAY_BE_UNDEF|MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE|MAY_BE_LONG)) {
|
||||
| b >9
|
||||
}
|
||||
}
|
||||
}
|
||||
if (op1_info & (MAY_BE_UNDEF|MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE|MAY_BE_LONG)) {
|
||||
|.code
|
||||
}
|
||||
}
|
||||
} else if (op1_info & (MAY_BE_ANY - (MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE|MAY_BE_LONG))) {
|
||||
if (op1_info & (MAY_BE_UNDEF|MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE|MAY_BE_LONG)) {
|
||||
|
||||
@@ -8821,6 +8821,9 @@ static int zend_jit_bool_jmpznz(dasm_State **Dst, const zend_op *opline, uint32_
|
||||
}
|
||||
|
||||
if ((op1_info & (MAY_BE_ANY-(MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE|MAY_BE_LONG))) == MAY_BE_DOUBLE) {
|
||||
if (op1_info & (MAY_BE_UNDEF|MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE|MAY_BE_LONG)) {
|
||||
|.cold_code
|
||||
}
|
||||
|2:
|
||||
if (CAN_USE_AVX()) {
|
||||
| vxorps xmm0, xmm0, xmm0
|
||||
@@ -8869,6 +8872,10 @@ static int zend_jit_bool_jmpznz(dasm_State **Dst, const zend_op *opline, uint32_
|
||||
|1:
|
||||
| SET_ZVAL_TYPE_INFO res_addr, eax
|
||||
}
|
||||
if (op1_info & (MAY_BE_UNDEF|MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE|MAY_BE_LONG)) {
|
||||
| jmp >9
|
||||
|.code
|
||||
}
|
||||
} else {
|
||||
if (exit_addr) {
|
||||
if (branch_opcode == ZEND_JMPNZ || branch_opcode == ZEND_JMPNZ_EX) {
|
||||
@@ -8880,6 +8887,9 @@ static int zend_jit_bool_jmpznz(dasm_State **Dst, const zend_op *opline, uint32_
|
||||
| je &exit_addr
|
||||
|1:
|
||||
}
|
||||
if (op1_info & (MAY_BE_UNDEF|MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE|MAY_BE_LONG)) {
|
||||
| jmp >9
|
||||
}
|
||||
} else {
|
||||
ZEND_ASSERT(true_label != (uint32_t)-1 || false_label != (uint32_t)-1);
|
||||
if (false_label != (uint32_t)-1 ) {
|
||||
@@ -8888,12 +8898,20 @@ static int zend_jit_bool_jmpznz(dasm_State **Dst, const zend_op *opline, uint32_
|
||||
|1:
|
||||
if (true_label != (uint32_t)-1) {
|
||||
| jmp =>true_label
|
||||
} else if (op1_info & (MAY_BE_UNDEF|MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE|MAY_BE_LONG)) {
|
||||
| jmp >9
|
||||
}
|
||||
} else {
|
||||
| jp => true_label
|
||||
| jne => true_label
|
||||
if (op1_info & (MAY_BE_UNDEF|MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE|MAY_BE_LONG)) {
|
||||
| jmp >9
|
||||
}
|
||||
}
|
||||
}
|
||||
if (op1_info & (MAY_BE_UNDEF|MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE|MAY_BE_LONG)) {
|
||||
|.code
|
||||
}
|
||||
}
|
||||
} else if (op1_info & (MAY_BE_ANY - (MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE|MAY_BE_LONG))) {
|
||||
if (op1_info & (MAY_BE_UNDEF|MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE|MAY_BE_LONG)) {
|
||||
|
||||
Reference in New Issue
Block a user