@x l.27 extern Graph *risc(); /* make a network for a microprocessor */ extern Graph *prod(); /* make a network for high-speed multiplication */ extern void print_gates(); /* write a network to standard output file */ extern long gate_eval(); /* evaluate a network */ extern Graph *partial_gates(); /* reduce network size */ extern long run_risc(); /* simulate the microprocessor */ @y extern Graph *risc(unsigned long); /* make a network for a microprocessor */ extern Graph *prod(unsigned long,unsigned long); /* make a network for high-speed multiplication */ extern void print_gates(Graph *); /* write a network to standard output file */ extern long gate_eval(Graph *,char *,char *); /* evaluate a network */ extern Graph *partial_gates(Graph *,unsigned long,unsigned long,long,char *); /* reduce network size */ extern long run_risc(Graph *,unsigned long [],unsigned long,unsigned long); /* simulate the microprocessor */ @z @x l.130 long gate_eval(g,in_vec,out_vec) Graph *g; /* graph with gates as vertices */ char *in_vec; /* string for input values, or |NULL| */ char *out_vec; /* string for output values, or |NULL| */ @y long gate_eval(@t\1\1@> Graph *g, /* graph with gates as vertices */ char *in_vec, /* string for input values, or |NULL| */ char *out_vec@t\2\2@>) /* string for output values, or |NULL| */ @z @x l.215 Graph *risc(regs) unsigned long regs; /* number of registers supported */ @y Graph *risc(unsigned long regs) /* number of registers supported */ @z @x l.412 static Vertex* new_vert(t) char t; /* the type of the new gate */ @y static Vertex* new_vert(char t) /* the type of the new gate */ @z @x l.445 static Vertex* make2(t,v1,v2) char t; /* the type of the new gate */ Vertex *v1,*v2; @y static Vertex* make2(@t\1\1@> char t, /* the type of the new gate */ Vertex *v1,Vertex *v2@t\2\2@>) @z @x l.454 static Vertex* make3(t,v1,v2,v3) char t; /* the type of the new gate */ Vertex *v1,*v2,*v3; @y static Vertex* make3(@t\1\1@> char t, /* the type of the new gate */ Vertex *v1,Vertex *v2,Vertex *v3@t\2\2@>) @z @x l.464 static Vertex* make4(t,v1,v2,v3,v4) char t; /* the type of the new gate */ Vertex *v1,*v2,*v3,*v4; @y static Vertex* make4(@t\1\1@> char t, /* the type of the new gate */ Vertex *v1,Vertex *v2,Vertex *v3,Vertex *v4@t\2\2@>) @z @x l.475 static Vertex* make5(t,v1,v2,v3,v4,v5) char t; /* the type of the new gate */ Vertex *v1,*v2,*v3,*v4,*v5; @y static Vertex* make5(@t\1\1@> char t, /* the type of the new gate */ Vertex *v1,Vertex *v2,Vertex *v3,Vertex *v4,Vertex *v5@t\2\2@>) @z @x l.496 static Vertex* comp(v) Vertex *v; @y static Vertex* comp(Vertex *v) @z @x l.514 static Vertex* make_xor(u,v) Vertex *u,*v; @y static Vertex* make_xor(Vertex *u,Vertex *v) @z @x l.876 static void make_adder(n,x,y,z,carry,add) unsigned long n; /* number of bits */ Vertex *x[],*y[]; /* input gates */ Vertex *z[]; /* output gates */ Vertex *carry; /* add this to |y|, unless it's null */ char add; /* should we add or subtract? */ @y static void make_adder(@t\1\1@> unsigned long n, /* number of bits */ Vertex *x[],Vertex *y[], /* input gates */ Vertex *z[], /* output gates */ Vertex *carry, /* add this to |y|, unless it's null */ char add@t\2\2@>) /* should we add or subtract? */ @z @x l.992 long run_risc(g,rom,size,trace_regs) Graph *g; /* graph output by |risc| */ unsigned long rom[]; /* contents of read-only memory */ unsigned long size; /* length of |rom| vector */ unsigned long trace_regs; /* if nonzero, this many registers will be traced */ @y long run_risc(@t\1\1@> Graph *g, /* graph output by |risc| */ unsigned long rom[], /* contents of read-only memory */ unsigned long size, /* length of |rom| vector */ unsigned long trace_regs@t\2\2@>) /* if nonzero, this many registers will be traced */ @z @x l.1097 static void pr_gate(v) Vertex *v; @y static void pr_gate(Vertex *v) @z @x l.1117 void print_gates(g) Graph *g; @y void print_gates(Graph *g) @z @x l.1146 static Graph* reduce(g) Graph *g; @y static Graph* reduce(Graph *g) @z @x l.1487 Graph* prod(m,n) unsigned long m,n; /* lengths of the binary numbers to be multiplied */ @y Graph* prod(unsigned long m,unsigned long n) /* lengths of the binary numbers to be multiplied */ @z @x l.1897 Graph *partial_gates(g,r,prob,seed,buf) Graph *g; /* generalized gate graph */ unsigned long r; /* the number of initial gates to leave untouched */ unsigned long prob; /* scaled probability of not touching subsequent input gates */ long seed; /* seed value for random number generation */ char *buf; /* optional parameter for information about partial assignment */ @y Graph *partial_gates(@t\1\1@> Graph *g, /* generalized gate graph */ unsigned long r, /* the number of initial gates to leave untouched */ unsigned long prob, /* scaled probability of not touching subsequent input gates */ long seed, /* seed value for random number generation */ char *buf@t\2\2@>) /* optional parameter for information about partial assignment */ @z