1
0
mirror of https://github.com/php/php-src.git synced 2026-04-22 07:28:09 +02:00
Commit Graph

3237 Commits

Author SHA1 Message Date
Dmitry Stogov 31258e4550 Fixed register allocation for tests/lang/operators/preinc_basiclong_64bit.phpt 2020-07-09 18:54:36 +03:00
Dmitry Stogov 9d14bdb377 Bad function detection 2020-07-09 17:24:35 +03:00
Dmitry Stogov 0d9bebac00 Fixed mysqli_fetch_row() function info 2020-07-09 17:24:06 +03:00
Dmitry Stogov 5fec1558b5 Prevent trace recorder reenterancing 2020-07-09 16:33:11 +03:00
Dmitry Stogov b4ae5a20b6 Move assert() to right place 2020-07-09 15:56:24 +03:00
Dmitry Stogov 6d8d08f13b Fixed tracing JIT support for extract() 2020-07-09 15:36:25 +03:00
Dmitry Stogov 5872bfc481 Use RIP-relative addressing 2020-07-09 12:40:56 +03:00
Dmitry Stogov 67828abca7 Align jumptables 2020-07-09 11:31:53 +03:00
Dmitry Stogov 15c6b673a2 Fix jumtable index calculation 2020-07-09 11:28:48 +03:00
Nikita Popov ad6605317c Support JIT jumptables on x64 2020-07-09 11:22:53 +03:00
Dmitry Stogov a75cf0c7e1 JIT support for opcache restart 2020-07-08 18:14:11 +03:00
Dmitry Stogov ad52e4cad9 Fixed tracing JIT support for $http_response_header 2020-07-08 16:33:46 +03:00
Dmitry Stogov 9e8a8e6ab9 Use information about recorded classes for speculative FETCH_OBJ optimization 2020-07-08 14:09:28 +03:00
Dmitry Stogov fa5355ba08 Change zend_get_known_property_offset() into zend_get_known_property_info() and cleanup 2020-07-08 12:02:37 +03:00
Dmitry Stogov ab5f8f4baf More accurate reference-counter inference (with support for ext/intl/tests/bug72241.phpt) 2020-07-07 19:11:27 +03:00
Nikita Popov 15c265b789 Revert "More accurate reference-counter inference"
This reverts commit b35255ad21.

Temporarily revert this, because it causes a memory leak on the
ext/intl/tests/bug72241.phpt test case, because temporary arrays
are not handled correctly.
2020-07-07 16:53:00 +02:00
Nikita Popov e45f7053cf Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug #79793
2020-07-07 16:33:06 +02:00
Nikita Popov 6259eff352 Handle dim_w undefined variable notice in JIT as well 2020-07-07 15:30:43 +02:00
Nikita Popov 0e6ec974fb Check for undef variable exception in SEND_VAR JIT
Add a return value to zend_jit_undefined_op_helper(), so we can
check for exception based on the return value, instead of fetching
EG(exception).
2020-07-07 15:22:46 +02:00
Nikita Popov cdc4ea2a5c JIT support for undefined index/offset handling 2020-07-07 15:13:03 +02:00
Max Semenik 2b5de6f839 Remove proto comments from C files
Closes GH-5758
2020-07-06 21:13:34 +02:00
Dmitry Stogov ff3c40206c More accurate reference-counter inference 2020-07-06 17:55:23 +03:00
Dmitry Stogov b35255ad21 More accurate reference-counter inference 2020-07-06 15:53:28 +03:00
Nikita Popov 344c077400 Use zend_string_equals API in a couple places 2020-07-03 17:02:28 +02:00
Dmitry Stogov 2ecc597259 Removed already implemented TODO comment 2020-07-03 13:40:11 +03:00
Dmitry Stogov ca159561db Fixed IS_UNDEF handling 2020-07-03 10:52:03 +03:00
Dmitry Stogov eee9a05015 Fixed IS_INDIRECT handling 2020-07-03 00:14:09 +03:00
Dmitry Stogov fe1052b177 Better instruction selection 2020-07-02 23:41:15 +03:00
Nikita Popov 16cb88f31a Fix func info for get_class_methods() 2020-07-02 17:23:57 +02:00
Dmitry Stogov f1536ebbb2 JMP optimization 2020-07-02 17:42:15 +03:00
Dmitry Stogov fe9b5ce322 Load constant value only if necessary 2020-07-02 14:43:17 +03:00
Dmitry Stogov 2068f019e3 Eliminate useless exception checks 2020-07-02 12:42:09 +03:00
Fabien Villepinte 3190282f09 Fix typos in comments 2020-07-01 09:08:28 +02:00
Christoph M. Becker 815a2be2ed Improve "VirtualProtect() failed" error messages
When `mprotect()` fails, the error message contains `errno` and the
respective `strerror()`; we add basically the same info on Windows.
2020-06-30 13:23:41 +02:00
Fabien Villepinte 0c6d06ecfa Replace EXPECTF when possible
Closes GH-5779
2020-06-29 21:31:44 +02:00
Dmitry Stogov 24a8065f8b Tracing JIT support for include() and generators 2020-06-29 21:40:49 +03:00
Dmitry Stogov 1ca2fd2b16 Don't record "fake" closures 2020-06-29 20:37:50 +03:00
Nikita Popov 75a04eac97 Make exit() unwind properly
exit() is now internally implemented by throwing an exception,
performing a normal stack unwind and a clean shutdown. This ensures
that no persistent resource leaks occur.

The exception is internal, cannot be caught and does not result in
the execution of finally blocks. This may be relaxed in the future.

Closes GH-5768.
2020-06-29 15:50:12 +02:00
Xinchen Hui d005a8e92b Fixed bug #79743 (Fatal error when assigning to array property with JIT enabled)
simple typo
2020-06-29 17:47:21 +08:00
Nikita Popov 315ea609da Remove restriction on method call inlining
In PHP 8, we are guaranteed that $this exists, so we no longer have
to forbid this case.
2020-06-29 09:54:31 +02:00
Nikita Popov bc62acf874 Merge branch 'PHP-7.4'
* PHP-7.4:
  Don't inline static call to instance method
2020-06-29 09:53:09 +02:00
Nikita Popov fabcd9f14e Don't inline static call to instance method
Fixes the failure in bug79740.phpt with opcache.
2020-06-29 09:52:37 +02:00
Nikita Popov 1314ccbf8c Cache __unserialize() instead of unserialize()
We should use these cache slots for the new object serialization
mechanism rather than the old one.
2020-06-26 10:54:40 +02:00
Dmitry Stogov 9617c2a2f6 Use cheaper zend_hash_find_ex() to handle IS_CONST index 2020-06-26 11:18:04 +03:00
Dmitry Stogov 7e940823d5 Fixed incorrect type guard 2020-06-25 21:59:48 +03:00
Dmitry Stogov 4e7cac810f Move exception check to cold path. 2020-06-25 20:11:23 +03:00
Dmitry Stogov 037bfabd75 Optimization for +/- int(0) 2020-06-25 19:09:54 +03:00
Dmitry Stogov 50af4de0fe Improve tracing JIT for FETCH_THIS + FETCH_OBJ_* 2020-06-25 17:33:53 +03:00
Dmitry Stogov 94b637de5b Avoid $this check 2020-06-25 14:08:21 +03:00
Dmitry Stogov 1434983ad1 Cheaper exception checks 2020-06-25 13:23:43 +03:00