BSD 4_3 development
authorCSRG <csrg@ucbvax.Berkeley.EDU>
Sun, 25 Aug 1985 06:56:36 +0000 (22:56 -0800)
committerCSRG <csrg@ucbvax.Berkeley.EDU>
Sun, 25 Aug 1985 06:56:36 +0000 (22:56 -0800)
Work on file usr/src/lib/pcc/mac2defs.h
Work on file usr/src/lib/pcc/macdefs.h

Synthesized-from: CSRG/cd1/4.3

usr/src/lib/pcc/mac2defs.h [new file with mode: 0644]
usr/src/lib/pcc/macdefs.h [new file with mode: 0644]

diff --git a/usr/src/lib/pcc/mac2defs.h b/usr/src/lib/pcc/mac2defs.h
new file mode 100644 (file)
index 0000000..25f517a
--- /dev/null
@@ -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 (file)
index 0000000..c4fc45d
--- /dev/null
@@ -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