|
|
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.