xref: /csrg-svn/old/pcc/ccom.vax/macdefs.h (revision 32946)
1*32946Sdonn /*	macdefs.h	4.4	87/12/11	*/
218402Sralph 
318402Sralph #ifndef _MACDEFS_
418402Sralph #define	_MACDEFS_
518402Sralph 
618402Sralph #define makecc(val,i)	lastcon = (lastcon<<8)|((val<<24)>>24);
718402Sralph 
818402Sralph #define ARGINIT		32
918402Sralph #define AUTOINIT	0
1018402Sralph 
1118402Sralph /*
1218402Sralph  * Storage space requirements
1318402Sralph  */
1418402Sralph #define SZCHAR		8
1518402Sralph #define SZINT		32
1618402Sralph #define SZFLOAT		32
1718402Sralph #define SZDOUBLE	64
1818402Sralph #define SZLONG		32
1918402Sralph #define SZSHORT		16
2018402Sralph #define SZPOINT		32
2118402Sralph 
2218402Sralph /*
2318402Sralph  * Alignment constraints
2418402Sralph  */
2518402Sralph #define ALCHAR		8
2618402Sralph #define ALINT		32
2718402Sralph #define ALFLOAT		32
2818402Sralph #define ALDOUBLE	32
2918402Sralph #define ALLONG		32
3018402Sralph #define ALSHORT		16
3118402Sralph #define ALPOINT		32
3218402Sralph #define ALSTRUCT	8
3318402Sralph #define ALSTACK		32
3418402Sralph 
3518402Sralph typedef	long	CONSZ;		/* size in which constants are converted */
3618402Sralph typedef	long	OFFSZ;		/* size in which offsets are kept */
3718402Sralph 
3818402Sralph #define CONFMT	"%ld"		/* format for printing constants */
3918402Sralph #define LABFMT	"L%d"		/* format for printing labels */
4018402Sralph 
4118402Sralph #define CCTRANS(x) x		/* character set macro */
4218402Sralph 
4318402Sralph /*
4418402Sralph  * Register cookies for stack pointer and argument pointer
4518402Sralph  */
4618402Sralph #define STKREG	13		/* stack pointer */
4718402Sralph #define ARGREG	12		/* off frame pointer */
4818402Sralph 
4918402Sralph /*
5018402Sralph  * Maximum and minimum register variables
5118402Sralph  */
5218402Sralph #define MINRVAR	6		/* use R6 thru ... */
5318402Sralph #define MAXRVAR	11		/* ... R11 */
5418402Sralph 
5518402Sralph #define BACKAUTO		/* stack grows negatively for automatics */
5618402Sralph #define BACKTEMP		/* stack grows negatively for temporaries */
5718402Sralph #define FIELDOPS		/* show field hardware support on VAX */
5818402Sralph #define RTOLBYTES		/* bytes are numbered from right to left */
5932945Sdonn #define ADDROREG		/* can unwind &o, where o is OREG */
6018402Sralph 
6132945Sdonn #define ASSTRINGS		/* assembler handles string initializations */
6232945Sdonn #define STABDOT			/* assembler understands .stabd */
6332945Sdonn #define LCOMM			/* assembler supports .lcomm */
6432945Sdonn 
6518402Sralph #define ENUMSIZE(high,low) INT	/* enums are always stored in full int */
6618402Sralph 
6732945Sdonn #define FIXDEF(p) if (!nerrors) outstab(p); else
6832945Sdonn #define FIXARG(p) if (!nerrors) fixarg(p); else
6932945Sdonn #define FIXSTRUCT(p,q) if (!nerrors) outstruct(p,q); else
7032945Sdonn 
7124419Smckusick #ifndef ncopy
7224419Smckusick #define	ncopy(q, p)	((q)->in = (p)->in)
7318402Sralph #endif
7432945Sdonn 
7532945Sdonn #define aobeg()
7632945Sdonn #define aocode(p)
7732945Sdonn #define aoend()
7832945Sdonn #define deflab(m)	if (!nerrors) printf("L%d:\n", m); else
79*32946Sdonn 
80*32946Sdonn #define	PRTDCON			/* use machine-specific prtdcon routine */
81*32946Sdonn extern	prtdcon();
8224419Smckusick #endif
83