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
Dmitry Stogov
b8a91ac50b
Use "fastcall" calling convention
2018-05-08 01:31:49 +03:00
Dmitry Stogov
91ba1f2085
Remove "hot" mark from JMP(Z|NZ|ZNZ) with IS_CONST operand
2018-03-23 16:11:27 +03:00
Dmitry Stogov
e6c179834b
Allow extra specialisation for ISSET/ISEMPTY handlers
2018-03-22 13:02:49 +03:00
Dmitry Stogov
1735e29b7f
Reduce overhead of extra-specialization for opcode handler selection.
2018-03-22 11:33:17 +03:00
Dmitry Stogov
9dc6661976
Merge branch 'PHP-7.2'
...
* PHP-7.2:
Fixed user-opcode support
2018-03-14 09:41:55 +03:00
Dmitry Stogov
975d144027
Fixed user-opcode support
2018-03-14 09:41:25 +03:00
Dmitry Stogov
6fb9e24218
Allow generation of VM map
2018-02-22 15:31:00 +03:00
Dmitry Stogov
9c0427cada
Mark exceptional helpers as "cold"
2018-02-21 12:07:29 +03:00
Haitao Lv
764e231cc5
fix ZEND_VM_SET_OPCODE_HANDLER cannot set user opcode handler
2018-02-20 10:46:41 +03:00
Dmitry Stogov
050d62484b
Fixed typo
2018-02-19 17:57:46 +03:00
Dmitry Stogov
6d3e1bd124
Added VM instrumentation ability
2018-02-19 16:42:02 +03:00
Dmitry Stogov
190a970dd6
Elimintate duplicate error message
2018-02-19 16:11:28 +03:00
Nikita Popov
b0af9ac733
Avoid live range references in opcodes
...
Don't store the live range of the freed variable for FREE_ON_RETURN
frees, instead look it up at runtime. As this is an extremely
unlikely codepath (in particular, it requires a loop variable with
a throwing destructor), saving the runtime lookup of the live range
is not worth the extra complexity this adds everywhere else.
2018-02-16 21:30:48 +01:00
Dmitry Stogov
285bfb96fe
Optimize "backup" functions of inlined opcode handlers for size
2018-02-15 17:04:41 +03:00
Dmitry Stogov
3778abfc15
Added ability to manually sort opcode handlers (not used yet)
2018-02-15 15:56:38 +03:00
Dmitry Stogov
633d037ed5
Added simple VM instrumentation ability
2018-02-15 15:55:19 +03:00
Dmitry Stogov
23da83c8ca
Avoid inlining of rarely used handlers
2018-02-15 13:48:04 +03:00