/* $Id$ */ /* * (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands. * See the copyright notice in the ACK home directory, in the file "Copyright". */ /* O U T P U T R O U T I N E S */ extern FILE *curoutp; /* current output file */ #define outbyte(b) putc(b,curoutp) void outshort(short i); /* * Write a short to curoutp */ void outoff(offset off); /* * Write an offset to curoutp */ void outproc(proc_p p); /* * Write a procid to curoutp */ void putdtable(dblock_p head, FILE *df); /* * Write the data block table to file df, * preceded by its length. */ void putptable(proc_p head, FILE *pf, bool all); /* * Write the proc table to file pf, * preceded by its length. If all=false, * the fields computed by CF will not be * written (used by the IC phase). */ void putunit(short kind, proc_p p, line_p l, FILE *gf, FILE *lf); /* * If kind = LTEXT, then write * the control flow graph to file gf, * preceded by its length (#basic blocks); * write the EM code of every basic block * in the graph to file lf, preceded by * the number of instructions in the block. * Else, (kind = LDATA) just write the * list of instructions (data declarations) * to lf. */ short putlines(line_p l, FILE *lf); /* * Output the list of em instructions * headed by l. Return the number of * instructions written. */