|
|
1.1 ! root 1: /* mac2defs.h 4.2 85/08/23 */ ! 2: ! 3: /* ! 4: * VAX-11/780 Registers ! 5: */ ! 6: ! 7: /* ! 8: * Scratch registers ! 9: */ ! 10: #define R0 0 ! 11: #define R1 1 ! 12: #define R2 2 ! 13: #define R3 3 ! 14: #define R4 4 ! 15: #define R5 5 ! 16: ! 17: /* ! 18: * Register variables ! 19: */ ! 20: #define R6 6 ! 21: #define R7 7 ! 22: #define R8 8 ! 23: #define R9 9 ! 24: #define R10 10 ! 25: #define R11 11 ! 26: ! 27: /* ! 28: * Special purpose registers ! 29: */ ! 30: #define AP 12 /* argument pointer */ ! 31: #define FP 13 /* frame pointer */ ! 32: #define SP 14 /* stack pointer */ ! 33: #define PC 15 /* program counter */ ! 34: ! 35: #define REGSZ 16 ! 36: #define TMPREG FP ! 37: ! 38: #define R2REGS 1 /* permit double indexing */ ! 39: ! 40: extern int fregs; ! 41: extern int maxargs; ! 42: ! 43: #define BYTEOFF(x) ((x)&03) ! 44: #define wdal(k) (BYTEOFF(k)==0) /* word align */ ! 45: #define BITOOR(x) ((x)>>3) /* bit offset to oreg offset */ ! 46: ! 47: /* ! 48: * Some macros used in store(): ! 49: * just evaluate the arguments, and be done with it... ! 50: */ ! 51: #define STOARG(p) ! 52: #define STOFARG(p) ! 53: #define STOSTARG(p) ! 54: #define genfcall(a,b) gencall(a,b) ! 55: ! 56: /* ! 57: * Some short routines that get called an awful lot are actually macros. ! 58: */ ! 59: #if defined(FORT) || defined(SPRECC) ! 60: #define szty(t) ((t) == DOUBLE ? 2 : 1) ! 61: #else ! 62: #define szty(t) (((t) == DOUBLE || (t) == FLOAT) ? 2 : 1) ! 63: #endif ! 64: #define shltype(o, p) \ ! 65: ((o) == REG || (o) == NAME || (o) == ICON || \ ! 66: (o) == OREG || ((o) == UNARY MUL && shumul((p)->in.left))) ! 67: #define ncopy(q, p) ((q)->in = (p)->in) ! 68: ! 69: #define MYREADER(p) myreader(p) ! 70: int optim2(); ! 71: ! 72: /* This indicates there are no additional special shapes, see match.c */ ! 73: #define special(a, b) 0
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.