xref: /csrg-svn/old/pcc/ccom.vax/macdefs.h (revision 32945)
1 /*	macdefs.h	4.3	87/12/11	*/
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 */
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 */
64 
65 #define ENUMSIZE(high,low) INT	/* enums are always stored in full int */
66 
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 
71 #ifndef ncopy
72 #define	ncopy(q, p)	((q)->in = (p)->in)
73 #endif
74 
75 #define aobeg()
76 #define aocode(p)
77 #define aoend()
78 #define deflab(m)	if (!nerrors) printf("L%d:\n", m); else
79 #endif
80