Dmitry Stogov
dddb40313b
Keep track information about used JIT trigger in ZEND_FUNC_INFO(op_array)->func_info.flags
2020-09-29 13:05:24 +03:00
Dmitry Stogov
f722512c4a
Move invariant type guard out of loop
2020-09-28 23:54:28 +03:00
Dmitry Stogov
c3206c28d7
Dump class names
2020-09-28 20:29:46 +03:00
Dmitry Stogov
2a71cb3ce1
Improved trace selection rules
2020-09-28 17:04:34 +03:00
Dmitry Stogov
d1ddccdc19
Fixed usage of invalid frame for exit point
2020-09-28 16:18:06 +03:00
Dmitry Stogov
6dd840182e
Missed opline guard
2020-09-28 14:47:45 +03:00
Dmitry Stogov
5783e611a2
Improve trace selection (avoid blacklisting of trace that may be linked).
2020-09-23 23:50:44 +03:00
Dmitry Stogov
3c4fb70f2b
Replace ZEND_JIT_TRACE_STOP_RETURN_HALT and ZEND_JIT_TRACE_STOP_HALT by separate ZEND_JIT_TRACE_HALT flag.
2020-09-23 15:44:04 +03:00
Nikita Popov
7fedee873f
Fix shift ub
...
And typo in macro name
2020-09-23 10:04:32 +02:00
Dmitry Stogov
3dde6fc4ac
Fix extra args leak
2020-09-23 00:21:39 +03:00
Dmitry Stogov
57a3fbb1e1
Fixed INIT_METHOD_CALL + IS_VAR + reference in tracing JIT
2020-09-22 00:47:23 +03:00
Dmitry Stogov
43e58d3221
Fixed incorrect assumption about sizeof(zend_reference)
2020-09-21 23:58:18 +03:00
Dmitry Stogov
4ff2122275
Ficed 32-bit JIT (inconsistent CPU stack state)
2020-09-21 23:43:31 +03:00
Dmitry Stogov
5a085777b7
Fixed incorrect JIT for FETCH_THIS+SEND_REF
2020-09-21 21:53:03 +03:00
Sammy Kaye Powers
12306728c5
Add system ID entropy API
...
The `zend_system_id` is a (true global) system ID that fingerprints a process state. When extensions add engine hooks during MINIT/startup, entropy is added the system ID for each hook. This allows extensions to identify that changes have been made to the engine since the last PHP process restart.
Closes GH-5871
2020-09-18 14:26:44 -07:00
Dmitry Stogov
d5d31ea3b3
Cleanup observer API and add JIT support
2020-09-18 12:55:58 +03:00
Nikita Popov
34bb5ba2ea
Remove support for EXT_NOP
...
This is an annoying edge case that regularly gets broken. As we're
not aware of significant users of this API, and there are other
ways to hook this, remove support for EXT_NOP.
2020-09-18 11:03:08 +02:00
Dmitry Stogov
a9cbdafa69
Support for ZEND_COMPILE_EXTENDED_STMT
2020-09-17 23:19:28 +03:00
Dmitry Stogov
0f9aefa64f
Fixed incorrect live-range construction
2020-09-17 19:39:44 +03:00
Dmitry Stogov
23429b5818
Fixed incorrect register allocation
2020-09-17 18:36:45 +03:00
Dmitry Stogov
e9820bf470
Fixed memory leak in ext/spl/tests/bug77263.phpt
2020-09-17 11:55:50 +03:00
Dmitry Stogov
f786c0e097
Optimize code for FETCH_THIS + INIT_METHOD_CALL/ASSIGN_OBJ_OP/etc
2020-09-16 14:22:36 +03:00
Dmitry Stogov
e27776343f
Fixed incorrect constant string access
2020-09-16 10:49:54 +03:00
Dmitry Stogov
5f1fb1a5a4
JIT for INIT_METHOD_CALL
2020-09-16 10:25:36 +03:00
Dmitry Stogov
f5bbb0480e
Tracing JIT for INIT_DYNAMIC_CALL (closure only)
2020-09-15 15:57:57 +03:00
Dmitry Stogov
a4c3aee5b2
Support for reference
2020-09-14 23:30:49 +03:00
Dmitry Stogov
a351da55bf
Simplify zend_jit_pre/post_inc/dec_typed_ref() helpers
2020-09-14 22:26:34 +03:00
Dmitry Stogov
8f342ad4d2
JIT for PRE/POST_INC/DEC_OBJ
2020-09-14 19:36:15 +03:00
Dmitry Stogov
bf515649ff
JIT for ASSIGN_OBJ_OP
2020-09-14 13:31:41 +03:00
Dmitry Stogov
0a03291b51
Allocate Windows 64 shadow stack space
2020-09-14 10:41:22 +03:00
Benjamin Eberlei
ff0e39bb4d
Remove @jit Docblock support for now due to dev-time constraints
2020-09-14 09:21:05 +02:00
Dmitry Stogov
ccd0348d52
Eliminate repeatable class guards and unnecessary IS_UNDEF property checks
2020-09-11 10:30:43 +03:00
Dmitry Stogov
7b0a053169
JIT for ASSIGN_OBJ
2020-09-10 23:41:50 +03:00
Dmitry Stogov
00076ef2b9
Attempt to fix bug #80014 (PHP 8.0 beta2 crashes with default JIT flags due to hardware incompatibility)
2020-09-10 09:34:32 +03:00
Dmitry Stogov
d2efb7e6c4
Eliminate unnecessary IS_INDIRECT guards
2020-09-10 02:20:15 +03:00
Dmitry Stogov
817ae41496
JIT for ASSIGN_DIM[_OP] with first IS_VAR + IS_INDIRECT operand
2020-09-09 21:41:48 +03:00
Máté Kocsis
9975986b7e
Improve error messages mentioning parameters instead of arguments
...
Closes GH-5999
2020-09-09 10:47:43 +02:00
Dmitry Stogov
c5b42be40e
Fixed memory leak
2020-09-09 11:09:20 +03:00
Dmitry Stogov
d6cc6b2dee
Tracin JIT support for FETCH_DIM_W/RW with IS_VAR + IS_INDIRECT first operand.
2020-09-09 10:35:44 +03:00
Nikita Popov
536e5b4953
Pass correct op_info to zend_jit_fetch_dim()
2020-09-09 09:29:28 +02:00
Dmitry Stogov
73c7fa272d
JIT for FETCH_DIM_W/RW insructions
2020-09-09 02:41:22 +03:00
Dmitry Stogov
b106463d37
JIT for IN_ARRAY instruction.
2020-09-08 21:03:51 +03:00
Dmitry Stogov
02b645e47a
JIT for FETCH_LIST_R
2020-09-08 16:47:15 +03:00
David Carlier
8e05c44496
Opcache JIT, code simplification for Haiku.
...
More straightforward approach to get the path of the
current PHP process.
Closes GH-6082.
2020-09-07 10:15:28 +02:00
Dmitry Stogov
56a9eeda65
Avoid unnecessary IP initiliaization on trace linking
2020-09-04 11:42:13 +03:00
Dmitry Stogov
3f4a5003aa
Cleanup macro/function names
2020-09-04 02:10:48 +03:00
Dmitry Stogov
531d17f0bd
Load EX(opline) in one instuction if possible
2020-09-03 23:53:02 +03:00
Dmitry Stogov
c58c4be5df
Reorder DynAsm macros (no other changes)
2020-09-03 23:52:24 +03:00
Dmitry Stogov
9dc9534637
If we don't know the return address, just escape to VM, instead of adding side exit.
...
Remove unnecessary exception checks.
2020-09-03 17:12:23 +03:00
Dmitry Stogov
67e9b3be39
JIT for FE_FETCH_R
2020-09-03 12:06:06 +03:00