diff options
author | Dmitry Stogov <dmitry@zend.com> | 2016-12-06 10:01:18 +0300 |
---|---|---|
committer | Dmitry Stogov <dmitry@zend.com> | 2016-12-06 10:01:18 +0300 |
commit | 547b735d3477f7493a835ed68ca618fa74731b88 (patch) | |
tree | 4f8142e83a84f478c06cbe81955d2923a99b9536 | |
parent | 28fc49a53f61d383c413255e5b395165ffdabc95 (diff) | |
download | php-git-547b735d3477f7493a835ed68ca618fa74731b88.tar.gz |
Micro optimizations
-rw-r--r-- | Zend/zend_vm_def.h | 19 | ||||
-rw-r--r-- | Zend/zend_vm_execute.h | 57 |
2 files changed, 28 insertions, 48 deletions
diff --git a/Zend/zend_vm_def.h b/Zend/zend_vm_def.h index 3b66602a96..77f1e454db 100644 --- a/Zend/zend_vm_def.h +++ b/Zend/zend_vm_def.h @@ -2756,11 +2756,9 @@ ZEND_VM_HANDLER(45, ZEND_JMPZNZ, CONST|TMPVAR|CV, JMP_ADDR, JMP_ADDR) ZEND_VM_SET_RELATIVE_OPCODE(opline, opline->extended_value); ZEND_VM_CONTINUE(); } else if (EXPECTED(Z_TYPE_INFO_P(val) <= IS_TRUE)) { - if (OP1_TYPE == IS_CV) { - if (UNEXPECTED(Z_TYPE_INFO_P(val) == IS_UNDEF)) { - SAVE_OPLINE(); - GET_OP1_UNDEF_CV(val, BP_VAR_R); - } + if (OP1_TYPE == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(val) == IS_UNDEF)) { + SAVE_OPLINE(); + GET_OP1_UNDEF_CV(val, BP_VAR_R); ZEND_VM_JMP(OP_JMP_ADDR(opline, opline->op2)); } else { ZEND_VM_SET_OPCODE(OP_JMP_ADDR(opline, opline->op2)); @@ -2789,15 +2787,12 @@ ZEND_VM_HANDLER(46, ZEND_JMPZ_EX, CONST|TMPVAR|CV, JMP_ADDR) if (Z_TYPE_INFO_P(val) == IS_TRUE) { ZVAL_TRUE(EX_VAR(opline->result.var)); - ZEND_VM_SET_NEXT_OPCODE(opline + 1); - ZEND_VM_CONTINUE(); + ZEND_VM_NEXT_OPCODE(); } else if (EXPECTED(Z_TYPE_INFO_P(val) <= IS_TRUE)) { ZVAL_FALSE(EX_VAR(opline->result.var)); - if (OP1_TYPE == IS_CV) { - if (UNEXPECTED(Z_TYPE_INFO_P(val) == IS_UNDEF)) { - SAVE_OPLINE(); - GET_OP1_UNDEF_CV(val, BP_VAR_R); - } + if (OP1_TYPE == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(val) == IS_UNDEF)) { + SAVE_OPLINE(); + GET_OP1_UNDEF_CV(val, BP_VAR_R); ZEND_VM_JMP(OP_JMP_ADDR(opline, opline->op2)); } else { ZEND_VM_SET_OPCODE(OP_JMP_ADDR(opline, opline->op2)); diff --git a/Zend/zend_vm_execute.h b/Zend/zend_vm_execute.h index 62b893f12e..10570895c0 100644 --- a/Zend/zend_vm_execute.h +++ b/Zend/zend_vm_execute.h @@ -2750,11 +2750,9 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_JMPZNZ_SPEC_CONST_HANDLER(ZEND ZEND_VM_SET_RELATIVE_OPCODE(opline, opline->extended_value); ZEND_VM_CONTINUE(); } else if (EXPECTED(Z_TYPE_INFO_P(val) <= IS_TRUE)) { - if (IS_CONST == IS_CV) { - if (UNEXPECTED(Z_TYPE_INFO_P(val) == IS_UNDEF)) { - SAVE_OPLINE(); - GET_OP1_UNDEF_CV(val, BP_VAR_R); - } + if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(val) == IS_UNDEF)) { + SAVE_OPLINE(); + GET_OP1_UNDEF_CV(val, BP_VAR_R); ZEND_VM_JMP(OP_JMP_ADDR(opline, opline->op2)); } else { ZEND_VM_SET_OPCODE(OP_JMP_ADDR(opline, opline->op2)); @@ -2783,15 +2781,12 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_JMPZ_EX_SPEC_CONST_HANDLER(ZEN if (Z_TYPE_INFO_P(val) == IS_TRUE) { ZVAL_TRUE(EX_VAR(opline->result.var)); - ZEND_VM_SET_NEXT_OPCODE(opline + 1); - ZEND_VM_CONTINUE(); + ZEND_VM_NEXT_OPCODE(); } else if (EXPECTED(Z_TYPE_INFO_P(val) <= IS_TRUE)) { ZVAL_FALSE(EX_VAR(opline->result.var)); - if (IS_CONST == IS_CV) { - if (UNEXPECTED(Z_TYPE_INFO_P(val) == IS_UNDEF)) { - SAVE_OPLINE(); - GET_OP1_UNDEF_CV(val, BP_VAR_R); - } + if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(val) == IS_UNDEF)) { + SAVE_OPLINE(); + GET_OP1_UNDEF_CV(val, BP_VAR_R); ZEND_VM_JMP(OP_JMP_ADDR(opline, opline->op2)); } else { ZEND_VM_SET_OPCODE(OP_JMP_ADDR(opline, opline->op2)); @@ -34760,11 +34755,9 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_JMPZNZ_SPEC_CV_HANDLER(ZEND_OP ZEND_VM_SET_RELATIVE_OPCODE(opline, opline->extended_value); ZEND_VM_CONTINUE(); } else if (EXPECTED(Z_TYPE_INFO_P(val) <= IS_TRUE)) { - if (IS_CV == IS_CV) { - if (UNEXPECTED(Z_TYPE_INFO_P(val) == IS_UNDEF)) { - SAVE_OPLINE(); - GET_OP1_UNDEF_CV(val, BP_VAR_R); - } + if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(val) == IS_UNDEF)) { + SAVE_OPLINE(); + GET_OP1_UNDEF_CV(val, BP_VAR_R); ZEND_VM_JMP(OP_JMP_ADDR(opline, opline->op2)); } else { ZEND_VM_SET_OPCODE(OP_JMP_ADDR(opline, opline->op2)); @@ -34793,15 +34786,12 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_JMPZ_EX_SPEC_CV_HANDLER(ZEND_O if (Z_TYPE_INFO_P(val) == IS_TRUE) { ZVAL_TRUE(EX_VAR(opline->result.var)); - ZEND_VM_SET_NEXT_OPCODE(opline + 1); - ZEND_VM_CONTINUE(); + ZEND_VM_NEXT_OPCODE(); } else if (EXPECTED(Z_TYPE_INFO_P(val) <= IS_TRUE)) { ZVAL_FALSE(EX_VAR(opline->result.var)); - if (IS_CV == IS_CV) { - if (UNEXPECTED(Z_TYPE_INFO_P(val) == IS_UNDEF)) { - SAVE_OPLINE(); - GET_OP1_UNDEF_CV(val, BP_VAR_R); - } + if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(val) == IS_UNDEF)) { + SAVE_OPLINE(); + GET_OP1_UNDEF_CV(val, BP_VAR_R); ZEND_VM_JMP(OP_JMP_ADDR(opline, opline->op2)); } else { ZEND_VM_SET_OPCODE(OP_JMP_ADDR(opline, opline->op2)); @@ -51346,11 +51336,9 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_JMPZNZ_SPEC_TMPVAR_HANDLER(ZEN ZEND_VM_SET_RELATIVE_OPCODE(opline, opline->extended_value); ZEND_VM_CONTINUE(); } else if (EXPECTED(Z_TYPE_INFO_P(val) <= IS_TRUE)) { - if ((IS_TMP_VAR|IS_VAR) == IS_CV) { - if (UNEXPECTED(Z_TYPE_INFO_P(val) == IS_UNDEF)) { - SAVE_OPLINE(); - GET_OP1_UNDEF_CV(val, BP_VAR_R); - } + if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(val) == IS_UNDEF)) { + SAVE_OPLINE(); + GET_OP1_UNDEF_CV(val, BP_VAR_R); ZEND_VM_JMP(OP_JMP_ADDR(opline, opline->op2)); } else { ZEND_VM_SET_OPCODE(OP_JMP_ADDR(opline, opline->op2)); @@ -51379,15 +51367,12 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_JMPZ_EX_SPEC_TMPVAR_HANDLER(ZE if (Z_TYPE_INFO_P(val) == IS_TRUE) { ZVAL_TRUE(EX_VAR(opline->result.var)); - ZEND_VM_SET_NEXT_OPCODE(opline + 1); - ZEND_VM_CONTINUE(); + ZEND_VM_NEXT_OPCODE(); } else if (EXPECTED(Z_TYPE_INFO_P(val) <= IS_TRUE)) { ZVAL_FALSE(EX_VAR(opline->result.var)); - if ((IS_TMP_VAR|IS_VAR) == IS_CV) { - if (UNEXPECTED(Z_TYPE_INFO_P(val) == IS_UNDEF)) { - SAVE_OPLINE(); - GET_OP1_UNDEF_CV(val, BP_VAR_R); - } + if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(val) == IS_UNDEF)) { + SAVE_OPLINE(); + GET_OP1_UNDEF_CV(val, BP_VAR_R); ZEND_VM_JMP(OP_JMP_ADDR(opline, opline->op2)); } else { ZEND_VM_SET_OPCODE(OP_JMP_ADDR(opline, opline->op2)); |