arch,cpu: Get rid of ISA_HAS_CC_REGS and its associated ifdefs.
This conditional compilation was unnecessary and makes gem5 more brittle and harder to understand. Change-Id: I63abaf2668252c988cdd4626ff6a462eb6f54b04 Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/22544 Reviewed-by: Giacomo Travaglini <giacomo.travaglini@arm.com> Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Maintainer: Gabe Black <gabeblack@google.com> Tested-by: kokoro <noreply+kokoro@google.com>
This commit is contained in:
@@ -102,8 +102,6 @@ const int INTRLVREG1 = INTRLVREG0 + 1;
|
||||
const int INTRLVREG2 = INTRLVREG0 + 2;
|
||||
const int INTRLVREG3 = INTRLVREG0 + 3;
|
||||
|
||||
#define ISA_HAS_CC_REGS
|
||||
|
||||
const int TotalNumRegs = NumIntRegs + NumFloatRegs + NumVecRegs +
|
||||
NumVecPredRegs + NumMiscRegs;
|
||||
|
||||
|
||||
@@ -60,8 +60,6 @@ const int NumIntArchRegs = NUM_INTREGS;
|
||||
const int NumIntRegs = NumIntArchRegs + NumMicroIntRegs + NumImplicitIntRegs;
|
||||
const int NumCCRegs = NUM_CCREGS;
|
||||
|
||||
#define ISA_HAS_CC_REGS
|
||||
|
||||
// Each 128 bit xmm register is broken into two effective 64 bit registers.
|
||||
// Add 8 for the indices that are mapped over the fp stack
|
||||
const int NumFloatRegs =
|
||||
|
||||
@@ -109,9 +109,7 @@ class SimpleThread : public ThreadState, public ThreadContext
|
||||
std::array<RegVal, TheISA::NumIntRegs> intRegs;
|
||||
std::array<VecRegContainer, TheISA::NumVecRegs> vecRegs;
|
||||
std::array<VecPredRegContainer, TheISA::NumVecPredRegs> vecPredRegs;
|
||||
#ifdef ISA_HAS_CC_REGS
|
||||
std::array<RegVal, TheISA::NumCCRegs> ccRegs;
|
||||
#endif
|
||||
TheISA::ISA *const isa; // one "instance" of the current ISA.
|
||||
|
||||
TheISA::PCState _pcState;
|
||||
@@ -299,9 +297,7 @@ class SimpleThread : public ThreadState, public ThreadContext
|
||||
vec_reg.zero();
|
||||
for (auto &pred_reg: vecPredRegs)
|
||||
pred_reg.reset();
|
||||
#ifdef ISA_HAS_CC_REGS
|
||||
ccRegs.fill(0);
|
||||
#endif
|
||||
isa->clear();
|
||||
}
|
||||
|
||||
@@ -468,7 +464,6 @@ class SimpleThread : public ThreadState, public ThreadContext
|
||||
RegVal
|
||||
readCCReg(RegIndex reg_idx) const override
|
||||
{
|
||||
#ifdef ISA_HAS_CC_REGS
|
||||
int flatIndex = isa->flattenCCIndex(reg_idx);
|
||||
assert(0 <= flatIndex);
|
||||
assert(flatIndex < TheISA::NumCCRegs);
|
||||
@@ -476,10 +471,6 @@ class SimpleThread : public ThreadState, public ThreadContext
|
||||
DPRINTF(CCRegs, "Reading CC reg %d (%d) as %#x.\n",
|
||||
reg_idx, flatIndex, regVal);
|
||||
return regVal;
|
||||
#else
|
||||
panic("Tried to read a CC register.");
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
void
|
||||
@@ -538,15 +529,11 @@ class SimpleThread : public ThreadState, public ThreadContext
|
||||
void
|
||||
setCCReg(RegIndex reg_idx, RegVal val) override
|
||||
{
|
||||
#ifdef ISA_HAS_CC_REGS
|
||||
int flatIndex = isa->flattenCCIndex(reg_idx);
|
||||
assert(flatIndex < TheISA::NumCCRegs);
|
||||
DPRINTF(CCRegs, "Setting CC reg %d (%d) to %#x.\n",
|
||||
reg_idx, flatIndex, val);
|
||||
setCCRegFlat(flatIndex, val);
|
||||
#else
|
||||
panic("Tried to set a CC register.");
|
||||
#endif
|
||||
}
|
||||
|
||||
TheISA::PCState pcState() const override { return _pcState; }
|
||||
@@ -707,22 +694,8 @@ class SimpleThread : public ThreadState, public ThreadContext
|
||||
vecPredRegs[reg] = val;
|
||||
}
|
||||
|
||||
#ifdef ISA_HAS_CC_REGS
|
||||
RegVal readCCRegFlat(RegIndex idx) const override { return ccRegs[idx]; }
|
||||
void setCCRegFlat(RegIndex idx, RegVal val) override { ccRegs[idx] = val; }
|
||||
#else
|
||||
RegVal
|
||||
readCCRegFlat(RegIndex idx) const override
|
||||
{
|
||||
panic("readCCRegFlat w/no CC regs!\n");
|
||||
}
|
||||
|
||||
void
|
||||
setCCRegFlat(RegIndex idx, RegVal val) override
|
||||
{
|
||||
panic("setCCRegFlat w/no CC regs!\n");
|
||||
}
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -191,12 +191,12 @@ serialize(const ThreadContext &tc, CheckpointOut &cp)
|
||||
intRegs[i] = tc.readIntRegFlat(i);
|
||||
SERIALIZE_ARRAY(intRegs, NumIntRegs);
|
||||
|
||||
#ifdef ISA_HAS_CC_REGS
|
||||
RegVal ccRegs[NumCCRegs];
|
||||
for (int i = 0; i < NumCCRegs; ++i)
|
||||
ccRegs[i] = tc.readCCRegFlat(i);
|
||||
SERIALIZE_ARRAY(ccRegs, NumCCRegs);
|
||||
#endif
|
||||
if (NumCCRegs) {
|
||||
RegVal ccRegs[NumCCRegs];
|
||||
for (int i = 0; i < NumCCRegs; ++i)
|
||||
ccRegs[i] = tc.readCCRegFlat(i);
|
||||
SERIALIZE_ARRAY(ccRegs, NumCCRegs);
|
||||
}
|
||||
|
||||
tc.pcState().serialize(cp);
|
||||
|
||||
@@ -232,12 +232,12 @@ unserialize(ThreadContext &tc, CheckpointIn &cp)
|
||||
for (int i = 0; i < NumIntRegs; ++i)
|
||||
tc.setIntRegFlat(i, intRegs[i]);
|
||||
|
||||
#ifdef ISA_HAS_CC_REGS
|
||||
RegVal ccRegs[NumCCRegs];
|
||||
UNSERIALIZE_ARRAY(ccRegs, NumCCRegs);
|
||||
for (int i = 0; i < NumCCRegs; ++i)
|
||||
tc.setCCRegFlat(i, ccRegs[i]);
|
||||
#endif
|
||||
if (NumCCRegs) {
|
||||
RegVal ccRegs[NumCCRegs];
|
||||
UNSERIALIZE_ARRAY(ccRegs, NumCCRegs);
|
||||
for (int i = 0; i < NumCCRegs; ++i)
|
||||
tc.setCCRegFlat(i, ccRegs[i]);
|
||||
}
|
||||
|
||||
PCState pcState;
|
||||
pcState.unserialize(cp);
|
||||
|
||||
Reference in New Issue
Block a user