BSD 4_3_Tahoe development
authorCSRG <csrg@ucbvax.Berkeley.EDU>
Tue, 19 Jan 1988 06:14:09 +0000 (22:14 -0800)
committerCSRG <csrg@ucbvax.Berkeley.EDU>
Tue, 19 Jan 1988 06:14:09 +0000 (22:14 -0800)
Work on file usr/src/lib/pcc/pcc.tahoe/mac2defs.h

Synthesized-from: CSRG/cd2/4.3tahoe

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

diff --git a/usr/src/lib/pcc/pcc.tahoe/mac2defs.h b/usr/src/lib/pcc/pcc.tahoe/mac2defs.h
new file mode 100644 (file)
index 0000000..a337bdd
--- /dev/null
@@ -0,0 +1,73 @@
+/*     mac2defs.h      1.4     88/01/19        */
+
+/*
+ * Tahoe 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
+#define R12    12
+
+/*
+ * Special purpose registers
+ */
+#define FP     13              /* frame pointer */
+#define SP     14              /* stack pointer */
+#define PC     15              /* program counter */
+
+/*
+ * Floating registers
+ */
+#define        ACC     16              /* accumulator */
+
+#define        TMPREG  FP              /* reg off which temporaries are referenced */
+#define        REGSZ   16              /* size of register set */
+
+#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)
+
+/*
+ * Some short routines that get called an awful lot are actually macros.
+ */
+#define        szty(t) ((t) == DOUBLE ? 2 : 1)
+#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();
+#define        SIREG           (SPECIAL|7)     /* indexed OREG */
+int    special();                      /* additional special shapes */
+#define callchk(p)     if ((p)->in.op != FORTCALL) allchk()