fun Rx_src(var inst : InstOp, i0) {
    val ii = i0?ext(32);
    if(ii == 0) inst.srcq?push_back(literal_src(0));
    else if(ii < 8) inst.srcq?push_back(rmap_src(1 ,ii-1));
    else {
	val win = (CWP?cvt(ulong) - (ii / 16) + 8 ) % 8 ;
	ii = ii & 0xf?ext(32);
	inst.srcq?push_back(rmap_src(2 ,16*win+ii));
    }
}