Commit | Line | Data |
---|---|---|
501b7520 | 1 | /* macdefs.h 4.4 87/12/11 */ |
ac9b083d RC |
2 | |
3 | #ifndef _MACDEFS_ | |
4 | #define _MACDEFS_ | |
5 | ||
6 | #define makecc(val,i) lastcon = (lastcon<<8)|((val<<24)>>24); | |
7 | ||
8 | #define ARGINIT 32 | |
9 | #define AUTOINIT 0 | |
10 | ||
11 | /* | |
12 | * Storage space requirements | |
13 | */ | |
14 | #define SZCHAR 8 | |
15 | #define SZINT 32 | |
16 | #define SZFLOAT 32 | |
17 | #define SZDOUBLE 64 | |
18 | #define SZLONG 32 | |
19 | #define SZSHORT 16 | |
20 | #define SZPOINT 32 | |
21 | ||
22 | /* | |
23 | * Alignment constraints | |
24 | */ | |
25 | #define ALCHAR 8 | |
26 | #define ALINT 32 | |
27 | #define ALFLOAT 32 | |
28 | #define ALDOUBLE 32 | |
29 | #define ALLONG 32 | |
30 | #define ALSHORT 16 | |
31 | #define ALPOINT 32 | |
32 | #define ALSTRUCT 8 | |
33 | #define ALSTACK 32 | |
34 | ||
35 | typedef long CONSZ; /* size in which constants are converted */ | |
36 | typedef long OFFSZ; /* size in which offsets are kept */ | |
37 | ||
38 | #define CONFMT "%ld" /* format for printing constants */ | |
39 | #define LABFMT "L%d" /* format for printing labels */ | |
40 | ||
41 | #define CCTRANS(x) x /* character set macro */ | |
42 | ||
43 | /* | |
44 | * Register cookies for stack pointer and argument pointer | |
45 | */ | |
46 | #define STKREG 13 /* stack pointer */ | |
47 | #define ARGREG 12 /* off frame pointer */ | |
48 | ||
49 | /* | |
50 | * Maximum and minimum register variables | |
51 | */ | |
52 | #define MINRVAR 6 /* use R6 thru ... */ | |
53 | #define MAXRVAR 11 /* ... R11 */ | |
54 | ||
55 | #define BACKAUTO /* stack grows negatively for automatics */ | |
56 | #define BACKTEMP /* stack grows negatively for temporaries */ | |
57 | #define FIELDOPS /* show field hardware support on VAX */ | |
58 | #define RTOLBYTES /* bytes are numbered from right to left */ | |
22f36898 DS |
59 | #define ADDROREG /* can unwind &o, where o is OREG */ |
60 | ||
61 | #define ASSTRINGS /* assembler handles string initializations */ | |
62 | #define STABDOT /* assembler understands .stabd */ | |
63 | #define LCOMM /* assembler supports .lcomm */ | |
ac9b083d RC |
64 | |
65 | #define ENUMSIZE(high,low) INT /* enums are always stored in full int */ | |
66 | ||
22f36898 DS |
67 | #define FIXDEF(p) if (!nerrors) outstab(p); else |
68 | #define FIXARG(p) if (!nerrors) fixarg(p); else | |
69 | #define FIXSTRUCT(p,q) if (!nerrors) outstruct(p,q); else | |
70 | ||
88bb0c9f KM |
71 | #ifndef ncopy |
72 | #define ncopy(q, p) ((q)->in = (p)->in) | |
73 | #endif | |
22f36898 DS |
74 | |
75 | #define aobeg() | |
76 | #define aocode(p) | |
77 | #define aoend() | |
78 | #define deflab(m) if (!nerrors) printf("L%d:\n", m); else | |
501b7520 DS |
79 | |
80 | #define PRTDCON /* use machine-specific prtdcon routine */ | |
81 | extern prtdcon(); | |
ac9b083d | 82 | #endif |