diff options
Diffstat (limited to 'src/arch/alpha')
-rw-r--r-- | src/arch/alpha/isa.hh | 3 | ||||
-rw-r--r-- | src/arch/alpha/isa/branch.isa | 2 | ||||
-rw-r--r-- | src/arch/alpha/isa/fp.isa | 2 | ||||
-rw-r--r-- | src/arch/alpha/isa/main.isa | 6 |
4 files changed, 8 insertions, 5 deletions
diff --git a/src/arch/alpha/isa.hh b/src/arch/alpha/isa.hh index 6c06fc397..80d8ab149 100644 --- a/src/arch/alpha/isa.hh +++ b/src/arch/alpha/isa.hh @@ -38,6 +38,7 @@ #include "arch/alpha/registers.hh" #include "arch/alpha/types.hh" #include "base/types.hh" +#include "cpu/reg_class.hh" #include "sim/sim_object.hh" #include "sim/system.hh" @@ -95,6 +96,8 @@ namespace AlphaISA void serialize(CheckpointOut &cp) const override; void unserialize(CheckpointIn &cp) override; + RegId flattenRegId(const RegId& regId) const { return regId; } + int flattenIntIndex(int reg) const { diff --git a/src/arch/alpha/isa/branch.isa b/src/arch/alpha/isa/branch.isa index d4b6db043..a43efff9c 100644 --- a/src/arch/alpha/isa/branch.isa +++ b/src/arch/alpha/isa/branch.isa @@ -130,7 +130,7 @@ output decoder {{ Jump::branchTarget(ThreadContext *tc) const { PCState pc = tc->pcState(); - uint64_t Rb = tc->readIntReg(_srcRegIdx[0].regIdx); + uint64_t Rb = tc->readIntReg(_srcRegIdx[0].index()); pc.set((Rb & ~3) | (pc.pc() & 1)); return pc; } diff --git a/src/arch/alpha/isa/fp.isa b/src/arch/alpha/isa/fp.isa index afece988f..6213c8e08 100644 --- a/src/arch/alpha/isa/fp.isa +++ b/src/arch/alpha/isa/fp.isa @@ -149,7 +149,7 @@ output decoder {{ #ifndef SS_COMPATIBLE_DISASSEMBLY std::string suffix(""); - suffix += ((_destRegIdx[0].regClass == FloatRegClass) + suffix += ((_destRegIdx[0].isFloatReg()) ? fpTrappingModeSuffix[trappingMode] : intTrappingModeSuffix[trappingMode]); suffix += roundingModeSuffix[roundingMode]; diff --git a/src/arch/alpha/isa/main.isa b/src/arch/alpha/isa/main.isa index e75cec524..34e2cb5ad 100644 --- a/src/arch/alpha/isa/main.isa +++ b/src/arch/alpha/isa/main.isa @@ -246,11 +246,11 @@ output decoder {{ void AlphaStaticInst::printReg(std::ostream &os, RegId reg) const { - if (reg.regClass == IntRegClass) { - ccprintf(os, "r%d", reg.regIdx); + if (reg.isIntReg()) { + ccprintf(os, "r%d", reg.index()); } else { - ccprintf(os, "f%d", reg.regIdx); + ccprintf(os, "f%d", reg.index()); } } |