Nikita Popov
58b17906f5
Apply tidy formatting
...
Mostly reindent PHP scripts to spaces.
2020-02-03 13:41:31 +01:00
Dmitry Stogov
7237da27fe
Remove HOT attribute from some VM handlers. Comparisons almost always followed by JMPZ/JMPNZ; JMPZNZ is rare used.
2019-09-05 11:40:15 +03:00
Nikita Popov
9e4603f772
Try to fix macos build
...
By avoiding unused variable opline warnings. Also clean up the
replacement of ZEND_VM_SPEC -- we were sometimes treating it as
an always-defined constant with a value (what it actually is) and
sometimes as a conditionally defined constant (which it isn't, but
which still worked thanks to the specializer). Switch to only
treating it as a constant with a value.
2019-07-24 09:44:55 +02:00
Dmitry Stogov
8d51af9bc2
Fixed CALL VM
2019-07-24 01:52:05 +03:00
Dmitry Stogov
b30e4a5aa6
Avoid extra specialization for cold opcodes
2019-07-17 14:03:48 +03:00
Dmitry Stogov
6fbab09ef0
Remove old hack
2019-07-17 12:05:23 +03:00
Dmitry Stogov
349a388b90
Slit INC/DEC opcodes into hot/cold parts and remove specialized versioins for LONG_OR_DOUBLE.
2019-07-16 17:39:25 +03:00
Dmitry Stogov
2e26b063b6
Merge branch 'PHP-7.3' into PHP-7.4
...
* PHP-7.3:
Fixed incorrect specialization (missed IS_INDIRECT handling)
2019-07-16 01:54:22 +03:00
Dmitry Stogov
c570980175
Merge branch 'PHP-7.2' into PHP-7.3
...
* PHP-7.2:
Fixed incorrect specialization (missed IS_INDIRECT handling)
2019-07-16 01:52:11 +03:00
Dmitry Stogov
9ccf3fb996
Fixed incorrect specialization (missed IS_INDIRECT handling)
2019-07-16 01:50:10 +03:00
Dmitry Stogov
350f2212ff
Allow GOTO style helpers in HYBRID VM
2019-07-12 00:00:55 +03:00
Dmitry Stogov
ef1a1a0698
Separate "cold" parts of comparison instructions
2019-07-11 20:44:39 +03:00
Dmitry Stogov
be94c0c3c6
Separate "cold" parts of binary op instructions
2019-07-11 18:23:08 +03:00
Dmitry Stogov
8f0c87e1b6
Avoid unintended inlining
2019-07-09 14:01:48 +03:00
Dmitry Stogov
e1f418dd18
Remove duplicated code for (PRE|POST)_DEC_(OBJ|STATIC_PROP) opcodes
2019-07-09 10:46:04 +03:00
Dmitry Stogov
1804fd634e
Fixed dispatch from inlined hybrid opcode to another opcode
2019-07-08 18:01:46 +03:00
Dmitry Stogov
48ca5a1e17
Replace ZEND_ASSIGN_ADD (and others) by ZEND_ASSIGN_OP, ZEND_ASSIGN_DIM_OP, ZEND_ASSGIN_OBJ_OP and ZEND_ASSIGN_STATIC_PROP_OP
2019-07-05 12:03:25 +03:00
Dmitry Stogov
925fd0fe6f
Introduce and use ZEND_VM_INLINE_HANDLER() to avoid ZEND_RETURN exception
2019-07-04 15:54:45 +03:00
Dmitry Stogov
f2b6b2eee8
Micro-optimization
2019-07-01 16:57:25 +03:00
Joe Watkins
175c7bf6fe
Revert "micro-optimization"
...
This reverts commit 374f769982
.
2019-06-12 20:04:47 +02:00
Dmitry Stogov
374f769982
micro-optimization
2019-06-10 16:43:20 +03:00
Dmitry Stogov
3f4dfe1877
Prevent generation of specialized ZEND_ASSIGN_OP_..._STATIC_PROP handlers, that call unspecialized helper, anyway.
2019-06-05 17:38:13 +03:00
Dmitry Stogov
fe0a0897ba
Merge branch 'PHP-7.3' into PHP-7.4
...
* PHP-7.3:
Repare SWITCH VM
2019-04-09 01:17:10 +03:00
Dmitry Stogov
8e5a2096a9
Merge branch 'PHP-7.2' into PHP-7.3
...
* PHP-7.2:
Repare SWITCH VM
2019-04-09 01:11:02 +03:00
Dmitry Stogov
7b8212f4d1
Repare SWITCH VM
2019-04-09 00:41:11 +03:00
Benjamin Eberlei
d303225c3a
Make regex replacements in zend_vm_gen.php more obvious
...
Change specializing preg_replace code in VM to be map of search to
replacement for easier understanding.
2019-02-25 17:44:26 +01:00
Dmitry Stogov
626bc3a2de
More accurate handling of global registers (allow VM with single global register)
2019-02-12 17:39:02 +03:00
Nikita Popov
1a4ffcd2b4
Fix DIM_OBJ specialization in zend_vm_get_opcode_handler_func
...
DIM_OBJ also specializes over ASSIGN_STATIC_PROP nowadays.
2019-02-07 10:06:25 +01:00
Zeev Suraski
a81202ac49
Adios, yearly copyright ranges
2019-01-30 11:48:28 +01:00
Nikita Popov
e219ec144e
Implement typed properties
...
RFC: https://wiki.php.net/rfc/typed_properties_v2
This is a squash of PR #3734 , which is a squash of PR #3313 .
Co-authored-by: Bob Weinand <bobwei9@hotmail.com>
Co-authored-by: Joe Watkins <krakjoe@php.net>
Co-authored-by: Dmitry Stogov <dmitry@zend.com>
2019-01-11 15:49:06 +01:00
Dmitry Stogov
6ccdb904ae
Fixed ws
2018-12-21 19:03:28 +03:00
Dmitry Stogov
7155239669
Merge branch 'PHP-7.3'
...
* PHP-7.3:
Removed /e modifirer and fixed ws.
2018-12-21 19:01:36 +03:00
Dmitry Stogov
95193c3872
Merge branch 'PHP-7.2' into PHP-7.3
...
* PHP-7.2:
Removed /e modifirer and fixed ws.
2018-12-21 19:01:18 +03:00
Dmitry Stogov
8db63adb6d
Removed /e modifirer and fixed ws.
2018-12-21 18:58:50 +03:00
Dmitry Stogov
ae9e956ef9
Reorder conditions
2018-12-18 23:23:44 +03:00
Zeev Suraski
9afce019e0
Future-proof email addresses
2018-11-01 18:35:32 +02:00
Zeev Suraski
54dc07f3dc
Update email addresses. We're still @Zend, but future proofing it...
2018-11-01 17:20:07 +02:00
Dmitry Stogov
a4b33f775e
Added new line
2018-10-18 16:40:24 +03:00
Peter Kokot
902d39a3a7
Trim trailing whitespace in source code files
2018-10-13 14:14:50 +02:00
Peter Kokot
03bbdf275a
Make PHP development tools files executable
...
This patch makes few remaining PHP development tools files
executable and adds a shebang to them.
The `#!/usr/bin/env php` shebang provides running the script via
`./script.php` and uses env to find PHP script location on the system.
At the same time it still provides running the script with a user
defined PHP location using `php script.php`. Shebang is not visible in
the output of the generated file.
2018-09-17 00:02:36 +02:00
Dmitry Stogov
1d36c3361f
Fixed support for commutative "user opcodes"
2018-09-05 22:11:10 +03:00
Dmitry Stogov
be805f146c
Added missing define
2018-07-30 13:29:09 +03:00
Peter Kokot
a5e80b22e1
Fix typos in code comments
2018-07-25 11:57:11 +02:00
Peter Kokot
8d3f8ca12a
Remove unused Git attributes ident
...
The $Id$ keywords were used in Subversion where they can be substituted
with filename, last revision number change, last changed date, and last
user who changed it.
In Git this functionality is different and can be done with Git attribute
ident. These need to be defined manually for each file in the
.gitattributes file and are afterwards replaced with 40-character
hexadecimal blob object name which is based only on the particular file
contents.
This patch simplifies handling of $Id$ keywords by removing them since
they are not used anymore.
2018-07-25 00:53:25 +02:00
Dmitry Stogov
3fd97a5b1f
Better hot/cold code splitting
2018-07-03 11:07:39 +03:00
Dmitry Stogov
1597b56619
Inline few small opcode handlers into hybrid executor
2018-06-07 16:30:53 +03:00
Dmitry Stogov
59c2ff2543
Embed zend_leave_helper() into hybrid executor to avoid call overhead.
2018-06-05 11:33:19 +03:00
Dmitry Stogov
9e0f131d2b
Fixed ISSET/ISEMPTY bit meaning to simplify run-time checks
2018-05-31 19:02:51 +03:00
Dmitry Stogov
84aab1d4e1
Marked rarely used opcodes as "cold" (e.g. ADD_CONST_CONST ususaly optimized out).
2018-05-30 01:50:44 +03:00
Dmitry Stogov
e9e2d068b6
Fixed conditions
2018-05-14 17:23:37 +03:00