Lines Matching refs:src
404 struct storage_hash *src;
406 src = find_storage_hash(pseudo, state->internal);
407 if (!src) {
408 src = find_storage_hash(pseudo, state->inputs);
409 if (!src) {
410 src = find_storage_hash(pseudo, state->outputs);
412 if (!src)
419 if (src->storage->type != REG_STACK)
430 if (src->storage->type == REG_UDEF) {
432 src->storage->type = REG_REG;
433 src->storage->regno = reg - hardregs;
436 alloc_stack(state, src->storage);
438 return src;
586 struct storage_hash *src;
599 src = find_pseudo_storage(state, pseudo, NULL);
601 if (!src) {
605 switch (src->storage->type) {
608 src = find_or_create_hash(pseudo, &state->internal);
611 alloc_stack(state, src->storage);
615 flush_pseudo(state, pseudo, src->storage);
616 output_insn(state, "leal %s,%s", show_memop(src->storage), hardreg->name);
627 src = find_pseudo_storage(state, pseudo, hardreg);
628 if (!src)
630 if (src->flags & TAG_DEAD)
632 output_insn(state, "mov.%d %s,%s", 32, show_memop(src->storage), hardreg->name);
652 static void move_reg(struct bb_state *state, struct hardreg *src, struct hardreg *dst)
654 output_insn(state, "movl %s,%s", src->name, dst->name);
657 static struct hardreg *copy_reg(struct bb_state *state, struct hardreg *src, pseudo_t target)
663 if (!src->contains)
664 return src;
666 /* If "src" only has one user, and the contents are dead, we can re-use it */
667 if (src->busy == 1 && src->dead == 1)
668 return src;
673 move_reg(state, src, reg);
681 output_insn(state, "movl %s,%s", src->name, reg->name);
686 flush_reg(state, src);
687 return src;
737 struct storage *src;
771 src = hash->storage;
772 switch (src->type) {
775 op->reg = hardregs + src->regno;
780 op->offset = src->offset;
785 op->offset = src->offset;
829 struct operand *op = get_generic_operand(state, memop->src);
837 base = getreg(state, memop->src, NULL);
881 static struct hardreg *target_copy_reg(struct bb_state *state, struct hardreg *src, pseudo_t target)
883 kill_dead_reg(src);
884 return copy_reg(state, src, target);
890 struct operand *src = get_register_operand(state, val1, insn->target);
894 dst = target_copy_reg(state, src->reg, insn->target);
896 put_operand(state, src);
960 struct storage_hash *src;
964 src = find_pseudo_storage(state, pseudo, NULL);
965 if (src)
966 src->flags |= TAG_DEAD;
1020 struct hardreg *src = getreg(state, insn->src, insn->target);
1022 add_pseudo_reg(state, insn->target, src);
1027 struct hardreg *src = getreg(state, insn->src, insn->target);
1037 add_pseudo_reg(state, insn->target, src);
1041 dst = target_copy_reg(state, src, insn->target);
1105 if (ret->src && ret->src != VOID) {
1107 struct hardreg *reg = getreg(state, ret->src, NULL);
1175 const char *src = *src_p;
1179 c = *src++;
1187 *src_p = src;
1193 const char *src = *src_p;
1194 const char *end = src;
1210 if (memcmp(src, ident->name, len))
1343 struct hardreg *src;
1354 src = getreg(state, insn->src1, insn->target);
1357 output_insn(state, "cmp.%d %s,%s", insn->size, src2, src->name);
1507 static void write_val_to_storage(struct bb_state *state, pseudo_t src, struct storage *storage)
1515 output_insn(state, "movl %s,%s", show_pseudo(src), show_memop(storage));
1519 output_insn(state, "movl %s,%s", show_pseudo(src), out->name);
1855 pseudo_t pseudo = ret->src;