diff options
author | Dmitry Stogov <dmitry@php.net> | 2011-05-05 16:02:11 +0000 |
---|---|---|
committer | Dmitry Stogov <dmitry@php.net> | 2011-05-05 16:02:11 +0000 |
commit | 6eedfb9b3a2e0d771b1a76540357bfc0db27ef5d (patch) | |
tree | 99d16d7da5602360a6bc4eb3b8f309a4b552d8a2 | |
parent | 91bddbe26e2537de59e66a9a56a935c6d36081e2 (diff) | |
download | php-git-6eedfb9b3a2e0d771b1a76540357bfc0db27ef5d.tar.gz |
Fixed direct threaded executor (php zend_vm_gen.php --with-vm-kind=GOTO)
-rw-r--r-- | Zend/zend_vm_def.h | 8 | ||||
-rw-r--r-- | Zend/zend_vm_execute.h | 8 |
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(); } |