summaryrefslogtreecommitdiff
path: root/Zend/zend_vm_execute.skl
Commit message (Collapse)AuthorAgeFilesLines
* Fixed bug #69649 (segfault with --enable-dtrace)Dmitry Stogov2015-05-181-0/+1
|
* Don't propogate "fake" EX(called_scope) and EX(This) into each internal ↵Dmitry Stogov2015-04-231-1/+1
| | | | | | function. They need quite seldom and it's cheaper to get them from corresponfing upper stack frame.
* Optimization of stack-frame constructionDmitry Stogov2015-04-151-1/+1
|
* Recalssify some E_ERROR into E_CORE_ERRORDmitry Stogov2015-04-021-1/+1
|
* improved timeout handling on windowsDmitry Stogov2015-03-161-6/+0
|
* Allow CALL executor to keep few very often used vaiables in CPU registers.Dmitry Stogov2015-03-131-1/+1
| | | | | 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.
* first shot remove TSRMLS_* thingsAnatol Belski2014-12-131-6/+6
|
* Pack EX(frame_info) into EX(This).u1.v.reserved. Rename "frame"kind" into ↵Dmitry Stogov2014-11-281-1/+1
| | | | "call_kind" and VM_FRAME_... into ZEND_CALL_...
* Merged EX(frame_kind) and EX(flags) into single wordDmitry Stogov2014-10-071-3/+3
|
* Replaced EG(This) and EX(object) with EX(This).Dmitry Stogov2014-10-031-1/+1
| | | | Internal functions now recieves zend_execute_data as the first argument.
* LOAD_REGS() is not used anymoreDmitry Stogov2014-08-281-1/+0
|
* Simplify call-frame handlingDmitry Stogov2014-07-071-5/+5
|
* Removed EG(active_symbol_table) and use corresponding value from ↵Dmitry Stogov2014-07-041-1/+2
| | | | EG(current_execute_data)
* Removed EG(called_scope) and use corresponding value from ↵Dmitry Stogov2014-07-031-1/+1
| | | | EG(current_execute_data)
* Removed EG(in_execution). If EG(currentent_execute_data) is not NULL we are ↵Dmitry Stogov2014-07-031-4/+0
| | | | executing something.
* Refactoring: merge call_frame and end_execute_data into single data ↵Dmitry Stogov2014-06-261-2/+13
| | | | structure. Keep only single copy of each argument on VM stack (previously ZE kept two copies of each arguments for user functions)
* Optimized zend_leave_helper()Dmitry Stogov2014-04-181-1/+1
|
* Use better data structures (incomplete) - refactored return_value handlingDmitry Stogov2014-02-121-7/+2
|
* Use better data structures (incomplete)Dmitry Stogov2014-02-101-1/+1
|
* 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
|