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
Ilija Tovilo
1c967df5a0
Fix free of uninitialized memory in MATCH_ERROR
...
As suggested by Tyson Andre:
https://github.com/php/php-src/pull/5371#issuecomment-657081464
Also fix line number of unhandled match error
Closes GH-5841.
2020-07-12 13:33:36 +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
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