diff --git a/mach/proto/ncg/reg.c b/mach/proto/ncg/reg.c index 9f645fbec..b71d06d43 100644 --- a/mach/proto/ncg/reg.c +++ b/mach/proto/ncg/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+1;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 }