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:35:32 +00:00
|
|
|
|
|
|
|
/* R E G I S T E R A L L O C A T I O N
|
|
|
|
*
|
|
|
|
* R A _ X F O R M . H
|
|
|
|
*/
|
|
|
|
|
2019-10-31 22:05:22 +00:00
|
|
|
void init_replacements(short psize, short wsize);
|
|
|
|
/*
|
1984-11-26 14:35:32 +00:00
|
|
|
* This routine must be called once, before
|
|
|
|
* any call to xform_proc. It initializes
|
|
|
|
* a machine dependent table.
|
|
|
|
*/
|
2019-10-31 22:05:22 +00:00
|
|
|
void xform_proc(proc_p p, alloc_p alloclist, short nrinstrs,
|
|
|
|
line_p instrmap[]);
|
|
|
|
/*
|
1984-11-26 14:35:32 +00:00
|
|
|
* Transform a procedure. Alloclist must
|
|
|
|
* contain the packed allocations (i.e. those
|
|
|
|
* allocations that are assigned a register).
|
|
|
|
*/
|
2019-10-31 22:05:22 +00:00
|
|
|
bool always_in_reg(offset off, alloc_p allocs, short *size_out);
|
|
|
|
/*
|
1984-11-26 14:35:32 +00:00
|
|
|
* See if the local variable with the given
|
|
|
|
* offset is stored in a register during its
|
|
|
|
* entire lifetime. As a side effect,
|
|
|
|
* return the size of the local.
|
|
|
|
*/
|
2019-10-31 22:05:22 +00:00
|
|
|
void rem_locals(proc_p p, alloc_p allocs);
|
|
|
|
/*
|
|
|
|
* Try to decrease the number of locals of
|
|
|
|
* procedure p, by looking at which locals
|
|
|
|
* are always stored in a register.
|
|
|
|
*/
|
|
|
|
void rem_formals(proc_p p, alloc_p allocs);
|
|
|
|
/*
|
|
|
|
* Try to decrease the number of formals of
|
|
|
|
* procedure p, by looking at which formals
|
|
|
|
* are always stored in a register.
|
|
|
|
*/
|