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