xref: /csrg-svn/old/pcc/ccom.vax/macdefs.h (revision 34577)
1*34577Sdonn /*	macdefs.h	4.6	88/05/31	*/
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 */
3634091Sbostic typedef	unsigned long	U_CONSZ;/* unsigned version of the above */
3718402Sralph typedef	long	OFFSZ;		/* size in which offsets are kept */
3818402Sralph 
3918402Sralph #define CONFMT	"%ld"		/* format for printing constants */
4018402Sralph #define LABFMT	"L%d"		/* format for printing labels */
4118402Sralph 
4218402Sralph #define CCTRANS(x) x		/* character set macro */
4318402Sralph 
4418402Sralph /*
4518402Sralph  * Register cookies for stack pointer and argument pointer
4618402Sralph  */
4718402Sralph #define STKREG	13		/* stack pointer */
4818402Sralph #define ARGREG	12		/* off frame pointer */
4918402Sralph 
5018402Sralph /*
5118402Sralph  * Maximum and minimum register variables
5218402Sralph  */
5318402Sralph #define MINRVAR	6		/* use R6 thru ... */
5418402Sralph #define MAXRVAR	11		/* ... R11 */
5518402Sralph 
5618402Sralph #define BACKAUTO		/* stack grows negatively for automatics */
5718402Sralph #define BACKTEMP		/* stack grows negatively for temporaries */
5818402Sralph #define FIELDOPS		/* show field hardware support on VAX */
5918402Sralph #define RTOLBYTES		/* bytes are numbered from right to left */
6032945Sdonn #define ADDROREG		/* can unwind &o, where o is OREG */
6118402Sralph 
6232945Sdonn #define ASSTRINGS		/* assembler handles string initializations */
6332945Sdonn #define STABDOT			/* assembler understands .stabd */
6432945Sdonn #define LCOMM			/* assembler supports .lcomm */
6532945Sdonn 
6618402Sralph #define ENUMSIZE(high,low) INT	/* enums are always stored in full int */
6718402Sralph 
6832945Sdonn #define FIXDEF(p) if (!nerrors) outstab(p); else
6932945Sdonn #define FIXARG(p) if (!nerrors) fixarg(p); else
7032945Sdonn #define FIXSTRUCT(p,q) if (!nerrors) outstruct(p,q); else
7132945Sdonn 
7224419Smckusick #ifndef ncopy
7324419Smckusick #define	ncopy(q, p)	((q)->in = (p)->in)
7418402Sralph #endif
7532945Sdonn 
7632945Sdonn #define aobeg()
7732945Sdonn #define aocode(p)
7832945Sdonn #define aoend()
7932946Sdonn 
8032946Sdonn #define	PRTDCON			/* use machine-specific prtdcon routine */
8132946Sdonn extern	prtdcon();
8224419Smckusick #endif
83