Lines Matching refs:opline

37 	zend_op *opline;  in zend_optimizer_pass2()  local
40 opline = op_array->opcodes; in zend_optimizer_pass2()
41 while (opline < end) { in zend_optimizer_pass2()
42 switch (opline->opcode) { in zend_optimizer_pass2()
48 if (opline->op1_type == IS_CONST) { in zend_optimizer_pass2()
49 if (Z_TYPE(ZEND_OP1_LITERAL(opline)) == IS_STRING) { in zend_optimizer_pass2()
51 …if (is_numeric_string(Z_STRVAL(ZEND_OP1_LITERAL(opline)), Z_STRLEN(ZEND_OP1_LITERAL(opline)), NULL… in zend_optimizer_pass2()
52 convert_scalar_to_number(&ZEND_OP1_LITERAL(opline)); in zend_optimizer_pass2()
62 if (opline->extended_value != 0) { in zend_optimizer_pass2()
66 if (opline->op2_type == IS_CONST) { in zend_optimizer_pass2()
67 if (Z_TYPE(ZEND_OP2_LITERAL(opline)) == IS_STRING) { in zend_optimizer_pass2()
69 …if (is_numeric_string(Z_STRVAL(ZEND_OP2_LITERAL(opline)), Z_STRLEN(ZEND_OP2_LITERAL(opline)), NULL… in zend_optimizer_pass2()
70 convert_scalar_to_number(&ZEND_OP2_LITERAL(opline)); in zend_optimizer_pass2()
79 if (opline->op1_type == IS_CONST) { in zend_optimizer_pass2()
80 if (Z_TYPE(ZEND_OP1_LITERAL(opline)) != IS_LONG) { in zend_optimizer_pass2()
82 if (!(Z_TYPE(ZEND_OP1_LITERAL(opline)) == IS_STRING in zend_optimizer_pass2()
83 …&& !is_numeric_string(Z_STRVAL(ZEND_OP1_LITERAL(opline)), Z_STRLEN(ZEND_OP1_LITERAL(opline)), NULL… in zend_optimizer_pass2()
84 convert_to_long(&ZEND_OP1_LITERAL(opline)); in zend_optimizer_pass2()
92 if (opline->extended_value != 0) { in zend_optimizer_pass2()
96 if (opline->op2_type == IS_CONST) { in zend_optimizer_pass2()
97 if (Z_TYPE(ZEND_OP2_LITERAL(opline)) != IS_LONG) { in zend_optimizer_pass2()
99 if (!(Z_TYPE(ZEND_OP2_LITERAL(opline)) == IS_STRING in zend_optimizer_pass2()
100 …&& !is_numeric_string(Z_STRVAL(ZEND_OP2_LITERAL(opline)), Z_STRLEN(ZEND_OP2_LITERAL(opline)), NULL… in zend_optimizer_pass2()
101 convert_to_long(&ZEND_OP2_LITERAL(opline)); in zend_optimizer_pass2()
109 if (opline->op1_type == IS_CONST) { in zend_optimizer_pass2()
110 if (Z_TYPE(ZEND_OP1_LITERAL(opline)) != IS_STRING) { in zend_optimizer_pass2()
111 convert_to_string(&ZEND_OP1_LITERAL(opline)); in zend_optimizer_pass2()
116 if (opline->extended_value != 0) { in zend_optimizer_pass2()
120 if (opline->op2_type == IS_CONST) { in zend_optimizer_pass2()
121 if (Z_TYPE(ZEND_OP2_LITERAL(opline)) != IS_STRING) { in zend_optimizer_pass2()
122 convert_to_string(&ZEND_OP2_LITERAL(opline)); in zend_optimizer_pass2()
135 if (opline->op1_type == IS_TMP_VAR && in zend_optimizer_pass2()
136 opline->result_type == IS_TMP_VAR && in zend_optimizer_pass2()
137 opline->op1.var == opline->result.var) { in zend_optimizer_pass2()
138 opline->opcode -= 3; in zend_optimizer_pass2()
139 SET_UNUSED(opline->result); in zend_optimizer_pass2()
144 if (opline->op1_type == IS_CONST) { in zend_optimizer_pass2()
145 int should_jmp = zend_is_true(&ZEND_OP1_LITERAL(opline)); in zend_optimizer_pass2()
146 if (opline->opcode == ZEND_JMPZ_EX) { in zend_optimizer_pass2()
150 opline->opcode = ZEND_QM_ASSIGN; in zend_optimizer_pass2()
151 SET_UNUSED(opline->op2); in zend_optimizer_pass2()
158 if (opline->op1_type == IS_CONST) { in zend_optimizer_pass2()
159 int should_jmp = zend_is_true(&ZEND_OP1_LITERAL(opline)); in zend_optimizer_pass2()
161 if (opline->opcode == ZEND_JMPZ) { in zend_optimizer_pass2()
164 literal_dtor(&ZEND_OP1_LITERAL(opline)); in zend_optimizer_pass2()
165 opline->op1_type = IS_UNUSED; in zend_optimizer_pass2()
167 opline->opcode = ZEND_JMP; in zend_optimizer_pass2()
168 COPY_NODE(opline->op1, opline->op2); in zend_optimizer_pass2()
170 MAKE_NOP(opline); in zend_optimizer_pass2()
174 if ((opline + 1)->opcode == ZEND_JMP) { in zend_optimizer_pass2()
177 if (ZEND_OP2_JMP_ADDR(opline) == ZEND_OP1_JMP_ADDR(opline + 1)) { in zend_optimizer_pass2()
179 if (opline->op1_type == IS_CV) { in zend_optimizer_pass2()
180 opline->opcode = ZEND_CHECK_VAR; in zend_optimizer_pass2()
181 opline->op2.num = 0; in zend_optimizer_pass2()
182 } else if (opline->op1_type & (IS_TMP_VAR|IS_VAR)) { in zend_optimizer_pass2()
183 opline->opcode = ZEND_FREE; in zend_optimizer_pass2()
184 opline->op2.num = 0; in zend_optimizer_pass2()
186 MAKE_NOP(opline); in zend_optimizer_pass2()
189 if (opline->opcode == ZEND_JMPZ) { in zend_optimizer_pass2()
190 opline->extended_value = ZEND_OPLINE_TO_OFFSET(opline, ZEND_OP1_JMP_ADDR(opline + 1)); in zend_optimizer_pass2()
192 opline->extended_value = ZEND_OPLINE_TO_OFFSET(opline, ZEND_OP2_JMP_ADDR(opline)); in zend_optimizer_pass2()
193 ZEND_SET_OP_JMP_ADDR(opline, opline->op2, ZEND_OP1_JMP_ADDR(opline + 1)); in zend_optimizer_pass2()
195 opline->opcode = ZEND_JMPZNZ; in zend_optimizer_pass2()
201 if (opline->op1_type == IS_CONST) { in zend_optimizer_pass2()
204 if (zend_is_true(&ZEND_OP1_LITERAL(opline))) { in zend_optimizer_pass2()
205 target_opline = ZEND_OFFSET_TO_OPLINE(opline, opline->extended_value); /* JMPNZ */ in zend_optimizer_pass2()
207 target_opline = ZEND_OP2_JMP_ADDR(opline); /* JMPZ */ in zend_optimizer_pass2()
209 literal_dtor(&ZEND_OP1_LITERAL(opline)); in zend_optimizer_pass2()
210 ZEND_SET_OP_JMP_ADDR(opline, opline->op1, target_opline); in zend_optimizer_pass2()
211 opline->op1_type = IS_UNUSED; in zend_optimizer_pass2()
212 opline->opcode = ZEND_JMP; in zend_optimizer_pass2()
216 opline++; in zend_optimizer_pass2()