summaryrefslogtreecommitdiff
path: root/Zend
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@zend.com>2013-12-02 11:03:57 +0400
committerDmitry Stogov <dmitry@zend.com>2013-12-02 11:03:57 +0400
commit86c806a36ea98da13625cd3115244cfcb9dded0a (patch)
treea5cd826c8e097c5c56ef98e799382c19b6caa5c3 /Zend
parent1acee0557993eda1c5349aa4fb2816be92f2d1ee (diff)
parent9447181d0c1f07319c76390590ec260bb4e296ca (diff)
downloadphp-git-86c806a36ea98da13625cd3115244cfcb9dded0a.tar.gz
Merge branch 'PHP-5.6'
* PHP-5.6: Fixed ability to build non-specialized GOTO VM
Diffstat (limited to 'Zend')
-rw-r--r--Zend/zend_vm_gen.php12
1 files changed, 9 insertions, 3 deletions
diff --git a/Zend/zend_vm_gen.php b/Zend/zend_vm_gen.php
index a0546460d0..697c6504f0 100644
--- a/Zend/zend_vm_gen.php
+++ b/Zend/zend_vm_gen.php
@@ -911,9 +911,15 @@ 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()\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");