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