41 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/*  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
 | 
						|
 */
 | 
						|
 | 
						|
 | 
						|
extern chg_callseq();		/* (call_p c; line_p cal, *l_out)
 | 
						|
				 * 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.
 | 
						|
				 */
 | 
						|
extern line_p make_label();	/* (line_p l; proc_p p)
 | 
						|
				 * Make sure that the instruction after
 | 
						|
				 * l contains a label. If this is not
 | 
						|
				 * already the case, create a new label.
 | 
						|
				 */
 | 
						|
extern modify();		/* (line_p text; call_p c; line_p lab;
 | 
						|
				 *  offset ab_off, lb_off; int lab_off)
 | 
						|
				 * Modify the EM text of the called
 | 
						|
				 * procedure.
 | 
						|
				 */
 | 
						|
extern mod_actuals();		/* (call_p nc,c; line_p lab;
 | 
						|
				 *  offset ab_off, lb_off; int lab_off)
 | 
						|
				 * Modify the actual parameters of the
 | 
						|
				 * call nc the same way as the text of
 | 
						|
				 * call c would be modified.
 | 
						|
				 */
 | 
						|
extern insert();		/* (line_p text,l,firstline)
 | 
						|
				 * Insert the modified EM text.
 | 
						|
				 * Pseudos are put after the pseudos
 | 
						|
				 * of the caller.
 | 
						|
				 */
 | 
						|
extern liquidate();		/* (proc_p p; line_p text)
 | 
						|
				 * All calls to p were expanded in line,
 | 
						|
				 * so p is no longer needed.
 | 
						|
				 */
 |