|
|
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
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.