Clear misc regs at startup.
src/arch/alpha/regfile.hh: Define clear functions on the individual reg files. src/cpu/o3/regfile.hh: Be sure to clear the misc reg file at startup. --HG-- extra : convert_revision : 41e640887f0cf15d778c59a4dcd544d46899b527
This commit is contained in:
parent
eb0e416998
commit
3e191b1477
2 changed files with 17 additions and 3 deletions
|
@ -62,6 +62,8 @@ namespace AlphaISA
|
|||
|
||||
void unserialize(Checkpoint *cp, const std::string §ion);
|
||||
|
||||
void clear()
|
||||
{ bzero(regs, sizeof(regs)); }
|
||||
};
|
||||
|
||||
class FloatRegFile
|
||||
|
@ -77,6 +79,8 @@ namespace AlphaISA
|
|||
|
||||
void unserialize(Checkpoint *cp, const std::string §ion);
|
||||
|
||||
void clear()
|
||||
{ bzero(d, sizeof(d)); }
|
||||
};
|
||||
|
||||
class MiscRegFile {
|
||||
|
@ -102,6 +106,12 @@ namespace AlphaISA
|
|||
Fault setRegWithEffect(int misc_reg, const MiscReg &val,
|
||||
ThreadContext *tc);
|
||||
|
||||
void clear()
|
||||
{
|
||||
fpcr = uniq = 0;
|
||||
lock_flag = 0;
|
||||
lock_addr = 0;
|
||||
}
|
||||
#if FULL_SYSTEM
|
||||
protected:
|
||||
typedef uint64_t InternalProcReg;
|
||||
|
@ -171,9 +181,9 @@ namespace AlphaISA
|
|||
|
||||
void clear()
|
||||
{
|
||||
bzero(&intRegFile, sizeof(intRegFile));
|
||||
bzero(&floatRegFile, sizeof(floatRegFile));
|
||||
bzero(&miscRegFile, sizeof(miscRegFile));
|
||||
intRegFile.clear();
|
||||
floatRegFile.clear();
|
||||
miscRegFile.clear();
|
||||
}
|
||||
|
||||
MiscReg readMiscReg(int miscReg)
|
||||
|
|
|
@ -299,6 +299,10 @@ PhysRegFile<Impl>::PhysRegFile(unsigned _numPhysicalIntRegs,
|
|||
intRegFile.resize(numPhysicalIntRegs);
|
||||
floatRegFile.resize(numPhysicalFloatRegs);
|
||||
|
||||
for (int i = 0; i < Impl::MaxThreads; ++i) {
|
||||
miscRegs[i].clear();
|
||||
}
|
||||
|
||||
//memset(intRegFile, 0, sizeof(*intRegFile));
|
||||
//memset(floatRegFile, 0, sizeof(*floatRegFile));
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue