Annotation of researchv9/jerq/sgs/comp/macdefs.h, revision 1.1.1.1

1.1       root        1: /*     @(#) macdefs.h: 1.6 3/4/84      */
                      2: /*     macdefs - machine dependent macros and parameters
                      3:  *
                      4:  *             Bellmac32 w/Mao/Berenbaum stack frame
                      5:  *
                      6:  *                     R. J. Mascitti
                      7:  */
                      8: 
                      9: /* initial values for stack offsets in bits */
                     10: 
                     11: #define ARGINIT 0
                     12: #define AUTOINIT 0
                     13: 
                     14: /* sizes of types in bits */
                     15: 
                     16: #define SZCHAR 8
                     17: #define SZSHORT 16
                     18: #define SZINT 32
                     19: #define SZPOINT 32
                     20: 
                     21: #define SZFLOAT 32
                     22: #define SZDOUBLE 64
                     23: 
                     24: /* alignments of types in bits */
                     25: 
                     26: #define ALCHAR 8
                     27: #define ALSHORT 16
                     28: #define ALINT 32
                     29: #define ALPOINT 32
                     30: #define ALSTACK 32
                     31: #define ALSTRUCT 32
                     32: #define ALINIT 32
                     33: #define ALPROC 64
                     34: 
                     35: #define ALFLOAT 32
                     36: #define ALDOUBLE 32
                     37: 
                     38: #define NOLONG                 /* map longs to ints */
                     39: 
                     40: /* format for labels (if anybody cares) */
                     41: 
                     42: #define LABFMT ".L%d"
                     43: 
                     44: /* type size in number of regs/temps */
                     45: 
                     46: #define szty(t) (((t) == TDOUBLE) ? 2 : 1)
                     47: 
                     48: /* number of scratch registers - fp r0->r2 (watch out for pairs!) */
                     49: 
                     50: #define NRGS 3
                     51: 
                     52: /* total number of registers (scratch and variables)   */
                     53: 
                     54: #define TOTREGS        9
                     55: 
                     56: /* Define symbol so we can allocate odd register pairs */
                     57: 
                     58: #define ODDPAIR        1
                     59: 
                     60: /* params addressed with positive offsets from ap, args with negative from sp */
                     61: 
                     62: #undef BACKPARAM
                     63: #define BACKARGS
                     64: 
                     65: /* temps and autos addressed with positive offsets from fp */
                     66: 
                     67: #undef BACKTEMP
                     68: #undef BACKAUTO
                     69: 
                     70: /* bytes run left to right */
                     71: 
                     72: #define LTORBYTES
                     73: #undef RTOLBYTES
                     74: 
                     75: /* function calls and arguments */
                     76: /* don't nest function calls (where do the args go?) */
                     77: 
                     78: /*     #define NONEST                    */
                     79: 
                     80: /* evaluate args left to right (3b style) */
                     81: 
                     82: #define LTORARGS
                     83: 
                     84: /* chars are unsigned */
                     85: 
                     86: #undef CHSIGN
                     87: 
                     88: /* structures returned in temporary location -- define magic string */
                     89: 
                     90: #define TMPSRET        "       movaw   T,%r2\n"
                     91: 
                     92: /* optimizer throws away unless %r2 */
                     93: 
                     94: #define AUXREG 2
                     95: 
                     96: 
                     97: /* comment indicator */
                     98: 
                     99: #define COMMENTSTR "#"
                    100: 
                    101: /* asm markers */
                    102: 
                    103: #define        ASM_COMMENT     "#ASM"
                    104: #define        ASM_END         "#ASMEND"
                    105: 
                    106: /* reflect my high costing in default load/store cost */
                    107: 
                    108: #define CLOAD(x) 55
                    109: #define CSTORE(x) 55
                    110: #define CTEST(x)  55
                    111: 
                    112: #define MYLOCCTR
                    113: 
                    114: #define EXIT(x) myexit(x)
                    115: 
                    116: /* Register number for debugging */
                    117: 
                    118: #define        OUTREGNO(p) (p->offset)
                    119: 
                    120: /* Turn on debug information */
                    121: 
                    122: #define        SDB
                    123: 
                    124: /* Enable assembly language comments */
                    125: 
                    126: #define        ASSYCOMMENT
                    127: 
                    128: /* user-level fix-up at symbol definition time */
                    129: 
                    130: #define FIXDEF(p)      fixdef(p)
                    131: 
                    132: /* support for structure debug info */
                    133: 
                    134: #define FIXSTRUCT(p,q) strend(p)
                    135: 
                    136: /* We want bitfields all to act like integers because we want to
                    137: ** use the extract/insert instructions, which must deal with
                    138: ** word-aligned data.
                    139: */
                    140: 
                    141: #define        FLDINTADR
                    142: 
                    143: #ifdef M32B
                    144: #      define IMPSWREG
                    145: #      define IMPREGAL
                    146: #endif
                    147: 
                    148: /* Commutable operators are symetric anyway */
                    149: #define NOCOMMUTE 1

unix.superglobalmegacorp.com

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