date and time created 86/01/11 11:00:57 by sam
authorSam Leffler <sam@ucbvax.Berkeley.EDU>
Sun, 12 Jan 1986 03:00:57 +0000 (19:00 -0800)
committerSam Leffler <sam@ucbvax.Berkeley.EDU>
Sun, 12 Jan 1986 03:00:57 +0000 (19:00 -0800)
SCCS-vsn: old/pcc/ccom.tahoe/table.c 1.1
SCCS-vsn: old/pcc/f1.tahoe/fort.h 1.1

usr/src/old/pcc/ccom.tahoe/table.c [new file with mode: 0644]
usr/src/old/pcc/f1.tahoe/fort.h [new file with mode: 0644]

diff --git a/usr/src/old/pcc/ccom.tahoe/table.c b/usr/src/old/pcc/ccom.tahoe/table.c
new file mode 100644 (file)
index 0000000..0e6cf99
--- /dev/null
@@ -0,0 +1,917 @@
+#ifndef lint
+static char sccsid[] = "@(#)table.c    1.1 (Berkeley) %G%";
+#endif
+
+# include "mfile2"
+/* special shapes (SSOREG,SZERO etc.) shouldn't be or-ed */
+# define AWD SNAME|SOREG|SCON|STARNM|STARREG
+/* tbl */
+# define ANYSIGNED TPOINT|TINT|TSHORT|TCHAR
+# define ANYUSIGNED TUNSIGNED|TUSHORT|TUCHAR
+# define ANYFIXED ANYSIGNED|ANYUSIGNED
+# define TWORD TINT|TUNSIGNED|TPOINT
+/* tbl */
+
+struct optab  table[] = {
+
+PCONV, INAREG|INTAREG,
+       SAREG|AWD,      TCHAR|TSHORT,
+       SANY,   TPOINT,
+               NAREG|NASL,     RESC1,
+               "       cvtZLl  AL,A1\n",
+
+PCONV, INAREG|INTAREG,
+       SAREG|AWD,      TUCHAR|TUSHORT,
+       SANY,   TPOINT,
+               NAREG|NASL,     RESC1,
+               "       movzZLl AL,A1\n",
+
+       /* the following entry is to fix a problem with
+          the manner that the first pass handles the
+          type of a shift expression                 */
+PCONV, INAREG|INTAREG,
+       SAREG|AWD,      TINT|TUNSIGNED,
+       SANY,   TPOINT,
+               NAREG|NASL,     RLEFT,
+               "",
+
+SCONV, INAREG|INTAREG|FORCC,
+       SAREG|AWD,      TDOUBLE,
+       SANY,   TFLOAT,
+               NAREG|NASL,     RESC1|RESCC,
+               "       ldd     AL\n    cvdf\n  stf     TA1\n",
+
+SCONV, INAREG|INTAREG|FORCC,
+       SAREG|AWD,      TFLOAT,
+       SANY,   TDOUBLE,
+               NAREG|NASL,     RESC1|RESCC,
+               "       ldfd    AL\n    std     A1\n",
+
+SCONV, INAREG|INTAREG|FORCC,
+       SAREG|AWD,      TINT|TUNSIGNED,
+       SANY,   TFLOAT|TDOUBLE,
+               NAREG|NASL,     RESC1|RESCC,
+               "       cvlZR   AL\n    stZR    TA1\n",
+
+SCONV, INAREG|INTAREG|FORCC,
+       SAREG|AWD,      TFLOAT|TDOUBLE,
+       SANY,   ANYFIXED,
+               NAREG|NASL,     RESC1|RESCC,
+               "       ldZL    AL\n    cvZLl   A1\n",
+
+/* casts to shorter types */
+SCONV, INAREG|INTAREG|FORCC,
+       SAREG|SCON,     ANYFIXED,
+       SANY,   ANYUSIGNED,
+               NAREG|NASL,     RESC1|RESCC,
+               "       movzZRl AL,A1\n",
+
+SCONV, INAREG|INTAREG|FORCC,
+       SNAME,  ANYFIXED,
+       SANY,   ANYUSIGNED,
+               NAREG|NASL,     RESC1|RESCC,
+               "       movzZRl ZU,A1\n",
+
+SCONV, INAREG|INTAREG|FORCC,
+       SSOREG, ANYFIXED,
+       SANY,   ANYUSIGNED,
+               NAREG|NASL,     RESC1|RESCC,
+               "       movzZRl ZU,A1\n",
+
+SCONV, INAREG|INTAREG|FORCC,
+       SAREG|SCON,     ANYFIXED,
+       SANY,   ANYFIXED,
+               NAREG|NASL,     RESC1|RESCC,
+               "       cvtZRl  AL,A1\n",
+
+SCONV, INAREG|INTAREG|FORCC,
+       SNAME,  ANYFIXED,
+       SANY,   ANYFIXED,
+               NAREG|NASL,     RESC1|RESCC,
+               "       cvtZRl  ZU,A1\n",
+
+SCONV, INAREG|INTAREG|FORCC,
+       SSOREG, ANYFIXED,
+       SANY,   ANYFIXED,
+               NAREG|NASL,     RESC1|RESCC,
+               "       cvtZRl  ZU,A1\n",
+
+INIT,  FOREFF,
+       SCON,   TANY,
+       SANY,   TWORD,
+               0,      RNOP,
+               "       .long   CL\n",
+
+INIT,  FOREFF,
+       SCON,   TANY,
+       SANY,   TSHORT|TUSHORT,
+               0,      RNOP,
+               "       .word   CL\n",
+
+INIT,  FOREFF,
+       SCON,   TANY,
+       SANY,   TCHAR|TUCHAR,
+               0,      RNOP,
+               "       .byte   CL\n",
+
+       /* for the use of fortran only */
+
+GOTO,  FOREFF,
+       SCON,   TANY,
+       SANY,   TANY,
+               0,      RNOP,
+               "       jbr     CL\n",
+
+GOTO,  FOREFF,
+       AWD,    TANY,
+       SANY,   TANY,
+               0,      RNOP,
+               "       jmp     *AL\n",
+
+GOTO,  FOREFF,
+       SAREG,  TANY,
+       SANY,   TANY,
+               0,      RNOP,
+               "       jmp     (AL)\n",
+
+STARG, FORARG,
+       SCON|SOREG,     TANY,
+       SANY,   TANY,
+               NTEMP+2*NAREG,  RESC3,
+               "ZS",
+
+STASG, FORARG,
+       SNAME|SOREG,    TANY,
+       SCON|SAREG,     TANY,
+               0,      RNULL,
+               "       ZT\nZS",
+
+STASG, FOREFF,
+       SNAME|SOREG,    TANY,
+       SCON|SAREG,     TANY,
+               0,      RNOP,
+               "ZS",
+
+STASG, INAREG,
+       SNAME|SOREG,    TANY,
+       SCON,   TANY,
+               NAREG,  RESC1,
+               "ZS     movl    AR,A1\n",
+
+STASG, INAREG,
+       SNAME|SOREG,    TANY,
+       SAREG,  TANY,
+               0,      RRIGHT,
+               "       pushl   AR\nZS  movl    (sp)+,AR\n",
+
+OPLOG, FORCC,
+       SAREG|AWD,      TWORD,
+       SAREG|AWD,      TWORD,
+               0,      RESCC,
+               "       cmpl    AL,AR\nZP",
+
+OPLOG, FORCC,
+       SAREG|AWD,      TSHORT|TUSHORT,
+       SCON     ,      TUSHORT,
+               NAREG,  RESCC,
+               "       movzwl  AL,A1\n cmpw    A1,AR\nZP",
+OPLOG, FORCC,
+       SAREG|AWD,      TSHORT|TUSHORT,
+       SAREG|AWD,      TSHORT|TUSHORT,
+               0,      RESCC,
+               "       cmpw    AL,AR\nZP",
+
+OPLOG, FORCC,
+       SAREG|AWD,      TCHAR|TUCHAR,
+       SCON     ,      TUCHAR,
+               NAREG,  RESCC,
+               "       movzbl  AL,A1\n cmpb    A1,AR\nZP",
+
+OPLOG, FORCC,
+       SAREG|AWD,      TCHAR|TUCHAR,
+       SAREG|AWD,      TCHAR|TUCHAR,
+               0,      RESCC,
+               "       cmpb    AL,AR\nZP",
+
+OPLOG, FORCC,
+       SAREG|AWD,      TSHORT|TUSHORT,
+       SSCON,  TANY,
+               0,      RESCC,
+               "       cmpw    AL,AR\nZP",
+
+
+OPLOG, FORCC,
+       SAREG|AWD,      TSHORT|TUSHORT,
+       SAREG|AWD,      TSHORT|TUSHORT,
+               0,      RESCC,
+               "       cmpw    AL,AR\nZP",
+
+OPLOG, FORCC,
+       SAREG|AWD,      TCHAR|TUCHAR,
+       SAREG|AWD,      TCHAR|TUCHAR,
+               0,      RESCC,
+               "       cmpb    AL,AR\nZP",
+
+OPLOG, FORCC,
+       SAREG|AWD,      TSHORT|TUSHORT,
+       SSCON,  TANY,
+               0,      RESCC,
+               "       cmpw    AL,AR\nZP",
+
+OPLOG, FORCC,
+       SAREG|AWD,      TCHAR|TUCHAR,
+       SCCON,  TANY,
+               0,      RESCC,
+               "       cmpb    AL,AR\nZP",
+
+OPLOG, FORCC,
+       SAREG|AWD,      TFLOAT,
+       SAREG|AWD,      TFLOAT,
+               0,      RESCC,
+               "       cmpZL2  AL,AR\nZP",
+
+OPLOG, FORCC,
+       SZERO,          TDOUBLE,
+       SAREG|AWD,      TDOUBLE,
+               0,      RESCC,
+               "       cmpf2   AL,AR\nZP",
+
+OPLOG, FORCC,
+       SAREG|AWD,      TDOUBLE,
+       SAREG|AWD,      TDOUBLE,
+               0,      RESCC,
+               "       cmpZL2  AL,AR\nZP",
+
+CCODES,        INAREG|INTAREG,
+       SANY,   TANY,
+       SANY,   TANY,
+               NAREG,  RESC1,
+               "       movl    $1,A1\nZN",
+
+UNARY CALL,    INAREG|INTAREG,
+       SCON,   TANY,
+       SANY,   TANY,
+               NAREG|NASL,     RESC1, /* should be register 0 */
+               "       ZC,CL\n",
+
+UNARY CALL,    INAREG|INTAREG,
+       SAREG,  TANY,
+       SANY,   TANY,
+               NAREG|NASL,     RESC1,  /* should be 0 */
+               "       ZC,(AL)\n",
+
+UNARY CALL,    INAREG|INTAREG,
+       SNAME,  TANY,
+       SANY,   TANY,
+               NAREG|NASL,     RESC1,  /* really reg 0 */
+               "       ZC,*AL\n",
+
+UNARY CALL,    INAREG|INTAREG,
+       SSOREG, TANY,
+       SANY,   TANY,
+               NAREG|NASL,     RESC1,  /* really reg 0 */
+               "       ZC,*AL\n",
+
+FORTCALL,      INAREG|INTAREG,
+       SCON,   TANY,
+       SAREG|AWD,      TFLOAT,
+               NAREG|NASL|NASR,        RESC1,
+               "       ldf     AR\n    CLf\n   stf     TA1\n",
+
+ASG OPSHFT,    INAREG|FOREFF|FORCC,
+       SAREG|AWD,      TWORD,
+       SAREG|SCON,     ANYFIXED,
+               0,      RLEFT|RESCC,
+               "       ZH      AR,AL,AL\n",
+
+ASG OPSHFT,    INAREG|FOREFF|FORCC,
+       SAREG|AWD,      TWORD,
+       AWD,    TCHAR|TUCHAR,
+               0,      RLEFT|RESCC,
+               "       ZH      AR,AL,AL\n",
+
+ASG OPSHFT,    INAREG|FOREFF|FORCC,
+       SAREG|AWD,      TWORD,
+       AWD,    ANYFIXED,
+               NAREG,  RLEFT|RESCC,
+               "       ZB      AR,A1\n ZH      A1,AL,AL\n",
+
+OPSHFT,        INAREG|INTAREG|FORCC,
+       SAREG|AWD,      TWORD,
+       SAREG|SCON,     ANYFIXED,
+               NAREG|NASL|NASR,        RESC1|RESCC,
+               "       ZH      AR,AL,A1\n",
+
+OPSHFT,        INAREG|INTAREG|FORCC,
+       SAREG|AWD,      TWORD,
+       AWD,    TCHAR|TUCHAR,
+               NAREG|NASL|NASR,        RESC1|RESCC,
+               "       ZH      AR,AL,A1\n",
+
+OPSHFT,        INAREG|INTAREG|FORCC,
+       SAREG|AWD,      TWORD,
+       AWD,    ANYFIXED,
+               NAREG|NASR,     RESC1|RESCC,
+               "       ZB      AR,A1\n ZH      A1,AL,A1\n",
+
+INCR,  FOREFF,
+       AWD,    TWORD,
+       SCON,   TANY,
+               0,      RLEFT,
+               "       ZE\n",
+
+DECR,  FOREFF,
+       AWD,    TWORD,
+       SCON,   TANY,
+               0,      RLEFT,
+               "       ZE\n",
+
+INCR,  FOREFF,
+       SAREG,  TWORD,
+       SCON,   TANY,
+               0,      RLEFT,
+               "       ZE\n",
+
+DECR,  FOREFF,
+       SAREG,  TWORD,
+       SCON,   TANY,
+               0,      RLEFT,
+               "       ZE\n",
+
+/* jwf INCR and DECR for SAREG TCHAR|TSHORT matched by ASG PLUS etc */
+
+INCR,  INAREG|INTAREG,
+       AWD,    TANY,
+       SCON,   TANY,
+               NAREG,  RESC1,
+               "       ZD\n",
+
+DECR,  INAREG|INTAREG,
+       AWD,    TANY,
+       SCON,   TANY,
+               NAREG,  RESC1,
+               "       ZD\n",
+
+INCR,  INAREG|INTAREG,
+       SAREG,  TWORD,
+       SCON,   TANY,
+               NAREG,  RESC1,
+               "       ZD\n",
+
+DECR,  INAREG|INTAREG,
+       SAREG,  TWORD,
+       SCON,   TANY,
+               NAREG,  RESC1,
+               "       ZD\n",
+
+ASSIGN,        INAREG|FOREFF|FORCC,
+       SIREG,  TDOUBLE,
+       SZERO,  TANY,
+               0,      RLEFT|RESCC,
+               "       cvld    $0\n    std     AL\n",
+
+ASSIGN,        INAREG|FOREFF|FORCC,
+       SAREG|SNAME|SOREG,      TDOUBLE,
+       SZERO,  TANY,
+               0,      RLEFT|RESCC,
+               "       clrl    UL\n    clrl    AL\n",
+
+ASSIGN,        INAREG|FOREFF|FORCC,
+       SAREG|AWD,      TDOUBLE,
+       SIREG,  TDOUBLE,
+               0,      RLEFT|RRIGHT|RESCC,
+               "       ldd     AR\n    std     AL\n",
+
+ASSIGN,        INAREG|FOREFF|FORCC,
+       SIREG,  TDOUBLE,
+       SAREG|AWD,      TDOUBLE,
+               0,      RLEFT|RRIGHT|RESCC,
+               "       ldd     AR\n    std     AL\n",
+
+ASSIGN,        INAREG|FOREFF|FORCC,
+       SAREG|SNAME|SOREG,      TDOUBLE,
+       SAREG|SNAME|SOREG,      TDOUBLE,
+               0,      RLEFT|RRIGHT|RESCC,
+               "       movl    UR,UL\n movl    AR,AL\n",
+
+ASSIGN,        INAREG|FOREFF|FORCC,
+       SAREG|AWD,      TFLOAT,
+       SZERO,  TANY,
+               0,      RLEFT|RESCC,
+               "       clrl    TAL\n",
+
+ASSIGN,        INAREG|FOREFF|FORCC,
+       SAREG|AWD,      TFLOAT,
+       SAREG|AWD,      TFLOAT,
+               0,      RLEFT|RRIGHT|RESCC,
+               "       movl    AR,TAL\n",
+
+ASSIGN,        INAREG|FOREFF|FORCC,
+       SAREG|AWD,      ANYFIXED,
+       SAREG|AWD,      ANYFIXED,
+               0,      RLEFT|RRIGHT|RESCC,
+               "       ZA\n",
+
+ASSIGN,        INAREG|FOREFF,
+       SFLD,   TANY,
+       SZERO,  TANY,
+               0,      RRIGHT,
+               "       andl2   N,AL\n",
+
+ASSIGN,        INAREG|FOREFF,
+       SFLD,   TANY,
+       SCON,   TANY,
+               0,      RRIGHT,
+               "       andl2   N,AL\n  orl2    ZF,AL\n",
+
+ASSIGN,        INAREG|FOREFF,
+       SFLD,   TANY,
+       SAREG|AWD,      TWORD,
+               NAREG|NASL,     RRIGHT,
+               "       shll    $H,AR,A1\n      andl2   M,A1\n  andl2   N,AL\n\
+       orl2    A1,AL\n",
+
+/* dummy UNARY MUL entry to get U* to possibly match OPLTYPE */
+UNARY MUL,     FOREFF,
+       SCC,    TANY,
+       SCC,    TANY,
+               0,      RNULL,
+               "       help help help\n",
+
+REG,   INTEMP,
+       SANY,   TANY,
+       SAREG,  TDOUBLE,
+               2*NTEMP,        RESC1,
+               "       movl    UR,U1\n movl    AR,A1\n",
+
+REG,   INTEMP,
+       SANY,   TANY,
+       SAREG,  TANY,
+               NTEMP,  RESC1,
+               "       movl    AR,A1\n",
+
+REG,   FORARG,
+       SANY,   TANY,
+       SAREG,  TFLOAT,
+               0,      RNULL,
+               "       pushl   $0\n    pushl   AR\n",
+
+REG,   FORARG,
+       SANY,   TANY,
+       SAREG,  TDOUBLE,
+               0,      RNULL,
+               "       pushl   UR\n    pushl   AR\n",
+
+OPLEAF,        FOREFF,
+       SANY,   TANY,
+       SAREG|AWD,      TANY,
+               0,      RLEFT,
+               "",
+
+OPLTYPE,       INAREG|INTAREG,
+       SANY,   TANY,
+       SZERO,  TDOUBLE,
+               NAREG|NASR,     RESC1,
+               "       clrl    U1\n    clrl    A1\n",
+
+OPLTYPE,       INAREG|INTAREG,
+       SANY,   TANY,
+       SIREG,  TDOUBLE,
+               NAREG|NASR,     RESC1,
+               "       ldd     AR\n    std     A1\n",
+
+OPLTYPE,       INAREG|INTAREG,
+       SANY,   TANY,
+       SAREG|SNAME|SOREG|SCON, TDOUBLE,
+               NAREG,          RESC1,
+               "       movl    AR,A1\n movl    UR,U1\n",
+
+OPLTYPE,       INAREG|INTAREG,
+       SANY,   TANY,
+       SZERO,  TANY,
+               NAREG|NASR,     RESC1,
+               "       clrl    TA1\n",
+
+OPLTYPE,       INAREG|INTAREG,
+       SANY,   TANY,
+       SAREG|AWD,      TFLOAT,
+               NAREG|NASR,     RESC1,
+               "       movl    AR,TA1\n",
+
+OPLTYPE,       INAREG|INTAREG,
+       SANY,   TANY,
+       SANY,   ANYFIXED,
+               NAREG|NASR,     RESC1,
+               "       ZA\n",
+
+OPLTYPE,       FORCC,
+       SANY,   TANY,
+       SIREG,  TDOUBLE,
+               0,      RESCC,
+               "       ldd     AR\n    tstd\n",
+
+OPLTYPE,       FORCC,
+       SANY,   TANY,
+       SAREG|AWD,      TFLOAT|TDOUBLE,
+               0,      RESCC,
+               "       tstl    AR\n",
+
+OPLTYPE,       FORCC,
+       SANY,   TANY,
+       SANY,   ANYFIXED,
+               0,      RESCC,
+               "       tstZR   AR\n",
+
+OPLTYPE,       FORARG,
+       SANY,   TANY,
+       SANY,   TWORD,
+               0,      RNULL,
+               "       pushl   AR\n",
+
+OPLTYPE,       FORARG,
+       SANY,   TANY,
+       SANY,   TCHAR|TSHORT,
+               0,      RNULL,
+               "       pushZR  AR\n",
+
+OPLTYPE,       FORARG,
+       SANY,   TANY,
+       SANY,   TUCHAR|TUSHORT,
+               0,      RNULL,
+               "       movzZRl AR,-(sp)\n",
+
+OPLTYPE,       FORARG,
+       SANY,   TANY,
+       SZERO,  TFLOAT|TDOUBLE,
+               0,      RNULL,
+               "       pushl   $0\n    pushl   $0\n",
+
+OPLTYPE,       FORARG,
+       SANY,   TANY,
+       SIREG,  TDOUBLE,
+               0,      RNULL,
+               "       ldd     AR\n    pushd\n",
+
+OPLTYPE,       FORARG,
+       SANY,   TANY,
+       SAREG|AWD,      TDOUBLE,
+               0,      RNULL,
+               "       pushl   UR\n    pushl   AR\n",
+
+OPLTYPE,       FORARG,
+       SANY,   TANY,
+       SAREG|AWD,      TFLOAT,
+               0,      RNULL,
+               "       pushl   $0\n    pushl   AR\n",
+
+UNARY MINUS,   INAREG|INTAREG|FORCC,
+       SAREG|AWD,      ANYSIGNED|TUNSIGNED,
+       SANY,   TANY,
+               NAREG|NASL,     RESC1|RESCC,
+               "       mnegZL  AL,A1\n",
+
+UNARY MINUS,   INAREG|INTAREG|FORCC,
+       SAREG|AWD,      TFLOAT|TDOUBLE,
+       SANY,   TANY,
+               NAREG|NASL,     RESC1|RESCC,
+               "       lnZL    AL\n    stZL    TA1\n",
+
+COMPL, INAREG|INTAREG|FORCC,
+       SAREG|AWD,      ANYSIGNED|TUNSIGNED,
+       SANY,   TANY,
+               NAREG|NASL,     RESC1|RESCC,
+               "       mcomZL  AL,A1\n",
+
+COMPL, INAREG|INTAREG|FORCC,
+       SAREG|AWD,      ANYFIXED,
+       SANY,   TANY,
+               NAREG|NASL,     RESC1|RESCC,
+               "       cvtZLl  AL,A1\n mcoml   A1,A1\n",
+
+AND,   FORCC,
+       SAREG|AWD,      TWORD,
+       SAREG|AWD,      TWORD,
+               0,      RESCC,
+               "       bitl    AR,AL\n",
+
+AND,   FORCC,
+       SAREG|AWD,      TSHORT|TUSHORT,
+       SSCON,  TWORD,
+               0,      RESCC,
+               "       bitw    AR,AL\n",
+
+AND,   FORCC,
+       SAREG|AWD,      TSHORT|TUSHORT,
+       SAREG|AWD,      TSHORT|TUSHORT,
+               0,      RESCC,
+               "       bitw    AR,AL\n",
+
+AND,   FORCC,
+       SAREG|AWD,      TCHAR|TUCHAR,
+       SCCON,  TWORD,
+               0,      RESCC,
+               "       bitb    AR,AL\n",
+
+AND,   FORCC,
+       SAREG|AWD,      TCHAR|TUCHAR,
+       SAREG|AWD,      TCHAR|TUCHAR,
+               0,      RESCC,
+               "       bitb    AR,AL\n",
+
+ASG DIV,       INAREG|FOREFF|FORCC, /* should have been done in mip */
+       SAREG|AWD,      ANYFIXED,
+       SONE,   TWORD,
+               0,      RLEFT|RESCC,
+               "       tstZL   AL\n",
+
+ASG DIV,       INAREG|FOREFF|FORCC,
+       SAREG|AWD,      TUNSIGNED,
+       SAREG|AWD,      TWORD,
+               3*NAREG|NEVEN,  RLEFT|RESCC,
+               "ZM     OE      AR,A1,A2,A3\n   movl    A2,AL\n",
+
+ASG DIV,       INAREG|FOREFF|FORCC,
+       SAREG|AWD,      TUSHORT|TUCHAR,
+       SAREG|AWD,      TWORD,
+               NAREG|NASL,     RLEFT|RESC1|RESCC,
+               "       movzZLl AL,A1\n OL2     AR,A1\n cvtlZL  A1,AL\n",
+
+DIV,   INAREG|INTAREG|FORCC,
+       SAREG|AWD,      TUSHORT|TUCHAR,
+       SAREG|AWD,      TWORD,
+               NAREG|NASL,     RESC1|RESCC,
+               "       movzZLl AL,A1\n OL2     AR,A1\n",
+
+DIV,   INAREG|INTAREG|FORCC,
+       SAREG|AWD,      TUNSIGNED,
+       SAREG|AWD,      TWORD,
+               3*NAREG|NEVEN,  RESC2|RESCC,
+               "ZM     OE      AR,A1,A2,A3\n",
+
+ASG MOD,       INAREG|FOREFF,
+       SAREG|AWD,      ANYFIXED,
+       SONE,   TWORD,
+               0,      RLEFT,
+               "       clrZL   AL\n",
+
+MOD,   INAREG|INTAREG,
+       STAREG, TWORD,
+       SONE,   TWORD,
+               0,      RLEFT,
+               "       clrl    AL\n",
+
+MOD,   INAREG|INTAREG,
+       SAREG|AWD,      ANYFIXED,
+       SONE,   TWORD,
+               0,      RESC1,
+               "       clrl    A1\n",
+
+ASG MOD,       INAREG|FOREFF,
+       SAREG|AWD,      TWORD,
+       SAREG|AWD,      TWORD,
+               3*NAREG|NEVEN,  RLEFT,
+               "ZM     OE      AR,A1,A2,A3\n   movl    A3,AL\n",
+
+MOD,   INAREG|INTAREG,
+       SAREG|AWD,      TWORD,
+       SAREG|AWD,      TWORD,
+               3*NAREG|NEVEN,  RESC3,
+               "ZM     OE      AR,A1,A2,A3\n",
+
+ASG OPMUL,     INAREG|FOREFF|FORCC,
+       SAREG|AWD,      TINT,
+       SAREG|AWD,      TINT,
+               0,      RLEFT|RESCC,
+               "       OL2     AR,AL\n",
+
+ASG OPMUL,     INAREG|FOREFF|FORCC,
+       SAREG|AWD,      TWORD,
+       SAREG|AWD,      TWORD,
+               NAREG|NEVEN,    RLEFT|RESCC,
+               "       emul    AR,AL,$0,A1\n   movl    U1,AL\n",
+
+
+OPMUL, INAREG|INTAREG|FORCC,
+       STAREG,         TINT,
+       SAREG|AWD,      TINT,
+               0,      RLEFT|RESCC,
+               "       OL2     AR,AL\n",
+
+OPMUL, INAREG|INTAREG|FORCC,
+       STAREG,         TWORD,
+       SAREG|AWD,      TWORD,
+               NAREG|NEVEN,    RLEFT|RESCC,
+               "       emul    AR,AL,$0,A1\n   movl    U1,AL\n",
+
+OPMUL, INAREG|INTAREG|FORCC,
+       SAREG|AWD,      TINT,
+       SAREG|AWD,      TINT,
+               NAREG|NASL|NASR,        RESC1|RESCC,
+               "       OL3     AR,AL,A1\n",
+
+OPMUL, INAREG|INTAREG|FORCC,
+       SAREG|AWD,      TWORD,
+       SAREG|AWD,      TWORD,
+               NAREG|NEVEN,    RESC1|RESCC,
+               "       emul    AR,AL,$0,A1\n   movl    U1,A1\n",
+
+ASG PLUS,      INAREG|FOREFF|FORCC,
+       SAREG,  TWORD,
+       SONE,   TINT,
+               0,      RLEFT|RESCC,
+               "       incZL   AL\n",
+
+ASG PLUS,      INAREG|FOREFF|FORCC,
+       AWD,    ANYFIXED,
+       SONE,   TINT,
+               0,      RLEFT|RESCC,
+               "       incZL   AL\n",
+
+ASG MINUS,     INAREG|FOREFF|FORCC,
+       SAREG,  TWORD,
+       SONE,   TINT,
+               0,      RLEFT|RESCC,
+               "       decZL   AL\n",
+
+ASG MINUS,     INAREG|FOREFF|FORCC,
+       AWD,    ANYFIXED,
+       SONE,   TINT,
+               0,      RLEFT|RESCC,
+               "       decZL   AL\n",
+
+PLUS,  INAREG|INTAREG|FORCC,
+       STAREG, TWORD,
+       SONE,   TWORD,
+               0,      RLEFT|RESCC,
+               "       incZL   AL\n",
+
+MINUS, INAREG|INTAREG|FORCC,
+       STAREG, TWORD,
+       SONE,   TWORD,
+               0,      RLEFT|RESCC,
+               "       decZL   AL\n",
+
+ASG OPSIMP,    INAREG|FOREFF|FORCC,
+       SAREG|AWD,      TWORD,
+       SAREG|AWD,      TWORD,
+               0,      RLEFT|RESCC,
+               "       OL2     AR,AL\n",
+
+ASG OPSIMP,    INAREG|FOREFF|FORCC,
+       SAREG,  TWORD,
+       SAREG,  TSHORT|TUSHORT|TCHAR|TUCHAR,
+               0,      RLEFT|RESCC,
+               "       OL2     AR,AL\n",
+
+ASG OPSIMP,    INAREG|FOREFF|FORCC,
+       AWD,    TSHORT|TUSHORT,
+       SAREG|AWD,      TSHORT|TUSHORT,
+               0,      RLEFT|RESCC,
+               "       OW2     AR,AL\n",
+
+ASG OPSIMP,    INAREG|FOREFF|FORCC,
+       AWD,    TSHORT|TUSHORT,
+       SSCON,  TWORD,
+               0,      RLEFT|RESCC,
+               "       OW2     AR,AL\n",
+
+ASG OPSIMP,    INAREG|FOREFF|FORCC,
+       AWD,    TCHAR|TUCHAR,
+       SAREG|AWD,      TCHAR|TUCHAR,
+               0,      RLEFT|RESCC,
+               "       OB2     AR,AL\n",
+
+ASG OPSIMP,    INAREG|FOREFF|FORCC,
+       AWD,    TCHAR|TUCHAR,
+       SCCON,  TWORD,
+               0,      RLEFT|RESCC,
+               "       OB2     AR,AL\n",
+
+OPSIMP,        INAREG|INTAREG|FORCC,
+       STAREG, ANYFIXED,
+       SAREG|AWD,      TWORD,
+               0,      RLEFT|RESCC,
+               "       OL2     AR,AL\n",
+
+OPSIMP,        INAREG|INTAREG|FORCC,
+       SAREG|AWD,      TWORD,
+       SAREG|AWD,      TWORD,
+               NAREG|NASL|NASR,        RESC1|RESCC,
+               "       OL3     AR,AL,A1\n",
+
+ASG OPSIMP,    INAREG|FOREFF,
+       SAREG|AWD,      TFLOAT|TDOUBLE,
+       SZERO,  TANY,
+               0,      RLEFT,
+               "",
+
+ASG MUL,       INAREG|FOREFF|FORCC,
+       SIREG,  TDOUBLE,
+       SZERO,  TANY,
+               0,      RLEFT|RESCC,
+               "       cvld    $0\n    std     AL\n",
+
+ASG MUL,       INAREG|FOREFF|FORCC,
+       SAREG|SNAME|SOREG,      TDOUBLE,
+       SZERO,  TANY,
+               0,      RLEFT|RESCC,
+               "       clrl    UL\n    clrl    AL\n",
+
+ASG MUL,       INAREG|FOREFF|FORCC,
+       SAREG|AWD,      TFLOAT,
+       SZERO,  TANY,
+               0,      RLEFT|RESCC,
+               "       clrl    TAL\n",
+
+ASG OPFLOAT,   INAREG|FOREFF|FORCC,
+       SAREG|AWD,      TFLOAT,
+       SAREG|AWD,      TFLOAT,
+               0,      RLEFT|RESCC,
+               "       ldf     AL\n    OF      AR\n    stf     TAL\n",
+
+ASG OPFLOAT,   INAREG|FOREFF|FORCC,
+       SAREG|AWD,      TDOUBLE,
+       SAREG|AWD,      TDOUBLE,
+               0,      RLEFT|RESCC,
+               "       ldd     AL\n    OD      AR\n    std     AL\n",
+
+OPSIMP,        INAREG|INTAREG,
+       SAREG,  TFLOAT|TDOUBLE,
+       SZERO,  TANY,
+               0,      RLEFT,
+               "",
+
+OPSIMP,        INAREG|INTAREG|FORCC,
+       AWD,    TFLOAT,
+       SZERO,  TANY,
+               NAREG,  RESC1|RESCC,
+               "       movl    AL,A1\n",
+
+OPSIMP,        INAREG|INTAREG|FORCC,
+       AWD,    TDOUBLE,
+       SZERO,  TANY,
+               NAREG,  RESC1|RESCC,
+               "       movl    UL,U1\n movl    AL,A1\n",
+
+MUL,   INAREG|INTAREG|FORCC,
+       SAREG|AWD,      TDOUBLE,
+       SZERO,  TANY,
+               NAREG|NASR,     RESC1|RESCC,
+               "       clrl    U1\n    clrl    A1\n",
+
+MUL,   INAREG|INTAREG|FORCC,
+       SAREG|AWD,      TFLOAT,
+       SZERO,  TANY,
+               NAREG|NASR,     RESC1|RESCC,
+               "       clrl    TA1\n",
+
+OPFLOAT,       INAREG|INTAREG|FORCC,
+       SAREG|AWD,      TFLOAT,
+       SAREG|AWD,      TFLOAT,
+               NAREG|NASL|NASR,        RESC1|RESCC,
+               "       ldf     AL\n    OF      AR\n    stf     TA1\n",
+
+OPFLOAT,       INAREG|INTAREG|FORCC,
+       SAREG|AWD,      TDOUBLE,
+       SAREG|AWD,      TDOUBLE,
+               NAREG|NASL|NASR,        RESC1|RESCC,
+               "       ldd     AL\n    OD      AR\n    std     A1\n",
+
+       /* Default actions for hard trees ... */
+
+# define DF(x) FORREW,SANY,TANY,SANY,TANY,REWRITE,x,""
+
+UNARY MUL, DF( UNARY MUL ),
+
+INCR, DF(INCR),
+
+DECR, DF(INCR),
+
+ASSIGN, DF(ASSIGN),
+
+STASG, DF(STASG),
+
+FLD, DF(FLD),
+
+OPLEAF, DF(NAME),
+
+OPLOG, FORCC,
+       SANY,   TANY,
+       SANY,   TANY,
+               REWRITE,        BITYPE,
+               "",
+
+OPLOG, DF(NOT),
+
+COMOP, DF(COMOP),
+
+INIT, DF(INIT),
+
+OPUNARY, DF(UNARY MINUS),
+
+
+ASG OPANY, DF(ASG PLUS),
+
+OPANY, DF(BITYPE),
+
+FREE,  FREE,   FREE,   FREE,   FREE,   FREE,   FREE,   FREE,   "help; I'm in trouble\n" };
diff --git a/usr/src/old/pcc/f1.tahoe/fort.h b/usr/src/old/pcc/f1.tahoe/fort.h
new file mode 100644 (file)
index 0000000..8956272
--- /dev/null
@@ -0,0 +1,13 @@
+/*     fort.h  1.1     86/01/11        */
+
+
+/*     machine dependent file  */
+
+label( n ){
+       printf( "L%d:\n", n );
+       }
+
+tlabel(){
+       lccopy( 2 );
+       printf( ":\n" );
+       }