Lines Matching refs:last_op

169 	zend_op *end, *last_op = NULL;  in zend_optimize_block()  local
296 if (last_op && last_op->opcode == ZEND_ECHO && in zend_optimize_block()
297 last_op->op1_type == IS_CONST && in zend_optimize_block()
299 Z_TYPE(ZEND_OP1_LITERAL(last_op)) != IS_DOUBLE) { in zend_optimize_block()
309 if (Z_TYPE(ZEND_OP1_LITERAL(last_op)) != IS_STRING) { in zend_optimize_block()
310 convert_to_string(&ZEND_OP1_LITERAL(last_op)); in zend_optimize_block()
312 old_len = Z_STRLEN(ZEND_OP1_LITERAL(last_op)); in zend_optimize_block()
314 if (!Z_REFCOUNTED(ZEND_OP1_LITERAL(last_op))) { in zend_optimize_block()
316 memcpy(ZSTR_VAL(tmp), Z_STRVAL(ZEND_OP1_LITERAL(last_op)), old_len); in zend_optimize_block()
317 Z_STR(ZEND_OP1_LITERAL(last_op)) = tmp; in zend_optimize_block()
319 Z_STR(ZEND_OP1_LITERAL(last_op)) = zend_string_extend(Z_STR(ZEND_OP1_LITERAL(last_op)), l, 0); in zend_optimize_block()
321 Z_TYPE_INFO(ZEND_OP1_LITERAL(last_op)) = IS_STRING_EX; in zend_optimize_block()
322 …memcpy(Z_STRVAL(ZEND_OP1_LITERAL(last_op)) + old_len, Z_STRVAL(ZEND_OP1_LITERAL(opline)), Z_STRLEN… in zend_optimize_block()
323 Z_STRVAL(ZEND_OP1_LITERAL(last_op))[l] = '\0'; in zend_optimize_block()
325 … ZVAL_STR(&ZEND_OP1_LITERAL(opline), zend_new_interned_string(Z_STR(ZEND_OP1_LITERAL(last_op)))); in zend_optimize_block()
326 ZVAL_NULL(&ZEND_OP1_LITERAL(last_op)); in zend_optimize_block()
327 MAKE_NOP(last_op); in zend_optimize_block()
330 last_op = opline; in zend_optimize_block()
332 last_op = NULL; in zend_optimize_block()
335 last_op = NULL; in zend_optimize_block()
1104 zend_op *last_op; in zend_jmp_optimization() local
1110 last_op = op_array->opcodes + block->start + block->len - 1; in zend_jmp_optimization()
1111 switch (last_op->opcode) { in zend_jmp_optimization()
1125 MAKE_NOP(last_op); in zend_jmp_optimization()
1135 *last_op = *target; in zend_jmp_optimization()
1143 *last_op = *target; in zend_jmp_optimization()
1144 if (last_op->op1_type == IS_CONST) { in zend_jmp_optimization()
1146 ZVAL_COPY(&zv, &ZEND_OP1_LITERAL(last_op)); in zend_jmp_optimization()
1147 last_op->op1.constant = zend_optimizer_add_literal(op_array, &zv); in zend_jmp_optimization()
1161 *last_op = *target; in zend_jmp_optimization()
1162 if (last_op->op1_type == IS_CONST) { in zend_jmp_optimization()
1164 ZVAL_COPY(&zv, &ZEND_OP1_LITERAL(last_op)); in zend_jmp_optimization()
1165 last_op->op1.constant = zend_optimizer_add_literal(op_array, &zv); in zend_jmp_optimization()
1213 MAKE_NOP(last_op); in zend_jmp_optimization()
1230 if (last_op->op1_type == IS_CONST) { in zend_jmp_optimization()
1231 int should_jmp = zend_is_true(&ZEND_OP1_LITERAL(last_op)); in zend_jmp_optimization()
1233 if (last_op->opcode == ZEND_JMPZ) { in zend_jmp_optimization()
1236 literal_dtor(&ZEND_OP1_LITERAL(last_op)); in zend_jmp_optimization()
1237 last_op->op1_type = IS_UNUSED; in zend_jmp_optimization()
1240 last_op->opcode = ZEND_JMP; in zend_jmp_optimization()
1245 MAKE_NOP(last_op); in zend_jmp_optimization()
1257 if (last_op->op1_type == IS_CV) { in zend_jmp_optimization()
1258 last_op->opcode = ZEND_CHECK_VAR; in zend_jmp_optimization()
1259 last_op->op2.num = 0; in zend_jmp_optimization()
1260 } else if (last_op->op1_type & (IS_VAR|IS_TMP_VAR)) { in zend_jmp_optimization()
1261 last_op->opcode = ZEND_FREE; in zend_jmp_optimization()
1262 last_op->op2.num = 0; in zend_jmp_optimization()
1264 MAKE_NOP(last_op); in zend_jmp_optimization()
1272 zend_uchar same_type = last_op->op1_type; in zend_jmp_optimization()
1273 uint32_t same_var = VAR_NUM_EX(last_op->op1); in zend_jmp_optimization()
1290 } else if (target->opcode == INV_COND(last_op->opcode) && in zend_jmp_optimization()
1301 } else if (target->opcode == INV_COND_EX(last_op->opcode) && in zend_jmp_optimization()
1307 last_op->opcode += 3; in zend_jmp_optimization()
1308 COPY_NODE(last_op->result, target->result); in zend_jmp_optimization()
1313 } else if (target->opcode == last_op->opcode && in zend_jmp_optimization()
1337 if (last_op->opcode == ZEND_JMPZ) { in zend_jmp_optimization()
1347 if (last_op->opcode == ZEND_JMPZ || last_op->opcode == ZEND_JMPNZ) { in zend_jmp_optimization()
1374 if (last_op->opcode == ZEND_JMPZ) { in zend_jmp_optimization()
1382 last_op->opcode = ZEND_JMPZNZ; in zend_jmp_optimization()
1391 if (last_op->op1_type == IS_CONST) { in zend_jmp_optimization()
1392 int should_jmp = zend_is_true(&ZEND_OP1_LITERAL(last_op)); in zend_jmp_optimization()
1394 if (last_op->opcode == ZEND_JMPZ_EX) { in zend_jmp_optimization()
1401 last_op->opcode = ZEND_QM_ASSIGN; in zend_jmp_optimization()
1402 SET_UNUSED(last_op->op2); in zend_jmp_optimization()
1420 same_t[VAR_NUM_EX(last_op->op1)] |= last_op->op1_type; in zend_jmp_optimization()
1421 same_t[VAR_NUM_EX(last_op->result)] |= last_op->result_type; in zend_jmp_optimization()
1434 } else if (target->opcode == last_op->opcode-3 && in zend_jmp_optimization()
1443 } else if (target->opcode == INV_EX_COND(last_op->opcode) && in zend_jmp_optimization()
1452 } else if (target->opcode == INV_EX_COND_EX(last_op->opcode) && in zend_jmp_optimization()
1462 } else if (target->opcode == last_op->opcode && in zend_jmp_optimization()
1485 if (last_op->opcode == ZEND_JMPZ_EX) { in zend_jmp_optimization()
1504 if (last_op->op1_type == IS_CONST) { in zend_jmp_optimization()
1505 if (!zend_is_true(&ZEND_OP1_LITERAL(last_op))) { in zend_jmp_optimization()
1507 literal_dtor(&ZEND_OP1_LITERAL(last_op)); in zend_jmp_optimization()
1508 last_op->opcode = ZEND_JMP; in zend_jmp_optimization()
1509 SET_UNUSED(last_op->op1); in zend_jmp_optimization()
1510 SET_UNUSED(last_op->op2); in zend_jmp_optimization()
1515 literal_dtor(&ZEND_OP1_LITERAL(last_op)); in zend_jmp_optimization()
1516 last_op->opcode = ZEND_JMP; in zend_jmp_optimization()
1517 SET_UNUSED(last_op->op1); in zend_jmp_optimization()
1518 SET_UNUSED(last_op->op2); in zend_jmp_optimization()
1526 if (!(last_op->op1_type & (IS_VAR|IS_TMP_VAR))) { in zend_jmp_optimization()
1528 last_op->opcode = ZEND_JMP; in zend_jmp_optimization()
1529 SET_UNUSED(last_op->op1); in zend_jmp_optimization()
1530 SET_UNUSED(last_op->op2); in zend_jmp_optimization()
1537 last_op->opcode = ZEND_JMPNZ; in zend_jmp_optimization()
1545 last_op->opcode = ZEND_JMPZ; in zend_jmp_optimization()
1550 if (last_op->opcode == ZEND_JMPZNZ) { in zend_jmp_optimization()
1551 zend_uchar same_type = last_op->op1_type; in zend_jmp_optimization()
1552 zend_uchar same_var = VAR_NUM_EX(last_op->op1); in zend_jmp_optimization()
1839 zend_op *last_op = op_array->opcodes + prev->start + prev->len - 1; in zend_merge_blocks() local
1840 if (prev->len != 0 && last_op->opcode == ZEND_JMP) { in zend_merge_blocks()
1841 MAKE_NOP(last_op); in zend_merge_blocks()