put.h 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. /* $Id$ */
  2. /*
  3. * (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands.
  4. * See the copyright notice in the ACK home directory, in the file "Copyright".
  5. */
  6. /* O U T P U T R O U T I N E S */
  7. extern FILE *curoutp; /* current output file */
  8. #define outbyte(b) putc(b,curoutp)
  9. extern outshort(); /* (short i)
  10. * Write a short to curoutp
  11. */
  12. extern outoff(); /* (offset off)
  13. * Write an offset to curoutp
  14. */
  15. extern outproc(); /* (proc_p p)
  16. * Write a procid to curoutp
  17. */
  18. extern putdtable(); /* (dblock_p head, FILE *df)
  19. * Write the data block table to file df,
  20. * preceded by its length.
  21. */
  22. extern putptable(); /* (proc_p head, FILE *pf, bool all)
  23. * Write the proc table to file pf,
  24. * preceded by its length. If all=false,
  25. * the fields computed by CF will not be
  26. * written (used by the IC phase).
  27. */
  28. extern putunit(); /* (short kind; proc_p p; line_p l;
  29. * FILE *gf, *lf)
  30. * If kind = LTEXT, then write
  31. * the control flow graph to file gf,
  32. * preceded by its length (#basic blocks);
  33. * write the EM code of every basic block
  34. * in the graph to file lf, preceded by
  35. * the number of instructions in the block.
  36. * Else, (kind = LDATA) just write the
  37. * list of instructions (data declarations)
  38. * to lf.
  39. */
  40. extern short putlines(); /* (line_p l; FILE *lf)
  41. * Output the list of em instructions
  42. * headed by l. Return the number of
  43. * instructions written.
  44. */