]> granicus.if.org Git - php/commitdiff
Micro optimization for the most frequency case
authorDmitry Stogov <dmitry@zend.com>
Fri, 3 Oct 2014 08:18:15 +0000 (12:18 +0400)
committerDmitry Stogov <dmitry@zend.com>
Fri, 3 Oct 2014 08:18:15 +0000 (12:18 +0400)
Zend/zend_vm_def.h
Zend/zend_vm_execute.h

index 489e27202b7106fe63d8bd980c0751385e5c2ed3..966cf915763812488933ac9a3f2f5dc88f4db5f5 100644 (file)
@@ -2658,11 +2658,12 @@ ZEND_VM_HANDLER(60, ZEND_DO_FCALL, ANY, ANY)
                        zend_vm_stack_free_call_frame(call TSRMLS_CC);
                } else {
                        call->prev_execute_data = execute_data;
-                       i_init_func_execute_data(call, &fbc->op_array, return_value, EXPECTED(zend_execute_ex == execute_ex) ? VM_FRAME_NESTED_FUNCTION : VM_FRAME_TOP_FUNCTION TSRMLS_CC);
+                       i_init_func_execute_data(call, &fbc->op_array, return_value, VM_FRAME_NESTED_FUNCTION TSRMLS_CC);
 
                        if (EXPECTED(zend_execute_ex == execute_ex)) {
                                ZEND_VM_ENTER();
                        } else {
+                               call->frame_kind = VM_FRAME_TOP_FUNCTION;
                                zend_execute_ex(call TSRMLS_CC);
                        }
                }
@@ -4130,10 +4131,11 @@ ZEND_VM_HANDLER(73, ZEND_INCLUDE_OR_EVAL, CONST|TMP|VAR|CV, ANY)
                }
 
                call->prev_execute_data = execute_data;
-           i_init_code_execute_data(call, new_op_array, return_value, EXPECTED(zend_execute_ex == execute_ex) ? VM_FRAME_NESTED_CODE : VM_FRAME_TOP_CODE TSRMLS_CC);
+           i_init_code_execute_data(call, new_op_array, return_value, VM_FRAME_NESTED_CODE TSRMLS_CC);
                if (EXPECTED(zend_execute_ex == execute_ex)) {
                        ZEND_VM_ENTER();
                } else {
+                       call->frame_kind = VM_FRAME_TOP_CODE;
                        zend_execute_ex(call TSRMLS_CC);
                }
 
index f1fde5034b696affea23ac0759215a7a2c068c3f..eeb6d5cd3f0a0fd5c5711c5c0abab6b53b1c3111 100644 (file)
@@ -619,11 +619,12 @@ static int ZEND_FASTCALL  ZEND_DO_FCALL_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
                        zend_vm_stack_free_call_frame(call TSRMLS_CC);
                } else {
                        call->prev_execute_data = execute_data;
-                       i_init_func_execute_data(call, &fbc->op_array, return_value, EXPECTED(zend_execute_ex == execute_ex) ? VM_FRAME_NESTED_FUNCTION : VM_FRAME_TOP_FUNCTION TSRMLS_CC);
+                       i_init_func_execute_data(call, &fbc->op_array, return_value, VM_FRAME_NESTED_FUNCTION TSRMLS_CC);
 
                        if (EXPECTED(zend_execute_ex == execute_ex)) {
                                ZEND_VM_ENTER();
                        } else {
+                               call->frame_kind = VM_FRAME_TOP_FUNCTION;
                                zend_execute_ex(call TSRMLS_CC);
                        }
                }
@@ -3001,10 +3002,11 @@ static int ZEND_FASTCALL  ZEND_INCLUDE_OR_EVAL_SPEC_CONST_HANDLER(ZEND_OPCODE_HA
                }
 
                call->prev_execute_data = execute_data;
-           i_init_code_execute_data(call, new_op_array, return_value, EXPECTED(zend_execute_ex == execute_ex) ? VM_FRAME_NESTED_CODE : VM_FRAME_TOP_CODE TSRMLS_CC);
+           i_init_code_execute_data(call, new_op_array, return_value, VM_FRAME_NESTED_CODE TSRMLS_CC);
                if (EXPECTED(zend_execute_ex == execute_ex)) {
                        ZEND_VM_ENTER();
                } else {
+                       call->frame_kind = VM_FRAME_TOP_CODE;
                        zend_execute_ex(call TSRMLS_CC);
                }
 
@@ -9739,10 +9741,11 @@ static int ZEND_FASTCALL  ZEND_INCLUDE_OR_EVAL_SPEC_TMP_HANDLER(ZEND_OPCODE_HAND
                }
 
                call->prev_execute_data = execute_data;
-           i_init_code_execute_data(call, new_op_array, return_value, EXPECTED(zend_execute_ex == execute_ex) ? VM_FRAME_NESTED_CODE : VM_FRAME_TOP_CODE TSRMLS_CC);
+           i_init_code_execute_data(call, new_op_array, return_value, VM_FRAME_NESTED_CODE TSRMLS_CC);
                if (EXPECTED(zend_execute_ex == execute_ex)) {
                        ZEND_VM_ENTER();
                } else {
+                       call->frame_kind = VM_FRAME_TOP_CODE;
                        zend_execute_ex(call TSRMLS_CC);
                }
 
@@ -16327,10 +16330,11 @@ static int ZEND_FASTCALL  ZEND_INCLUDE_OR_EVAL_SPEC_VAR_HANDLER(ZEND_OPCODE_HAND
                }
 
                call->prev_execute_data = execute_data;
-           i_init_code_execute_data(call, new_op_array, return_value, EXPECTED(zend_execute_ex == execute_ex) ? VM_FRAME_NESTED_CODE : VM_FRAME_TOP_CODE TSRMLS_CC);
+           i_init_code_execute_data(call, new_op_array, return_value, VM_FRAME_NESTED_CODE TSRMLS_CC);
                if (EXPECTED(zend_execute_ex == execute_ex)) {
                        ZEND_VM_ENTER();
                } else {
+                       call->frame_kind = VM_FRAME_TOP_CODE;
                        zend_execute_ex(call TSRMLS_CC);
                }
 
@@ -33608,10 +33612,11 @@ static int ZEND_FASTCALL  ZEND_INCLUDE_OR_EVAL_SPEC_CV_HANDLER(ZEND_OPCODE_HANDL
                }
 
                call->prev_execute_data = execute_data;
-           i_init_code_execute_data(call, new_op_array, return_value, EXPECTED(zend_execute_ex == execute_ex) ? VM_FRAME_NESTED_CODE : VM_FRAME_TOP_CODE TSRMLS_CC);
+           i_init_code_execute_data(call, new_op_array, return_value, VM_FRAME_NESTED_CODE TSRMLS_CC);
                if (EXPECTED(zend_execute_ex == execute_ex)) {
                        ZEND_VM_ENTER();
                } else {
+                       call->frame_kind = VM_FRAME_TOP_CODE;
                        zend_execute_ex(call TSRMLS_CC);
                }