66 lines
		
	
	
	
		
			2 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			66 lines
		
	
	
	
		
			2 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /*  S H A R E D
 | |
|  *
 | |
|  *  A U X I L I A R Y   R O U T I N E S
 | |
|  *
 | |
|  */
 | |
| 
 | |
| 
 | |
| extern offset off_set();	/* (line_p lnp)
 | |
| 				 * lnp has a SHORT or OFFSET operand. Return
 | |
| 				 * the value of this operand as an offset.
 | |
| 				 */
 | |
| extern	offset aoff();		/* (arg_p list; int n)
 | |
| 				 * Determine the offset field of the
 | |
| 				 * n'th argument in the list (this argument
 | |
| 				 * must have type ARGOFF). Start counting at 0.
 | |
| 				 */
 | |
| extern	offset tmplocal();	/* (proc_p p, offset size)
 | |
| 				 * Allocate a new local variable in the
 | |
| 				 * stack frame of p.
 | |
| 				 */
 | |
| line_p int_line();		/* (offset off)
 | |
| 				 * Allocate a line struct of type OPSHORT
 | |
| 				 * or OPOFFSET, whichever one fits best.
 | |
| 	 			 */
 | |
| extern line_p reg_mes();	/* (offset tmp; short size; int typ,score)
 | |
| 				 * Generate a register message with the
 | |
| 				 * given arguments.
 | |
| 				 */
 | |
| extern bool dom();		/* (bblock_p b1,b2)
 | |
| 				/* See if b1 dominates b2. Note that a
 | |
| 				 * block always * dominates itself.
 | |
| 				 */
 | |
| extern bblock_p common_dom();	/* (bblock_p a,b)
 | |
| 				 * find a basic block that dominates a as 
 | |
| 				 * well as b; note that a basic block also 
 | |
| 				 * dominates itself.
 | |
| 				 */
 | |
| extern short add_timespace(); 	/* (short time,space)
 | |
| 				 * Add together a time and space, using 
 | |
| 				 * the time_space_ratio parameter that 
 | |
| 				 * may be set by the user.
 | |
| 				 */
 | |
| extern rm_line();		/* ( line_p l; bblock_p b)
 | |
| 				 * Remove line l from b basic block b.
 | |
| 				 */
 | |
| 
 | |
| extern appnd_line();		/* ( line_p l1,l2)
 | |
| 				 * Put line l1 after l2.
 | |
| 				 */
 | |
| extern line_p last_instr();	/* ( bblock_p b)
 | |
| 				 * Determine the last line of a basic block.
 | |
| 				 */
 | |
| extern line_p find_mesreg();	/* (offset off)
 | |
| 				 * Find the register message for the local 
 | |
| 				 * with the given offset.
 | |
| 				 */
 | |
| extern	bool	is_regvar();	/* (offset off)
 | |
| 				 * See if there is a 'register message'
 | |
| 				 * for the local variable with the
 | |
| 				 * given offset.
 | |
| 				 */
 | |
| extern offset	regv_arg();	/* (offset off; int n)
 | |
| 				 * Fetch the n'th argument of the
 | |
| 				 * register message of the local with
 | |
| 				 * the given offset.
 | |
| 				 */
 |