-#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"
* Author: Hans van Staveren
*/
-#ifdef REGVARS
-
struct regvar *rvlist;
struct regvar *
}
}
-fixregvars() {
+fixregvars(saveall) {
register struct regvar *rv;
register rvtyp,i;
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],