xref: /csrg-svn/old/pcc/ccom.tahoe/macdefs.h (revision 32892)
1 /*	macdefs.h	1.5	87/12/10	*/
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 */
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 #define SPRECC			/* double only arithmetic not supported */
65 
66 #define ENUMSIZE(high,low) INT	/* enums are always stored in full int */
67 
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 
72 #ifndef ncopy
73 #define	ncopy(q, p)	((q)->in = (p)->in)
74 #endif
75 
76 #define aobeg()
77 #define aocode(p)
78 #define aoend()
79 #define deflab(m)	if (!nerrors) printf("L%d:\n", m); else
80 
81 #define	PRTDCON			/* use machine-specific prtdcon routine */
82 extern	prtdcon();
83 #endif
84