xref: /original-bsd/old/pcc/ccom.tahoe/macdefs.h (revision 16014b08)
1 /*	macdefs.h	1.7	88/05/31	*/
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	unsigned long	U_CONSZ;/* unsigned version of the above */
41 typedef	long	OFFSZ;		/* size in which offsets are kept */
42 
43 #define CCTRANS(x) x		/* character set macro */
44 
45 /*
46  * Register cookie for stack pointer.
47  */
48 #define STKREG	13		/* stack pointer */
49 
50 /*
51  * Maximum and minimum register variables
52  */
53 #define MINRVAR	6		/* use R6 thru ... */
54 #define MAXRVAR	12		/* ... R12 */
55 
56 #define BACKAUTO		/* stack grows negatively for automatics */
57 #define BACKTEMP		/* stack grows negatively for temporaries */
58 /*#define FIELDOPS	/* no hardware field support */
59 /*#define RTOLBYTES	/* bytes are number from left to right */
60 #define ADDROREG		/* can unwind &o, where o is OREG */
61 
62 #define ASSTRINGS		/* assembler handles string initializations */
63 #define STABDOT			/* assembler understands .stabd */
64 #define LCOMM			/* assembler supports .lcomm */
65 #define SPRECC			/* double only arithmetic not supported */
66 
67 #define ENUMSIZE(high,low) INT	/* enums are always stored in full int */
68 
69 #define FIXDEF(p)	if (!nerrors) outstab(p); else
70 #define FIXARG(p)	if (!nerrors) fixarg(p); else
71 #define FIXSTRUCT(p,q)	if (!nerrors) outstruct(p,q); else
72 
73 #ifndef ncopy
74 #define	ncopy(q, p)	((q)->in = (p)->in)
75 #endif
76 
77 #define aobeg()
78 #define aocode(p)
79 #define aoend()
80 
81 #define	PRTDCON			/* use machine-specific prtdcon routine */
82 extern	prtdcon();
83 #endif
84