#
301ee265 |
| 08-Jul-2015 |
Dmitry Stogov |
Fixed situation, when CHECH_EXCEPTION() might change value of "opline" variable and the following "opline" useages would access elements of different opcode. That might lead to unpredictable behavior
Fixed situation, when CHECH_EXCEPTION() might change value of "opline" variable and the following "opline" useages would access elements of different opcode. That might lead to unpredictable behavior. (Only PHP-7 with GCC global register variables was affected). CHECK_EXCEPTION() macro is removed. ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTIO() should be used instead. It's equivalent to old CHECK_EXCEPTION() + ZEND_VM_NEXT_OPCODE(). As a side effect, this also slightly improved performnce of builds with GCC >= 4.8.
show more ...
|
#
f70950d0 |
| 28-Jun-2015 |
Xinchen Hui |
Fixed ZEND_VM_DEFINE_OP build when --without-specializer
|
#
a486294e |
| 28-Jun-2015 |
Xinchen Hui |
Unused ret
|
Revision tags: php-5.6.11RC1, php-5.5.27RC1, php-7.0.0alpha2 |
|
#
3e57e50f |
| 16-Jun-2015 |
Dmitry Stogov |
Removed useless #ifdef
|
#
48ed660c |
| 16-Jun-2015 |
Dmitry Stogov |
Make CALL VM with FP and IP in global registers not to return anything from opcode handlers. Set OPLINE to NULL to terminate VM loop instead. This saves 1 CPU instruction for each opcode hand
Make CALL VM with FP and IP in global registers not to return anything from opcode handlers. Set OPLINE to NULL to terminate VM loop instead. This saves 1 CPU instruction for each opcode handler.
show more ...
|
Revision tags: php-5.5.26, php-7.0.0alpha1, php-5.6.10, php-5.4.42 |
|
#
7f39ee71 |
| 04-Jun-2015 |
Dmitry Stogov |
Delay checks for undefined CV variables after checks for fast paths.
|
Revision tags: POST_PHP7_NSAPI_REMOVAL, PRE_PHP7_NSAPI_REMOVAL, php-5.6.10RC1, php-5.5.26RC1, php-5.5.25, php-5.6.9, php-5.4.41, php-5.6.9RC1, php-5.5.25RC1 |
|
#
b1bd6f50 |
| 19-Apr-2015 |
Bob Weinand |
Properly define ZEND_OP_DATA in zend_vm_def.h This allows zend_vm_gen.php to define them in zend_vm_opcodes.{c,h} without further hacks.
|
Revision tags: php-5.6.8, php-5.5.24, php-5.4.40 |
|
#
690843fa |
| 09-Apr-2015 |
Dmitry Stogov |
Fixed GOTO executor
|
Revision tags: php-5.6.8RC1, php-5.5.24RC1, php-5.6.7, php-5.5.23, php-5.4.39 |
|
#
4d4a5336 |
| 17-Mar-2015 |
Dmitry Stogov |
Embed "fast" operator functions (add, sub, increment, etc) into executor with additional optimizations
|
#
8247f49f |
| 16-Mar-2015 |
Xinchen Hui |
Exposed ZEND_VM_KIND etc
|
#
ae26a51f |
| 13-Mar-2015 |
Dmitry Stogov |
Added API function to call VM opcode handler in a portable way
|
#
25566c67 |
| 13-Mar-2015 |
Wei Dai |
Implement preg_replace_callback_array function
|
#
249c2323 |
| 13-Mar-2015 |
Dmitry Stogov |
Allow CALL executor to keep few very often used vaiables in CPU registers. This is disabled by default yet, but may be enabled compiling zend_execute.c with -DHAVE_GCC_GLOBAL_REGS. Only teste
Allow CALL executor to keep few very often used vaiables in CPU registers. This is disabled by default yet, but may be enabled compiling zend_execute.c with -DHAVE_GCC_GLOBAL_REGS. Only tested on Linux x86 and x86_64 with GCC 4.9.2.
show more ...
|
#
6289f7e5 |
| 12-Mar-2015 |
Dmitry Stogov |
Executor cleanup: fix GOTO and SWITCH VMs, remove aility to build additional PHP-5.0 compatible VM, hide executor implementation details.
|
#
1c94ff05 |
| 09-Mar-2015 |
Dmitry Stogov |
Implement engine exceptions RFC: https://wiki.php.net/rfc/engine_exceptions_for_php7 Pending changes regarding naming of BaseException and whether it should be an interface.
|
Revision tags: php-5.6.7RC1, php-5.5.23RC1, POST_PHP7_EREG_MYSQL_REMOVALS, PRE_PHP7_EREG_MYSQL_REMOVALS |
|
#
2bb9a591 |
| 26-Feb-2015 |
Dmitry Stogov |
Fixed ability to build unspecialized executor
|
#
ff862676 |
| 25-Feb-2015 |
Dmitry Stogov |
Fixed compilation warnings
|
Revision tags: php-5.6.6, php-5.5.22, php-5.4.38, POST_PHP7_REMOVALS, PRE_PHP7_REMOVALS, php-5.6.6RC1, php-5.5.22RC1, php-5.5.21, php-5.6.5, php-5.4.37 |
|
#
fc33f52d |
| 15-Jan-2015 |
Xinchen Hui |
bump year
|
#
0579e827 |
| 15-Jan-2015 |
Xinchen Hui |
bump year
|
#
73c1be26 |
| 15-Jan-2015 |
Xinchen Hui |
Bump year
|
Revision tags: php-5.5.21RC1, php-5.6.5RC1, POST_NATIVE_TLS_MERGE, PRE_NATIVE_TLS_MERGE, php-5.5.20, php-5.4.36, php-5.6.4 |
|
#
e112f6a0 |
| 14-Dec-2014 |
Anatol Belski |
second shot on removing TSRMLS_*
|
#
14e29f51 |
| 12-Dec-2014 |
Dmitry Stogov |
Reduced size of zend_op on 64-bit systems. the main idea - the smaller the zend_op structure, the lees memory traffic is required to load VM instructions during execution. The patch reduces
Reduced size of zend_op on 64-bit systems. the main idea - the smaller the zend_op structure, the lees memory traffic is required to load VM instructions during execution. The patch reduces the size of each opcode from 48 to 32 bytes (saves 16 bytes for each opcode, and applications use thousands of opoceds). This reduced the number of CPU cache misses by 12% and improved performance of real-life apps by 1-2%. The patch affects how constants and jump targets are represented in VM during execution. Previously they were implemented as absolute 64-bit pointers. Now they are relative 32-bit offsets. In run-time constant now should be accessed as: RT_CONSTANT(op_array, opine->op1) instead of opline->op1.zv EX_CONSTANT(opline->op1) instead of opline->op1.zv Jump targets: OP_JMP_ADDR(opline, opline->op2) instead of opline->op2.jmp_addr The patch doesn't change zend_op representation for 32-bit systems. They still use absolute addresses. The compile-time representation is also kept the same.
show more ...
|
#
f7054567 |
| 09-Dec-2014 |
Dmitry Stogov |
Pass znode_op structure by value (it fits into one word) instead of pointer to structure.
|
#
b6c6e796 |
| 08-Dec-2014 |
Dmitry Stogov |
Improved ASSIGN_DIM and ASSIGN_OBJ
|
#
c7f695f3 |
| 05-Dec-2014 |
Dmitry Stogov |
Get rid of duplicate handlers (where the code for IS_TMP_VAR and IS_VAR operands is the same)
|