fun rmap_retire(num)
{
val ii = 0;
while(ii < num) {
val jj = 0;
while(jj < instq[+ii].destq?length()) {
val dest = instq[+ii].destq[+jj];
switch(dest.rtype?cvt(ulong)) {
case 0 : ;
case 1 :
global_registers[dest.regnum] = destq[+ii][jj];
case 2 :
register_windows[dest.regnum] = destq[+ii][jj];
case 3 :
fregs[dest.regnum] = destq[+ii][jj]?bits(32);
case 9 :
assert(dest.regnum == 0?cvt(uchar));
CCR = destq[+ii][jj]?cvt(cc);
case 10 :
fcc[dest.regnum] = destq[+ii][jj]?cvt(cc);
case 11 :
Y = destq[+ii][jj]?bits(32);
case 12 : ;
}
jj = jj + 1;
}
ii = ii + 1;
}
destq?pop_front(num);
}