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