il3_change.h 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  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. /* I N L I N E S U B S T I T U T I O N
  7. *
  8. * I L 3 _ C H A N G E . C
  9. */
  10. void chg_callseq(call_p c, line_p cal, line_p *l_out);
  11. /* Change the calling sequence of
  12. * the call c. The parameters are
  13. * changed and the sequence
  14. * CAL - ASP - LFR is removed.
  15. * cal points to the CAL instruction
  16. * l_out indicates where the expanded
  17. * text of the called routine must
  18. * be put.
  19. */
  20. line_p make_label(line_p l, proc_p p);
  21. /* Make sure that the instruction after
  22. * l contains a label. If this is not
  23. * already the case, create a new label.
  24. */
  25. void modify(line_p text, call_p c, line_p lab, offset ab_off, offset lb_off, int lab_off);
  26. /* Modify the EM text of the called
  27. * procedure.
  28. */
  29. void mod_actuals(call_p nc, call_p c, line_p lab, offset ab_off, offset lb_off, int lab_off);
  30. /* Modify the actual parameters of the
  31. * call nc the same way as the text of
  32. * call c would be modified.
  33. */
  34. void insert(line_p text, line_p l, line_p firstline);
  35. /* Insert the modified EM text.
  36. * Pseudos are put after the pseudos
  37. * of the caller.
  38. */
  39. void liquidate(proc_p p, line_p text);
  40. /* All calls to p were expanded in line,
  41. * so p is no longer needed.
  42. */