1
0
mirror of https://github.com/php/php-src.git synced 2026-04-22 15:38:49 +02:00
Commit Graph

441 Commits

Author SHA1 Message Date
Dmitry Stogov 83478d4fe0 Side exit on overflow 2020-07-17 13:03:35 +03:00
Dmitry Stogov 6b2c4be48a JMP optimization 2020-07-17 11:07:22 +03:00
Dmitry Stogov e0af92c16e Eliminate useless exception checks 2020-07-17 10:13:23 +03:00
Dmitry Stogov a167e0426d Eliminate some reference-counting 2020-07-17 00:40:10 +03:00
Dmitry Stogov 925909dc46 cleanup 2020-07-16 20:07:51 +03:00
Dmitry Stogov 03a98d9420 cleanup 2020-07-16 17:09:14 +03:00
Dmitry Stogov d50919a03b Check type guard on result of FETCH_OBJ_R/IS instructions 2020-07-16 15:14:11 +03:00
Dmitry Stogov ebb94af754 Fixed tracing JIT for ASSIGN to typed reference 2020-07-16 00:19:00 +03:00
Dmitry Stogov f74e9a4dd3 Check type guard on result of FETCH_DIM_R/IS instructions 2020-07-15 17:28:46 +03:00
Dmitry Stogov 7c16d11e3c Tracing JIT for SWITCH instructions 2020-07-14 15:15:08 +03:00
Dmitry Stogov ddba2a705e Better support for 64-bit .aword constants 2020-07-14 15:14:21 +03:00
Nikita Popov 8c89f23c45 Use different scratch register
r1 clashes with FCARG1a on Windows, so use a different scratch
register. FCARG2a should be free here. Hopefully fixes the
AppVeyor build.
2020-07-14 10:52:50 +02:00
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