added code to save all registers for ms_gto
authorsater <none@none>
Sat, 19 May 1984 11:49:37 +0000 (11:49 +0000)
committersater <none@none>
Sat, 19 May 1984 11:49:37 +0000 (11:49 +0000)
changed place of #ifdef to make this null-module compile faster
when no register variables are used.

mach/proto/cg/regvar.c

index 6be7549..6379b9b 100644 (file)
@@ -1,10 +1,9 @@
-#ifndef NORCSID
-static char rcsid[] = "$Header$";
-#endif
-
 #include "assert.h"
 #include "param.h"
 #include "tables.h"
+
+#ifdef REGVARS
+
 #include "types.h"
 #include <cg_pattern.h>
 #include "data.h"
@@ -31,8 +30,6 @@ static char rcsid[] = "$Header$";
  * Author: Hans van Staveren
  */
 
-#ifdef REGVARS
-
 struct regvar *rvlist;
 
 struct regvar *
@@ -95,7 +92,7 @@ tryreg(rvlp,typ) struct regvar *rvlp; {
        }
 }
 
-fixregvars() {
+fixregvars(saveall) {
        register struct regvar *rv;
        register rvtyp,i;
        
@@ -103,7 +100,11 @@ fixregvars() {
        i_regsave();    /* machine dependent initialization */
        for (rvtyp=reg_any;rvtyp<=reg_float;rvtyp++) {
            for(i=0;i<nregvar[rvtyp];i++)
-               if (regassigned[rvtyp][i].ra_score>0) {
+               if (saveall) {
+                       struct reginfo *rp;
+                       rp= &machregs[rvnumbers[rvtyp][i]];
+                       regsave(codestrings[rp->r_repr],-EM_WSIZE,rp->r_size);
+               } else if(regassigned[rvtyp][i].ra_score>0) {
                        rv=regassigned[rvtyp][i].ra_rv;
                        rv->rv_reg=rvnumbers[rvtyp][i];
                        regsave(codestrings[machregs[rv->rv_reg].r_repr],