History log of /PHP-7.0/Zend/zend_vm_gen.php (Results 26 – 50 of 132)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 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)


# e04971ce 03-Dec-2014 Anatol Belski

fix TS build


# e5716d1b 03-Dec-2014 Dmitry Stogov

Get rid of duplicate handlers (ZEND_ADD_SPEC_TMP_TMP and ZEND_ADD_SPEC_VAR_VAR are absolutely the same).


Revision tags: php-5.6.4RC1, php-5.5.20RC1
# c746dcd7 18-Nov-2014 Dmitry Stogov

Get rid of zend_free_op structure (use zval* instead).
Get rid of useless TSRMLS arguments.


Revision tags: php-5.6.3, php-5.5.19, php-5.4.35
# 4bb836be 31-Oct-2014 Adam Harvey

Update the VM generation script, per Bob.


Revision tags: php-5.6.3RC1, php-5.5.19RC1, php-5.5.18, php-5.4.34
# bd9a2346 03-Oct-2014 Dmitry Stogov

Replaced EG(This) and EX(object) with EX(This).
Internal functions now recieves zend_execute_data as the first argument.


Revision tags: php-5.5.18RC1, php-5.6.1, php-5.6.2
# 06103d65 23-Sep-2014 Dmitry Stogov

Use zval_ptr_dtor_nogc() to free IS_TMP_VAR operands.
Removed ZEND_SWITCH_FREE opcode (ZEND_FREE used instead).


# 2c8ac3a2 22-Sep-2014 Dmitry Stogov

Replace IS_OP?_TMP_FREE() with more clear (OP?_TYPE == IS_TMP_VAR)


Revision tags: php-5.4.33, php-5.5.17, php-5.6.1RC1, php-5.5.17RC1, php-5.4.33RC1
# 319ce224 28-Aug-2014 Dmitry Stogov

LOAD_REGS() is not used anymore


# f2b03701 27-Aug-2014 Dmitry Stogov

Use 'const' qualifier for pointrs to code used at run-time (the code must not be changed)


# 8ec40397 27-Aug-2014 Dmitry Stogov

Cleanup IS_VAR handling


Revision tags: php-5.6.0, POST_AST_MERGE, PRE_AST_MERGE, POST_64BIT_BRANCH_MERGE, PRE_64BIT_BRANCH_MERGE, php-5.5.16, php-5.4.32, POST_PHPNG_MERGE, PRE_PHPNG_MERGE, php-5.6.0RC4, php-5.3.29, php-5.5.16RC1, php-5.4.32RC1, php-5.3.29RC1, php-5.6.0RC3, php-5.5.15, php-5.4.31
# 2febfbab 17-Jul-2014 Dmitry Stogov

Micro optimization for the main interpreter loop


123456