Lines Matching refs:opcode

96 		switch((unsigned)opline->opcode) {  in find_code_blocks()
191 (op_array->opcodes[op_array->brk_cont_array[i].brk].opcode == ZEND_FREE || in find_code_blocks()
192 op_array->opcodes[op_array->brk_cont_array[i].brk].opcode == ZEND_SWITCH_FREE)) { in find_code_blocks()
197 op_array->opcodes[op_array->brk_cont_array[parent].brk].opcode != ZEND_FREE && in find_code_blocks()
198 op_array->opcodes[op_array->brk_cont_array[parent].brk].opcode != ZEND_SWITCH_FREE) { in find_code_blocks()
212 (op_array->opcodes[op_array->brk_cont_array[i].brk].opcode == ZEND_FREE || in find_code_blocks()
213 op_array->opcodes[op_array->brk_cont_array[i].brk].opcode == ZEND_SWITCH_FREE)) { in find_code_blocks()
245 if (opline->opcode == ZEND_OP_DATA) { in find_code_blocks()
248 switch((unsigned)opline->opcode) { in find_code_blocks()
567 while (block->len > 0 && block->start_opline->opcode == ZEND_NOP) { in strip_nop()
588 while (opline < end && opline->opcode == ZEND_NOP) { in strip_nop()
593 while (opline < end && opline->opcode != ZEND_NOP) { in strip_nop()
615 while (block->len > 0 && block->start_opline->opcode == ZEND_NOP) { in zend_optimize_block()
638 VAR_SOURCE(opline->op1)->opcode == ZEND_QM_ASSIGN && in zend_optimize_block()
640 opline->opcode != ZEND_CASE && /* CASE _always_ expects variable */ in zend_optimize_block()
641 opline->opcode != ZEND_FETCH_DIM_TMP_VAR && /* in 5.1, FETCH_DIM_TMP_VAR expects T */ in zend_optimize_block()
642 opline->opcode != ZEND_FE_RESET && in zend_optimize_block()
643 opline->opcode != ZEND_FREE in zend_optimize_block()
657 VAR_SOURCE(opline->op2)->opcode == ZEND_QM_ASSIGN && in zend_optimize_block()
671 VAR_SOURCE(opline->op1)->opcode == ZEND_PRINT && in zend_optimize_block()
672 opline->opcode != ZEND_CASE && opline->opcode != ZEND_FREE) { in zend_optimize_block()
679 VAR_SOURCE(opline->op2)->opcode == ZEND_PRINT) { in zend_optimize_block()
685 if ((opline->opcode == ZEND_ECHO || opline->opcode == ZEND_PRINT) && in zend_optimize_block()
688 VAR_SOURCE(opline->op1)->opcode == ZEND_CAST && in zend_optimize_block()
696 if (opline->opcode == ZEND_FREE && in zend_optimize_block()
700 if (src->opcode == ZEND_PRINT) { in zend_optimize_block()
701 src->opcode = ZEND_ECHO; in zend_optimize_block()
708 if (opline->opcode == ZEND_FREE && in zend_optimize_block()
712 if (src->opcode == ZEND_BOOL) { in zend_optimize_block()
730 VAR_SOURCE(opline->op1) && VAR_SOURCE(opline->op1)->opcode == ZEND_DO_CF_FCALL && in zend_optimize_block()
734 if(sv >= block->start_opline && sv->opcode == ZEND_SEND_VAL && in zend_optimize_block()
789 if (opline->opcode == ZEND_IS_EQUAL || in zend_optimize_block()
790 opline->opcode == ZEND_IS_NOT_EQUAL) { in zend_optimize_block()
793 opline->opcode = in zend_optimize_block()
794 ((opline->opcode == ZEND_IS_EQUAL) == Z_LVAL(ZEND_OP1_LITERAL(opline)))? in zend_optimize_block()
800 opline->opcode = in zend_optimize_block()
801 ((opline->opcode == ZEND_IS_EQUAL) == Z_LVAL(ZEND_OP2_LITERAL(opline)))? in zend_optimize_block()
807 if ((opline->opcode == ZEND_BOOL || in zend_optimize_block()
808 opline->opcode == ZEND_BOOL_NOT || in zend_optimize_block()
809 opline->opcode == ZEND_JMPZ || in zend_optimize_block()
810 opline->opcode == ZEND_JMPNZ || in zend_optimize_block()
811 opline->opcode == ZEND_JMPZNZ) && in zend_optimize_block()
815 VAR_SOURCE(opline->op1)->opcode == ZEND_BOOL_NOT) { in zend_optimize_block()
821 switch (opline->opcode) { in zend_optimize_block()
824 opline->opcode = ZEND_BOOL_NOT; in zend_optimize_block()
828 opline->opcode = ZEND_BOOL; in zend_optimize_block()
832 opline->opcode = ZEND_JMPNZ; in zend_optimize_block()
836 opline->opcode = ZEND_JMPZ; in zend_optimize_block()
861 if(0 && (opline->opcode == ZEND_JMPZ_EX || in zend_optimize_block()
862 opline->opcode == ZEND_JMPNZ_EX) && in zend_optimize_block()
865 VAR_SOURCE(opline->op1)->opcode == ZEND_BOOL_NOT && in zend_optimize_block()
869 if(opline->opcode == ZEND_JMPZ_EX) { in zend_optimize_block()
870 opline->opcode = ZEND_JMPNZ; in zend_optimize_block()
872 opline->opcode = ZEND_JMPZ; in zend_optimize_block()
880 if ((opline->opcode == ZEND_BOOL || in zend_optimize_block()
881 opline->opcode == ZEND_BOOL_NOT || in zend_optimize_block()
882 opline->opcode == ZEND_JMPZ || in zend_optimize_block()
883 opline->opcode == ZEND_JMPZ_EX || in zend_optimize_block()
884 opline->opcode == ZEND_JMPNZ_EX || in zend_optimize_block()
885 opline->opcode == ZEND_JMPNZ || in zend_optimize_block()
886 opline->opcode == ZEND_JMPZNZ) && in zend_optimize_block()
892 (VAR_SOURCE(opline->op1)->opcode == ZEND_BOOL || in zend_optimize_block()
893 VAR_SOURCE(opline->op1)->opcode == ZEND_QM_ASSIGN)) { in zend_optimize_block()
900 } else if (last_op && opline->opcode == ZEND_ECHO && in zend_optimize_block()
901 last_op->opcode == ZEND_ECHO && in zend_optimize_block()
937 } else if (opline->opcode == ZEND_CONCAT && in zend_optimize_block()
941 (VAR_SOURCE(opline->op1)->opcode == ZEND_CONCAT || in zend_optimize_block()
942 VAR_SOURCE(opline->op1)->opcode == ZEND_ADD_STRING) && in zend_optimize_block()
959 opline->opcode = ZEND_ADD_STRING; in zend_optimize_block()
983 …} else if ((opline->opcode == ZEND_ADD_STRING || opline->opcode == ZEND_ADD_VAR) && ZEND_OP1_TYPE(… in zend_optimize_block()
985 opline->opcode = ZEND_CONCAT; in zend_optimize_block()
987 …} else if (opline->opcode == ZEND_ADD_CHAR && ZEND_OP1_TYPE(opline) == IS_CONST && ZEND_OP2_TYPE(o… in zend_optimize_block()
991 opline->opcode = ZEND_CONCAT; in zend_optimize_block()
993 } else if ((opline->opcode == ZEND_ADD || in zend_optimize_block()
994 opline->opcode == ZEND_SUB || in zend_optimize_block()
995 opline->opcode == ZEND_MUL || in zend_optimize_block()
996 opline->opcode == ZEND_DIV || in zend_optimize_block()
997 opline->opcode == ZEND_MOD || in zend_optimize_block()
998 opline->opcode == ZEND_SL || in zend_optimize_block()
999 opline->opcode == ZEND_SR || in zend_optimize_block()
1000 opline->opcode == ZEND_CONCAT || in zend_optimize_block()
1001 opline->opcode == ZEND_IS_EQUAL || in zend_optimize_block()
1002 opline->opcode == ZEND_IS_NOT_EQUAL || in zend_optimize_block()
1003 opline->opcode == ZEND_IS_SMALLER || in zend_optimize_block()
1004 opline->opcode == ZEND_IS_SMALLER_OR_EQUAL || in zend_optimize_block()
1005 opline->opcode == ZEND_IS_IDENTICAL || in zend_optimize_block()
1006 opline->opcode == ZEND_IS_NOT_IDENTICAL || in zend_optimize_block()
1007 opline->opcode == ZEND_BOOL_XOR || in zend_optimize_block()
1008 opline->opcode == ZEND_BW_OR || in zend_optimize_block()
1009 opline->opcode == ZEND_BW_AND || in zend_optimize_block()
1010 opline->opcode == ZEND_BW_XOR) && in zend_optimize_block()
1014 int (*binary_op)(zval *result, zval *op1, zval *op2 TSRMLS_DC) = get_binary_op(opline->opcode); in zend_optimize_block()
1018 if ((opline->opcode == ZEND_DIV || opline->opcode == ZEND_MOD) && in zend_optimize_block()
1037 opline->opcode = ZEND_QM_ASSIGN; in zend_optimize_block()
1042 } else if ((opline->opcode == ZEND_BOOL || in zend_optimize_block()
1043 opline->opcode == ZEND_BOOL_NOT || in zend_optimize_block()
1044 opline->opcode == ZEND_BW_NOT) && ZEND_OP1_TYPE(opline) == IS_CONST) { in zend_optimize_block()
1046 unary_op_type unary_op = get_unary_op(opline->opcode); in zend_optimize_block()
1064 opline->opcode = ZEND_QM_ASSIGN; in zend_optimize_block()
1066 } else if ((opline->opcode == ZEND_RETURN || opline->opcode == ZEND_EXIT) && in zend_optimize_block()
1069 VAR_SOURCE(opline->op1)->opcode == ZEND_QM_ASSIGN) { in zend_optimize_block()
1075 } else if ((opline->opcode == ZEND_ADD_STRING || in zend_optimize_block()
1076 opline->opcode == ZEND_ADD_CHAR) && in zend_optimize_block()
1079 VAR_SOURCE(opline->op1)->opcode == ZEND_INIT_STRING) { in zend_optimize_block()
1087 if (opline->opcode == ZEND_ADD_CHAR) { in zend_optimize_block()
1093 opline->opcode = ZEND_QM_ASSIGN; in zend_optimize_block()
1094 } else if ((opline->opcode == ZEND_ADD_STRING || in zend_optimize_block()
1095 opline->opcode == ZEND_ADD_CHAR || in zend_optimize_block()
1096 opline->opcode == ZEND_ADD_VAR || in zend_optimize_block()
1097 opline->opcode == ZEND_CONCAT) && in zend_optimize_block()
1100 VAR_SOURCE(opline->op1)->opcode == ZEND_CONCAT && in zend_optimize_block()
1108 if (opline->opcode == ZEND_ADD_CHAR) { in zend_optimize_block()
1112 opline->opcode = ZEND_CONCAT; in zend_optimize_block()
1115 } else if (opline->opcode == ZEND_ADD_VAR && in zend_optimize_block()
1118 VAR_SOURCE(opline->op1)->opcode == ZEND_INIT_STRING) { in zend_optimize_block()
1125 opline->opcode = ZEND_CAST; in zend_optimize_block()
1127 } else if ((opline->opcode == ZEND_ADD_STRING || in zend_optimize_block()
1128 opline->opcode == ZEND_ADD_CHAR || in zend_optimize_block()
1129 opline->opcode == ZEND_ADD_VAR || in zend_optimize_block()
1130 opline->opcode == ZEND_CONCAT) && in zend_optimize_block()
1133 VAR_SOURCE(opline->op1)->opcode == ZEND_CAST && in zend_optimize_block()
1139 if (opline->opcode == ZEND_ADD_CHAR) { in zend_optimize_block()
1143 opline->opcode = ZEND_CONCAT; in zend_optimize_block()
1145 } else if (opline->opcode == ZEND_QM_ASSIGN && in zend_optimize_block()
1151 } else if (opline->opcode == ZEND_BOOL && in zend_optimize_block()
1154 (VAR_SOURCE(opline->op1)->opcode == ZEND_IS_EQUAL || in zend_optimize_block()
1155 VAR_SOURCE(opline->op1)->opcode == ZEND_IS_NOT_EQUAL || in zend_optimize_block()
1156 VAR_SOURCE(opline->op1)->opcode == ZEND_IS_SMALLER || in zend_optimize_block()
1157 VAR_SOURCE(opline->op1)->opcode == ZEND_IS_SMALLER_OR_EQUAL || in zend_optimize_block()
1158 VAR_SOURCE(opline->op1)->opcode == ZEND_BOOL || in zend_optimize_block()
1159 VAR_SOURCE(opline->op1)->opcode == ZEND_IS_IDENTICAL || in zend_optimize_block()
1160 VAR_SOURCE(opline->op1)->opcode == ZEND_IS_NOT_IDENTICAL || in zend_optimize_block()
1161 VAR_SOURCE(opline->op1)->opcode == ZEND_ISSET_ISEMPTY_VAR || in zend_optimize_block()
1162 VAR_SOURCE(opline->op1)->opcode == ZEND_ISSET_ISEMPTY_DIM_OBJ) && in zend_optimize_block()
1174 if (opline->opcode != ZEND_NOP) { in zend_optimize_block()
1201 if ((opline - 1)->opcode == ZEND_JMP) { in assemble_code_blocks()
1232 if ((opline-1)->opcode == ZEND_THROW) { in assemble_code_blocks()
1241 opline->opcode = ZEND_HANDLE_EXCEPTION; in assemble_code_blocks()
1282 if (opline->opcode == ZEND_OP_DATA) { in assemble_code_blocks()
1308 if (opline->opcode == ZEND_DECLARE_INHERITED_CLASS_DELAYED) { in assemble_code_blocks()
1327 switch (last_op->opcode) { in zend_jmp_optimization()
1351 if (((target->opcode == ZEND_JMP && in zend_jmp_optimization()
1353 target->opcode == ZEND_JMPZNZ) && in zend_jmp_optimization()
1384 } else if (target->opcode == ZEND_RETURN || in zend_jmp_optimization()
1386 target->opcode == ZEND_RETURN_BY_REF || in zend_jmp_optimization()
1389 target->opcode == ZEND_FAST_RET || in zend_jmp_optimization()
1391 target->opcode == ZEND_EXIT) { in zend_jmp_optimization()
1412 target->opcode != ZEND_FREE && in zend_jmp_optimization()
1413 target->opcode != ZEND_SWITCH_FREE) { in zend_jmp_optimization()
1470 if (last_op->opcode == ZEND_JMPZ) { in zend_jmp_optimization()
1477 last_op->opcode = ZEND_JMP; in zend_jmp_optimization()
1502 while (target < target_end && target->opcode == ZEND_NOP) { in zend_jmp_optimization()
1510 } else if (target->opcode == INV_COND(last_op->opcode) && in zend_jmp_optimization()
1521 } else if (target->opcode == INV_COND_EX(last_op->opcode) && in zend_jmp_optimization()
1528 last_op->opcode += 3; in zend_jmp_optimization()
1534 target->opcode == last_op->opcode && in zend_jmp_optimization()
1544 target->opcode == ZEND_JMP && in zend_jmp_optimization()
1552 target->opcode == ZEND_JMPZNZ && in zend_jmp_optimization()
1559 if (last_op->opcode == ZEND_JMPZ) { in zend_jmp_optimization()
1569 (last_op->opcode == ZEND_JMPZ || last_op->opcode == ZEND_JMPNZ)) { in zend_jmp_optimization()
1576 while (target < target_end && target->opcode == ZEND_NOP) { in zend_jmp_optimization()
1590 if (target->opcode == ZEND_JMP && in zend_jmp_optimization()
1594 if (last_op->opcode == ZEND_JMPZ) { in zend_jmp_optimization()
1603 last_op->opcode = ZEND_JMPZNZ; in zend_jmp_optimization()
1613 if (last_op->opcode == ZEND_JMPZ_EX) { in zend_jmp_optimization()
1620 last_op->opcode = ZEND_QM_ASSIGN; in zend_jmp_optimization()
1651 while (target < target_end && target->opcode == ZEND_NOP) { in zend_jmp_optimization()
1659 target->opcode == last_op->opcode-3 && in zend_jmp_optimization()
1668 target->opcode == INV_EX_COND(last_op->opcode) && in zend_jmp_optimization()
1677 target->opcode == INV_EX_COND_EX(last_op->opcode) && in zend_jmp_optimization()
1687 target->opcode == last_op->opcode && in zend_jmp_optimization()
1697 target->opcode == ZEND_JMP && in zend_jmp_optimization()
1705 target->opcode == ZEND_JMPZNZ && in zend_jmp_optimization()
1711 if (last_op->opcode == ZEND_JMPZ_EX) { in zend_jmp_optimization()
1738 last_op->opcode = ZEND_JMP; in zend_jmp_optimization()
1751 last_op->opcode = ZEND_JMP; in zend_jmp_optimization()
1764 last_op->opcode = ZEND_JMP; in zend_jmp_optimization()
1774 last_op->opcode = ZEND_JMPNZ; in zend_jmp_optimization()
1782 last_op->opcode = ZEND_JMPZ; in zend_jmp_optimization()
1788 if (last_op->opcode == ZEND_JMPZNZ && block->op2_to) { in zend_jmp_optimization()
1798 while (target < target_end && target->opcode == ZEND_NOP) { in zend_jmp_optimization()
1806 (target->opcode == ZEND_JMPZ || target->opcode == ZEND_JMPZNZ) && in zend_jmp_optimization()
1815 } else if (target->opcode == ZEND_JMPNZ && in zend_jmp_optimization()
1826 target->opcode == ZEND_JMP && in zend_jmp_optimization()
1899 (opline->opcode == ZEND_RECV || opline->opcode == ZEND_RECV_INIT || in zend_t_usage()
1900 (opline->opcode == ZEND_OP_DATA && ZEND_RESULT_TYPE(opline) == IS_TMP_VAR) || in zend_t_usage()
1901 opline->opcode == ZEND_ADD_ARRAY_ELEMENT)) { in zend_t_usage()
1934 switch (opline->opcode) { in zend_t_usage()
1971 opline->opcode = ZEND_ECHO; in zend_t_usage()
1976 opline->opcode -= 3; in zend_t_usage()
1982 if (opline->opcode == ZEND_RECV || in zend_t_usage()
1983 opline->opcode == ZEND_RECV_INIT || in zend_t_usage()
1984 opline->opcode == ZEND_ADD_ARRAY_ELEMENT) { in zend_t_usage()