History log of /PHP-8.0/Zend/zend_vm_gen.php (Results 176 – 200 of 294)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
Revision tags: php-7.0.0beta1, php-5.6.11, php-5.5.27, php-5.4.43
# e27cbe65 30-Jun-2015 Bogdan Andone

Hint label lookup table initialization branch on GOTO VM kind.

This initialization is performed only once so it shall be marked as unexpected.


# 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


12345678910>>...12