diff options
author | Dmitry Stogov <dmitry@zend.com> | 2013-12-02 10:59:32 +0400 |
---|---|---|
committer | Dmitry Stogov <dmitry@zend.com> | 2013-12-02 10:59:32 +0400 |
commit | 9ed605892de40bf4b005198199139d5207957e6b (patch) | |
tree | a4751fbb36be8fa931a9e0f70288c1f5e7b8d6c4 | |
parent | 2d31eadbbf147a157cb4a0c89adaf30fee7371f0 (diff) | |
download | php-git-9ed605892de40bf4b005198199139d5207957e6b.tar.gz |
Fixed ability to build non-specialized GOTO VM
-rw-r--r-- | Zend/zend_vm_gen.php | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/Zend/zend_vm_gen.php b/Zend/zend_vm_gen.php index d2f51925dc..37deae8657 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"); |