[ixp1200] Frustration with subroutines...

Cyrus Hall hallcp at cs.colorado.edu
Wed Aug 13 17:06:38 EDT 2003


A general question in regards to "passing" registers to branch points. 
Here is what I would love to be able to do:

.local rtn_addr
	load_addr[rtn_addr, ret_loc#]
	br[sub_func#]
	ret_loc#:
.endlocal
	//...other code...

.subroutine
sub_func#:
	//does neat stuff
	rtn[rtn_addr]
.endsub

IE, I want to declare a variable->register mapping and then be able to
use that same register in a subroutine.  I've tried fooling around with
the .subroutine structures assembly with no luck.  Only if rtn_addr is
live for the entire program does that work.  Is there anyway to control
live ranges when using subroutines, or will uca force one to waste a
register by making it global?

Thanks,
Cy




More information about the ixp1200 mailing list