1014,1016c1014,1015
< RegIndex src_reg = inst->srcRegIdx(src_idx);
< RegIndex rel_src_reg;
< RegIndex flat_rel_src_reg;
---
> RegId src_reg = inst->srcRegIdx(src_idx);
> RegIndex flat_src_reg;
1019c1018
< switch (regIdxToClass(src_reg, &rel_src_reg)) {
---
> switch (src_reg.regClass) {
1021,1022c1020,1021
< flat_rel_src_reg = tc->flattenIntIndex(rel_src_reg);
< renamed_reg = map->lookupInt(flat_rel_src_reg);
---
> flat_src_reg = tc->flattenIntIndex(src_reg.regIdx);
> renamed_reg = map->lookupInt(flat_src_reg);
1027,1028c1026,1027
< flat_rel_src_reg = tc->flattenFloatIndex(rel_src_reg);
< renamed_reg = map->lookupFloat(flat_rel_src_reg);
---
> flat_src_reg = tc->flattenFloatIndex(src_reg.regIdx);
> renamed_reg = map->lookupFloat(flat_src_reg);
1033,1034c1032,1033
< flat_rel_src_reg = tc->flattenCCIndex(rel_src_reg);
< renamed_reg = map->lookupCC(flat_rel_src_reg);
---
> flat_src_reg = tc->flattenCCIndex(src_reg.regIdx);
> renamed_reg = map->lookupCC(flat_src_reg);
1039,1040c1038,1039
< flat_rel_src_reg = rel_src_reg;
< renamed_reg = map->lookupMisc(flat_rel_src_reg);
---
> flat_src_reg = src_reg.regIdx;
> renamed_reg = map->lookupMisc(flat_src_reg);
1044c1043
< panic("Reg index is out of bound: %d.", src_reg);
---
> panic("Invalid register class: %d.", src_reg.regClass);
1048,1049c1047,1048
< "got phys reg %i\n", tid, RegClassStrings[regIdxToClass(src_reg)],
< (int)src_reg, (int)flat_rel_src_reg, (int)renamed_reg);
---
> "got phys reg %i\n", tid, RegClassStrings[src_reg.regClass],
> (int)src_reg.regIdx, (int)flat_src_reg, (int)renamed_reg);
1078,1081c1077,1078
< RegIndex dest_reg = inst->destRegIdx(dest_idx);
< RegIndex rel_dest_reg;
< RegIndex flat_rel_dest_reg;
< RegIndex flat_uni_dest_reg;
---
> RegId dest_reg = inst->destRegIdx(dest_idx);
> RegIndex flat_dest_reg;
1084c1081
< switch (regIdxToClass(dest_reg, &rel_dest_reg)) {
---
> switch (dest_reg.regClass) {
1086,1088c1083,1084
< flat_rel_dest_reg = tc->flattenIntIndex(rel_dest_reg);
< rename_result = map->renameInt(flat_rel_dest_reg);
< flat_uni_dest_reg = flat_rel_dest_reg; // 1:1 mapping
---
> flat_dest_reg = tc->flattenIntIndex(dest_reg.regIdx);
> rename_result = map->renameInt(flat_dest_reg);
1092,1094c1088,1089
< flat_rel_dest_reg = tc->flattenFloatIndex(rel_dest_reg);
< rename_result = map->renameFloat(flat_rel_dest_reg);
< flat_uni_dest_reg = flat_rel_dest_reg + TheISA::FP_Reg_Base;
---
> flat_dest_reg = tc->flattenFloatIndex(dest_reg.regIdx);
> rename_result = map->renameFloat(flat_dest_reg);
1098,1100c1093,1094
< flat_rel_dest_reg = tc->flattenCCIndex(rel_dest_reg);
< rename_result = map->renameCC(flat_rel_dest_reg);
< flat_uni_dest_reg = flat_rel_dest_reg + TheISA::CC_Reg_Base;
---
> flat_dest_reg = tc->flattenCCIndex(dest_reg.regIdx);
> rename_result = map->renameCC(flat_dest_reg);
1105,1107c1099,1100
< flat_rel_dest_reg = rel_dest_reg;
< rename_result = map->renameMisc(flat_rel_dest_reg);
< flat_uni_dest_reg = flat_rel_dest_reg + TheISA::Misc_Reg_Base;
---
> flat_dest_reg = dest_reg.regIdx;
> rename_result = map->renameMisc(dest_reg.regIdx);
1111c1104
< panic("Reg index is out of bound: %d.", dest_reg);
---
> panic("Invalid register class: %d.", dest_reg.regClass);
1113a1107,1108
> RegId flat_uni_dest_reg(dest_reg.regClass, flat_dest_reg);
>
1120c1115
< "reg %i.\n", tid, (int)flat_rel_dest_reg,
---
> "reg %i.\n", tid, (int)flat_dest_reg,
1434,1435c1429,1432
< cprintf("Seq num: %i\nArch reg: %i New phys reg: %i Old phys "
< "reg: %i\n", (*buf_it).instSeqNum, (int)(*buf_it).archReg,
---
> cprintf("Seq num: %i\nArch reg[%s]: %i New phys reg: %i Old phys "
> "reg: %i\n", (*buf_it).instSeqNum,
> RegClassStrings[(*buf_it).archReg.regClass],
> (*buf_it).archReg.regIdx,