com php-src: Merge branch 'PHP-5.4' into PHP-5.5: Zend/zend_v m_gen.php
| From: | Dmitry Stogov | Date: | Mon, 02 Dec 2013 07:02:40 +0000 |
| Subject: | com php-src: Merge branch 'PHP-5.4' into PHP-5.5: Zend/zend_v m_gen.php | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-74195@lists.php.net to get a copy of this message | ||
Commit: 7efcbecda99c5c0f2cdf2b686f33cafc6c6460b3
Author: Dmitry Stogov <dmitry@zend.com> Mon, 2 Dec 2013 11:02:40 +0400
Parents: 02dca18b9045029e75d672b8667c1411dde5ca34 9ed605892de40bf4b005198199139d5207957e6b
Branches: PHP-5.5 PHP-5.6 master
Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=7efcbecda99c5c0f2cdf2b686f33cafc6c6460b3
Log:
Merge branch 'PHP-5.4' into PHP-5.5
* PHP-5.4:
Fixed ability to build non-specialized GOTO VM
Conflicts:
Zend/zend_vm_gen.php
Changed paths:
MM Zend/zend_vm_gen.php
Diff:
diff --cc Zend/zend_vm_gen.php
index 9b2877b,37deae8..f29b3c4
--- a/Zend/zend_vm_gen.php
+++ b/Zend/zend_vm_gen.php
@@@ -884,13 -886,20 +884,19 @@@ function gen_executor($f, $skl, $spec,
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 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");
- out($f,"#define ZEND_VM_ENTER() op_array = EG(active_op_array); goto
zend_vm_enter\n");
+ out($f,"#define ZEND_VM_ENTER() goto zend_vm_enter\n");
out($f,"#define ZEND_VM_LEAVE() ZEND_VM_CONTINUE()\n");
out($f,"#define ZEND_VM_DISPATCH(opcode, opline) goto
*(void**)(zend_vm_get_opcode_handler(opcode, opline));\n\n");
out($f,"#define ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_INTERNAL execute_data
TSRMLS_CC\n");