Annotation of 43BSDReno/libexec/pcc/ccom.tahoe/mac2defs.h, revision 1.1.1.1

1.1       root        1: /*     mac2defs.h      1.4     88/01/19        */
                      2: 
                      3: /*
                      4:  * Tahoe 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: #define R12    12
                     27: 
                     28: /*
                     29:  * Special purpose registers
                     30:  */
                     31: #define FP     13              /* frame pointer */
                     32: #define SP     14              /* stack pointer */
                     33: #define PC     15              /* program counter */
                     34: 
                     35: /*
                     36:  * Floating registers
                     37:  */
                     38: #define        ACC     16              /* accumulator */
                     39: 
                     40: #define        TMPREG  FP              /* reg off which temporaries are referenced */
                     41: #define        REGSZ   16              /* size of register set */
                     42: 
                     43: #define R2REGS 1               /* permit double indexing */
                     44: 
                     45: extern int fregs;
                     46: extern int maxargs;
                     47: 
                     48: #define BYTEOFF(x)     ((x)&03)
                     49: #define wdal(k)                (BYTEOFF(k)==0)         /* word align */
                     50: #define BITOOR(x)      ((x)>>3)                /* bit offset to oreg offset */
                     51: 
                     52: /*
                     53:  * Some macros used in store():
                     54:  *     just evaluate the arguments, and be done with it...
                     55:  */
                     56: #define STOARG(p)
                     57: #define STOFARG(p)
                     58: #define STOSTARG(p)
                     59: 
                     60: /*
                     61:  * Some short routines that get called an awful lot are actually macros.
                     62:  */
                     63: #define        szty(t) ((t) == DOUBLE ? 2 : 1)
                     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: #define        SIREG           (SPECIAL|7)     /* indexed OREG */
                     72: int    special();                      /* additional special shapes */
                     73: #define callchk(p)     if ((p)->in.op != FORTCALL) allchk()

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.