Hi Dmitry,

----- Original Message -----
From: "Dmitry Stogov"
Sent: Tuesday, June 16, 2015

Commit:    48ed660cdf6fe94ac2cd8eac217ea97340766e75
Author: Dmitry Stogov <dmi...@zend.com> Tue, 16 Jun 2015 14:11:16 +0300
Parents:   3180b8e100285e5bd9088e9981608dfd14f6ff27
Branches:  master

Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=48ed660cdf6fe94ac2cd8eac217ea97340766e75

Log:
Make CALL VM with FP and IP in global registers not to return anything from opcode handlers.
Set OPLINE to NULL to terminate VM loop instead.
This saves 1 CPU instruction for each opcode handler.

Changed paths:
 M  Zend/zend_vm_execute.h
 M  Zend/zend_vm_gen.php


In zend_vm_gen.php, it seems lines 1073-1075 can be removed, since they have identical #define's. So, pseudo-diff:

-out($f,"#if defined(ZEND_VM_FP_GLOBAL_REG) && defined(ZEND_VM_IP_GLOBAL_REG)\n");
-out($f,"# define ZEND_VM_ENTER()           ...");
-out($f,"# define ZEND_VM_LEAVE()           ZEND_VM_CONTINUE()\n");
-out($f,"#elif defined(ZEND_VM_FP_GLOBAL_REG)\n");
+out($f,"#if defined(ZEND_VM_FP_GLOBAL_REG)\n");

Just FYI. Unless you purposely kept it like that for semantics or will be adding something else distinct soon/later. :-)

But always neat to see extra optimization tricks (thanks!), even when they don't apply for Windows builds. :-(

- Matt

--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to