summaryrefslogtreecommitdiff
path: root/Zend/zend_vm_opcodes.c
Commit message (Collapse)AuthorAgeFilesLines
* Implement return typesLevi Morrison2015-01-271-1/+1
| | | | RFC is documented here: https://wiki.php.net/rfc/return_types
* bump yearXinchen Hui2015-01-151-1/+1
|
* Drop ZEND_PRINT opcode in favor of ZEND_ECHONikita Popov2014-12-181-1/+1
| | | | The return value long(1) is an IS_CONST operand now.
* Fixed list() behavior inconsistency (string handling is disabled for all ↵Dmitry Stogov2014-10-051-1/+1
| | | | cases, ArrayAccess objects handling is enabled for all cases, ZEND_FETCH_DIM_TMP_VAR opcode is renamed into ZEND_FETCH_LIST, ZEND_FETCH_ADD_LOCK flag is removed).
* Drop unused INIT_STRING opcodeNikita Popov2014-09-291-1/+1
| | | | | INIT_STRING has been implemented as an UNUSED op1 to ADD_* for some time now.
* Drop unused RAISE_ABSTRACT_ERROR opcodeNikita Popov2014-09-291-1/+1
| | | | | Abstract methods are being prevented from being called in DO_FCALL etc.
* Merge branch 'coalesce_operator'Andrea Faulds2014-09-281-1/+2
|\ | | | | | | | | | | | | | | * coalesce_operator: Extended coalesce operator test case for ordering/short-circuiting Ensure not evaluated twice Added test Initial coalesce operator implementation
| * Initial coalesce operator implementationNikita Popov2014-09-161-1/+2
| |
* | Use zval_ptr_dtor_nogc() to free IS_TMP_VAR operands.Dmitry Stogov2014-09-231-1/+1
|/ | | | Removed ZEND_SWITCH_FREE opcode (ZEND_FREE used instead).
* Removed ZEND_QM_ASSIGN_VAR and ZEND_JMP_SET_VAR opcodes (in PHPNG they did ↵Dmitry Stogov2014-09-111-2/+2
| | | | exacly the same as ZEND_QM_ASSIGN and ZEND_JMP_SET)
* Implemented builtin instruction for strlen()Dmitry Stogov2014-07-141-1/+1
|
* Implemented builtin instruction for type check functions - is_*()Dmitry Stogov2014-07-141-1/+1
|
* Implemented builtin instruction for strlen()Dmitry Stogov2014-07-111-1/+1
|
* Implement call_user_func() and call_user_func_array() using special opcodes.Dmitry Stogov2014-07-111-3/+3
| | | | In some rare cases it leads to insignificant changes in error messages.
* ZEND_SEND_VAR and ZEND_SEND_VAL specializationDmitry Stogov2014-07-081-3/+3
|
* Refactored parameter passing mechanism.Dmitry Stogov2014-06-301-1/+1
| | | | | | | | | | | In PHP-5.6 and below each argument passed to user function was copies on VM stack twice. Now we always have ZEND_INIT_FCALL (or simular) opcode that pushes "call frame" on top of VM stack. "Call frame" is actually the same zend_execute_data structure. All the following ZEND_SEND instructions push arguments on top of the stack in a way that they directly comes into corresponding CV variables of the called frame. Extra arguments are copied at the end of stack frame (after all CV and TMP variables) on function enterance. There are two minor incompatibilities: 1) It's not allowed to decalre functions redefining arguments e.g. "function foo($a,$a) {}". 2) func_get_arg() and func_get args() return the current value of argument and not the original value that was sent.
* Introduced new BIND_GLOBAL instraction instead of FETCH_W+ASSIGN_REF pair ↵Dmitry Stogov2014-06-061-1/+2
| | | | that caused a lot of useles checks
* add T_POW (**) operatordatibbaw2014-02-061-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixed recognition of the operator Added opcode, still doing multiply instead of pow() opcode now always returns int(42) The right answer, but always a float Yanked code from pow() implementation. Should not handle negative long as exponent ourselves Added test cases from pow() Moved precedence higher than '~' Added GMP operator overloading Added ZEND_ASSIGN_POW (**=) operator. Added pow() as a language construct. Adjusted test cases for changed precedence. Reduced pow() to shell function around ZEND_API pow_function() Reduced test case to only contain edge cases Added overloading test case Moved unary minus above T_POW Revert "Added pow() as a language construct." Bad bad bad idea. This reverts commit f60b98cf7a8371233d800a6faa286ddba4432d02. Reverted unary minus behaviour due to previous revert. Convert arrays to int(0) Exponent with array as a base becomes int(0) Rebase against master Fixed tokenizer test case
* Implement argument unpackingNikita Popov2014-01-111-1/+2
| | | | RFC: https://wiki.php.net/rfc/argument_unpacking
* Bump yearXinchen Hui2014-01-031-1/+1
|
* Merge branch 'PHP-5.6' of https://github.com/php/php-src into PHP-5.6krakjoe2013-12-221-1/+2
|\
| * Merge branch 'PHP-5.5' into PHP-5.6Bob Weinand2013-12-221-0/+2
| |\ | | | | | | | | | | | | Conflicts: Zend/zend_vm_opcodes.c
| * | Merge branch 'PHP-5.5' into PHP-5.6Bob Weinand2013-12-211-1/+2
| | | | | | | | | | | | | | | Conflicts: Zend/zend_vm_opcodes.h
* | | Merge branch 'PHP-5.4' into PHP-5.5krakjoe2013-12-221-0/+5
|\ \ \ | |_|/ |/| | | | | | | | | | | * PHP-5.4: stop warnings from unused opcode map - BFN
| * | stop warnings from unused opcode mapkrakjoe2013-12-221-0/+5
| | |
* | | Merge branch 'PHP-5.4' into PHP-5.5Bob Weinand2013-12-221-0/+2
|\ \ \ | |/ / | | / | |/ |/| Conflicts: Zend/zend_vm_opcodes.c
| * Included new .c file in build tooBob Weinand2013-12-221-0/+2
| |
* | Merge branch 'PHP-5.4' into PHP-5.5Bob Weinand2013-12-211-1/+6
|/ | | | | Conflicts: Zend/zend_vm_opcodes.h
* Moved to new file, killing a lot of warningsBob Weinand2013-12-211-0/+181