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); }