com php-src: Fixed ability to build non-specialized GOTO VM: Zend/zend_vm_gen.php
| From: | Dmitry Stogov | Date: | Mon, 02 Dec 2013 06:59:32 +0000 |
| Subject: | com php-src: Fixed ability to build non-specialized GOTO VM: Zend/zend_vm_gen.php | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-74193@lists.php.net to get a copy of this message | ||
Commit: 9ed605892de40bf4b005198199139d5207957e6b
Author: Dmitry Stogov <dmitry@zend.com> Mon, 2 Dec 2013 10:59:32 +0400
Parents: 2d31eadbbf147a157cb4a0c89adaf30fee7371f0
Branches: PHP-5.4 PHP-5.5 PHP-5.6 master
Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=9ed605892de40bf4b005198199139d5207957e6b
Log:
Fixed ability to build non-specialized GOTO VM
Changed paths:
M Zend/zend_vm_gen.php
Diff:
diff --git a/Zend/zend_vm_gen.php b/Zend/zend_vm_gen.php
index d2f5192..37deae8 100644
--- a/Zend/zend_vm_gen.php
+++ b/Zend/zend_vm_gen.php
@@ -886,9 +886,16 @@ function gen_executor($f, $skl, $spec, $kind, $executor_name,
$initializer_name,
out($f,"#undef CHECK_EXCEPTION\n");
out($f,"#undef HANDLE_EXCEPTION\n");
out($f,"#undef HANDLE_EXCEPTION_LEAVE\n");
- out($f,"#define CHECK_EXCEPTION() if (UNEXPECTED(EG(exception) != NULL)) goto
ZEND_HANDLE_EXCEPTION_SPEC_HANDLER\n");
- out($f,"#define HANDLE_EXCEPTION() goto ZEND_HANDLE_EXCEPTION_SPEC_HANDLER\n");
- out($f,"#define HANDLE_EXCEPTION_LEAVE() goto
ZEND_HANDLE_EXCEPTION_SPEC_HANDLER\n");
+ if (ZEND_VM_SPEC) {
+ out($f,"#define CHECK_EXCEPTION() if (UNEXPECTED(EG(exception) != NULL)) goto
ZEND_HANDLE_EXCEPTION_SPEC_HANDLER\n");
+ out($f,"#define HANDLE_EXCEPTION() goto ZEND_HANDLE_EXCEPTION_SPEC_HANDLER\n");
+ out($f,"#define HANDLE_EXCEPTION_LEAVE() goto
ZEND_HANDLE_EXCEPTION_SPEC_HANDLER\n");
+ } else {
+ out($f,"#define CHECK_EXCEPTION() if (UNEXPECTED(EG(exception) != NULL)) goto
ZEND_HANDLE_EXCEPTION_HANDLER\n");
+ out($f,"#define HANDLE_EXCEPTION() goto ZEND_HANDLE_EXCEPTION_HANDLER\n");
+ out($f,"#define HANDLE_EXCEPTION_LEAVE() goto ZEND_HANDLE_EXCEPTION_HANDLER\n");
+ }
+
out($f,"#define LOAD_REGS() do {Ts = EX(Ts); CVs = EX(CVs);} while
(0)\n");
out($f,"#define ZEND_VM_CONTINUE() goto *(void**)(OPLINE->handler)\n");
out($f,"#define ZEND_VM_RETURN() EG(in_execution) = original_in_execution;
return\n");