#
09547c64 |
| 01-Dec-2021 |
Dmitry Stogov |
Fix clobering of operand by error handler in assignment to string offset In some cases new code requires two reallocations insead of one. Fixes oss-fuzz #31716, #36196, #39739 and #
Fix clobering of operand by error handler in assignment to string offset In some cases new code requires two reallocations insead of one. Fixes oss-fuzz #31716, #36196, #39739 and #40002
show more ...
|
#
ee377744 |
| 04-Nov-2021 |
Nikita Popov |
Suppress unused label warnings in SWITCH VM While we avoid emitting labels for handlers that are not referenced from anywhere else, we do not perform a fine-grained analysis on used
Suppress unused label warnings in SWITCH VM While we avoid emitting labels for handlers that are not referenced from anywhere else, we do not perform a fine-grained analysis on used specializations, so some of the specialization labels may not be used. Use ATTRIBUTE_UNUSED_LABEL to suppress the warning. Drop "cold" from the definition of this attribute, as it is completely unrelated.
show more ...
|
#
8ad2b59e |
| 01-Dec-2020 |
Dmitry Stogov |
Disable stack reuse optimization for x86 PIC code. It may clobber local variable used for Global Offset Table.
|
#
841b00f6 |
| 30-Nov-2020 |
Dmitry Stogov |
Preallocate stack space for JIT in execute_ex() to eliminate JIT prologue/epilogue.
|
Revision tags: php-8.0.0, php-7.3.25, php-7.4.13, php-8.0.0RC5 |
|
#
58d41b8c |
| 11-Nov-2020 |
Sammy Kaye Powers |
Provide unused retvals to observers Make sure that the return value is available to observers, even if it is not used by the caller. Closes GH-6422.
|
#
855d8fa6 |
| 11-Nov-2020 |
Dmitry Stogov |
[Observer] Save opline before calling begin/end handlers
|
Revision tags: php-7.4.13RC1, php-8.0.0RC4, php-7.3.25RC1, php-7.4.12, php-8.0.0RC3, php-7.3.24, php-8.0.0RC2, php-7.4.12RC1, php-7.3.24RC1, php-7.2.34, php-8.0.0rc1, php-7.4.11, php-7.3.23 |
|
#
d5d31ea3 |
| 18-Sep-2020 |
Dmitry Stogov |
Cleanup observer API and add JIT support
|
#
9e94bcfd |
| 17-Sep-2020 |
Sammy Kaye Powers |
Remove specialization of SPEC(OBSERVER) handlers
|
Revision tags: php-8.0.0beta4, php-7.4.11RC1, php-7.3.23RC1, php-8.0.0beta3 |
|
#
66c3e900 |
| 01-Sep-2020 |
Levi Morrison |
Add zend_observer API Closes GH-5857. Co-authored-by: Nikita Popov <nikita.ppv@gmail.com> Co-authored-by: Sammy Powers <sammyk@datadoghq.com>
|
Revision tags: php-7.4.10, php-7.3.22, php-8.0.0beta2, php-7.3.22RC1, php-7.4.10RC1 |
|
#
42eda516 |
| 11-Aug-2020 |
Nikita Popov |
SAVE_OPLINE in NULL_HANDLER Let's avoid crashing before the nice error message gets printed...
|
Revision tags: php-8.0.0beta1, php-7.4.9, php-7.2.33, php-7.3.21, php-8.0.0alpha3, php-7.4.9RC1, php-7.3.21RC1, php-7.4.8, php-7.2.32, php-8.0.0alpha2, php-7.3.20, php-8.0.0alpha1, php-7.4.8RC1, php-7.3.20RC1, php-7.4.7, php-7.3.19, php-7.4.7RC1, php-7.3.19RC1, php-7.4.6, php-7.2.31, php-7.4.6RC1, php-7.3.18RC1, php-7.2.30, php-7.4.5, php-7.3.17 |
|
#
d92229d8 |
| 06-Apr-2020 |
Nikita Popov |
Implement named parameters From an engine perspective, named parameters mainly add three concepts: * The SEND_* opcodes now accept a CONST op2, which is the argument nam
Implement named parameters From an engine perspective, named parameters mainly add three concepts: * The SEND_* opcodes now accept a CONST op2, which is the argument name. For now, it is looked up by linear scan and runtime cached. * This may leave UNDEF arguments on the stack. To avoid having to deal with them in other places, a CHECK_UNDEF_ARGS opcode is used to either replace them with defaults, or error. * For variadic functions, EX(extra_named_params) are collected and need to be freed based on ZEND_CALL_HAS_EXTRA_NAMED_PARAMS. RFC: https://wiki.php.net/rfc/named_params Closes GH-5357.
show more ...
|
#
613a56d1 |
| 09-Jul-2020 |
Nikita Popov |
Remove FREE_UNFETCHED concept In master normal FREE_OPs work like FREE_UNFETCHED_OP used to, so there is no point in keeping this distinction anymore, it's just confusing.
|
#
5d0687e8 |
| 07-Jul-2020 |
Nikita Popov |
Assert exception set in HANDLE_EXCEPTION() Some code paths were checking this manually, but we can turn this into a general assertion to avoid surprises (functions returning failure
Assert exception set in HANDLE_EXCEPTION() Some code paths were checking this manually, but we can turn this into a general assertion to avoid surprises (functions returning failure without throwing).
show more ...
|
#
fb916112 |
| 07-Jul-2020 |
Nikita Popov |
Remove #undefs from vm_gen Possibly these were needed for VM_EXPORT, but they don't serve a purpose now.
|
#
002c264d |
| 07-Jul-2020 |
Nikita Popov |
Remove ZEND_VM_EXPORT functionality This hasn't been used since forever and makes things more confusing than they already are.
|
#
d114812f |
| 25-Jun-2020 |
Ayesh Karunaratne |
[ci skip] Various typo fixes in stub comments and CHANGES file
|
#
f4b46314 |
| 22-May-2020 |
Dmitry Stogov |
Prevent CGG reordering if hanlers order is defined by zend_vm_order.txt
|
Revision tags: php-7.4.5RC1, php-7.3.17RC1, php-7.3.18, php-7.4.4, php-7.2.29, php-7.3.16, php-7.4.4RC1, php-7.3.16RC1, php-7.4.3, php-7.2.28 |
|
#
d4de3f95 |
| 06-Feb-2020 |
Nikita Popov |
Remove spurious const qualifier from function return type
|
Revision tags: php-7.3.15RC1, php-7.4.3RC1 |
|
#
58b17906 |
| 03-Feb-2020 |
Nikita Popov |
Apply tidy formatting Mostly reindent PHP scripts to spaces.
|
Revision tags: php-7.3.15, php-7.2.27, php-7.4.2, php-7.3.14, php-7.3.14RC1, php-7.4.2RC1, php-7.4.1, php-7.2.26, php-7.3.13, php-7.4.1RC1, php-7.3.13RC1, php-7.2.26RC1, php-7.4.0, php-7.2.25, php-7.3.12 |
|
#
a7580899 |
| 13-Nov-2019 |
Tyson Andre |
Support the same handler for multiple opcodes
|
#
e8525c2f |
| 13-Nov-2019 |
Tyson Andre |
Optimize int === int/double === double Do this by reusing the implementation used for `==` when both arguments are ints (IS_LONG) or both are floats (IS_DOUBLE) ```php // Be
Optimize int === int/double === double Do this by reusing the implementation used for `==` when both arguments are ints (IS_LONG) or both are floats (IS_DOUBLE) ```php // Before: nestedloop_ni took 0.442 seconds // After: nestedloop_ni takes 0.401 seconds (same as nestedloop_ne) function nestedloop_ni(int $k) { $x = 0; for ($i=0; $i < 50000000; $i++) { if ($i === $k) { $x++; } } print "$x\n"; } function nestedloop_ne(int $k) { $x = 0; for ($i=0; $i < 50000000; $i++) { if ($i == $k) { $x++; } } print "$x\n"; } ```
show more ...
|
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 |
|
#
f6f32f2c |
| 09-Oct-2019 |
Dmitry Stogov |
SAMRT BRANCH improvement. Avoid need of insertion NOP opcoes between unrelated SMART BRANCH instruction and following JMPZ/JMPNZ. Now instead of checking the opcode of following instruct
SAMRT BRANCH improvement. Avoid need of insertion NOP opcoes between unrelated SMART BRANCH instruction and following JMPZ/JMPNZ. Now instead of checking the opcode of following instruction, the same information is encoded into SMART BRANH result_type.
show more ...
|
#
eec04f6b |
| 08-Oct-2019 |
Dmitry Stogov |
Encapsulate all SMART BRANCH related logic inside macros. Result of SMART BRANCH may be uninitialized (on exception).
|
Revision tags: php-7.3.11RC1, php-7.2.24RC1, php-7.4.0RC3 |
|
#
a66c60cc |
| 26-Sep-2019 |
Nikita Popov |
Throw Error when writing property of non-object This removes object auto-vivification support. This also means that we can remove the corresponding special handling for typed pr
Throw Error when writing property of non-object This removes object auto-vivification support. This also means that we can remove the corresponding special handling for typed properites: We no longer need to check that a property is convertible to stdClass if such a conversion might take place indirectly due to a nested property write. Additionally OBJ_W style operations now no longer modify the object operand, and as such we no longer need to treat op1 as a def in SSA form. The next step would be to actually compile the whole LHS of OBJ_W operations in R rather than W mode, but that causes issues with SimpleXML, whose object handlers depend on the current compilation structure. Part of https://wiki.php.net/rfc/engine_warnings.
show more ...
|
#
470bbb8c |
| 25-Sep-2019 |
Dmitry Stogov |
Avoid code dupliction
|