Commit | Line | Data |
---|---|---|
543f0915 | 1 | /* macdefs.h 1.5 87/12/10 */ |
0b9890e3 SL |
2 | |
3 | #ifndef _MACDEFS_ | |
4 | #define _MACDEFS_ | |
5 | ||
6 | #define makecc(val,i) lastcon = (lastcon<<8)|((val<<24)>>24); | |
7 | ||
8 | #define ARGINIT SZINT | |
9 | #define AUTOINIT (13*SZINT) | |
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 | #define ACONFMT "$0x%lx" /* format for printing address constants */ | |
36 | #define CONFMT "%ld" /* format for printing constants */ | |
37 | #define LABFMT "L%d" /* format for printing labels */ | |
38 | ||
39 | typedef long CONSZ; /* size in which constants are converted */ | |
40 | typedef long OFFSZ; /* size in which offsets are kept */ | |
41 | ||
42 | #define CCTRANS(x) x /* character set macro */ | |
43 | ||
44 | /* | |
45 | * Register cookie for stack pointer. | |
46 | */ | |
47 | #define STKREG 13 /* stack pointer */ | |
48 | ||
49 | /* | |
50 | * Maximum and minimum register variables | |
51 | */ | |
52 | #define MINRVAR 6 /* use R6 thru ... */ | |
53 | #define MAXRVAR 12 /* ... R12 */ | |
54 | ||
55 | #define BACKAUTO /* stack grows negatively for automatics */ | |
56 | #define BACKTEMP /* stack grows negatively for temporaries */ | |
57 | /*#define FIELDOPS /* no hardware field support */ | |
58 | /*#define RTOLBYTES /* bytes are number from left to right */ | |
f5f739d3 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 */ | |
543f0915 | 64 | #define SPRECC /* double only arithmetic not supported */ |
f5f739d3 | 65 | |
0b9890e3 SL |
66 | #define ENUMSIZE(high,low) INT /* enums are always stored in full int */ |
67 | ||
f5f739d3 DS |
68 | #define FIXDEF(p) if (!nerrors) outstab(p); else |
69 | #define FIXARG(p) if (!nerrors) fixarg(p); else | |
70 | #define FIXSTRUCT(p,q) if (!nerrors) outstruct(p,q); else | |
71 | ||
0b9890e3 SL |
72 | #ifndef ncopy |
73 | #define ncopy(q, p) ((q)->in = (p)->in) | |
9162c98f SL |
74 | #endif |
75 | ||
f5f739d3 DS |
76 | #define aobeg() |
77 | #define aocode(p) | |
78 | #define aoend() | |
79 | #define deflab(m) if (!nerrors) printf("L%d:\n", m); else | |
80 | ||
0b9890e3 SL |
81 | #define PRTDCON /* use machine-specific prtdcon routine */ |
82 | extern prtdcon(); | |
83 | #endif |