fun rmap_src(rtype, regnum,	 
	     inum)		 
{
    val src : SrcRef;
    src.rtype = rtype?cvt(uchar);
    src.regnum = regnum?cvt(uchar);
    src.literal = 0;

    val ii = +(inum - 1);
    while(ii >= +0) {
	 
	val jj = 0;
	while(jj < instq[ii].destq?length()) {
	     
	    val dest = instq[ii].destq[+jj];
	    if(dest.rtype == rtype?cvt(uchar) &&
	       dest.regnum == regnum?cvt(uchar)) {
		 
		src.bypass = (+inum - ii)?cvt(uchar);
		src.outnum = jj?cvt(uchar);
		return src;
	    }
	    jj = jj + 1;
	}
	ii = ii - +1;
    }

     
    src.bypass = 0?cvt(uchar);
    src.outnum = 0?cvt(uchar);
    return src;
}