summaryrefslogtreecommitdiff
path: root/Zend/zend_vm_execute.skl
Commit message (Collapse)AuthorAgeFilesLines
* Slight performance improvementDmitry Stogov2012-12-051-1/+6
|
* Moved zend_create_execute_data_from_op_array() implementation from ↵Dmitry Stogov2012-12-041-150/+0
| | | | zend_vm_execute.skl to zend_execute.c
* Optimized access to temporary and compiled VM variablesDmitry Stogov2012-12-041-18/+16
|
* . The VM stacks for passing function arguments and syntaticaly nested calls ↵Dmitry Stogov2012-11-301-11/+91
| | | | | | were merged into a single stack. The stack size needed for op_array execution is calculated at compile time and preallocated at once. As result all the stack push operatins don't require checks for stack overflow any more. . Generators implementation was improved using the new VM stack. Now it's a bit more clear and faster.
* Improved "finally" im[plementationDmitry Stogov2012-11-221-1/+0
|
* Fixed bug #63428 (The behavior of execute() changed)Xinchen Hui2012-11-041-7/+4
|
* Merge remote-tracking branch 'php-src/master' into addGeneratorsSupportNikita Popov2012-08-261-2/+2
|\ | | | | | | | | | | Conflicts: Zend/zend_language_parser.y Zend/zend_vm_execute.skl
| * Merge branch 'PHP-5.4'Xinchen Hui2012-08-251-1/+1
| |\
| | * Merge branch 'PHP-5.3' into PHP-5.4Xinchen Hui2012-08-251-1/+1
| | |\
| | | * Fixed bug (segfault while build with zts and GOTO vm-kind)Xinchen Hui2012-08-251-1/+1
| | | |
* | | | Merge remote-tracking branch 'php-src/master' into addGeneratorsSupportNikita Popov2012-08-131-0/+1
|\ \ \ \ | |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is just an intial merge. It does not yet make generators and finally work together. Conflicts: Zend/zend_language_scanner.c Zend/zend_language_scanner_defs.h Zend/zend_vm_def.h Zend/zend_vm_execute.h Zend/zend_vm_execute.skl Zend/zend_vm_opcodes.h
| * | | Implemented 'finally' keywords for phpXinchen Hui2012-08-131-0/+1
| |/ / | | | | | | | | | | | | | | | | | | RFC: https://wiki.php.net/rfc/finally FR: https://bugs.php.net/bug.php?id=32100 and I have got some improvment ideas(performance), will implemented later. thanks
* | | Remove asterix modifier (*) for generatorsNikita Popov2012-07-201-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Generators are now automatically detected by the presence of a `yield` expression in their body. This removes the ZEND_SUSPEND_AND_RETURN_GENERATOR opcode. Instead additional checks for ZEND_ACC_GENERATOR are added to the fcall_common helper and zend_call_function. This also adds a new function zend_generator_create_zval, which handles the actual creation of the generator zval from an op array. I feel like I should deglobalize the zend_create_execute_data_from_op_array code a bit. It currently changes EG(current_execute_data) and EG(opline_ptr) which is somewhat confusing (given the name).
* | | Make the GOTO and SWITCH VMs work againNikita Popov2012-05-291-4/+3
| | |
* | | Add support for executing a zend_execute_dataNikita Popov2012-05-261-33/+42
| | | | | | | | | | | | | | | | | | | | | | | | This adds another function execute_ex(), which accepts a zend_execute_data struct to run (contrary to execute(), which accepts a zend_op_array from which it initialized the execute_data). This needs a bit more cleanup.
* | | Allocate execute_data using malloc for generatorsNikita Popov2012-05-221-4/+32
|/ / | | | | | | | | | | | | Generators need to switch the execute_data very often. If the execute_data is allocated on the VM stack this operation would require to always copy the structure (which is quite large). That's why the execution context is allocated on the heap instead (only for generators obviously).
* | - Improved memory usageDmitry Stogov2010-09-151-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | . zend_function.pass_rest_by_reference is replaced by ZEND_ACC_PASS_REST_BY_REFERENCE in zend_function.fn_flags . zend_function.return_reference is replaced by ZEND_ACC_RETURN_REFERENCE in zend_function.fn_flags . zend_arg_info.required_num_args removed. it was needed only for internal functions. Now the first arg_info for internal function (which has special meaning) is represented by zend_internal_function_info structure. . zend_op_array.size, size_var, size_literal, current_brk_cont, backpatch_count moved into CG(context), because they are used only during compilation. . zend_op_array.start_op is moved into EG(start_op), because it's used only for 'interactive' execution of single top-level op-array. . zend_op_array.done_pass_two is replaced by ZEND_ACC_DONE_PASS_TWO in zend_op_array.fn_flags. . op_array.vars array is trimmed (reallocated) during pass_two. . zend_class_entry.constants_updated is replaced by ZEND_ACC_CONSTANTS_UPDATED in zend_class_entry.ce_flags . the size of zend_class_entry is reduced by sharing the same memory space by different information for internal and user classes. See zend_class_inttry.info union.
* | Added caches to eliminate repeatable run-time bindings of functions, ↵Dmitry Stogov2010-05-241-0/+4
| | | | | | | | classes, constants, methods and properties
* | Added a number of small performance tweaks and optimizationsDmitry Stogov2010-04-201-9/+8
|/ | | | | | | . ZEND_RECV now always has IS_CV as its result . ZEND_CATCH now has to be used only with constant class names . ZEND_FETCH_DIM_? may fetch array and dimension operans in a different order
* Fixed bug #46074 (Bus error during running PHP CLI under IRIX 6.5.30)Dmitry Stogov2009-09-031-5/+5
|
* - Removed direct executor recursion.Dmitry Stogov2008-06-111-2/+7
| | | | | - Use fastcall calling convention in executor on x86.
* Use IS_CV for dirrent access to $this variableDmitry Stogov2008-05-071-4/+9
|
* Lazy EG(active_symbol_table) initializationDmitry Stogov2008-04-291-3/+3
|
* Changed EG(argument_stack) implementation.Dmitry Stogov2008-01-241-10/+11
|
* Fixed compilation on WindowsDmitry Stogov2007-11-231-1/+1
|
* Fixed bug #43128 (Very long class name causes segfault)Dmitry Stogov2007-11-221-4/+5
|
* Fixed bug #43136 (possible crash on script execution timeout. The ↵Dmitry Stogov2007-11-201-2/+1
| | | | EG(function_state_ptr) is completely removed, EG(current_execute_data)->function_state must be used instead)
* MFH: Added macros for managing zval refcounts and is_ref statusesYiduo (David) Wang2007-10-071-2/+2
|
* Added support for Late Static Binding. (Dmitry, Etienne Kneuss)Dmitry Stogov2007-09-291-6/+1
|
* MFH: Fixed compiler warningsJani Taskinen2007-07-211-1/+1
|
* Fixed bug #35437 (Segfault or Invalid Opcode 137/1/4)Dmitry Stogov2005-12-011-0/+4
|
* MFH: fix #33771 (error_reporting falls to 0 when @ was used inside try/catch ↵Antony Dovgal2005-09-221-0/+1
| | | | block)
* - Fix typoAndi Gutmans2004-10-281-1/+1
|
* - Commit new VMAndi Gutmans2004-10-221-0/+72
- Old one is tagged as PRE_NEW_VM_GEN_PATCH - Still doing work so more commits to come. Don't complain (yet) :)