1987-03-09 19:15:41 +00:00
|
|
|
/*
|
|
|
|
* (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands.
|
|
|
|
* See the copyright notice in the ACK home directory, in the file "Copyright".
|
|
|
|
*/
|
1994-06-24 14:02:31 +00:00
|
|
|
/* $Id$ */
|
1985-01-08 15:34:54 +00:00
|
|
|
|
|
|
|
struct regvar {
|
|
|
|
struct regvar *rv_next;
|
|
|
|
long rv_off;
|
|
|
|
int rv_size;
|
|
|
|
int rv_type;
|
|
|
|
int rv_score;
|
|
|
|
int rv_reg;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct regassigned {
|
|
|
|
struct regvar *ra_rv;
|
|
|
|
int ra_score;
|
|
|
|
};
|
|
|
|
|
|
|
|
extern int nregvar[];
|
|
|
|
extern struct regassigned *regassigned[];
|
2017-10-15 15:01:18 +00:00
|
|
|
|
|
|
|
struct regvar *linkreg(long, int, int, int);
|
|
|
|
void tryreg(struct regvar *, int);
|
|
|
|
void fixregvars(int);
|
|
|
|
int isregvar(long);
|
2017-10-15 17:15:03 +00:00
|
|
|
#ifdef REGLAP
|
|
|
|
int isregvar_size(long, int);
|
|
|
|
#endif
|
2017-10-15 15:01:18 +00:00
|
|
|
int isregtyp(long);
|
|
|
|
void unlinkregs(void);
|
2017-10-19 02:00:12 +00:00
|
|
|
|
|
|
|
#ifdef REGLAP
|
|
|
|
#define PICK_REGVAR(off, size) isregvar_size(off, size)
|
|
|
|
#else
|
|
|
|
#define PICK_REGVAR(off, size) isregvar(off)
|
|
|
|
#endif
|
2017-11-13 19:23:44 +00:00
|
|
|
|
|
|
|
/* machine dependent */
|
|
|
|
int regscore(long, int, int, int, int);
|
|
|
|
void i_regsave(void);
|
|
|
|
void regsave(const char *, long, int);
|
|
|
|
void f_regsave(void);
|
|
|
|
void regreturn(void);
|