History log of /PHP-8.1/ext/opcache/jit/zend_jit_x86.dasc (Results 576 – 600 of 659)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 249e9a63 27-Nov-2019 Dmitry Stogov

Fixed JIT for LONG->DOUBLE conversion when optimizer disabled


Revision tags: php-7.4.0
# b046a8f7 26-Nov-2019 Dmitry Stogov

Fixed incorrect JIT compilation


Revision tags: php-7.2.25, php-7.3.12
# 36afe4e3 12-Nov-2019 Dmitry Stogov

Optimize $x === null into is_null($x)


# d94c27dc 12-Nov-2019 Dmitry Stogov

Fixed JIT for TYPE_CHECK opcode (exception handling in case of undefined argument)


Revision tags: php-7.4.0RC6, php-7.3.12RC1, php-7.2.25RC1, php-7.4.0RC5, php-7.1.33, php-7.2.24, php-7.3.11, php-7.4.0RC4, php-7.3.11RC1, php-7.2.24RC1, php-7.4.0RC3
# 999e32b6 25-Sep-2019 Nikita Popov

Implement union types

According to RFC: https://wiki.php.net/rfc/union_types_v2

The type representation now makes use of both the pointer payload
and the type mask at the same t

Implement union types

According to RFC: https://wiki.php.net/rfc/union_types_v2

The type representation now makes use of both the pointer payload
and the type mask at the same time. Additionall, zend_type_list is
introduced as a new kind of pointer payload, which is used to store
multiple class types. Each of the class types is a tagged pointer,
which may be either a class name or class entry. The latter is only
used for typed properties, while arguments/returns will instead use
cache slots. A type list can contain a mix of both names and CEs at
the same time, as not all classes may be resolvable.

One thing this is missing is support for union types in arginfo
and stubs, which I want to handle separately.

I've also dropped the special object code from the JIT implementation
for now -- I plan to add this back in a different form at a later time.
For now I did not want to include non-trivial JIT changes together
with large functional changes.

Another possible piece of follow-up work is to implement "iterable"
as an internal alias for "array|Traversable". I believe this will
eliminate quite a few special-cases that had to be implemented.

Closes GH-4838.

show more ...


Revision tags: php-7.2.23, php-7.3.10
# ac4e0f08 20-Sep-2019 Nikita Popov

Make zend_type a 2-field struct

We now store the pointer payload and the type mask separately. This
is in preparation for union types, where we will be using both at
the same time.

Make zend_type a 2-field struct

We now store the pointer payload and the type mask separately. This
is in preparation for union types, where we will be using both at
the same time.

To avoid increasing the size of arginfo structures, the
pass_by_reference and is_variadic fields are now stored as part of
the type_mask (8-bit are reserved for custom use).

Different types of pointer payloads are distinguished based on bits
in the type_mask.

show more ...


Revision tags: php-7.4.0RC2, php-7.2.23RC1, php-7.3.10RC1, php-7.4.0RC1, php-7.1.32, php-7.2.22, php-7.3.9, php-7.4.0beta4, php-7.2.22RC1, php-7.3.9RC1, php-7.4.0beta2, php-7.1.31, php-7.2.21, php-7.3.8, php-7.4.0beta1, php-7.2.21RC1, php-7.3.8RC1, php-7.4.0alpha3, php-7.3.7, php-7.2.20, php-7.4.0alpha2, php-7.3.7RC3, php-7.3.7RC2, php-7.2.20RC2, php-7.4.0alpha1, php-7.3.7RC1, php-7.2.20RC1, php-7.2.19, php-7.3.6, php-7.1.30, php-7.2.19RC1, php-7.3.6RC1, php-7.1.29, php-7.2.18, php-7.3.5, php-7.2.18RC1, php-7.3.5RC1, php-7.2.17, php-7.3.4, php-7.1.28, php-7.3.4RC1, php-7.2.17RC1, php-7.1.27, php-7.3.3, php-7.2.16, php-7.3.3RC1, php-7.2.16RC1
# aef88361 13-Feb-2019 Nikita Popov

Don't check $this existence in object opcodes

We are now guaranteed that $this always exists inside methods, as
well as insides closures (if they use $this at all).

This removes

Don't check $this existence in object opcodes

We are now guaranteed that $this always exists inside methods, as
well as insides closures (if they use $this at all).

This removes checks for $this existence from the individual object
opcodes. Instead ZEND_FETCH_THIS is used in the cases where $this
is not guaranteed to exist, which is mainly the pseudo-main scope.

Closes GH-3822.

show more ...


# 39897eb8 29-Oct-2019 Nikita Popov

Try to fix asan warning in scalar_constant_defaults.phpt

Doing the SAVE_VALID_OPLINE right before the call, because we
still need r0 before that.


# ae46df0c 22-Oct-2019 Nikita Popov

JIT: Add option to disable SSA checks


# fe6c420b 23-Oct-2019 Nikita Popov

JIT: Handle typed refs in assign dim


# ecc309bf 22-Oct-2019 Nikita Popov

JIT: Fix handling of typed ref in assign dim op


# 2f80fbe3 22-Oct-2019 Nikita Popov

JIT: Fix handling of typed ref in assign op


# 8cdbcd7d 22-Oct-2019 Nikita Popov

JIT: Check exception after jit_assign_dim_op_helper


# 605e0de3 17-Oct-2019 Dmitry Stogov

Clenup "smart branch" handling


# 65c4cc23 17-Oct-2019 Dmitry Stogov

Fixed wrong shift


# 3df64af9 17-Oct-2019 Dmitry Stogov

Relay on DO_ICALL/DO_UCALL opcode to avoid generation of useless code


# 3a88c5b8 16-Oct-2019 Dmitry Stogov

Fixed exception handling


# 5431837a 16-Oct-2019 Dmitry Stogov

Clenup "smart branch" handling


# 902b00e6 15-Oct-2019 Dmitry Stogov

Fixed exception source


# 0d55456d 15-Oct-2019 Dmitry Stogov

Use "const" qualifier


# 2958fecb 14-Oct-2019 Dmitry Stogov

Fixed incorrect JIT compilation


# 3f50922a 14-Oct-2019 Dmitry Stogov

Fixed incorrect JIT compilation


# 2f92957f 01-Oct-2019 Nikita Popov

Convert some notices to warnings

Part of https://wiki.php.net/rfc/engine_warnings.


# 27ad0efb 01-Oct-2019 Nikita Popov

Revert "Save opline before fallible arg type check in recv_init jit"

This reverts commit b09bddcaa5d6af94f0b94b324c1f52045c909d5e.

This causes test failures on macos -- presumably t

Revert "Save opline before fallible arg type check in recv_init jit"

This reverts commit b09bddcaa5d6af94f0b94b324c1f52045c909d5e.

This causes test failures on macos -- presumably the relevant
difference is that it has no global regs. I suspect that this
is related to the fact that SAVE_VALID_OPLINE may use r0 as
a scratch register, which is already in use. Reverting for now.

show more ...


# b09bddca 01-Oct-2019 Nikita Popov

Save opline before fallible arg type check in recv_init jit

The verify arg functions may throw an exception, so we need to save
the opline beforehand. Asan failures could be observed in

Save opline before fallible arg type check in recv_init jit

The verify arg functions may throw an exception, so we need to save
the opline beforehand. Asan failures could be observed in
Zend/tests/type_declarations/scalar_constant_defaults.phpt
with a ZTS build.

show more ...


1...<<21222324252627