1
0
mirror of https://github.com/php/php-src.git synced 2026-04-20 22:41:20 +02:00

Avoid unnecessary checks

This commit is contained in:
Dmitry Stogov
2020-12-08 13:10:35 +03:00
parent 2d467abc46
commit db34491a62

View File

@@ -3489,7 +3489,9 @@ static int zend_jit_trace_handler(dasm_State **Dst, const zend_op_array *op_arra
| mov FCARG1a, FP
}
| EXT_CALL handler, r0
if (may_throw) {
if (may_throw
&& opline->opcode != ZEND_RETURN
&& opline->opcode != ZEND_RETURN_BY_REF) {
| MEM_OP2_1_ZTS cmp, aword, executor_globals, exception, 0, r1
| jne ->exception_handler
}
@@ -3511,14 +3513,16 @@ static int zend_jit_trace_handler(dasm_State **Dst, const zend_op_array *op_arra
}
if (zend_jit_trace_may_exit(op_array, opline)) {
// TODO: try to avoid this check ???
if (opline->opcode == ZEND_RETURN ||
opline->opcode == ZEND_RETURN_BY_REF ||
opline->opcode == ZEND_GENERATOR_CREATE) {
if (zend_jit_vm_kind == ZEND_VM_KIND_HYBRID) {
#if 0
/* this check should be handled by the following OPLINE guard or jmp [IP] */
| cmp IP, zend_jit_halt_op
| je ->trace_halt
#endif
} else if (GCC_GLOBAL_REGS) {
| test IP, IP
| je ->trace_halt