diff options
| author | Dmitry Stogov <dmitry@zend.com> | 2015-03-13 03:28:21 +0300 |
|---|---|---|
| committer | Dmitry Stogov <dmitry@zend.com> | 2015-03-13 03:28:21 +0300 |
| commit | 249c2323f4b834188dd8d03fdda1a583c1f3141d (patch) | |
| tree | b4e1ee5ac78993d3fde29edf8379efbbd2be7d56 /Zend/zend_execute.c | |
| parent | 6289f7e52f07d411bce0a0a99fe65bfbe87e4290 (diff) | |
| download | php-git-249c2323f4b834188dd8d03fdda1a583c1f3141d.tar.gz | |
Allow CALL executor to keep few very often used vaiables in CPU registers.
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.
Diffstat (limited to 'Zend/zend_execute.c')
| -rw-r--r-- | Zend/zend_execute.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/Zend/zend_execute.c b/Zend/zend_execute.c index 4a8b4694b7..163f8c1ae7 100644 --- a/Zend/zend_execute.c +++ b/Zend/zend_execute.c @@ -2035,6 +2035,16 @@ static zend_always_inline void zend_vm_stack_extend_call_frame(zend_execute_data } /* }}} */ +#if HAVE_GCC_GLOBAL_REGS +# if defined(__GNUC__) && defined(i386) +# define ZEND_VM_FP_GLOBAL_REG "%esi" +# define ZEND_VM_IP_GLOBAL_REG "%edi" +# elif defined(__GNUC__) && defined(__x86_64__) +# define ZEND_VM_FP_GLOBAL_REG "%r14" +# define ZEND_VM_IP_GLOBAL_REG "%r15" +# endif +#endif + #define ZEND_VM_NEXT_OPCODE() \ CHECK_SYMBOL_TABLES() \ ZEND_VM_INC_OPCODE(); \ |
