An attempt to make "erasereg" a little more efficient, as it seems

often to be called to erase the condition codes.
This commit is contained in:
ceriel 1987-02-21 22:20:10 +00:00
parent d493ffcfde
commit f2a77335b0

View file

@ -73,14 +73,19 @@ erasereg(regno) {
register struct reginfo *rp; register struct reginfo *rp;
register int i; register int i;
#if MAXMEMBERS==0 #if MAXMEMBERS!=0
if (regno == 1) { /* condition codes */
#endif
rp = &machregs[regno]; rp = &machregs[regno];
rp->r_contents.t_token = 0; rp->r_contents.t_token = 0;
for (i=0;i<TOKENSIZE;i++) for (i=0;i<TOKENSIZE;i++)
rp->r_contents.t_att[i].aw = 0; rp->r_contents.t_att[i].aw = 0;
#if MAXMEMBERS == 0
awayreg(regno); awayreg(regno);
#else #else
} else
for (rp=machregs;rp<machregs+NREGS;rp++) for (rp=machregs;rp<machregs+NREGS;rp++)
if (rp->r_clash[regno>>4]&(1<<(regno&017))) { if (rp->r_clash[regno>>4]&(1<<(regno&017))) {
rp->r_contents.t_token = 0; rp->r_contents.t_token = 0;