diff --git a/mach/proto/cg/reg.c b/mach/proto/cg/reg.c index b9db3a4c5..187c92482 100644 --- a/mach/proto/cg/reg.c +++ b/mach/proto/cg/reg.c @@ -73,17 +73,21 @@ erasereg(regno) { register struct reginfo *rp; register int i; +#if MAXMEMBERS==0 rp = &machregs[regno]; rp->r_contents.t_token = 0; for (i=0;ir_contents.t_att[i].aw = 0; -#if MAXMEMBERS==0 awayreg(regno); #else for (rp=machregs;rpr_clash[regno>>4]&(1<<(regno&017))) + if (rp->r_clash[regno>>4]&(1<<(regno&017))) { + rp->r_contents.t_token = 0; + for (i=0;ir_contents.t_att[i].aw = 0; awayreg(rp-machregs); + } #endif }