1
0
mirror of https://github.com/php/php-src.git synced 2026-04-29 19:23:22 +02:00
Commit Graph

429 Commits

Author SHA1 Message Date
Dmitry Stogov d4fdf79add JIT for array merging 2020-07-13 12:04:08 +03:00
Nikita Popov 1c5f0b8a16 Check for undef var in verify return jit 2020-07-13 10:05:39 +02:00
Máté Kocsis d30cd7d7e7 Review the usage of apostrophes in error messages
Closes GH-5590
2020-07-10 21:05:28 +02:00
Dmitry Stogov b7dd8679df Fixed tracing JIT miss-compilation 2020-07-10 14:13:53 +03:00
Dmitry Stogov 8d15a2bc8e Restore registers 2020-07-10 12:51:19 +03:00
Ilija Tovilo 9fa1d13301 Implement match expression
RFC: https://wiki.php.net/rfc/match_expression_v2

Closes GH-5371.
2020-07-09 23:52:17 +02:00
Dmitry Stogov c60d0dc2f4 Make tracing JIT to support operator overloading independently from opcache.optimization_level ini directive. 2020-07-09 19:39:12 +03:00
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 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
Dmitry Stogov b35255ad21 More accurate reference-counter inference 2020-07-06 15:53:28 +03: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
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
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
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
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
Nikita Popov d071ab1928 Fix verify arg jit for references 2020-06-24 10:47:37 +02:00
Dmitry Stogov 8b12ea04ee Improved JIT for RECV and RECV_INIT instructions 2020-06-23 23:21:56 +03:00
Dmitry Stogov da1c672424 Replace exceptional code by side exit to VM 2020-06-23 18:31:42 +03:00
Dmitry Stogov e2a8b3e120 Cleanup and better register usage 2020-06-23 17:51:02 +03:00