#
CFLAGS=-DCOPYCODE -DC2 -O
LDFLAGS=
-ASDIR = /usr/src/bin/as
+ASDIR = ../../bin/as
SRCS = makefile c2.h c20.c c21.c c22.c
c2: c20.o c21.o c22.o
- $(CC) $(LDFLAGS) -o c2 c2?.o
+ $(CC) $(LDFLAGS) -o c2 c20.o c21.o c22.o
c20.o: c20.c c2.h
c21.o: c21.c c2.h
#define C2_ASIZE 128
-struct optab {
+extern struct optab {
char opstring[7];
short opcode;
} optab[];
#define subop op_un.un_op.op_subop
#define combop op_un.un_combop
-char line[512];
-struct node first;
-char *curlp;
-int nbrbr;
-int nsaddr;
-int redunm;
-int iaftbr;
-int njp1;
-int nrlab;
-int nxjump;
-int ncmot;
-int nrevbr;
-int loopiv;
-int nredunj;
-int nskip;
-int ncomj;
-int nsob;
-int nrtst;
-int nbj;
-int nfield;
-
-int nchange;
-long isn;
-int debug;
-char revbr[];
+extern char line[512];
+extern struct node first;
+extern char *curlp;
+extern int nbrbr;
+extern int nsaddr;
+extern int redunm;
+extern int iaftbr;
+extern int njp1;
+extern int nrlab;
+extern int nxjump;
+extern int ncmot;
+extern int nrevbr;
+extern int loopiv;
+extern int nredunj;
+extern int nskip;
+extern int ncomj;
+extern int nsob;
+extern int nrtst;
+extern int nbj;
+extern int nfield;
+
+extern int nchange;
+extern long isn;
+extern int debug;
+extern char revbr[];
#define NREG 12
-char *regs[NREG+5]; /* 0-11, 4 for operands, 1 for running off end */
-char conloc[C2_ASIZE];
-char conval[C2_ASIZE];
-char ccloc[C2_ASIZE];
+extern char *regs[NREG+5]; /* 0-11, 4 for operands, 1 for running off end */
+extern char conloc[C2_ASIZE];
+extern char conval[C2_ASIZE];
+extern char ccloc[C2_ASIZE];
#define RT1 12
#define RT2 13
#include <ctype.h>
#include <sys/types.h>
+/* moved here from c2.h which now just declares them extern */
+char line[512];
+struct node first;
+char *curlp;
+int nbrbr;
+int nsaddr;
+int redunm;
+int iaftbr;
+int njp1;
+int nrlab;
+int nxjump;
+int ncmot;
+int nrevbr;
+int loopiv;
+int nredunj;
+int nskip;
+int ncomj;
+int nsob;
+int nrtst;
+int nbj;
+int nfield;
+
+int nchange;
+int debug;
+char *regs[NREG+5]; /* 0-11, 4 for operands, 1 for running off end */
+char conloc[C2_ASIZE];
+char conval[C2_ASIZE];
+char ccloc[C2_ASIZE];
+
char *malloc();
char firstr[sizeof (char *)];
char *currentb;
copy(ap)
char *ap;
{
+#if 1 /* in this application there is never more than one argument */
+ int len;
+ char *strcpy();
+
+ len = strlen(ap);
+ return(len ? strcpy((char *) alloc(len + 1), ap) : 0);
+#else
register char *p, *np;
char *onp;
register n;
while (*np++ = *p++);
}
return(onp);
+#endif
}
#define OPHS 560
}
}
#ifndef COPYCODE
- if (p->op==CBR && (p1 = p->forw)->combop==JBR) {/* combop: RET problems */
+ if (p->op==CBR && (p1 = p->forw)->combop==JBR)
#else
- if (p->op==CBR && (p1 = p->forw)->combop==JBR &&
- p->ref) {/* combop: RET problems */
+ if (p->op==CBR && (p1 = p->forw)->combop==JBR && p->ref)
#endif
+ { /* combop: RET problems */
rp = p->ref;
do
rp = rp->back;
}
#ifndef delnode
-delnode(p) register struct node *p; {
+XXXdelnode(p) register struct node *p; {
p->back->forw = p->forw;
p->forw->back = p->back;
}
#endif
#ifndef decref
-decref(p)
+XXXdecref(p)
register struct node *p;
{
if (p && --p->refc <= 0) {
#endif
#include "c2.h"
-#define readonly
-readonly char revbr[] = {
+char revbr[] = {
JNE, JEQ, JGT, JLT, JGE, JLE,
JNE, JEQ, JHI, JLO, JHIS, JLOS,
JBS, JBC, JLBS, JLBC, JBSC, JBCC, JBSS, JBCS };
#define TYPG GFLOAT
#define TYPH HFLOAT
-readonly struct optab optab[] = {
+struct optab optab[] = {
#include "./instrs.c2"
--- /dev/null
+c2.h arpa/tftp.h
+c2.h resolv.h
+c20.c arpa/tftp.h
+c20.c resolv.h
+c21.c arpa/tftp.h
+c21.c resolv.h
--- /dev/null
+c20.c c2.h
+c21.c c2.h
+c22.c c2.h