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