|
|
1.1 root 1: /* Tahoe Registers */
2:
3: /* scratch registers */
4: # define R0 0
5: # define R1 1
6: # define R2 2
7: # define R3 3
8: # define R4 4
9: # define R5 5
10:
11: /* register variables */
12: # define R6 6
13: # define R7 7
14: # define R8 8
15: # define R9 9
16: # define R10 10
17: # define R11 11
18: # define R12 12
19:
20: /* special purpose */
21: # define FP 13 /* frame pointer */
22: # define SP 14 /* stack pointer */
23: # define PC 15 /* program counter */
24:
25: /* floating registers */
26: # define ACC 16 /* accumulator */
27:
28: extern int fregs;
29: extern int maxargs;
30:
31: # define BYTEOFF(x) ((x)&03)
32: # define wdal(k) (BYTEOFF(k)==0)
33: # define BITOOR(x) ((x)>>3) /* bit offset to oreg offset */
34:
35: # define REGSZ 16
36:
37: # define TMPREG FP
38:
39: # define R2REGS /* permit double indexing */
40:
41: # define STOARG(p) /* just evaluate the arguments, and be done with it... */
42: # define STOFARG(p)
43: # define STOSTARG(p)
44:
45: # define NESTCALLS
46:
47: # define MYREADER(p) myreader(p)
48: int optim2();
49: # define SIREG (SPECIAL|6) /* indexed OREG */
50: int special();
51: #define callchk(p) if(p->in.op!=FORTCALL)allchk()
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.