Lines Matching refs:target
34 static zend_always_inline bool in_hitlist(zend_op *target, zend_op **jmp_hitlist, int jmp_hitlist_c… in in_hitlist() argument
39 if (jmp_hitlist[i] == target) { in in_hitlist()
46 #define CHECK_LOOP(target) \ argument
47 if (EXPECTED(!in_hitlist(target, jmp_hitlist, jmp_hitlist_count))) { \
48 jmp_hitlist[jmp_hitlist_count++] = target; \
57 zend_op *target; in zend_optimizer_pass3() local
72 target = ZEND_OP1_JMP_ADDR(opline); in zend_optimizer_pass3()
74 if (target->opcode == ZEND_JMP) { in zend_optimizer_pass3()
76 target = ZEND_OP1_JMP_ADDR(target); in zend_optimizer_pass3()
77 CHECK_LOOP(target); in zend_optimizer_pass3()
78 } else if (target->opcode == ZEND_NOP) { in zend_optimizer_pass3()
79 target = target + 1; in zend_optimizer_pass3()
83 ZEND_SET_OP_JMP_ADDR(opline, opline->op1, target); in zend_optimizer_pass3()
86 if (target == opline + 1) { in zend_optimizer_pass3()
89 } else if ((target->opcode == ZEND_RETURN || in zend_optimizer_pass3()
90 target->opcode == ZEND_RETURN_BY_REF || in zend_optimizer_pass3()
91 target->opcode == ZEND_GENERATOR_RETURN) && in zend_optimizer_pass3()
94 *opline = *target; in zend_optimizer_pass3()
103 if (ZEND_OP2_JMP_ADDR(opline-1) == target) { in zend_optimizer_pass3()
114 target = ZEND_OP2_JMP_ADDR(opline); in zend_optimizer_pass3()
116 if (target->opcode == ZEND_JMP) { in zend_optimizer_pass3()
117 target = ZEND_OP1_JMP_ADDR(target); in zend_optimizer_pass3()
118 CHECK_LOOP(target); in zend_optimizer_pass3()
119 } else if (target->opcode == ZEND_NOP) { in zend_optimizer_pass3()
120 target = target + 1; in zend_optimizer_pass3()
124 ZEND_SET_OP_JMP_ADDR(opline, opline->op2, target); in zend_optimizer_pass3()
132 target = ZEND_OP2_JMP_ADDR(opline); in zend_optimizer_pass3()
134 if (target->opcode == ZEND_JMP) { in zend_optimizer_pass3()
137 target = ZEND_OP1_JMP_ADDR(target); in zend_optimizer_pass3()
138 CHECK_LOOP(target); in zend_optimizer_pass3()
139 } else if (target->opcode == opline->opcode && in zend_optimizer_pass3()
140 SAME_VAR(opline->op1, target->op1)) { in zend_optimizer_pass3()
143 target = ZEND_OP2_JMP_ADDR(target); in zend_optimizer_pass3()
144 CHECK_LOOP(target); in zend_optimizer_pass3()
145 } else if (target->opcode == INV_COND(opline->opcode) && in zend_optimizer_pass3()
146 SAME_VAR(opline->op1, target->op1)) { in zend_optimizer_pass3()
149 target = target + 1; in zend_optimizer_pass3()
150 } else if (target->opcode == ZEND_NOP) { in zend_optimizer_pass3()
151 target = target + 1; in zend_optimizer_pass3()
155 ZEND_SET_OP_JMP_ADDR(opline, opline->op2, target); in zend_optimizer_pass3()
159 if (target == opline + 1) { in zend_optimizer_pass3()
168 target = ZEND_OP2_JMP_ADDR(opline); in zend_optimizer_pass3()
170 if (target->opcode == ZEND_JMP) { in zend_optimizer_pass3()
173 target = ZEND_OP1_JMP_ADDR(target); in zend_optimizer_pass3()
174 CHECK_LOOP(target); in zend_optimizer_pass3()
175 } else if (target->opcode == opline->opcode-3 && in zend_optimizer_pass3()
176 (SAME_VAR(target->op1, opline->result) || in zend_optimizer_pass3()
177 SAME_VAR(target->op1, opline->op1))) { in zend_optimizer_pass3()
180 target = ZEND_OP2_JMP_ADDR(target); in zend_optimizer_pass3()
181 CHECK_LOOP(target); in zend_optimizer_pass3()
182 } else if (target->opcode == opline->opcode && in zend_optimizer_pass3()
183 target->result.var == opline->result.var && in zend_optimizer_pass3()
184 (SAME_VAR(target->op1, opline->result) || in zend_optimizer_pass3()
185 SAME_VAR(target->op1, opline->op1))) { in zend_optimizer_pass3()
188 target = ZEND_OP2_JMP_ADDR(target); in zend_optimizer_pass3()
189 CHECK_LOOP(target); in zend_optimizer_pass3()
190 } else if (target->opcode == INV_EX_COND(opline->opcode) && in zend_optimizer_pass3()
191 (SAME_VAR(target->op1, opline->result) || in zend_optimizer_pass3()
192 SAME_VAR(target->op1, opline->op1))) { in zend_optimizer_pass3()
195 target = target + 1; in zend_optimizer_pass3()
196 } else if (target->opcode == INV_EX_COND_EX(opline->opcode) && in zend_optimizer_pass3()
197 target->result.var == opline->result.var && in zend_optimizer_pass3()
198 (SAME_VAR(target->op1, opline->result) || in zend_optimizer_pass3()
199 SAME_VAR(target->op1, opline->op1))) { in zend_optimizer_pass3()
202 target = target + 1; in zend_optimizer_pass3()
203 } else if (target->opcode == ZEND_BOOL && in zend_optimizer_pass3()
204 (SAME_VAR(target->op1, opline->result) || in zend_optimizer_pass3()
205 SAME_VAR(target->op1, opline->op1))) { in zend_optimizer_pass3()
217 opline->result.var = target->result.var; in zend_optimizer_pass3()
218 target = target + 1; in zend_optimizer_pass3()
219 CHECK_LOOP(target); in zend_optimizer_pass3()
220 } else if (target->opcode == ZEND_NOP) { in zend_optimizer_pass3()
221 target = target + 1; in zend_optimizer_pass3()
225 ZEND_SET_OP_JMP_ADDR(opline, opline->op2, target); in zend_optimizer_pass3()
229 if (target == opline + 1) { in zend_optimizer_pass3()