summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@php.net>2011-05-05 16:02:11 +0000
committerDmitry Stogov <dmitry@php.net>2011-05-05 16:02:11 +0000
commit6eedfb9b3a2e0d771b1a76540357bfc0db27ef5d (patch)
tree99d16d7da5602360a6bc4eb3b8f309a4b552d8a2
parent91bddbe26e2537de59e66a9a56a935c6d36081e2 (diff)
downloadphp-git-6eedfb9b3a2e0d771b1a76540357bfc0db27ef5d.tar.gz
Fixed direct threaded executor (php zend_vm_gen.php --with-vm-kind=GOTO)
-rw-r--r--Zend/zend_vm_def.h8
-rw-r--r--Zend/zend_vm_execute.h8
2 files changed, 10 insertions, 6 deletions
diff --git a/Zend/zend_vm_def.h b/Zend/zend_vm_def.h
index 9c6199345a..13daae19fe 100644
--- a/Zend/zend_vm_def.h
+++ b/Zend/zend_vm_def.h
@@ -4764,10 +4764,11 @@ ZEND_VM_HANDLER(144, ZEND_ADD_INTERFACE, ANY, CONST)
ZEND_VM_HANDLER(154, ZEND_ADD_TRAIT, ANY, ANY)
{
- zend_op *opline = EX(opline);
+ USE_OPLINE
zend_class_entry *ce = EX_T(opline->op1.var).class_entry;
zend_class_entry *trait;
+ SAVE_OPLINE();
if (CACHED_PTR(opline->op2.literal->cache_slot)) {
trait = CACHED_PTR(opline->op2.literal->cache_slot);
} else {
@@ -4793,11 +4794,12 @@ ZEND_VM_HANDLER(154, ZEND_ADD_TRAIT, ANY, ANY)
ZEND_VM_HANDLER(155, ZEND_BIND_TRAITS, ANY, ANY)
{
- zend_op *opline = EX(opline);
+ USE_OPLINE
zend_class_entry *ce = EX_T(opline->op1.var).class_entry;
+ SAVE_OPLINE();
zend_do_bind_traits(ce TSRMLS_CC);
-
+ CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
diff --git a/Zend/zend_vm_execute.h b/Zend/zend_vm_execute.h
index 2c909be86d..c990da6b6b 100644
--- a/Zend/zend_vm_execute.h
+++ b/Zend/zend_vm_execute.h
@@ -990,10 +990,11 @@ static int ZEND_FASTCALL ZEND_NOP_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
static int ZEND_FASTCALL ZEND_ADD_TRAIT_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
- zend_op *opline = EX(opline);
+ USE_OPLINE
zend_class_entry *ce = EX_T(opline->op1.var).class_entry;
zend_class_entry *trait;
+ SAVE_OPLINE();
if (CACHED_PTR(opline->op2.literal->cache_slot)) {
trait = CACHED_PTR(opline->op2.literal->cache_slot);
} else {
@@ -1019,11 +1020,12 @@ static int ZEND_FASTCALL ZEND_ADD_TRAIT_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
static int ZEND_FASTCALL ZEND_BIND_TRAITS_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
- zend_op *opline = EX(opline);
+ USE_OPLINE
zend_class_entry *ce = EX_T(opline->op1.var).class_entry;
+ SAVE_OPLINE();
zend_do_bind_traits(ce TSRMLS_CC);
-
+ CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}