Christian Ullrich
Edwin Steiner
- $Id: codegen.c 5334 2006-09-05 20:17:46Z edwin $
+ $Id: codegen.c 5335 2006-09-05 20:50:21Z edwin $
*/
/* copy interface registers to their destination */
- src = bptr->instack;
len = bptr->indepth;
MCODECHECK(64+len);
#if defined(ENABLE_LSRA)
if (opt_lsra) {
- while (src != NULL) {
+ while (len) {
len--;
+ src = bptr->invars[len];
if ((len == 0) && (bptr->type != BBTYPE_STD)) {
/* d = reg_of_var(m, src, REG_ITMP1); */
if (!(src->flags & INMEMORY))
M_INTMOVE(REG_ITMP1, d);
emit_store(jd, NULL, src, d);
}
- src = src->prev;
}
} else {
#endif
- while (src != NULL) {
+ while (len) {
len--;
+ src = bptr->invars[len];
if ((len == 0) && (bptr->type != BBTYPE_STD)) {
d = codegen_reg_of_var(rd, 0, src, REG_ITMP1);
M_INTMOVE(REG_ITMP1, d);
}
}
}
- src = src->prev;
}
#if defined(ENABLE_LSRA)
}
/* walk through all instructions */
- src = bptr->instack;
len = bptr->icount;
for (iptr = bptr->iinstr; len > 0; len--, iptr++) {
/* copy values to interface registers */
- src = bptr->outstack;
len = bptr->outdepth;
MCODECHECK(64+len);
#if defined(ENABLE_LSRA)
if (!opt_lsra)
#endif
- while (src) {
+ while (len) {
len--;
+ src = bptr->outvars[len];
if ((src->varkind != STACKVAR)) {
s2 = src->type;
if (IS_FLT_DBL_TYPE(s2)) {
}
}
}
- src = src->prev;
}
} /* if (bptr -> flags >= BBREACHED) */
} /* for basic block */