/* 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) extern outshort(); /* (short i) * Write a short to curoutp */ extern outoff(); /* (offset off) * Write an offset to curoutp */ extern putdtable(); /* (dblock_p head, FILE *df) * Write the data block table to file df, * preceded by its length. */ extern 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). */ extern putunit(); /* (short kind; proc_p p; line_p l; * FILE *gf, *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. */ extern short putlines(); /* (line_p l; FILE *lf) * Output the list of em instructions * headed by l. Return the number of * instructions written. */