Compare commits
136 Commits
unlabeled-
...
unlabeled-
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3172abf70d | ||
|
|
b35b5b0c11 | ||
|
|
e8d88ed790 | ||
|
|
2d40a4fa61 | ||
|
|
0f77c7fb9f | ||
|
|
83c3f45a29 | ||
|
|
f84e129361 | ||
|
|
bf86a0f8ef | ||
|
|
e7cbb5780b | ||
|
|
4a4b1ae156 | ||
|
|
63e97ee535 | ||
|
|
b8817780f3 | ||
|
|
530c4d4c63 | ||
|
|
6a1b482c86 | ||
|
|
d530ba1126 | ||
|
|
bcaecff14d | ||
|
|
d568a6aca5 | ||
|
|
77fda75841 | ||
|
|
92587276da | ||
|
|
b2dfaa494e | ||
|
|
b231200eb7 | ||
|
|
4c1ac6ad54 | ||
|
|
d345f87d53 | ||
|
|
3ef854719d | ||
|
|
17cd5516a1 | ||
|
|
a117b57ec9 | ||
|
|
925f0be202 | ||
|
|
9ffcf24477 | ||
|
|
bef1b25962 | ||
|
|
05de05abe7 | ||
|
|
54e3b3db4f | ||
|
|
21c2208de6 | ||
|
|
41cd4c15fd | ||
|
|
714b50f54b | ||
|
|
2ac28f401c | ||
|
|
ba5ae63e87 | ||
|
|
2e1928a4eb | ||
|
|
9a02327a2d | ||
|
|
8c0394eea8 | ||
|
|
085069e600 | ||
|
|
e30901a8c4 | ||
|
|
5d2434ce92 | ||
|
|
398a848925 | ||
|
|
dee952edfa | ||
|
|
1ada89da2a | ||
|
|
02d10bc877 | ||
|
|
1046fc1eea | ||
|
|
b5e86c2482 | ||
|
|
2ab7549af6 | ||
|
|
85435303c8 | ||
|
|
51eccf208f | ||
|
|
b27463bccd | ||
|
|
1d613c24af | ||
|
|
cc22bb4175 | ||
|
|
6a084edba7 | ||
|
|
e9b3f54f7c | ||
|
|
ee4b1850bb | ||
|
|
49a0e9c414 | ||
|
|
56ba46b2bc | ||
|
|
cf20acf289 | ||
|
|
64ff1da3e4 | ||
|
|
8e4156532d | ||
|
|
6e32042c52 | ||
|
|
e551fa234e | ||
|
|
15aec67505 | ||
|
|
03409fb772 | ||
|
|
7fab127af3 | ||
|
|
b4b66ce74f | ||
|
|
fff0d30a9a | ||
|
|
2c0619a13a | ||
|
|
2601187207 | ||
|
|
8d7aa4baad | ||
|
|
6eaf938a14 | ||
|
|
6d42bab835 | ||
|
|
2cd5f2033e | ||
|
|
068dee8a06 | ||
|
|
85b1c8b043 | ||
|
|
a955307239 | ||
|
|
dea117397b | ||
|
|
ac8dee35d0 | ||
|
|
46a5c99978 | ||
|
|
77d2cc5222 | ||
|
|
c4dee9c081 | ||
|
|
4a2029781a | ||
|
|
6cde876c44 | ||
|
|
9adb899d09 | ||
|
|
8c2dd5a6b5 | ||
|
|
73af9ae6cf | ||
|
|
783f95590f | ||
|
|
d5399de251 | ||
|
|
b94907a1fa | ||
|
|
40fcf103bd | ||
|
|
7f230788d0 | ||
|
|
f0445587cf | ||
|
|
a089216ae7 | ||
|
|
150d744512 | ||
|
|
e25887d5ca | ||
|
|
c0e66dc8d3 | ||
|
|
61ab763c07 | ||
|
|
86f29918c8 | ||
|
|
af335c7be5 | ||
|
|
2d11c4b2fe | ||
|
|
6fd15f62dc | ||
|
|
ca787ba372 | ||
|
|
aa65dc9fbd | ||
|
|
ff47f2ee43 | ||
|
|
5be59d3ade | ||
|
|
aa74e86069 | ||
|
|
a915561735 | ||
|
|
9f1edee15f | ||
|
|
a17a987cb8 | ||
|
|
db9268bb08 | ||
|
|
f064ac567e | ||
|
|
17504bb39a | ||
|
|
ad77d9eb14 | ||
|
|
558e2166ba | ||
|
|
c71656ab19 | ||
|
|
23cf9b8443 | ||
|
|
44b78ad38d | ||
|
|
386c0d6e1a | ||
|
|
046ee8050f | ||
|
|
1154d87f41 | ||
|
|
0c16a79a37 | ||
|
|
f177d69279 | ||
|
|
a4368ea2d1 | ||
|
|
675d30712d | ||
|
|
209801cac1 | ||
|
|
9c57272ef9 | ||
|
|
01f22b3870 | ||
|
|
6ade85f76e | ||
|
|
0349b620cd | ||
|
|
6001a4462e | ||
|
|
0d853f8c4b | ||
|
|
e5277be072 | ||
|
|
cc246efa46 | ||
|
|
2fe95a276d |
@@ -1,155 +0,0 @@
|
||||
#include "assert.h"
|
||||
#include "param.h"
|
||||
#include "tables.h"
|
||||
|
||||
#ifdef REGVARS
|
||||
|
||||
#ifndef NORCSID
|
||||
static char rcsid[] = "$Header$";
|
||||
#endif
|
||||
|
||||
#include "types.h"
|
||||
#include <cg_pattern.h>
|
||||
#include "data.h"
|
||||
#include "regvar.h"
|
||||
#include <em_reg.h>
|
||||
#include "result.h"
|
||||
#include "extern.h"
|
||||
|
||||
/*
|
||||
* (c) copyright 1983 by the Vrije Universiteit, Amsterdam, The Netherlands.
|
||||
*
|
||||
* This product is part of the Amsterdam Compiler Kit.
|
||||
*
|
||||
* Permission to use, sell, duplicate or disclose this software must be
|
||||
* obtained in writing. Requests for such permissions may be sent to
|
||||
*
|
||||
* Dr. Andrew S. Tanenbaum
|
||||
* Wiskundig Seminarium
|
||||
* Vrije Universiteit
|
||||
* Postbox 7161
|
||||
* 1007 MC Amsterdam
|
||||
* The Netherlands
|
||||
*
|
||||
* Author: Hans van Staveren
|
||||
*/
|
||||
extern string myalloc();
|
||||
struct regvar *rvlist;
|
||||
|
||||
struct regvar *
|
||||
linkreg(of,sz,tp,sc) long of; {
|
||||
struct regvar *rvlp;
|
||||
|
||||
rvlp= (struct regvar *) myalloc(sizeof *rvlp);
|
||||
rvlp->rv_next = rvlist;
|
||||
rvlist=rvlp;
|
||||
rvlp->rv_off = of;
|
||||
rvlp->rv_size = sz;
|
||||
rvlp->rv_type = tp;
|
||||
rvlp->rv_score = sc;
|
||||
rvlp->rv_reg = 0; /* no register assigned yet */
|
||||
return(rvlp);
|
||||
}
|
||||
|
||||
tryreg(rvlp,typ) struct regvar *rvlp; {
|
||||
int score;
|
||||
register i;
|
||||
struct regassigned *ra;
|
||||
struct regvar *save;
|
||||
|
||||
if (typ != reg_any && nregvar[typ]!=0) {
|
||||
if (machregs[rvnumbers[typ][0]].r_size!=rvlp->rv_size)
|
||||
score = -1;
|
||||
else
|
||||
score = regscore(rvlp->rv_off,
|
||||
rvlp->rv_size,
|
||||
rvlp->rv_type,
|
||||
rvlp->rv_score,
|
||||
typ); /* machine dependent */
|
||||
ra = regassigned[typ];
|
||||
if (score>ra[nregvar[typ]-1].ra_score) {
|
||||
save = ra[nregvar[typ]-1].ra_rv;
|
||||
for (i=nregvar[typ]-1;i>0 && ra[i-1].ra_score<score;i--)
|
||||
ra[i] = ra[i-1];
|
||||
ra[i].ra_rv = rvlp;
|
||||
ra[i].ra_score = score;
|
||||
if((rvlp=save)==0)
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (nregvar[reg_any]==0)
|
||||
return;
|
||||
if (machregs[rvnumbers[reg_any][0]].r_size!=rvlp->rv_size)
|
||||
score = -1;
|
||||
else
|
||||
score = regscore(rvlp->rv_off,
|
||||
rvlp->rv_size,
|
||||
rvlp->rv_type,
|
||||
rvlp->rv_score,
|
||||
reg_any); /* machine dependent */
|
||||
ra = regassigned[reg_any];
|
||||
if (score>ra[nregvar[reg_any]-1].ra_score) {
|
||||
for (i=nregvar[reg_any]-1;i>0 && ra[i-1].ra_score<score;i--)
|
||||
ra[i] = ra[i-1];
|
||||
ra[i].ra_rv = rvlp;
|
||||
ra[i].ra_score = score;
|
||||
}
|
||||
}
|
||||
|
||||
fixregvars(saveall) {
|
||||
register struct regvar *rv;
|
||||
register rvtyp,i;
|
||||
|
||||
swtxt();
|
||||
i_regsave(); /* machine dependent initialization */
|
||||
for (rvtyp=reg_any;rvtyp<=reg_float;rvtyp++) {
|
||||
for(i=0;i<nregvar[rvtyp];i++)
|
||||
if (saveall) {
|
||||
struct reginfo *rp;
|
||||
rp= &machregs[rvnumbers[rvtyp][i]];
|
||||
regsave(codestrings[rp->r_repr],(long)-TEM_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],
|
||||
rv->rv_off,rv->rv_size);
|
||||
}
|
||||
}
|
||||
f_regsave();
|
||||
#ifndef TEM_BSIZE
|
||||
for(rv=rvlist;rv!=0;rv=rv->rv_next)
|
||||
if (rv->rv_off >= 0) rv->rv_off += TEM_BSIZE;
|
||||
#endif
|
||||
}
|
||||
|
||||
isregvar(off) long off; {
|
||||
register struct regvar *rvlp;
|
||||
|
||||
for(rvlp=rvlist;rvlp!=0;rvlp=rvlp->rv_next)
|
||||
if(rvlp->rv_off == off)
|
||||
return(rvlp->rv_reg);
|
||||
return(-1);
|
||||
}
|
||||
|
||||
unlinkregs() {
|
||||
register struct regvar *rvlp,*t;
|
||||
register struct regassigned *ra;
|
||||
int rvtyp,i;
|
||||
|
||||
for(rvlp=rvlist;rvlp!=0;rvlp=t) {
|
||||
t=rvlp->rv_next;
|
||||
myfree(rvlp);
|
||||
}
|
||||
rvlist=0;
|
||||
for (rvtyp=reg_any;rvtyp<=reg_float;rvtyp++) {
|
||||
for(i=0;i<nregvar[rvtyp];i++) {
|
||||
ra= ®assigned[rvtyp][i];
|
||||
ra->ra_rv = 0;
|
||||
ra->ra_score = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#endif REGVARS
|
||||
|
||||
/* nothing after this */
|
||||
2341
util/cgg/bootgram.y
Normal file
2341
util/cgg/bootgram.y
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user