Lines Matching defs:hardreg
99 struct hardreg {
119 static struct hardreg hardregs[] = {
157 struct hardreg *reg;
163 struct hardreg *base;
164 struct hardreg *index;
346 static void flush_one_pseudo(struct bb_state *state, struct hardreg *hardreg, pseudo_t pseudo)
354 output_comment(state, "flushing %s from %s", show_pseudo(pseudo), hardreg->name);
376 output_insn(state, "movl %s,%s", hardreg->name, show_memop(storage));
381 /* Flush a hardreg out to the storage it has.. */
382 static void flush_reg(struct bb_state *state, struct hardreg *reg)
402 static struct storage_hash *find_pseudo_storage(struct bb_state *state, pseudo_t pseudo, struct hardreg *reg)
441 static void mark_reg_dead(struct bb_state *state, pseudo_t pseudo, struct hardreg *reg)
456 static void add_pseudo_reg(struct bb_state *state, pseudo_t pseudo, struct hardreg *reg)
462 static struct hardreg *preferred_reg(struct bb_state *state, pseudo_t target)
475 static struct hardreg *empty_reg(struct bb_state *state)
478 struct hardreg *reg = hardregs;
487 static struct hardreg *target_reg(struct bb_state *state, pseudo_t pseudo, pseudo_t target)
491 struct hardreg *reg;
521 static struct hardreg *find_in_reg(struct bb_state *state, pseudo_t pseudo)
524 struct hardreg *reg;
543 struct hardreg *reg = find_in_reg(state, pseudo);
549 static void flush_cc_cache_to_reg(struct bb_state *state, pseudo_t pseudo, struct hardreg *reg)
563 struct hardreg *dst;
583 /* Fill a hardreg with the pseudo it has */
584 static struct hardreg *fill_reg(struct bb_state *state, struct hardreg *hardreg, pseudo_t pseudo)
590 flush_cc_cache_to_reg(state, pseudo, hardreg);
591 return hardreg;
596 output_insn(state, "movl $%lld,%s", pseudo->value, hardreg->name);
602 output_insn(state, "movl $<%s>,%s", show_pseudo(pseudo), hardreg->name);
616 output_insn(state, "leal %s,%s", show_memop(src->storage), hardreg->name);
624 output_insn(state, "movl $<%s>,%s", show_pseudo(def->target), hardreg->name);
627 src = find_pseudo_storage(state, pseudo, hardreg);
631 mark_reg_dead(state, pseudo, hardreg);
632 output_insn(state, "mov.%d %s,%s", 32, show_memop(src->storage), hardreg->name);
635 output_insn(state, "reload %s from %s", hardreg->name, show_pseudo(pseudo));
638 return hardreg;
641 static struct hardreg *getreg(struct bb_state *state, pseudo_t pseudo, pseudo_t target)
643 struct hardreg *reg;
652 static void move_reg(struct bb_state *state, struct hardreg *src, struct hardreg *dst)
657 static struct hardreg *copy_reg(struct bb_state *state, struct hardreg *src, pseudo_t target)
660 struct hardreg *reg;
736 struct hardreg *reg;
798 struct hardreg *reg;
828 struct hardreg *base;
865 static void kill_dead_reg(struct hardreg *reg)
881 static struct hardreg *target_copy_reg(struct bb_state *state, struct hardreg *src, pseudo_t target)
892 struct hardreg *dst;
907 static int is_dead_reg(struct bb_state *state, pseudo_t pseudo, struct hardreg *reg)
925 struct hardreg *reg1, *reg2;
953 * This marks a pseudo dead. It still stays on the hardreg list (the hardreg
988 struct hardreg *dst;
998 struct hardreg *reg;
1020 struct hardreg *src = getreg(state, insn->src, insn->target);
1027 struct hardreg *src = getreg(state, insn->src, insn->target);
1028 struct hardreg *dst;
1079 struct hardreg *reg = getreg(state, br->cond, NULL);
1096 struct hardreg *reg = hardregs + SWITCH_REG;
1106 struct hardreg *wants = hardregs+0;
1107 struct hardreg *reg = getreg(state, ret->src, NULL);
1139 struct hardreg *src1, *src2, *dst;
1149 struct hardreg *reg = getreg(state, insn->src1, NULL);
1161 struct hardreg *reg;
1259 struct hardreg *reg, *orig;
1301 struct hardreg *reg;
1343 struct hardreg *src;
1466 static void write_reg_to_storage(struct bb_state *state, struct hardreg *reg, pseudo_t pseudo, struct storage *storage)
1469 struct hardreg *out;
1509 struct hardreg *out;
1546 struct hardreg *reg = hardregs + i;
1583 static int final_pseudo_flush(struct bb_state *state, pseudo_t pseudo, struct hardreg *reg)
1587 struct hardreg *dst;
1652 struct hardreg *reg = hardregs + out->regno;
1759 struct hardreg *reg = hardregs + s->regno;