From: CSRG Date: Sun, 25 Aug 1985 06:56:36 +0000 (-0800) Subject: BSD 4_3 development X-Git-Tag: BSD-4_3~1053 X-Git-Url: https://git.subgeniuskitty.com/unix-history/.git/commitdiff_plain/db799bb8df209eef94b093682d01e1e7a8ae00b8 BSD 4_3 development Work on file usr/src/lib/pcc/mac2defs.h Work on file usr/src/lib/pcc/macdefs.h Synthesized-from: CSRG/cd1/4.3 --- diff --git a/usr/src/lib/pcc/mac2defs.h b/usr/src/lib/pcc/mac2defs.h new file mode 100644 index 0000000000..25f517aab6 --- /dev/null +++ b/usr/src/lib/pcc/mac2defs.h @@ -0,0 +1,73 @@ +/* mac2defs.h 4.2 85/08/23 */ + +/* + * VAX-11/780 Registers + */ + +/* + * Scratch registers + */ +#define R0 0 +#define R1 1 +#define R2 2 +#define R3 3 +#define R4 4 +#define R5 5 + +/* + * Register variables + */ +#define R6 6 +#define R7 7 +#define R8 8 +#define R9 9 +#define R10 10 +#define R11 11 + +/* + * Special purpose registers + */ +#define AP 12 /* argument pointer */ +#define FP 13 /* frame pointer */ +#define SP 14 /* stack pointer */ +#define PC 15 /* program counter */ + +#define REGSZ 16 +#define TMPREG FP + +#define R2REGS 1 /* permit double indexing */ + +extern int fregs; +extern int maxargs; + +#define BYTEOFF(x) ((x)&03) +#define wdal(k) (BYTEOFF(k)==0) /* word align */ +#define BITOOR(x) ((x)>>3) /* bit offset to oreg offset */ + +/* + * Some macros used in store(): + * just evaluate the arguments, and be done with it... + */ +#define STOARG(p) +#define STOFARG(p) +#define STOSTARG(p) +#define genfcall(a,b) gencall(a,b) + +/* + * Some short routines that get called an awful lot are actually macros. + */ +#if defined(FORT) || defined(SPRECC) +#define szty(t) ((t) == DOUBLE ? 2 : 1) +#else +#define szty(t) (((t) == DOUBLE || (t) == FLOAT) ? 2 : 1) +#endif +#define shltype(o, p) \ + ((o) == REG || (o) == NAME || (o) == ICON || \ + (o) == OREG || ((o) == UNARY MUL && shumul((p)->in.left))) +#define ncopy(q, p) ((q)->in = (p)->in) + +#define MYREADER(p) myreader(p) +int optim2(); + +/* This indicates there are no additional special shapes, see match.c */ +#define special(a, b) 0 diff --git a/usr/src/lib/pcc/macdefs.h b/usr/src/lib/pcc/macdefs.h new file mode 100644 index 0000000000..c4fc45de6b --- /dev/null +++ b/usr/src/lib/pcc/macdefs.h @@ -0,0 +1,68 @@ +/* macdefs.h 4.2 85/08/23 */ + +#ifndef _MACDEFS_ +#define _MACDEFS_ + +#define makecc(val,i) lastcon = (lastcon<<8)|((val<<24)>>24); + +#define ARGINIT 32 +#define AUTOINIT 0 + +/* + * Storage space requirements + */ +#define SZCHAR 8 +#define SZINT 32 +#define SZFLOAT 32 +#define SZDOUBLE 64 +#define SZLONG 32 +#define SZSHORT 16 +#define SZPOINT 32 + +/* + * Alignment constraints + */ +#define ALCHAR 8 +#define ALINT 32 +#define ALFLOAT 32 +#define ALDOUBLE 32 +#define ALLONG 32 +#define ALSHORT 16 +#define ALPOINT 32 +#define ALSTRUCT 8 +#define ALSTACK 32 + +typedef long CONSZ; /* size in which constants are converted */ +typedef long OFFSZ; /* size in which offsets are kept */ + +#define CONFMT "%ld" /* format for printing constants */ +#define LABFMT "L%d" /* format for printing labels */ + +#define CCTRANS(x) x /* character set macro */ + +/* + * Register cookies for stack pointer and argument pointer + */ +#define STKREG 13 /* stack pointer */ +#define ARGREG 12 /* off frame pointer */ + +/* + * Maximum and minimum register variables + */ +#define MINRVAR 6 /* use R6 thru ... */ +#define MAXRVAR 11 /* ... R11 */ + +#define BACKAUTO /* stack grows negatively for automatics */ +#define BACKTEMP /* stack grows negatively for temporaries */ +#define FIELDOPS /* show field hardware support on VAX */ +#define RTOLBYTES /* bytes are numbered from right to left */ + +#define ENUMSIZE(high,low) INT /* enums are always stored in full int */ + +#define ADDROREG +#define FIXDEF(p) outstab(p) +#define FIXARG(p) fixarg(p) +#ifndef ncopy +#define ncopy(q, p) ((q)->in = (p)->in) +#endif +#endif