ack/util/ego/il/il3_change.h

53 lines
1.5 KiB
C
Raw Permalink Normal View History

1994-06-24 11:31:16 +00:00
/* $Id$ */
1987-03-09 19:15:41 +00:00
/*
* (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands.
* See the copyright notice in the ACK home directory, in the file "Copyright".
*/
1984-11-26 14:14:55 +00:00
/* I N L I N E S U B S T I T U T I O N
*
* I L 3 _ C H A N G E . C
*/
void chg_callseq(call_p c, line_p cal, line_p *l_out);
/*
1984-11-26 14:14:55 +00:00
* Change the calling sequence of
* the call c. The parameters are
* changed and the sequence
* CAL - ASP - LFR is removed.
* cal points to the CAL instruction
* l_out indicates where the expanded
* text of the called routine must
* be put.
*/
line_p make_label(line_p l, proc_p p);
/*
1984-11-26 14:14:55 +00:00
* Make sure that the instruction after
* l contains a label. If this is not
* already the case, create a new label.
*/
void modify(line_p text, call_p c, line_p lab, offset ab_off,
offset lb_off, int lab_off);
/*
1984-11-26 14:14:55 +00:00
* Modify the EM text of the called
* procedure.
*/
void mod_actuals(call_p nc, call_p c, line_p lab, offset ab_off,
offset lb_off, int lab_off);
/*
1984-11-26 14:14:55 +00:00
* Modify the actual parameters of the
* call nc the same way as the text of
* call c would be modified.
*/
void insert(line_p text, line_p l, line_p firstline);
/*
1984-11-26 14:14:55 +00:00
* Insert the modified EM text.
* Pseudos are put after the pseudos
* of the caller.
*/
void liquidate(proc_p p, line_p text);
/*
1984-11-26 14:14:55 +00:00
* All calls to p were expanded in line,
* so p is no longer needed.
*/