BSD 4_3_Reno development
authorCSRG <csrg@ucbvax.Berkeley.EDU>
Wed, 9 Dec 1987 17:14:59 +0000 (09:14 -0800)
committerCSRG <csrg@ucbvax.Berkeley.EDU>
Wed, 9 Dec 1987 17:14:59 +0000 (09:14 -0800)
Work on file usr/src/libexec/pcc/mip/ndu.h

Synthesized-from: CSRG/cd2/4.3reno

usr/src/libexec/pcc/mip/ndu.h [new file with mode: 0644]

diff --git a/usr/src/libexec/pcc/mip/ndu.h b/usr/src/libexec/pcc/mip/ndu.h
new file mode 100644 (file)
index 0000000..cf5e5ba
--- /dev/null
@@ -0,0 +1,79 @@
+/*     ndu.h   4.2     87/12/10        */
+
+/*
+ * This file defines the basic tree node data structure for the PCC.
+ */
+
+union ndu {
+       struct {                /* interior node */
+               int     op;
+               int     rall;
+               TWORD   type;
+               int     su;
+#ifndef FLEXNAMES
+               char    name[NCHNAM];
+#else
+               char    *name;
+               int     stalign;
+#endif
+               NODE    *left;
+               NODE    *right;
+       } in;
+       struct {                /* terminal node */
+               int     op;
+               int     rall;
+               TWORD   type;
+               int     su;
+#ifndef FLEXNAMES
+               char    name[NCHNAM];
+#else
+               char    *name;
+               int     stalign;
+#endif
+               CONSZ   lval;
+               int     rval;
+       } tn;
+       struct {                /* branch node */
+               int     op;
+               int     rall;
+               TWORD   type;
+               int     su;
+               int     label;          /* for use with branching */
+       } bn;
+       struct {                /* structure node */
+               int     op;
+               int     rall;
+               TWORD   type;
+               int     su;
+               int     stsize;         /* sizes of structure objects */
+               int     stalign;        /* alignment of structure objects */
+       } stn;
+       struct {                /* front node */
+               int     op;
+               int     cdim;
+               TWORD   type;
+               int     csiz;
+       } fn;
+       /*
+        * This structure is used when a double precision
+        * floating point constant is being computed
+        */
+       struct {                        /* DCON node */
+               int     op;
+               int     cdim;
+               TWORD   type;
+               int     csiz;
+               double  dval;
+       } dpn;
+       /*
+        * This structure is used when a single precision
+        * floating point constant is being computed
+        */
+       struct {                        /* FCON node */
+               int     op;
+               int     cdim;
+               TWORD   type;
+               int     csiz;
+               float   fval;
+       } fpn;
+};